New XML Parser implementation, supports splitter and combiner
[apps/agl-service-unicens.git] / data / unicens.xsd
diff --git a/data/unicens.xsd b/data/unicens.xsd
new file mode 100644 (file)
index 0000000..08a5ee6
--- /dev/null
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!-- edited with XMLSpy v2017 rel. 3 (x64) (http://www.altova.com) by Pavel Hanak (Microchip Technology Germany II GmbH & Co. KG) -->\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">\r
+       <xs:element name="Unicens">\r
+               <xs:annotation>\r
+                       <xs:documentation>Schema for the description of a UNICENS configuration</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:complexType>\r
+                       <xs:choice maxOccurs="unbounded">\r
+                               <xs:element name="Node">\r
+                                       <xs:complexType>\r
+                                               <xs:sequence>\r
+                                                       <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+                                                               <xs:element name="USBPort">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:attribute name="PhysicalLayer" type="USBPortPhysicalLayer" use="required"/>\r
+                                                                               <xs:attribute name="DeviceInterfaces" type="HexNumber" use="required"/>\r
+                                                                               <xs:attribute name="StreamingIfEpInCount" type="DecNumber" use="required"/>\r
+                                                                               <xs:attribute name="StreamingIfEpOutCount" type="DecNumber" use="required"/>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                               <xs:element name="MediaLBPort">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:attribute name="ClockConfig" type="MediaLBPortClockConfig" use="required"/>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                               <xs:element name="StreamPort">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:attribute name="ClockConfig" type="StreamPortClockConfig" use="required"/>\r
+                                                                               <xs:attribute name="DataAlignment" type="StreamPortDataAlignment" use="required"/>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                       </xs:choice>\r
+                                                       <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+                                                               <xs:element name="SyncConnection">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:complexContent>\r
+                                                                                       <xs:extension base="Connection">\r
+                                                                                               <xs:attribute name="MuteMode" type="SyncConnectionMuteMode" use="optional"/>\r
+                                                                                       </xs:extension>\r
+                                                                               </xs:complexContent>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                               <xs:element name="AVPConnection">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:complexContent>\r
+                                                                                       <xs:extension base="Connection">\r
+                                                                                               <xs:attribute name="IsocPacketSize" type="AVPConnectionIsocPacketSize" use="required"/>\r
+                                                                                       </xs:extension>\r
+                                                                               </xs:complexContent>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                       </xs:choice>\r
+                                               </xs:sequence>\r
+                                               <xs:attribute name="Address" type="HexNumber" use="required"/>\r
+                                               <xs:attribute name="Script" type="xs:string" use="optional"/>\r
+                                       </xs:complexType>\r
+                               </xs:element>\r
+                               <xs:element name="Script">\r
+                                       <xs:complexType>\r
+                                               <xs:sequence>\r
+                                                       <xs:choice maxOccurs="unbounded">\r
+                                                               <xs:element name="GPIOPortCreate">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:attribute name="DebounceTime" type="DecNumber" use="required"/>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                               <xs:element name="GPIOPortPinMode">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:attribute name="PinConfiguration" type="HexData" use="required"/>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                               <xs:element name="GPIOPinState">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:attribute name="Mask" type="HexNumber" use="required"/>\r
+                                                                               <xs:attribute name="Data" type="HexNumber" use="required"/>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                               <xs:element name="I2CPortCreate">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:attribute name="Speed" type="I2CPortCreateSpeed" use="required"/>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                               <xs:element name="I2CPortWrite">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:attribute name="Mode" type="I2CPortWriteMode" use="optional"/>\r
+                                                                               <xs:attribute name="BlockCount" type="DecNumber" use="optional"/>\r
+                                                                               <xs:attribute name="Address" type="HexNumber" use="required"/>\r
+                                                                               <xs:attribute name="Length" type="DecNumber" use="optional"/>\r
+                                                                               <xs:attribute name="Payload" type="HexData" use="required"/>\r
+                                                                               <xs:attribute name="Timeout" type="DecNumber" use="optional"/>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                               <xs:element name="I2CPortRead">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:attribute name="Address" type="HexNumber" use="required"/>\r
+                                                                               <xs:attribute name="Length" type="DecNumber" use="required"/>\r
+                                                                               <xs:attribute name="Timeout" type="DecNumber" use="optional"/>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                               <xs:element name="MsgSend">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:attribute name="FBlockId" type="HexNumber" use="required"/>\r
+                                                                               <xs:attribute name="FunctionId" type="HexNumber" use="required"/>\r
+                                                                               <xs:attribute name="OpTypeRequest" type="HexNumber" use="required"/>\r
+                                                                               <xs:attribute name="OpTypeResponse" type="HexNumber" use="optional"/>\r
+                                                                               <xs:attribute name="PayloadRequest" type="HexData" use="required"/>\r
+                                                                               <xs:attribute name="PayloadResponse" type="HexData" use="optional"/>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                               <xs:element name="Pause">\r
+                                                                       <xs:complexType>\r
+                                                                               <xs:attribute name="WaitTime" type="DecNumber" use="required"/>\r
+                                                                       </xs:complexType>\r
+                                                               </xs:element>\r
+                                                       </xs:choice>\r
+                                               </xs:sequence>\r
+                                               <xs:attribute name="Name" type="xs:string" use="required"/>\r
+                                       </xs:complexType>\r
+                               </xs:element>\r
+                       </xs:choice>\r
+                       <xs:attribute name="AsyncBandwidth" type="DecNumber" use="required"/>\r
+               </xs:complexType>\r
+       </xs:element>\r
+       <xs:complexType name="Connection">\r
+               <xs:choice minOccurs="2" maxOccurs="2">\r
+                       <xs:element name="MOSTSocket" type="MOSTSocketType"/>\r
+                       <xs:element name="USBSocket">\r
+                               <xs:complexType>\r
+                                       <xs:attribute name="EndpointAddress" type="HexNumber" use="required"/>\r
+                                       <xs:attribute name="FramesPerTransaction" type="DecNumber" use="required"/>\r
+                               </xs:complexType>\r
+                       </xs:element>\r
+                       <xs:element name="MediaLBSocket">\r
+                               <xs:complexType>\r
+                                       <xs:attribute name="ChannelAddress" type="HexNumber" use="required"/>\r
+                                       <xs:attribute name="Bandwidth" type="xs:integer" use="required"/>\r
+                               </xs:complexType>\r
+                       </xs:element>\r
+                       <xs:element name="StreamSocket">\r
+                               <xs:complexType>\r
+                                       <xs:attribute name="StreamPinID" type="StreamSocketStreamPinID" use="required"/>\r
+                                       <xs:attribute name="Bandwidth" type="xs:integer" use="required"/>\r
+                               </xs:complexType>\r
+                       </xs:element>\r
+                       <xs:element name="Splitter" type="SplitterCombinerType"/>\r
+                       <xs:element name="Combiner" type="SplitterCombinerType"/>\r
+               </xs:choice>\r
+       </xs:complexType>\r
+       <xs:simpleType name="HexNumber">\r
+               <xs:annotation>\r
+                       <xs:documentation>Hexadecimal number in the format 0xd..d</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string">\r
+                       <xs:pattern value="0x(0|[1-9a-fA-F][0-9a-fA-F]*)"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="DecNumber">\r
+               <xs:annotation>\r
+                       <xs:documentation>Decimal number</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:integer"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="USBPortPhysicalLayer">\r
+               <xs:annotation>\r
+                       <xs:documentation>Physical Layer of USB port</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="Standard"/>\r
+                       <xs:enumeration value="HSIC"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="MediaLBPortClockConfig">\r
+               <xs:annotation>\r
+                       <xs:documentation>Clock Config of MediaLB port</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="256Fs"/>\r
+                       <xs:enumeration value="512Fs"/>\r
+                       <xs:enumeration value="1024Fs"/>\r
+                       <xs:enumeration value="2048Fs"/>\r
+                       <xs:enumeration value="3072Fs"/>\r
+                       <xs:enumeration value="4096Fs"/>\r
+                       <xs:enumeration value="6114Fs"/>\r
+                       <xs:enumeration value="8192Fs"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="StreamPortClockConfig">\r
+               <xs:annotation>\r
+                       <xs:documentation>Clock Config of Stream port</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="8Fs"/>\r
+                       <xs:enumeration value="16fs"/>\r
+                       <xs:enumeration value="32Fs"/>\r
+                       <xs:enumeration value="64Fs"/>\r
+                       <xs:enumeration value="128Fs"/>\r
+                       <xs:enumeration value="256Fs"/>\r
+                       <xs:enumeration value="512Fs"/>\r
+                       <xs:enumeration value="Willdcard"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="StreamPortDataAlignment">\r
+               <xs:annotation>\r
+                       <xs:documentation>Data Alignment of Stream port</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="Left16Bit"/>\r
+                       <xs:enumeration value="Left24Bit"/>\r
+                       <xs:enumeration value="Right16Bit"/>\r
+                       <xs:enumeration value="Right24Bit"/>\r
+                       <xs:enumeration value="Seq"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="StreamSocketStreamPinID">\r
+               <xs:annotation>\r
+                       <xs:documentation>Stream Pin ID of Stream socket</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="SRXA0"/>\r
+                       <xs:enumeration value="SRXA1"/>\r
+                       <xs:enumeration value="SRXB0"/>\r
+                       <xs:enumeration value="SRXB1"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="SyncConnectionMuteMode">\r
+               <xs:annotation>\r
+                       <xs:documentation>Mute Mode of Sync connection</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="NoMuting"/>\r
+                       <xs:enumeration value="MuteSignal"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AVPConnectionIsocPacketSize">\r
+               <xs:annotation>\r
+                       <xs:documentation>Isoc Packet Size of AVP connection</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:integer">\r
+                       <xs:enumeration value="188"/>\r
+                       <xs:enumeration value="196"/>\r
+                       <xs:enumeration value="206"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="I2CPortCreateSpeed">\r
+               <xs:annotation>\r
+                       <xs:documentation>Speed parameter of I2CPortCreate</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="SlowMode"/>\r
+                       <xs:enumeration value="FastMode"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="I2CPortWriteMode">\r
+               <xs:annotation>\r
+                       <xs:documentation>Mode parameter of I2CPortWrite</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="DefaultMode"/>\r
+                       <xs:enumeration value="RepeatedStartMode"/>\r
+                       <xs:enumeration value="BurstMode"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="HexData">\r
+               <xs:annotation>\r
+                       <xs:documentation>String which represents byte array as hexadecimal digits with space after each two digits</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string">\r
+                       <xs:pattern value="[0-9a-fA-F]{2}(\s+[0-9a-fA-F]{2})*"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:complexType name="SplitterCombinerType">\r
+               <xs:sequence>\r
+                       <xs:element name="MOSTSocket" type="SCMOSTSocketType" maxOccurs="unbounded"/>\r
+               </xs:sequence>\r
+               <xs:attribute name="BytesPerFrame" type="xs:integer" use="required"/>\r
+       </xs:complexType>\r
+       <xs:complexType name="MOSTSocketType">\r
+               <xs:attribute name="Route" type="xs:string" use="required"/>\r
+               <xs:attribute name="Bandwidth" type="xs:integer" use="required"/>\r
+               <xs:attribute name="IsActive" type="xs:boolean" use="optional"/>\r
+               <xs:attribute name="RouteId" type="HexNumber" use="optional"/>\r
+       </xs:complexType>\r
+       <xs:complexType name="SCMOSTSocketType">\r
+               <xs:complexContent>\r
+                       <xs:extension base="MOSTSocketType">\r
+                               <xs:attribute name="Offset" type="xs:integer" use="required"/>\r
+                       </xs:extension>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+</xs:schema>\r