Schema qis.instance.xsd


schema location:  C:\Inetpub\wwwroot\qisxml\schema\qis.instance.xsd
attribute form default:  unqualified
element form default:  qualified
targetNamespace:  qis:instance:1_0
 
Elements  Complex types 
QIS  QISType 


schema location:  C:\Inetpub\wwwroot\qisxml\schema\qis.gate.xsd
attribute form default:  unqualified
element form default:  qualified
targetNamespace:  qis:gate:1_0
 
Elements  Complex types 
GateLibrary  GateType 


schema location:  C:\Inetpub\wwwroot\qisxml\schema\qis.circuit.xsd
attribute form default:  unqualified
element form default:  qualified
targetNamespace:  qis:circuit:1_0
 
Elements  Complex types 
Circuit  CircuitLibraryType 
CircuitLibrary  CircuitType 
GateEquivalentCircuit  GateEquivalentCircuitType 
MapType 
OperationType 
StepType 


schema location:  C:\Inetpub\wwwroot\qisxml\schema\qis.program.xsd
attribute form default:  unqualified
element form default:  qualified
targetNamespace:  qis:program:1_0
 
Elements  Complex types 
Memory  MemoryType 
Prepare  PrepareType 
Program  ProgramLibraryType 
ProgramLibrary  ProgramType 
Register  RegisterType 


schema location:  C:\Inetpub\wwwroot\qisxml\schema\qis.reusable.xsd
attribute form default:  unqualified
element form default:  qualified
targetNamespace:  qis:reusable:1_0
 
Elements  Complex types 
Identification  ComplexNumberType 
Input  IdentificationType 
Output  InputType 
ProprietaryData  MatrixCellType 
Qubit  MatrixType 
Reference  OutputType 
Transformation  QubitType 
ReferenceType 
TransformationType 


element QIS
diagram
namespace qis:instance:1_0
type QISType
properties
content complex
children r:Identification g:GateLibrary GateLibraryRef c:CircuitLibrary CircuitLibraryRef p:ProgramLibrary ProgramLibraryRef
annotation
documentation
The root element
source <xs:element name="QIS" type="QISType">
 
<xs:annotation>
   
<xs:documentation>The root element</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType QISType
diagram
namespace qis:instance:1_0
children r:Identification g:GateLibrary GateLibraryRef c:CircuitLibrary CircuitLibraryRef p:ProgramLibrary ProgramLibraryRef
used by
element QIS
source <xs:complexType name="QISType">
 
<xs:sequence>
   
<xs:element ref="r:Identification"/>
   
<xs:choice minOccurs="0" maxOccurs="unbounded">
     
<xs:element ref="g:GateLibrary"/>
     
<xs:element name="GateLibraryRef" type="r:ReferenceType"/>
     
<xs:element ref="c:CircuitLibrary"/>
     
<xs:element name="CircuitLibraryRef" type="r:ReferenceType"/>
     
<xs:element ref="p:ProgramLibrary"/>
     
<xs:element name="ProgramLibraryRef" type="r:ReferenceType"/>
   
</xs:choice>
 
</xs:sequence>
</xs:complexType>

element QISType/GateLibraryRef
diagram
namespace qis:instance:1_0
type r:ReferenceType
properties
isRef 0
content complex
children ID LibraryID AgencyID Version
attributes
Name  Type  Use  Default  Fixed  annotation
URIxs:anyURI      
source <xs:element name="GateLibraryRef" type="r:ReferenceType"/>

element QISType/CircuitLibraryRef
diagram
namespace qis:instance:1_0
type r:ReferenceType
properties
isRef 0
content complex
children ID LibraryID AgencyID Version
attributes
Name  Type  Use  Default  Fixed  annotation
URIxs:anyURI      
source <xs:element name="CircuitLibraryRef" type="r:ReferenceType"/>

element QISType/ProgramLibraryRef
diagram
namespace qis:instance:1_0
type r:ReferenceType
properties
isRef 0
content complex
children ID LibraryID AgencyID Version
attributes
Name  Type  Use  Default  Fixed  annotation
URIxs:anyURI      
source <xs:element name="ProgramLibraryRef" type="r:ReferenceType"/>

element g:GateLibrary
diagram
namespace qis:gate:1_0
properties
content complex
children r:Identification Name Gate
used by
complexType QISType
source <xs:element name="GateLibrary">
 
<xs:complexType>
   
<xs:sequence>
     
<xs:element ref="r:Identification"/>
     
<xs:element name="Name" type="xs:string" minOccurs="0"/>
     
<xs:element name="Gate" type="GateType" minOccurs="0" maxOccurs="unbounded"/>
   
</xs:sequence>
 
</xs:complexType>
</xs:element>

element g:GateLibrary/Name
diagram
namespace qis:gate:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Name" type="xs:string" minOccurs="0"/>

element g:GateLibrary/Gate
diagram
namespace qis:gate:1_0
type g:GateType
properties
isRef 0
minOcc 0
maxOcc unbounded
content complex
children r:Identification Name Nickname Description Input Output Parameter r:Transformation Image r:ProprietaryData
source <xs:element name="Gate" type="GateType" minOccurs="0" maxOccurs="unbounded"/>

complexType g:GateType
diagram
namespace qis:gate:1_0
children r:Identification Name Nickname Description Input Output Parameter r:Transformation Image r:ProprietaryData
used by
element g:GateLibrary/Gate
source <xs:complexType name="GateType">
 
<xs:choice>
   
<xs:sequence>
     
<xs:element ref="r:Identification"/>
     
<xs:element name="Name" type="xs:string"/>
     
<xs:element name="Nickname" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
     
<xs:element name="Description" type="xs:string" minOccurs="0"/>
     
<xs:element name="Input" type="r:InputType" minOccurs="0" maxOccurs="unbounded"/>
     
<xs:element name="Output" type="r:OutputType" minOccurs="0" maxOccurs="unbounded"/>
     
<xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
       
<xs:annotation>
         
<xs:documentation>Allows for parameters to be passed to the gate for use in the computation of the Transformation matrix. Value can be specified as xs:double.
This is similar to the xsl:param element
</xs:documentation>
       
</xs:annotation>
       
<xs:complexType>
         
<xs:sequence>
           
<xs:element name="Name" type="xs:string"/>
           
<xs:element name="Description" type="xs:string" minOccurs="0"/>
           
<xs:element name="Value" type="r:ComplexNumberType" minOccurs="0"/>
         
</xs:sequence>
       
</xs:complexType>
     
</xs:element>
     
<xs:element ref="r:Transformation"/>
     
<xs:element name="Image" minOccurs="0" maxOccurs="unbounded">
       
<xs:complexType>
         
<xs:simpleContent>
           
<xs:extension base="xs:anyURI">
             
<xs:attribute name="format"/>
             
<xs:attribute name="width"/>
             
<xs:attribute name="height"/>
           
</xs:extension>
         
</xs:simpleContent>
       
</xs:complexType>
     
</xs:element>
     
<xs:element ref="r:ProprietaryData" minOccurs="0" maxOccurs="unbounded"/>
   
</xs:sequence>
 
</xs:choice>
</xs:complexType>

element g:GateType/Name
diagram
namespace qis:gate:1_0
type xs:string
properties
isRef 0
content simple
source <xs:element name="Name" type="xs:string"/>

element g:GateType/Nickname
diagram
namespace qis:gate:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc unbounded
content simple
source <xs:element name="Nickname" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>

element g:GateType/Description
diagram
namespace qis:gate:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Description" type="xs:string" minOccurs="0"/>

element g:GateType/Input
diagram
namespace qis:gate:1_0
type r:InputType
properties
isRef 0
minOcc 0
maxOcc unbounded
content complex
children Name Description
attributes
Name  Type  Use  Default  Fixed  annotation
qubitxs:positiveInteger      
documentation
The input number. Must be lessof equalt to gate size.
source <xs:element name="Input" type="r:InputType" minOccurs="0" maxOccurs="unbounded"/>

element g:GateType/Output
diagram
namespace qis:gate:1_0
type r:OutputType
properties
isRef 0
minOcc 0
maxOcc unbounded
content complex
children Name Description
attributes
Name  Type  Use  Default  Fixed  annotation
qubitxs:positiveInteger      
documentation
The input number. Must be lessof equalt to gate size.
source <xs:element name="Output" type="r:OutputType" minOccurs="0" maxOccurs="unbounded"/>

element g:GateType/Parameter
diagram
namespace qis:gate:1_0
properties
isRef 0
minOcc 0
maxOcc unbounded
content complex
children Name Description Value
annotation
documentation
Allows for parameters to be passed to the gate for use in the computation of the Transformation matrix. Value can be specified as xs:double.
This is similar to the xsl:param element
source <xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>Allows for parameters to be passed to the gate for use in the computation of the Transformation matrix. Value can be specified as xs:double.
This is similar to the xsl:param element
</xs:documentation>
 
</xs:annotation>
 
<xs:complexType>
   
<xs:sequence>
     
<xs:element name="Name" type="xs:string"/>
     
<xs:element name="Description" type="xs:string" minOccurs="0"/>
     
<xs:element name="Value" type="r:ComplexNumberType" minOccurs="0"/>
   
</xs:sequence>
 
</xs:complexType>
</xs:element>

element g:GateType/Parameter/Name
diagram
namespace qis:gate:1_0
type xs:string
properties
isRef 0
content simple
source <xs:element name="Name" type="xs:string"/>

element g:GateType/Parameter/Description
diagram
namespace qis:gate:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Description" type="xs:string" minOccurs="0"/>

element g:GateType/Parameter/Value
diagram
namespace qis:gate:1_0
type r:ComplexNumberType
properties
isRef 0
minOcc 0
maxOcc 1
content complex
children Symbolic
attributes
Name  Type  Use  Default  Fixed  annotation
rxs:double      
documentation
Real component.
ixs:double      
documentation
Imaginary component.
source <xs:element name="Value" type="r:ComplexNumberType" minOccurs="0"/>

element g:GateType/Image
diagram
namespace qis:gate:1_0
type extension of xs:anyURI
properties
isRef 0
minOcc 0
maxOcc unbounded
content complex
attributes
Name  Type  Use  Default  Fixed  annotation
format      
width      
height      
source <xs:element name="Image" minOccurs="0" maxOccurs="unbounded">
 
<xs:complexType>
   
<xs:simpleContent>
     
<xs:extension base="xs:anyURI">
       
<xs:attribute name="format"/>
       
<xs:attribute name="width"/>
       
<xs:attribute name="height"/>
     
</xs:extension>
   
</xs:simpleContent>
 
</xs:complexType>
</xs:element>

attribute g:GateType/Image/@format
properties
isRef 0
source <xs:attribute name="format"/>

attribute g:GateType/Image/@width
properties
isRef 0
source <xs:attribute name="width"/>

attribute g:GateType/Image/@height
properties
isRef 0
source <xs:attribute name="height"/>

element c:Circuit
diagram
namespace qis:circuit:1_0
type c:CircuitType
properties
content complex
children r:Identification Name Description r:Input r:Output Step r:ProprietaryData
used by
element p:ProgramType/Execute
complexType c:GateEquivalentCircuitType
attributes
Name  Type  Use  Default  Fixed  annotation
sizexs:positiveIntegerrequired      
source <xs:element name="Circuit" type="CircuitType"/>

element c:CircuitLibrary
diagram
namespace qis:circuit:1_0
type c:CircuitLibraryType
properties
content complex
children r:Identification Name Circuit GateEquivalentCircuit
used by
complexType QISType
source <xs:element name="CircuitLibrary" type="CircuitLibraryType"/>

element c:GateEquivalentCircuit
diagram
namespace qis:circuit:1_0
type extension of c:GateEquivalentCircuitType
properties
content complex
children GateReference Map c:Circuit
attributes
Name  Type  Use  Default  Fixed  annotation
Model      
documentation
Use to identify a set of universal gates
source <xs:element name="GateEquivalentCircuit">
 
<xs:complexType>
   
<xs:complexContent>
     
<xs:extension base="GateEquivalentCircuitType"/>
   
</xs:complexContent>
 
</xs:complexType>
</xs:element>

complexType c:CircuitLibraryType
diagram
namespace qis:circuit:1_0
children r:Identification Name Circuit GateEquivalentCircuit
used by
element c:CircuitLibrary
source <xs:complexType name="CircuitLibraryType">
 
<xs:sequence>
   
<xs:element ref="r:Identification"/>
   
<xs:element name="Name" type="xs:string" minOccurs="0"/>
   
<xs:element name="Circuit" type="CircuitType" minOccurs="0" maxOccurs="unbounded"/>
   
<xs:element name="GateEquivalentCircuit" type="GateEquivalentCircuitType" minOccurs="0" maxOccurs="unbounded"/>
 
</xs:sequence>
</xs:complexType>

element c:CircuitLibraryType/Name
diagram
namespace qis:circuit:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Name" type="xs:string" minOccurs="0"/>

element c:CircuitLibraryType/Circuit
diagram
namespace qis:circuit:1_0
type c:CircuitType
properties
isRef 0
minOcc 0
maxOcc unbounded
content complex
children r:Identification Name Description r:Input r:Output Step r:ProprietaryData
used by
element p:ProgramType/Execute
complexType c:GateEquivalentCircuitType
attributes
Name  Type  Use  Default  Fixed  annotation
sizexs:positiveIntegerrequired      
source <xs:element name="Circuit" type="CircuitType" minOccurs="0" maxOccurs="unbounded"/>

element c:CircuitLibraryType/GateEquivalentCircuit
diagram
namespace qis:circuit:1_0
type c:GateEquivalentCircuitType
properties
isRef 0
minOcc 0
maxOcc unbounded
content complex
children GateReference Map c:Circuit
attributes
Name  Type  Use  Default  Fixed  annotation
Model      
documentation
Use to identify a set of universal gates
source <xs:element name="GateEquivalentCircuit" type="GateEquivalentCircuitType" minOccurs="0" maxOccurs="unbounded"/>

complexType c:CircuitType
diagram
namespace qis:circuit:1_0
children r:Identification Name Description r:Input r:Output Step r:ProprietaryData
used by
elements c:Circuit c:CircuitLibraryType/Circuit
attributes
Name  Type  Use  Default  Fixed  annotation
sizexs:positiveIntegerrequired      
source <xs:complexType name="CircuitType">
 
<xs:choice>
   
<xs:sequence>
     
<xs:element ref="r:Identification" minOccurs="0"/>
     
<xs:element name="Name" type="xs:string" minOccurs="0"/>
     
<xs:element name="Description" type="xs:string" minOccurs="0"/>
     
<xs:element ref="r:Input" minOccurs="0" maxOccurs="unbounded"/>
     
<xs:element ref="r:Output" minOccurs="0" maxOccurs="unbounded"/>
     
<xs:element name="Step" type="StepType" maxOccurs="unbounded"/>
     
<xs:element ref="r:ProprietaryData" minOccurs="0" maxOccurs="unbounded"/>
   
</xs:sequence>
 
</xs:choice>
 
<xs:attribute name="size" type="xs:positiveInteger" use="required"/>
</xs:complexType>

attribute c:CircuitType/@size
type xs:positiveInteger
properties
isRef 0
use required
source <xs:attribute name="size" type="xs:positiveInteger" use="required"/>

element c:CircuitType/Name
diagram
namespace qis:circuit:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Name" type="xs:string" minOccurs="0"/>

element c:CircuitType/Description
diagram
namespace qis:circuit:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Description" type="xs:string" minOccurs="0"/>

element c:CircuitType/Step
diagram
namespace qis:circuit:1_0
type c:StepType
properties
isRef 0
minOcc 1
maxOcc unbounded
content complex
children Description Operation r:ProprietaryData
source <xs:element name="Step" type="StepType" maxOccurs="unbounded"/>

complexType c:GateEquivalentCircuitType
diagram
namespace qis:circuit:1_0
children GateReference Map c:Circuit
used by
elements c:GateEquivalentCircuit c:CircuitLibraryType/GateEquivalentCircuit
attributes
Name  Type  Use  Default  Fixed  annotation
Model      
documentation
Use to identify a set of universal gates
source <xs:complexType name="GateEquivalentCircuitType">
 
<xs:sequence>
   
<xs:element name="GateReference" type="r:ReferenceType">
     
<xs:annotation>
       
<xs:documentation>The Gate this equivalence is for</xs:documentation>
     
</xs:annotation>
   
</xs:element>
   
<xs:element name="Map" type="MapType" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation>Optional mappings of gate inputs to cirtuit inputs or use to fix value of circuit inputs</xs:documentation>
     
</xs:annotation>
   
</xs:element>
   
<xs:element ref="Circuit"/>
 
</xs:sequence>
 
<xs:attribute name="Model">
   
<xs:annotation>
     
<xs:documentation>Use to identify a set of universal gates</xs:documentation>
   
</xs:annotation>
 
</xs:attribute>
</xs:complexType>

attribute c:GateEquivalentCircuitType/@Model
properties
isRef 0
annotation
documentation
Use to identify a set of universal gates
source <xs:attribute name="Model">
 
<xs:annotation>
   
<xs:documentation>Use to identify a set of universal gates</xs:documentation>
 
</xs:annotation>
</xs:attribute>

element c:GateEquivalentCircuitType/GateReference
diagram
namespace qis:circuit:1_0
type r:ReferenceType
properties
isRef 0
content complex
children ID LibraryID AgencyID Version
attributes
Name  Type  Use  Default  Fixed  annotation
URIxs:anyURI      
annotation
documentation
The Gate this equivalence is for
source <xs:element name="GateReference" type="r:ReferenceType">
 
<xs:annotation>
   
<xs:documentation>The Gate this equivalence is for</xs:documentation>
 
</xs:annotation>
</xs:element>

element c:GateEquivalentCircuitType/Map
diagram
namespace qis:circuit:1_0
type c:MapType
properties
isRef 0
minOcc 0
maxOcc unbounded
content complex
attributes
Name  Type  Use  Default  Fixed  annotation
qubitxs:positiveInteger      
documentation
Use to map a qubit to this input
inputxs:positiveIntegerrequired      
valuexs:boolean      
documentation
Use to set input to a specific value
annotation
documentation
Optional mappings of gate inputs to cirtuit inputs or use to fix value of circuit inputs
source <xs:element name="Map" type="MapType" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>Optional mappings of gate inputs to cirtuit inputs or use to fix value of circuit inputs</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType c:MapType
diagram
namespace qis:circuit:1_0
used by
elements c:GateEquivalentCircuitType/Map c:OperationType/Map
attributes
Name  Type  Use  Default  Fixed  annotation
qubitxs:positiveInteger      
documentation
Use to map a qubit to this input
inputxs:positiveIntegerrequired      
valuexs:boolean      
documentation
Use to set input to a specific value
source <xs:complexType name="MapType">
 
<xs:attribute name="qubit" type="xs:positiveInteger">
   
<xs:annotation>
     
<xs:documentation>Use to map a qubit to this input</xs:documentation>
   
</xs:annotation>
 
</xs:attribute>
 
<xs:attribute name="input" type="xs:positiveInteger" use="required"/>
 
<xs:attribute name="value" type="xs:boolean">
   
<xs:annotation>
     
<xs:documentation>Use to set input to a specific value</xs:documentation>
   
</xs:annotation>
 
</xs:attribute>
</xs:complexType>

attribute c:MapType/@qubit
type xs:positiveInteger
properties
isRef 0
annotation
documentation
Use to map a qubit to this input
source <xs:attribute name="qubit" type="xs:positiveInteger">
 
<xs:annotation>
   
<xs:documentation>Use to map a qubit to this input</xs:documentation>
 
</xs:annotation>
</xs:attribute>

attribute c:MapType/@input
type xs:positiveInteger
properties
isRef 0
use required
source <xs:attribute name="input" type="xs:positiveInteger" use="required"/>

attribute c:MapType/@value
type xs:boolean
properties
isRef 0
annotation
documentation
Use to set input to a specific value
source <xs:attribute name="value" type="xs:boolean">
 
<xs:annotation>
   
<xs:documentation>Use to set input to a specific value</xs:documentation>
 
</xs:annotation>
</xs:attribute>

complexType c:OperationType
diagram
namespace qis:circuit:1_0
children Map GateRef CircuitRef Measurement r:ProprietaryData
used by
element c:StepType/Operation
attributes
Name  Type  Use  Default  Fixed  annotation
reverse      
documentation
If true, indicates that the unitary transformation for this operation should be reversed (dagger/ complex conjugate transform)
source <xs:complexType name="OperationType">
 
<xs:sequence>
   
<xs:element name="Map" type="MapType" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation>Maps registry qubits to gate inputs [COULD BE OPTIONAL? IF NOT SPECIFED, USE NATURAL ORDER MAPPING?]</xs:documentation>
     
</xs:annotation>
   
</xs:element>
   
<xs:choice>
     
<xs:element name="GateRef" type="r:ReferenceType"/>
     
<xs:element name="CircuitRef" type="r:ReferenceType"/>
     
<xs:element name="Measurement">
       
<xs:annotation>
         
<xs:documentation>Multiple Map elements can be associated with a single measurement operation.</xs:documentation>
       
</xs:annotation>
     
</xs:element>
   
</xs:choice>
   
<xs:element ref="r:ProprietaryData" minOccurs="0" maxOccurs="unbounded"/>
 
</xs:sequence>
 
<xs:attribute name="reverse">
   
<xs:annotation>
     
<xs:documentation>If true, indicates that the unitary transformation for this operation should be reversed (dagger/ complex conjugate transform)</xs:documentation>
   
</xs:annotation>
 
</xs:attribute>
</xs:complexType>

attribute c:OperationType/@reverse
properties
isRef 0
annotation
documentation
If true, indicates that the unitary transformation for this operation should be reversed (dagger/ complex conjugate transform)
source <xs:attribute name="reverse">
 
<xs:annotation>
   
<xs:documentation>If true, indicates that the unitary transformation for this operation should be reversed (dagger/ complex conjugate transform)</xs:documentation>
 
</xs:annotation>
</xs:attribute>

element c:OperationType/Map
diagram
namespace qis:circuit:1_0
type c:MapType
properties
isRef 0
minOcc 1
maxOcc unbounded
content complex
attributes
Name  Type  Use  Default  Fixed  annotation
qubitxs:positiveInteger      
documentation
Use to map a qubit to this input
inputxs:positiveIntegerrequired      
valuexs:boolean      
documentation
Use to set input to a specific value
annotation
documentation
Maps registry qubits to gate inputs [COULD BE OPTIONAL? IF NOT SPECIFED, USE NATURAL ORDER MAPPING?]
source <xs:element name="Map" type="MapType" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>Maps registry qubits to gate inputs [COULD BE OPTIONAL? IF NOT SPECIFED, USE NATURAL ORDER MAPPING?]</xs:documentation>
 
</xs:annotation>
</xs:element>

element c:OperationType/GateRef
diagram
namespace qis:circuit:1_0
type r:ReferenceType
properties
isRef 0
content complex
children ID LibraryID AgencyID Version
attributes
Name  Type  Use  Default  Fixed  annotation
URIxs:anyURI      
source <xs:element name="GateRef" type="r:ReferenceType"/>

element c:OperationType/CircuitRef
diagram
namespace qis:circuit:1_0
type r:ReferenceType
properties
isRef 0
content complex
children ID LibraryID AgencyID Version
attributes
Name  Type  Use  Default  Fixed  annotation
URIxs:anyURI      
source <xs:element name="CircuitRef" type="r:ReferenceType"/>

element c:OperationType/Measurement
diagram
namespace qis:circuit:1_0
properties
isRef 0
annotation
documentation
Multiple Map elements can be associated with a single measurement operation.
source <xs:element name="Measurement">
 
<xs:annotation>
   
<xs:documentation>Multiple Map elements can be associated with a single measurement operation.</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType c:StepType
diagram
namespace qis:circuit:1_0
children Description Operation r:ProprietaryData
used by
element c:CircuitType/Step
source <xs:complexType name="StepType">
 
<xs:sequence>
   
<xs:element name="Description" type="xs:string" minOccurs="0"/>
   
<xs:element name="Operation" type="OperationType" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation>An operation is a Gate with information mapping qubits or a fixed 0/1 value with the Gat or Circuit inputs</xs:documentation>
     
</xs:annotation>
   
</xs:element>
   
<xs:element ref="r:ProprietaryData" minOccurs="0" maxOccurs="unbounded"/>
 
</xs:sequence>
</xs:complexType>

element c:StepType/Description
diagram
namespace qis:circuit:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Description" type="xs:string" minOccurs="0"/>

element c:StepType/Operation
diagram
namespace qis:circuit:1_0
type c:OperationType
properties
isRef 0
minOcc 1
maxOcc unbounded
content complex
children Map GateRef CircuitRef Measurement r:ProprietaryData
attributes
Name  Type  Use  Default  Fixed  annotation
reverse      
documentation
If true, indicates that the unitary transformation for this operation should be reversed (dagger/ complex conjugate transform)
annotation
documentation
An operation is a Gate with information mapping qubits or a fixed 0/1 value with the Gat or Circuit inputs
source <xs:element name="Operation" type="OperationType" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>An operation is a Gate with information mapping qubits or a fixed 0/1 value with the Gat or Circuit inputs</xs:documentation>
 
</xs:annotation>
</xs:element>

element p:Memory
diagram
namespace qis:program:1_0
type p:MemoryType
properties
content complex
children r:Identification Name p:Prepare Qubit
used by
complexType p:ProgramType
attributes
Name  Type  Use  Default  Fixed  annotation
sizexs:positiveIntegerrequired      
documentation
Number of qubits
source <xs:element name="Memory" type="MemoryType"/>

element p:Prepare
diagram
namespace qis:program:1_0
type p:PrepareType
properties
content complex
children QubitSet
used by
complexTypes p:MemoryType p:RegisterType
attributes
Name  Type  Use  Default  Fixed  annotation
resetxs:boolean      
documentation
Resets all qubits to zero
source <xs:element name="Prepare" type="PrepareType"/>

element p:Program
diagram
namespace qis:program:1_0
type p:ProgramType
properties
content complex
children r:Identification Name Description p:Memory p:Register Execute Measure
used by
element p:ProgramType/Execute
source <xs:element name="Program" type="ProgramType"/>

element p:ProgramLibrary
diagram
namespace qis:program:1_0
type p:ProgramLibraryType
properties
content complex
children r:Identification Name Program
used by
complexType QISType
source <xs:element name="ProgramLibrary" type="ProgramLibraryType"/>

element p:Register
diagram
namespace qis:program:1_0
type p:RegisterType
properties
content complex
children r:Identification Name MemoryReference QubitIndex QubitRange RegisterReference p:Prepare
used by
elements p:ProgramType/Execute p:ProgramType/Measure
complexType p:ProgramType
attributes
Name  Type  Use  Default  Fixed  annotation
sizexs:positiveIntegerrequired      
source <xs:element name="Register" type="RegisterType"/>

complexType p:MemoryType
diagram
namespace qis:program:1_0
children r:Identification Name p:Prepare Qubit
used by
element p:Memory
attributes
Name  Type  Use  Default  Fixed  annotation
sizexs:positiveIntegerrequired      
documentation
Number of qubits
source <xs:complexType name="MemoryType">
 
<xs:sequence>
   
<xs:element ref="r:Identification" minOccurs="0"/>
   
<xs:element name="Name" type="xs:string" minOccurs="0"/>
   
<xs:element ref="Prepare" minOccurs="0">
     
<xs:annotation>
       
<xs:documentation>Prepares the memory</xs:documentation>
     
</xs:annotation>
   
</xs:element>
   
<xs:element name="Qubit" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation>Can be use to actually store memory values. Note that this element extends the r:Qubit type by adding an index attribute.</xs:documentation>
     
</xs:annotation>
     
<xs:complexType>
       
<xs:complexContent>
         
<xs:extension base="r:QubitType">
           
<xs:attribute name="index" use="required"/>
         
</xs:extension>
       
</xs:complexContent>
     
</xs:complexType>
   
</xs:element>
 
</xs:sequence>
 
<xs:attribute name="size" type="xs:positiveInteger" use="required">
   
<xs:annotation>
     
<xs:documentation>Number of qubits</xs:documentation>
   
</xs:annotation>
 
</xs:attribute>
</xs:complexType>

attribute p:MemoryType/@size
type xs:positiveInteger
properties
isRef 0
use required
annotation
documentation
Number of qubits
source <xs:attribute name="size" type="xs:positiveInteger" use="required">
 
<xs:annotation>
   
<xs:documentation>Number of qubits</xs:documentation>
 
</xs:annotation>
</xs:attribute>

element p:MemoryType/Name
diagram
namespace qis:program:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Name" type="xs:string" minOccurs="0"/>

element p:MemoryType/Qubit
diagram
namespace qis:program:1_0
type extension of r:QubitType
properties
isRef 0
minOcc 0
maxOcc unbounded
content complex
children Zero One
attributes
Name  Type  Use  Default  Fixed  annotation
indexrequired      
annotation
documentation
Can be use to actually store memory values. Note that this element extends the r:Qubit type by adding an index attribute.
source <xs:element name="Qubit" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>Can be use to actually store memory values. Note that this element extends the r:Qubit type by adding an index attribute.</xs:documentation>
 
</xs:annotation>
 
<xs:complexType>
   
<xs:complexContent>
     
<xs:extension base="r:QubitType">
       
<xs:attribute name="index" use="required"/>
     
</xs:extension>
   
</xs:complexContent>
 
</xs:complexType>
</xs:element>

attribute p:MemoryType/Qubit/@index
properties
isRef 0
use required
source <xs:attribute name="index" use="required"/>

complexType p:PrepareType
diagram
namespace qis:program:1_0
children QubitSet
used by
element p:Prepare
attributes
Name  Type  Use  Default  Fixed  annotation
resetxs:boolean      
documentation
Resets all qubits to zero
source <xs:complexType name="PrepareType">
 
<xs:sequence>
   
<xs:element name="QubitSet" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation>Set the value of qubit(s)</xs:documentation>
     
</xs:annotation>
     
<xs:complexType>
       
<xs:sequence>
         
<xs:choice maxOccurs="unbounded">
           
<xs:element name="QubitIndex" type="xs:positiveInteger">
             
<xs:annotation>
               
<xs:documentation>A single qubit location</xs:documentation>
             
</xs:annotation>
           
</xs:element>
           
<xs:element name="QubitRange">
             
<xs:annotation>
               
<xs:documentation>A range of qubits</xs:documentation>
             
</xs:annotation>
             
<xs:complexType>
               
<xs:sequence>
                 
<xs:element name="StartQubit" type="xs:positiveInteger"/>
                 
<xs:element name="EndQubit" type="xs:positiveInteger"/>
               
</xs:sequence>
             
</xs:complexType>
           
</xs:element>
         
</xs:choice>
         
<xs:element name="Value" type="r:ComplexNumberType"/>
       
</xs:sequence>
     
</xs:complexType>
   
</xs:element>
 
</xs:sequence>
 
<xs:attribute name="reset" type="xs:boolean">
   
<xs:annotation>
     
<xs:documentation>Resets all qubits to zero</xs:documentation>
   
</xs:annotation>
 
</xs:attribute>
</xs:complexType>

attribute p:PrepareType/@reset
type xs:boolean
properties
isRef 0
annotation
documentation
Resets all qubits to zero
source <xs:attribute name="reset" type="xs:boolean">
 
<xs:annotation>
   
<xs:documentation>Resets all qubits to zero</xs:documentation>
 
</xs:annotation>
</xs:attribute>

element p:PrepareType/QubitSet
diagram
namespace qis:program:1_0
properties
isRef 0
minOcc 1
maxOcc unbounded
content complex
children QubitIndex QubitRange Value
annotation
documentation
Set the value of qubit(s)
source <xs:element name="QubitSet" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>Set the value of qubit(s)</xs:documentation>
 
</xs:annotation>
 
<xs:complexType>
   
<xs:sequence>
     
<xs:choice maxOccurs="unbounded">
       
<xs:element name="QubitIndex" type="xs:positiveInteger">
         
<xs:annotation>
           
<xs:documentation>A single qubit location</xs:documentation>
         
</xs:annotation>
       
</xs:element>
       
<xs:element name="QubitRange">
         
<xs:annotation>
           
<xs:documentation>A range of qubits</xs:documentation>
         
</xs:annotation>
         
<xs:complexType>
           
<xs:sequence>
             
<xs:element name="StartQubit" type="xs:positiveInteger"/>
             
<xs:element name="EndQubit" type="xs:positiveInteger"/>
           
</xs:sequence>
         
</xs:complexType>
       
</xs:element>
     
</xs:choice>
     
<xs:element name="Value" type="r:ComplexNumberType"/>
   
</xs:sequence>
 
</xs:complexType>
</xs:element>

element p:PrepareType/QubitSet/QubitIndex
diagram
namespace qis:program:1_0
type xs:positiveInteger
properties
isRef 0
content simple
annotation
documentation
A single qubit location
source <xs:element name="QubitIndex" type="xs:positiveInteger">
 
<xs:annotation>
   
<xs:documentation>A single qubit location</xs:documentation>
 
</xs:annotation>
</xs:element>

element p:PrepareType/QubitSet/QubitRange
diagram
namespace qis:program:1_0
properties
isRef 0
content complex
children StartQubit EndQubit
annotation
documentation
A range of qubits
source <xs:element name="QubitRange">
 
<xs:annotation>
   
<xs:documentation>A range of qubits</xs:documentation>
 
</xs:annotation>
 
<xs:complexType>
   
<xs:sequence>
     
<xs:element name="StartQubit" type="xs:positiveInteger"/>
     
<xs:element name="EndQubit" type="xs:positiveInteger"/>
   
</xs:sequence>
 
</xs:complexType>
</xs:element>

element p:PrepareType/QubitSet/QubitRange/StartQubit
diagram
namespace qis:program:1_0
type xs:positiveInteger
properties
isRef 0
content simple
source <xs:element name="StartQubit" type="xs:positiveInteger"/>

element p:PrepareType/QubitSet/QubitRange/EndQubit
diagram
namespace qis:program:1_0
type xs:positiveInteger
properties
isRef 0
content simple
source <xs:element name="EndQubit" type="xs:positiveInteger"/>

element p:PrepareType/QubitSet/Value
diagram
namespace qis:program:1_0
type r:ComplexNumberType
properties
isRef 0
content complex
children Symbolic
attributes
Name  Type  Use  Default  Fixed  annotation
rxs:double      
documentation
Real component.
ixs:double      
documentation
Imaginary component.
source <xs:element name="Value" type="r:ComplexNumberType"/>

complexType p:ProgramLibraryType
diagram
namespace qis:program:1_0
children r:Identification Name Program
used by
element p:ProgramLibrary
source <xs:complexType name="ProgramLibraryType">
 
<xs:sequence>
   
<xs:element ref="r:Identification"/>
   
<xs:element name="Name" type="xs:string" minOccurs="0"/>
   
<xs:element name="Program" type="ProgramType" minOccurs="0" maxOccurs="unbounded"/>
 
</xs:sequence>
</xs:complexType>

element p:ProgramLibraryType/Name
diagram
namespace qis:program:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Name" type="xs:string" minOccurs="0"/>

element p:ProgramLibraryType/Program
diagram
namespace qis:program:1_0
type p:ProgramType
properties
isRef 0
minOcc 0
maxOcc unbounded
content complex
children r:Identification Name Description p:Memory p:Register Execute Measure
used by
element p:ProgramType/Execute
source <xs:element name="Program" type="ProgramType" minOccurs="0" maxOccurs="unbounded"/>

complexType p:ProgramType
diagram
namespace qis:program:1_0
children r:Identification Name Description p:Memory p:Register Execute Measure
used by
elements p:Program p:ProgramLibraryType/Program
source <xs:complexType name="ProgramType">
 
<xs:sequence>
   
<xs:element ref="r:Identification" minOccurs="0"/>
   
<xs:element name="Name" type="xs:string" minOccurs="0"/>
   
<xs:element name="Description" type="xs:string" minOccurs="0"/>
   
<xs:element ref="Memory">
     
<xs:annotation>
       
<xs:documentation>Program memory pool used be Registry (inspired by QCL)</xs:documentation>
     
</xs:annotation>
   
</xs:element>
   
<xs:element ref="Register" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation>A global register that can be refered from Execute elements. If is hightly recommended for such register to contain an r:Indetiofication element (but it could also be referred to by idnex value). This is a bit equivalent of a global variable.</xs:documentation>
     
</xs:annotation>
   
</xs:element>
   
<xs:choice maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation>On or more circuit followed by optional measurement (if not specified, assumes the whole memeory is measured and returned)</xs:documentation>
     
</xs:annotation>
     
<xs:element name="Execute">
       
<xs:annotation>
         
<xs:documentation>Circuit to execute</xs:documentation>
       
</xs:annotation>
       
<xs:complexType>
         
<xs:sequence>
           
<xs:choice minOccurs="0">
             
<xs:element ref="Register">
               
<xs:annotation>
                 
<xs:documentation>A subset of qubits from the main program memory to use for this circuit. If not specified, assume that the whole memory is used. This is a bit equivalent ot a local variable.</xs:documentation>
               
</xs:annotation>
             
</xs:element>
             
<xs:element name="RegisterRef" type="r:ReferenceType"/>
           
</xs:choice>
           
<xs:choice>
             
<xs:annotation>
               
<xs:documentation>Provides reference to the Circuit or an inline Circuit</xs:documentation>
             
</xs:annotation>
             
<xs:element name="CircuitRef" type="r:ReferenceType">
               
<xs:annotation>
                 
<xs:documentation>Reference to a circuit in a library</xs:documentation>
               
</xs:annotation>
             
</xs:element>
             
<xs:element ref="c:Circuit"/>
             
<xs:element ref="Program">
               
<xs:annotation>
                 
<xs:documentation>EXPERIMENTAL: calls a subprogram
Need to think how this might work memory wise. May need to wrap in a SubProgram element and add a register (like Exeecute).
</xs:documentation>
               
</xs:annotation>
             
</xs:element>
             
<xs:element name="ProgramRef" type="r:ReferenceType">
               
<xs:annotation>
                 
<xs:documentation>Reference to a Program in a ProgramLibrary</xs:documentation>
               
</xs:annotation>
             
</xs:element>
           
</xs:choice>
         
</xs:sequence>
       
</xs:complexType>
     
</xs:element>
     
<xs:element name="Measure">
       
<xs:annotation>
         
<xs:documentation>Can be used to cause a measurement of a specific set of qubit in the memory
This allows to ((1) run a ciruit, measure, and then run another circuit, (2) when this is the last element, to measure and return only a subset of the memory.
In case (1), this should cause  a "returned" value to be sent to the classicial world
</xs:documentation>
       
</xs:annotation>
       
<xs:complexType>
         
<xs:sequence>
           
<xs:element ref="Register"/>
         
</xs:sequence>
       
</xs:complexType>
     
</xs:element>
   
</xs:choice>
 
</xs:sequence>
</xs:complexType>

element p:ProgramType/Name
diagram
namespace qis:program:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Name" type="xs:string" minOccurs="0"/>

element p:ProgramType/Description
diagram
namespace qis:program:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Description" type="xs:string" minOccurs="0"/>

element p:ProgramType/Execute
diagram
namespace qis:program:1_0
properties
isRef 0
content complex
children p:Register RegisterRef CircuitRef c:Circuit p:Program ProgramRef
annotation
documentation
Circuit to execute
source <xs:element name="Execute">
 
<xs:annotation>
   
<xs:documentation>Circuit to execute</xs:documentation>
 
</xs:annotation>
 
<xs:complexType>
   
<xs:sequence>
     
<xs:choice minOccurs="0">
       
<xs:element ref="Register">
         
<xs:annotation>
           
<xs:documentation>A subset of qubits from the main program memory to use for this circuit. If not specified, assume that the whole memory is used. This is a bit equivalent ot a local variable.</xs:documentation>
         
</xs:annotation>
       
</xs:element>
       
<xs:element name="RegisterRef" type="r:ReferenceType"/>
     
</xs:choice>
     
<xs:choice>
       
<xs:annotation>
         
<xs:documentation>Provides reference to the Circuit or an inline Circuit</xs:documentation>
       
</xs:annotation>
       
<xs:element name="CircuitRef" type="r:ReferenceType">
         
<xs:annotation>
           
<xs:documentation>Reference to a circuit in a library</xs:documentation>
         
</xs:annotation>
       
</xs:element>
       
<xs:element ref="c:Circuit"/>
       
<xs:element ref="Program">
         
<xs:annotation>
           
<xs:documentation>EXPERIMENTAL: calls a subprogram
Need to think how this might work memory wise. May need to wrap in a SubProgram element and add a register (like Exeecute).
</xs:documentation>
         
</xs:annotation>
       
</xs:element>
       
<xs:element name="ProgramRef" type="r:ReferenceType">
         
<xs:annotation>
           
<xs:documentation>Reference to a Program in a ProgramLibrary</xs:documentation>
         
</xs:annotation>
       
</xs:element>
     
</xs:choice>
   
</xs:sequence>
 
</xs:complexType>
</xs:element>

element p:ProgramType/Execute/RegisterRef
diagram
namespace qis:program:1_0
type r:ReferenceType
properties
isRef 0
content complex
children ID LibraryID AgencyID Version
attributes
Name  Type  Use  Default  Fixed  annotation
URIxs:anyURI      
source <xs:element name="RegisterRef" type="r:ReferenceType"/>

element p:ProgramType/Execute/CircuitRef
diagram
namespace qis:program:1_0
type r:ReferenceType
properties
isRef 0
content complex
children ID LibraryID AgencyID Version
attributes
Name  Type  Use  Default  Fixed  annotation
URIxs:anyURI      
annotation
documentation
Reference to a circuit in a library
source <xs:element name="CircuitRef" type="r:ReferenceType">
 
<xs:annotation>
   
<xs:documentation>Reference to a circuit in a library</xs:documentation>
 
</xs:annotation>
</xs:element>

element p:ProgramType/Execute/ProgramRef
diagram
namespace qis:program:1_0
type r:ReferenceType
properties
isRef 0
content complex
children ID LibraryID AgencyID Version
attributes
Name  Type  Use  Default  Fixed  annotation
URIxs:anyURI      
annotation
documentation
Reference to a Program in a ProgramLibrary
source <xs:element name="ProgramRef" type="r:ReferenceType">
 
<xs:annotation>
   
<xs:documentation>Reference to a Program in a ProgramLibrary</xs:documentation>
 
</xs:annotation>
</xs:element>

element p:ProgramType/Measure
diagram
namespace qis:program:1_0
properties
isRef 0
content complex
children p:Register
annotation
documentation
Can be used to cause a measurement of a specific set of qubit in the memory
This allows to ((1) run a ciruit, measure, and then run another circuit, (2) when this is the last element, to measure and return only a subset of the memory.
In case (1), this should cause  a "returned" value to be sent to the classicial world
source <xs:element name="Measure">
 
<xs:annotation>
   
<xs:documentation>Can be used to cause a measurement of a specific set of qubit in the memory
This allows to ((1) run a ciruit, measure, and then run another circuit, (2) when this is the last element, to measure and return only a subset of the memory.
In case (1), this should cause  a "returned" value to be sent to the classicial world
</xs:documentation>
 
</xs:annotation>
 
<xs:complexType>
   
<xs:sequence>
     
<xs:element ref="Register"/>
   
</xs:sequence>
 
</xs:complexType>
</xs:element>

complexType p:RegisterType
diagram
namespace qis:program:1_0
children r:Identification Name MemoryReference QubitIndex QubitRange RegisterReference p:Prepare
used by
element p:Register
attributes
Name  Type  Use  Default  Fixed  annotation
sizexs:positiveIntegerrequired      
annotation
documentation
A collection of references to Memory location. If not specific qubits are reference, the Register is assumed to use all available Memory qubits
source <xs:complexType name="RegisterType">
 
<xs:annotation>
   
<xs:documentation>A collection of references to Memory location. If not specific qubits are reference, the Register is assumed to use all available Memory qubits</xs:documentation>
 
</xs:annotation>
 
<xs:sequence>
   
<xs:element ref="r:Identification" minOccurs="0"/>
   
<xs:element name="Name" type="xs:string" minOccurs="0"/>
   
<xs:element name="MemoryReference" type="r:ReferenceType" minOccurs="0">
     
<xs:annotation>
       
<xs:documentation>May be used in the future to reference global memory or memory in another program</xs:documentation>
     
</xs:annotation>
   
</xs:element>
   
<xs:choice minOccurs="0" maxOccurs="unbounded">
     
<xs:element name="QubitIndex" type="xs:positiveInteger">
       
<xs:annotation>
         
<xs:documentation>A single qubit location</xs:documentation>
       
</xs:annotation>
     
</xs:element>
     
<xs:element name="QubitRange">
       
<xs:annotation>
         
<xs:documentation>A range of qubits</xs:documentation>
       
</xs:annotation>
       
<xs:complexType>
         
<xs:sequence>
           
<xs:element name="StartQubit" type="xs:positiveInteger"/>
           
<xs:element name="EndQubit" type="xs:positiveInteger"/>
         
</xs:sequence>
       
</xs:complexType>
     
</xs:element>
     
<xs:element name="RegisterReference">
       
<xs:annotation>
         
<xs:documentation>Includes another Register's qubits</xs:documentation>
       
</xs:annotation>
     
</xs:element>
   
</xs:choice>
   
<xs:element ref="Prepare" minOccurs="0">
     
<xs:annotation>
       
<xs:documentation>Prepares the register</xs:documentation>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
 
<xs:attribute name="size" type="xs:positiveInteger" use="required"/>
</xs:complexType>

attribute p:RegisterType/@size
type xs:positiveInteger
properties
isRef 0
use required
source <xs:attribute name="size" type="xs:positiveInteger" use="required"/>

element p:RegisterType/Name
diagram
namespace qis:program:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Name" type="xs:string" minOccurs="0"/>

element p:RegisterType/MemoryReference
diagram
namespace qis:program:1_0
type r:ReferenceType
properties
isRef 0
minOcc 0
maxOcc 1
content complex
children ID LibraryID AgencyID Version
attributes
Name  Type  Use  Default  Fixed  annotation
URIxs:anyURI      
annotation
documentation
May be used in the future to reference global memory or memory in another program
source <xs:element name="MemoryReference" type="r:ReferenceType" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation>May be used in the future to reference global memory or memory in another program</xs:documentation>
 
</xs:annotation>
</xs:element>

element p:RegisterType/QubitIndex
diagram
namespace qis:program:1_0
type xs:positiveInteger
properties
isRef 0
content simple
annotation
documentation
A single qubit location
source <xs:element name="QubitIndex" type="xs:positiveInteger">
 
<xs:annotation>
   
<xs:documentation>A single qubit location</xs:documentation>
 
</xs:annotation>
</xs:element>

element p:RegisterType/QubitRange
diagram
namespace qis:program:1_0
properties
isRef 0
content complex
children StartQubit EndQubit
annotation
documentation
A range of qubits
source <xs:element name="QubitRange">
 
<xs:annotation>
   
<xs:documentation>A range of qubits</xs:documentation>
 
</xs:annotation>
 
<xs:complexType>
   
<xs:sequence>
     
<xs:element name="StartQubit" type="xs:positiveInteger"/>
     
<xs:element name="EndQubit" type="xs:positiveInteger"/>
   
</xs:sequence>
 
</xs:complexType>
</xs:element>

element p:RegisterType/QubitRange/StartQubit
diagram
namespace qis:program:1_0
type xs:positiveInteger
properties
isRef 0
content simple
source <xs:element name="StartQubit" type="xs:positiveInteger"/>

element p:RegisterType/QubitRange/EndQubit
diagram
namespace qis:program:1_0
type xs:positiveInteger
properties
isRef 0
content simple
source <xs:element name="EndQubit" type="xs:positiveInteger"/>

element p:RegisterType/RegisterReference
diagram
namespace qis:program:1_0
properties
isRef 0
annotation
documentation
Includes another Register's qubits
source <xs:element name="RegisterReference">
 
<xs:annotation>
   
<xs:documentation>Includes another Register's qubits</xs:documentation>
 
</xs:annotation>
</xs:element>

element r:Identification
diagram
namespace qis:reusable:1_0
type r:IdentificationType
properties
content complex
children ID Agency Version VersionDescription
used by
element g:GateLibrary
complexTypes c:CircuitLibraryType c:CircuitType g:GateType p:MemoryType p:ProgramLibraryType p:ProgramType p:RegisterType QISType
source <xs:element name="Identification" type="IdentificationType"/>

element r:Input
diagram
namespace qis:reusable:1_0
type r:InputType
properties
content complex
children Name Description
used by
complexType c:CircuitType
attributes
Name  Type  Use  Default  Fixed  annotation
qubitxs:positiveInteger      
documentation
The input number. Must be lessof equalt to gate size.
annotation
documentation
Description of the gate/circuit input
source <xs:element name="Input" type="InputType">
 
<xs:annotation>
   
<xs:documentation>Description of the gate/circuit input</xs:documentation>
 
</xs:annotation>
</xs:element>

element r:Output
diagram
namespace qis:reusable:1_0
type r:OutputType
properties
content complex
children Name Description
used by
complexType c:CircuitType
attributes
Name  Type  Use  Default  Fixed  annotation
qubitxs:positiveInteger      
documentation
The input number. Must be lessof equalt to gate size.
annotation
documentation
Description of the gate/circuit output
source <xs:element name="Output" type="OutputType">
 
<xs:annotation>
   
<xs:documentation>Description of the gate/circuit output</xs:documentation>
 
</xs:annotation>
</xs:element>

element r:ProprietaryData
diagram
namespace qis:reusable:1_0
type extension of xs:anyType
properties
content complex
used by
complexTypes c:CircuitType c:OperationType c:StepType g:GateType
attributes
Name  Type  Use  Default  Fixed  annotation
typerequired      
annotation
documentation
Generic element to hold application specific data or metadata
source <xs:element name="ProprietaryData">
 
<xs:annotation>
   
<xs:documentation>Generic element to hold application specific data or metadata </xs:documentation>
 
</xs:annotation>
 
<xs:complexType>
   
<xs:complexContent>
     
<xs:extension base="xs:anyType">
       
<xs:attribute name="type" use="required"/>
     
</xs:extension>
   
</xs:complexContent>
 
</xs:complexType>
</xs:element>

attribute r:ProprietaryData/@type
properties
isRef 0
use required
source <xs:attribute name="type" use="required"/>

element r:Qubit
diagram
namespace qis:reusable:1_0
type r:QubitType
properties
content complex
children Zero One
source <xs:element name="Qubit" type="QubitType"/>

element r:Reference
diagram
namespace qis:reusable:1_0
type r:ReferenceType
properties
content complex
children ID LibraryID AgencyID Version
attributes
Name  Type  Use  Default  Fixed  annotation
URIxs:anyURI      
source <xs:element name="Reference" type="ReferenceType"/>

element r:Transformation
diagram
namespace qis:reusable:1_0
type r:TransformationType
properties
content complex
children Multiplier Cell
used by
complexType g:GateType
attributes
Name  Type  Use  Default  Fixed  annotation
sizexs:intrequired      
source <xs:element name="Transformation" type="TransformationType"/>

complexType r:ComplexNumberType
diagram
namespace qis:reusable:1_0
children Symbolic
used by
elements r:TransformationType/Multiplier r:QubitType/One g:GateType/Parameter/Value p:PrepareType/QubitSet/Value r:QubitType/Zero
complexType r:MatrixCellType
attributes
Name  Type  Use  Default  Fixed  annotation
rxs:double      
documentation
Real component.
ixs:double      
documentation
Imaginary component.
source <xs:complexType name="ComplexNumberType">
 
<xs:sequence>
   
<xs:element name="Symbolic" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation>Can be used to describe a symbolic expression for this value.
When the @r and @i attributes are not specified, this can be used to evaluate to an expression.
To indicate a call to an xpath function, set the syntax attribute to 'xpath'
</xs:documentation>
     
</xs:annotation>
     
<xs:complexType>
       
<xs:simpleContent>
         
<xs:extension base="xs:string">
           
<xs:attribute name="syntax">
             
<xs:annotation>
               
<xs:documentation>The language/syntax used for this symbolic representation (TeX, OpenOffice, XPath,  etc.)</xs:documentation>
             
</xs:annotation>
           
</xs:attribute>
         
</xs:extension>
       
</xs:simpleContent>
     
</xs:complexType>
   
</xs:element>
 
</xs:sequence>
 
<xs:attribute name="r" type="xs:double">
   
<xs:annotation>
     
<xs:documentation>Real component.</xs:documentation>
   
</xs:annotation>
 
</xs:attribute>
 
<xs:attribute name="i" type="xs:double">
   
<xs:annotation>
     
<xs:documentation>Imaginary component.</xs:documentation>
   
</xs:annotation>
 
</xs:attribute>
</xs:complexType>

attribute r:ComplexNumberType/@r
type xs:double
properties
isRef 0
annotation
documentation
Real component.
source <xs:attribute name="r" type="xs:double">
 
<xs:annotation>
   
<xs:documentation>Real component.</xs:documentation>
 
</xs:annotation>
</xs:attribute>

attribute r:ComplexNumberType/@i
type xs:double
properties
isRef 0
annotation
documentation
Imaginary component.
source <xs:attribute name="i" type="xs:double">
 
<xs:annotation>
   
<xs:documentation>Imaginary component.</xs:documentation>
 
</xs:annotation>
</xs:attribute>

element r:ComplexNumberType/Symbolic
diagram
namespace qis:reusable:1_0
type extension of xs:string
properties
isRef 0
minOcc 0
maxOcc unbounded
content complex
attributes
Name  Type  Use  Default  Fixed  annotation
syntax      
documentation
The language/syntax used for this symbolic representation (TeX, OpenOffice, XPath,  etc.)
annotation
documentation
Can be used to describe a symbolic expression for this value.
When the @r and @i attributes are not specified, this can be used to evaluate to an expression.
To indicate a call to an xpath function, set the syntax attribute to 'xpath'
source <xs:element name="Symbolic" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>Can be used to describe a symbolic expression for this value.
When the @r and @i attributes are not specified, this can be used to evaluate to an expression.
To indicate a call to an xpath function, set the syntax attribute to 'xpath'
</xs:documentation>
 
</xs:annotation>
 
<xs:complexType>
   
<xs:simpleContent>
     
<xs:extension base="xs:string">
       
<xs:attribute name="syntax">
         
<xs:annotation>
           
<xs:documentation>The language/syntax used for this symbolic representation (TeX, OpenOffice, XPath,  etc.)</xs:documentation>
         
</xs:annotation>
       
</xs:attribute>
     
</xs:extension>
   
</xs:simpleContent>
 
</xs:complexType>
</xs:element>

attribute r:ComplexNumberType/Symbolic/@syntax
properties
isRef 0
annotation
documentation
The language/syntax used for this symbolic representation (TeX, OpenOffice, XPath,  etc.)
source <xs:attribute name="syntax">
 
<xs:annotation>
   
<xs:documentation>The language/syntax used for this symbolic representation (TeX, OpenOffice, XPath,  etc.)</xs:documentation>
 
</xs:annotation>
</xs:attribute>

complexType r:IdentificationType
diagram
namespace qis:reusable:1_0
children ID Agency Version VersionDescription
used by
element r:Identification
source <xs:complexType name="IdentificationType">
 
<xs:sequence>
   
<xs:element name="ID" type="xs:NCName"/>
   
<xs:element name="Agency" type="xs:NCName" minOccurs="0"/>
   
<xs:element name="Version" type="xs:string" minOccurs="0"/>
   
<xs:element name="VersionDescription" type="xs:string" minOccurs="0"/>
 
</xs:sequence>
</xs:complexType>

element r:IdentificationType/ID
diagram
namespace qis:reusable:1_0
type xs:NCName
properties
isRef 0
content simple
source <xs:element name="ID" type="xs:NCName"/>

element r:IdentificationType/Agency
diagram
namespace qis:reusable:1_0
type xs:NCName
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Agency" type="xs:NCName" minOccurs="0"/>

element r:IdentificationType/Version
diagram
namespace qis:reusable:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Version" type="xs:string" minOccurs="0"/>

element r:IdentificationType/VersionDescription
diagram
namespace qis:reusable:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="VersionDescription" type="xs:string" minOccurs="0"/>

complexType r:InputType
diagram
namespace qis:reusable:1_0
children Name Description
used by
elements g:GateType/Input r:Input
attributes
Name  Type  Use  Default  Fixed  annotation
qubitxs:positiveInteger      
documentation
The input number. Must be lessof equalt to gate size.
source <xs:complexType name="InputType">
 
<xs:sequence>
   
<xs:element name="Name" type="xs:string"/>
   
<xs:element name="Description" type="xs:string" minOccurs="0"/>
 
</xs:sequence>
 
<xs:attribute name="qubit" type="xs:positiveInteger">
   
<xs:annotation>
     
<xs:documentation>The input number. Must be lessof equalt to gate size.</xs:documentation>
   
</xs:annotation>
 
</xs:attribute>
</xs:complexType>

attribute r:InputType/@qubit
type xs:positiveInteger
properties
isRef 0
annotation
documentation
The input number. Must be lessof equalt to gate size.
source <xs:attribute name="qubit" type="xs:positiveInteger">
 
<xs:annotation>
   
<xs:documentation>The input number. Must be lessof equalt to gate size.</xs:documentation>
 
</xs:annotation>
</xs:attribute>

element r:InputType/Name
diagram
namespace qis:reusable:1_0
type xs:string
properties
isRef 0
content simple
source <xs:element name="Name" type="xs:string"/>

element r:InputType/Description
diagram
namespace qis:reusable:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Description" type="xs:string" minOccurs="0"/>

complexType r:MatrixCellType
diagram
namespace qis:reusable:1_0
type extension of r:ComplexNumberType
properties
base ComplexNumberType
children Symbolic
used by
elements r:MatrixType/Cell r:TransformationType/Cell
attributes
Name  Type  Use  Default  Fixed  annotation
rxs:double      
documentation
Real component.
ixs:double      
documentation
Imaginary component.
rowxs:positiveIntegerrequired      
colxs:positiveIntegerrequired      
annotation
documentation
A Matrix Cell is a complex number with a row and column
source <xs:complexType name="MatrixCellType">
 
<xs:annotation>
   
<xs:documentation>A Matrix Cell is a complex number with a row and column</xs:documentation>
 
</xs:annotation>
 
<xs:complexContent>
   
<xs:extension base="ComplexNumberType">
     
<xs:attribute name="row" type="xs:positiveInteger" use="required"/>
     
<xs:attribute name="col" type="xs:positiveInteger" use="required"/>
   
</xs:extension>
 
</xs:complexContent>
</xs:complexType>

attribute r:MatrixCellType/@row
type xs:positiveInteger
properties
isRef 0
use required
source <xs:attribute name="row" type="xs:positiveInteger" use="required"/>

attribute r:MatrixCellType/@col
type xs:positiveInteger
properties
isRef 0
use required
source <xs:attribute name="col" type="xs:positiveInteger" use="required"/>

complexType r:MatrixType
diagram
namespace qis:reusable:1_0
children Cell
attributes
Name  Type  Use  Default  Fixed  annotation
rowsxs:integer      
colsxs:integer      
source <xs:complexType name="MatrixType">
 
<xs:sequence>
   
<xs:element name="Cell" type="MatrixCellType" maxOccurs="unbounded"/>
 
</xs:sequence>
 
<xs:attribute name="rows" type="xs:integer"/>
 
<xs:attribute name="cols" type="xs:integer"/>
</xs:complexType>

attribute r:MatrixType/@rows
type xs:integer
properties
isRef 0
source <xs:attribute name="rows" type="xs:integer"/>

attribute r:MatrixType/@cols
type xs:integer
properties
isRef 0
source <xs:attribute name="cols" type="xs:integer"/>

element r:MatrixType/Cell
diagram
namespace qis:reusable:1_0
type r:MatrixCellType
properties
isRef 0
minOcc 1
maxOcc unbounded
content complex
children Symbolic
attributes
Name  Type  Use  Default  Fixed  annotation
rxs:double      
documentation
Real component.
ixs:double      
documentation
Imaginary component.
rowxs:positiveIntegerrequired      
colxs:positiveIntegerrequired      
source <xs:element name="Cell" type="MatrixCellType" maxOccurs="unbounded"/>

complexType r:OutputType
diagram
namespace qis:reusable:1_0
children Name Description
used by
elements g:GateType/Output r:Output
attributes
Name  Type  Use  Default  Fixed  annotation
qubitxs:positiveInteger      
documentation
The input number. Must be lessof equalt to gate size.
source <xs:complexType name="OutputType">
 
<xs:sequence>
   
<xs:element name="Name" type="xs:string"/>
   
<xs:element name="Description" type="xs:string" minOccurs="0"/>
 
</xs:sequence>
 
<xs:attribute name="qubit" type="xs:positiveInteger">
   
<xs:annotation>
     
<xs:documentation>The input number. Must be lessof equalt to gate size.</xs:documentation>
   
</xs:annotation>
 
</xs:attribute>
</xs:complexType>

attribute r:OutputType/@qubit
type xs:positiveInteger
properties
isRef 0
annotation
documentation
The input number. Must be lessof equalt to gate size.
source <xs:attribute name="qubit" type="xs:positiveInteger">
 
<xs:annotation>
   
<xs:documentation>The input number. Must be lessof equalt to gate size.</xs:documentation>
 
</xs:annotation>
</xs:attribute>

element r:OutputType/Name
diagram
namespace qis:reusable:1_0
type xs:string
properties
isRef 0
content simple
source <xs:element name="Name" type="xs:string"/>

element r:OutputType/Description
diagram
namespace qis:reusable:1_0
type xs:string
properties
isRef 0
minOcc 0
maxOcc 1
content simple
source <xs:element name="Description" type="xs:string" minOccurs="0"/>

complexType r:QubitType
diagram
namespace qis:reusable:1_0
children Zero One
used by
elements p:MemoryType/Qubit r:Qubit
source <xs:complexType name="QubitType">
 
<xs:sequence>
   
<xs:element name="Zero" type="ComplexNumberType"/>
   
<xs:element name="One" type="ComplexNumberType"/>
 
</xs:sequence>
</xs:complexType>

element r:QubitType/Zero
diagram
namespace qis:reusable:1_0
type r:ComplexNumberType
properties
isRef 0
content complex
children Symbolic
attributes
Name  Type  Use  Default  Fixed  annotation
rxs:double      
documentation
Real component.
ixs:double      
documentation
Imaginary component.
source <xs:element name="Zero" type="ComplexNumberType"/>

element r:QubitType/One
diagram
namespace qis:reusable:1_0
type r:ComplexNumberType
properties
isRef 0
content complex
children Symbolic
attributes
Name  Type  Use  Default  Fixed  annotation
rxs:double      
documentation
Real component.
ixs:double      
documentation
Imaginary component.
source <xs:element name="One" type="ComplexNumberType"/>

complexType r:ReferenceType
diagram
namespace qis:reusable:1_0
children ID LibraryID AgencyID Version
used by
elements QISType/CircuitLibraryRef c:OperationType/CircuitRef p:ProgramType/Execute/CircuitRef QISType/GateLibraryRef c:OperationType/GateRef c:GateEquivalentCircuitType/GateReference p:RegisterType/MemoryReference QISType/ProgramLibraryRef p:ProgramType/Execute/ProgramRef r:Reference p:ProgramType/Execute/RegisterRef
attributes
Name  Type  Use  Default  Fixed  annotation
URIxs:anyURI      
source <xs:complexType name="ReferenceType">
 
<xs:sequence>
   
<xs:element name="ID" type="xs:NCName">
     
<xs:annotation>
       
<xs:documentation>Object identifier</xs:documentation>
     
</xs:annotation>
   
</xs:element>
   
<xs:element name="LibraryID" type="xs:NCName" minOccurs="0">
     
<xs:annotation>
       
<xs:documentation>Library identifier</xs:documentation>
     
</xs:annotation>
   
</xs:element>
   
<xs:element name="AgencyID" minOccurs="0"/>
   
<xs:element name="Version" minOccurs="0"/>
 
</xs:sequence>
 
<xs:attribute name="URI" type="xs:anyURI"/>
</xs:complexType>

attribute r:ReferenceType/@URI
type xs:anyURI
properties
isRef 0
source <xs:attribute name="URI" type="xs:anyURI"/>

element r:ReferenceType/ID
diagram
namespace qis:reusable:1_0
type xs:NCName
properties
isRef 0
content simple
annotation
documentation
Object identifier
source <xs:element name="ID" type="xs:NCName">
 
<xs:annotation>
   
<xs:documentation>Object identifier</xs:documentation>
 
</xs:annotation>
</xs:element>

element r:ReferenceType/LibraryID
diagram
namespace qis:reusable:1_0
type xs:NCName
properties
isRef 0
minOcc 0
maxOcc 1
content simple
annotation
documentation
Library identifier
source <xs:element name="LibraryID" type="xs:NCName" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation>Library identifier</xs:documentation>
 
</xs:annotation>
</xs:element>

element r:ReferenceType/AgencyID
diagram
namespace qis:reusable:1_0
properties
isRef 0
minOcc 0
maxOcc 1
source <xs:element name="AgencyID" minOccurs="0"/>

element r:ReferenceType/Version
diagram
namespace qis:reusable:1_0
properties
isRef 0
minOcc 0
maxOcc 1
source <xs:element name="Version" minOccurs="0"/>

complexType r:TransformationType
diagram
namespace qis:reusable:1_0
children Multiplier Cell
used by
element r:Transformation
attributes
Name  Type  Use  Default  Fixed  annotation
sizexs:intrequired      
annotation
documentation
A unitary Transformation is a square matrix of complex numbers.
source <xs:complexType name="TransformationType">
 
<xs:annotation>
   
<xs:documentation>A unitary Transformation is a square matrix of complex numbers. </xs:documentation>
 
</xs:annotation>
 
<xs:sequence>
   
<xs:element name="Multiplier" type="ComplexNumberType" minOccurs="0"/>
   
<xs:element name="Cell" type="MatrixCellType" minOccurs="0" maxOccurs="unbounded"/>
 
</xs:sequence>
 
<xs:attribute name="size" type="xs:int" use="required"/>
</xs:complexType>

attribute r:TransformationType/@size
type xs:int
properties
isRef 0
use required
source <xs:attribute name="size" type="xs:int" use="required"/>

element r:TransformationType/Multiplier
diagram
namespace qis:reusable:1_0
type r:ComplexNumberType
properties
isRef 0
minOcc 0
maxOcc 1
content complex
children Symbolic
attributes
Name  Type  Use  Default  Fixed  annotation
rxs:double      
documentation
Real component.
ixs:double      
documentation
Imaginary component.
source <xs:element name="Multiplier" type="ComplexNumberType" minOccurs="0"/>

element r:TransformationType/Cell
diagram
namespace qis:reusable:1_0
type r:MatrixCellType
properties
isRef 0
minOcc 0
maxOcc unbounded
content complex
children Symbolic
attributes
Name  Type  Use  Default  Fixed  annotation
rxs:double      
documentation
Real component.
ixs:double      
documentation
Imaginary component.
rowxs:positiveIntegerrequired      
colxs:positiveIntegerrequired      
source <xs:element name="Cell" type="MatrixCellType" minOccurs="0" maxOccurs="unbounded"/>


XML Schema documentation generated by
XMLSpy Schema Editor http://www.altova.com/xmlspy