aboutsummaryrefslogtreecommitdiffstats
path: root/data
diff options
context:
space:
mode:
authortkummermehr <thorsten.kummermehr@k2l.de>2017-07-13 22:05:10 +0200
committertkummermehr <thorsten.kummermehr@k2l.de>2017-07-13 22:05:10 +0200
commita6be7610736293774b11f9a172d156ab444811c9 (patch)
treea313d165c7342c9839f9a0ae7c1e99bb2a1e4389 /data
parent4b64b8ea3d055bf3b1af751b399b3a9e1d0baa2b (diff)
New XML Parser implementation, supports splitter and combiner
Diffstat (limited to 'data')
-rw-r--r--data/CMakeLists.txt2
-rw-r--r--data/config.ucsx63
-rw-r--r--data/config_multichannel_audio_kit.xml112
-rw-r--r--data/unicens.xsd291
4 files changed, 404 insertions, 64 deletions
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
index 11fbad4..d49221d 100644
--- a/data/CMakeLists.txt
+++ b/data/CMakeLists.txt
@@ -23,7 +23,7 @@
##################################################
PROJECT_TARGET_ADD(ucs2_config)
- file(GLOB SOURCE_FILES "*.ucsx")
+ file(GLOB SOURCE_FILES "*.xml")
add_custom_target(${TARGET_NAME}
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}
diff --git a/data/config.ucsx b/data/config.ucsx
deleted file mode 100644
index 5adbb61..0000000
--- a/data/config.ucsx
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0"?>
-<unicens async_bandwidth="300">
-
- <!-- Server device -->
- <device node_address="0x211">
- <channel channel_name="MediaUCS2" bandwidth="4" data_type="SYNC">
- <socket dir="IN" port="USB" channel_addr="0x1" packets_per_xact="64"/>
- <socket dir="OUT" port="MOST"/>
- </channel>
- </device>
-
- <!-- Slim Amplifier -->
- <device node_address="0x270" script="slim-amp-config">
- <channel channel_name="MediaUCS2" bandwidth="4" data_type="SYNC">
- <socket dir="IN" port="MOST"/>
- <socket dir="OUT" port="I2S" i2s_pin="SRXA0"
- i2s_fs_speed="64" i2s_align="Left16"/>
- </channel>
- </device>
-
- <script name="slim-amp-config">
- <action type="SEND_MSG" fblock_id="0x0" function_id="0x6C1"
- op_request="0x2" op_response="0xC"
- load_req_hex="00 00 01 01"
- load_res_hex="0F 00"/>
- <action type="SEND_MSG" fblock_id="0x0" function_id="0x6C4"
- op_request="0x2" op_response="0xC"
- load_req_hex="0F 00 00 00 2A 02 03 E8 1B 80"
- load_res_hex="0F 00 2A 02"/>
- <action type="SEND_MSG" fblock_id="0x0" function_id="0x6C4"
- op_request="0x2" op_response="0xC"
- load_req_hex="0F 00 00 00 2A 02 03 E8 11 B8"
- load_res_hex="0F 00 2A 02"/>
- <action type="SEND_MSG" fblock_id="0x0" function_id="0x6C4"
- op_request="0x2" op_response="0xC"
- load_req_hex="0F 00 00 00 2A 02 03 E8 12 60"
- load_res_hex="0F 00 2A 02"/>
- <action type="SEND_MSG" fblock_id="0x0" function_id="0x6C4"
- op_request="0x2" op_response="0xC"
- load_req_hex="0F 00 00 00 2A 02 03 E8 13 A0"
- load_res_hex="0F 00 2A 02"/>
- <action type="SEND_MSG" fblock_id="0x0" function_id="0x6C4"
- op_request="0x2" op_response="0xC"
- load_req_hex="0F 00 00 00 2A 02 03 E8 14 48"
- load_res_hex="0F 00 2A 02"/>
- <action type="SEND_MSG" fblock_id="0x0" function_id="0x6C4"
- op_request="0x2" op_response="0xC"
- load_req_hex="0F 00 00 00 2A 05 03 E8 20 00 89 77 72"
- load_res_hex="0F 00 2A 05"/>
- <action type="SEND_MSG" fblock_id="0x0" function_id="0x6C4"
- op_request="0x2" op_response="0xC"
- load_req_hex="0F 00 00 00 2A 02 03 E8 06 00"
- load_res_hex="0F 00 2A 02"/>
- <action type="SEND_MSG" fblock_id="0x0" function_id="0x6C4"
- op_request="0x2" op_response="0xC"
- load_req_hex="0F 00 00 00 2A 02 03 E8 05 00"
- load_res_hex="0F 00 2A 02"/>
- <action type="SEND_MSG" fblock_id="0x0" function_id="0x6C4"
- op_request="0x2" op_response="0xC"
- load_req_hex="0F 00 00 00 2A 03 03 E8 07 01 50"
- load_res_hex="0F 00 2A 03"/>
- </script>
-</unicens>
diff --git a/data/config_multichannel_audio_kit.xml b/data/config_multichannel_audio_kit.xml
new file mode 100644
index 0000000..a248607
--- /dev/null
+++ b/data/config_multichannel_audio_kit.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0"?>
+<Unicens AsyncBandwidth="20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="unicens.xsd">
+ <!-- Server Node -->
+ <Node Address="0x200">
+ <SyncConnection MuteMode="NoMuting">
+ <USBSocket EndpointAddress="0x1" FramesPerTransaction="42"/>
+ <Splitter BytesPerFrame="12">
+ <MOSTSocket Route="5.1 DVD Player Front" Offset="0" Bandwidth="4"/>
+ <MOSTSocket Route="5.1 DVD Player Rear" Offset="4" Bandwidth="4"/>
+ <MOSTSocket Route="5.1 DVD Player Effect" Offset="8" Bandwidth="4"/>
+ </Splitter>
+ </SyncConnection>
+ </Node>
+
+ <!-- 1st Microphone -->
+ <Node Address="0x210">
+ <StreamPort ClockConfig="64Fs" DataAlignment="Left24Bit"/>
+ <SyncConnection MuteMode="NoMuting">
+ <StreamSocket StreamPinID="SRXA0" Bandwidth="6"/>
+ <MOSTSocket Route="Microphone1" Bandwidth="6"/>
+ </SyncConnection>
+ </Node>
+
+ <!-- 2nd Microphone -->
+ <Node Address="0x211">
+ <StreamPort ClockConfig="64Fs" DataAlignment="Left24Bit"/>
+ <SyncConnection MuteMode="NoMuting">
+ <StreamSocket StreamPinID="SRXA0" Bandwidth="6"/>
+ <MOSTSocket Route="Microphone2" Bandwidth="6"/>
+ </SyncConnection>
+ </Node>
+
+ <!-- 3rd Microphone -->
+ <Node Address="0x212">
+ <StreamPort ClockConfig="64Fs" DataAlignment="Left24Bit"/>
+ <SyncConnection MuteMode="NoMuting">
+ <StreamSocket StreamPinID="SRXA0" Bandwidth="6"/>
+ <MOSTSocket Route="Microphone3" Bandwidth="6"/>
+ </SyncConnection>
+ </Node>
+
+ <!-- 1st Slim Amplifier -->
+ <Node Address="0x270" Script="slim-amp-config">
+ <StreamPort ClockConfig="64Fs" DataAlignment="Left16Bit"/>
+ <SyncConnection MuteMode="NoMuting">
+ <MOSTSocket Route="5.1 DVD Player Front" Bandwidth="4"/>
+ <StreamSocket StreamPinID="SRXA0" Bandwidth="4"/>
+ </SyncConnection>
+ </Node>
+ <!-- 2nd Slim Amplifier -->
+ <Node Address="0x271" Script="slim-amp-config">
+ <StreamPort ClockConfig="64Fs" DataAlignment="Left16Bit"/>
+ <SyncConnection MuteMode="NoMuting">
+ <MOSTSocket Route="5.1 DVD Player Rear" Bandwidth="4"/>
+ <StreamSocket StreamPinID="SRXA0" Bandwidth="4"/>
+ </SyncConnection>
+ </Node>
+ <!-- 3rd Slim Amplifier -->
+ <Node Address="0x272" Script="slim-amp-config">
+ <StreamPort ClockConfig="64Fs" DataAlignment="Left16Bit"/>
+ <SyncConnection MuteMode="NoMuting">
+ <MOSTSocket Route="5.1 DVD Player Effect" Bandwidth="4"/>
+ <StreamSocket StreamPinID="SRXA0" Bandwidth="4"/>
+ </SyncConnection>
+ </Node>
+ <Script Name="slim-amp-config">
+ <I2CPortCreate Speed="FastMode"/>
+ <I2CPortWrite Address="0x2A" Payload="1B 80"/>
+ <I2CPortWrite Address="0x2A" Payload="11 B8"/>
+ <I2CPortWrite Address="0x2A" Payload="12 60"/>
+ <I2CPortWrite Address="0x2A" Payload="13 A0"/>
+ <I2CPortWrite Address="0x2A" Payload="14 48"/>
+ <I2CPortWrite Address="0x2A" Payload="20 00 89 77 72"/>
+ <I2CPortWrite Address="0x2A" Payload="06 00"/>
+ <I2CPortWrite Address="0x2A" Payload="05 00"/>
+ <!-- Register 7: Master Volume (Max Volume=07 00 00 and Min Volume=07 03 FF) -->
+ <I2CPortWrite Address="0x2A" Payload="07 01 50"/>
+ </Script>
+
+ <!-- 1st Aux IO -->
+ <Node Address="0x240" Script="aux-io-config">
+ <StreamPort ClockConfig="64Fs" DataAlignment="Left16Bit"/>
+ <SyncConnection MuteMode="NoMuting">
+ <MOSTSocket Route="5.1 DVD Player Front" Bandwidth="4"/>
+ <StreamSocket StreamPinID="SRXA1" Bandwidth="4"/>
+ </SyncConnection>
+ </Node>
+ <!-- 2nd Aux IO -->
+ <Node Address="0x241" Script="aux-io-config">
+ <StreamPort ClockConfig="64Fs" DataAlignment="Left16Bit"/>
+ <SyncConnection MuteMode="NoMuting">
+ <MOSTSocket Route="5.1 DVD Player Rear" Bandwidth="4"/>
+ <StreamSocket StreamPinID="SRXA1" Bandwidth="4"/>
+ </SyncConnection>
+ </Node>
+ <!-- 3rd Aux IO -->
+ <Node Address="0x242" Script="aux-io-config">
+ <StreamPort ClockConfig="64Fs" DataAlignment="Left16Bit"/>
+ <SyncConnection MuteMode="NoMuting">
+ <MOSTSocket Route="5.1 DVD Player Effect" Bandwidth="4"/>
+ <StreamSocket StreamPinID="SRXA1" Bandwidth="4"/>
+ </SyncConnection>
+ </Node>
+ <!-- Script for Aux IO -->
+ <Script Name="aux-io-config">
+ <I2CPortCreate Speed="FastMode"/>
+ <I2CPortWrite Mode="BurstMode" BlockCount="10" Address="0x18" Length="3" Timeout="100"
+ Payload="00 0f 02 01 00 00 02 a5 df 03 3f 3f 04 02 02 10 00 00 11 00 00 12 00 00 13 00 00 14 00 00"/>
+ <I2CPortWrite Mode="BurstMode" BlockCount="4" Address="0x18" Length="3" Timeout="100"
+ Payload="20 00 00 21 00 00 22 00 00 23 00 00"/>
+ </Script>
+</Unicens>
diff --git a/data/unicens.xsd b/data/unicens.xsd
new file mode 100644
index 0000000..08a5ee6
--- /dev/null
+++ b/data/unicens.xsd
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSpy v2017 rel. 3 (x64) (http://www.altova.com) by Pavel Hanak (Microchip Technology Germany II GmbH & Co. KG) -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <xs:element name="Unicens">
+ <xs:annotation>
+ <xs:documentation>Schema for the description of a UNICENS configuration</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="Node">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="USBPort">
+ <xs:complexType>
+ <xs:attribute name="PhysicalLayer" type="USBPortPhysicalLayer" use="required"/>
+ <xs:attribute name="DeviceInterfaces" type="HexNumber" use="required"/>
+ <xs:attribute name="StreamingIfEpInCount" type="DecNumber" use="required"/>
+ <xs:attribute name="StreamingIfEpOutCount" type="DecNumber" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="MediaLBPort">
+ <xs:complexType>
+ <xs:attribute name="ClockConfig" type="MediaLBPortClockConfig" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="StreamPort">
+ <xs:complexType>
+ <xs:attribute name="ClockConfig" type="StreamPortClockConfig" use="required"/>
+ <xs:attribute name="DataAlignment" type="StreamPortDataAlignment" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="SyncConnection">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="Connection">
+ <xs:attribute name="MuteMode" type="SyncConnectionMuteMode" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="AVPConnection">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="Connection">
+ <xs:attribute name="IsocPacketSize" type="AVPConnectionIsocPacketSize" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="Address" type="HexNumber" use="required"/>
+ <xs:attribute name="Script" type="xs:string" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Script">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="GPIOPortCreate">
+ <xs:complexType>
+ <xs:attribute name="DebounceTime" type="DecNumber" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="GPIOPortPinMode">
+ <xs:complexType>
+ <xs:attribute name="PinConfiguration" type="HexData" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="GPIOPinState">
+ <xs:complexType>
+ <xs:attribute name="Mask" type="HexNumber" use="required"/>
+ <xs:attribute name="Data" type="HexNumber" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="I2CPortCreate">
+ <xs:complexType>
+ <xs:attribute name="Speed" type="I2CPortCreateSpeed" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="I2CPortWrite">
+ <xs:complexType>
+ <xs:attribute name="Mode" type="I2CPortWriteMode" use="optional"/>
+ <xs:attribute name="BlockCount" type="DecNumber" use="optional"/>
+ <xs:attribute name="Address" type="HexNumber" use="required"/>
+ <xs:attribute name="Length" type="DecNumber" use="optional"/>
+ <xs:attribute name="Payload" type="HexData" use="required"/>
+ <xs:attribute name="Timeout" type="DecNumber" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="I2CPortRead">
+ <xs:complexType>
+ <xs:attribute name="Address" type="HexNumber" use="required"/>
+ <xs:attribute name="Length" type="DecNumber" use="required"/>
+ <xs:attribute name="Timeout" type="DecNumber" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="MsgSend">
+ <xs:complexType>
+ <xs:attribute name="FBlockId" type="HexNumber" use="required"/>
+ <xs:attribute name="FunctionId" type="HexNumber" use="required"/>
+ <xs:attribute name="OpTypeRequest" type="HexNumber" use="required"/>
+ <xs:attribute name="OpTypeResponse" type="HexNumber" use="optional"/>
+ <xs:attribute name="PayloadRequest" type="HexData" use="required"/>
+ <xs:attribute name="PayloadResponse" type="HexData" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Pause">
+ <xs:complexType>
+ <xs:attribute name="WaitTime" type="DecNumber" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="Name" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ <xs:attribute name="AsyncBandwidth" type="DecNumber" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="Connection">
+ <xs:choice minOccurs="2" maxOccurs="2">
+ <xs:element name="MOSTSocket" type="MOSTSocketType"/>
+ <xs:element name="USBSocket">
+ <xs:complexType>
+ <xs:attribute name="EndpointAddress" type="HexNumber" use="required"/>
+ <xs:attribute name="FramesPerTransaction" type="DecNumber" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="MediaLBSocket">
+ <xs:complexType>
+ <xs:attribute name="ChannelAddress" type="HexNumber" use="required"/>
+ <xs:attribute name="Bandwidth" type="xs:integer" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="StreamSocket">
+ <xs:complexType>
+ <xs:attribute name="StreamPinID" type="StreamSocketStreamPinID" use="required"/>
+ <xs:attribute name="Bandwidth" type="xs:integer" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Splitter" type="SplitterCombinerType"/>
+ <xs:element name="Combiner" type="SplitterCombinerType"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:simpleType name="HexNumber">
+ <xs:annotation>
+ <xs:documentation>Hexadecimal number in the format 0xd..d</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="0x(0|[1-9a-fA-F][0-9a-fA-F]*)"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="DecNumber">
+ <xs:annotation>
+ <xs:documentation>Decimal number</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:integer"/>
+ </xs:simpleType>
+ <xs:simpleType name="USBPortPhysicalLayer">
+ <xs:annotation>
+ <xs:documentation>Physical Layer of USB port</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Standard"/>
+ <xs:enumeration value="HSIC"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="MediaLBPortClockConfig">
+ <xs:annotation>
+ <xs:documentation>Clock Config of MediaLB port</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="256Fs"/>
+ <xs:enumeration value="512Fs"/>
+ <xs:enumeration value="1024Fs"/>
+ <xs:enumeration value="2048Fs"/>
+ <xs:enumeration value="3072Fs"/>
+ <xs:enumeration value="4096Fs"/>
+ <xs:enumeration value="6114Fs"/>
+ <xs:enumeration value="8192Fs"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="StreamPortClockConfig">
+ <xs:annotation>
+ <xs:documentation>Clock Config of Stream port</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="8Fs"/>
+ <xs:enumeration value="16fs"/>
+ <xs:enumeration value="32Fs"/>
+ <xs:enumeration value="64Fs"/>
+ <xs:enumeration value="128Fs"/>
+ <xs:enumeration value="256Fs"/>
+ <xs:enumeration value="512Fs"/>
+ <xs:enumeration value="Willdcard"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="StreamPortDataAlignment">
+ <xs:annotation>
+ <xs:documentation>Data Alignment of Stream port</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Left16Bit"/>
+ <xs:enumeration value="Left24Bit"/>
+ <xs:enumeration value="Right16Bit"/>
+ <xs:enumeration value="Right24Bit"/>
+ <xs:enumeration value="Seq"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="StreamSocketStreamPinID">
+ <xs:annotation>
+ <xs:documentation>Stream Pin ID of Stream socket</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SRXA0"/>
+ <xs:enumeration value="SRXA1"/>
+ <xs:enumeration value="SRXB0"/>
+ <xs:enumeration value="SRXB1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="SyncConnectionMuteMode">
+ <xs:annotation>
+ <xs:documentation>Mute Mode of Sync connection</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="NoMuting"/>
+ <xs:enumeration value="MuteSignal"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="AVPConnectionIsocPacketSize">
+ <xs:annotation>
+ <xs:documentation>Isoc Packet Size of AVP connection</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:integer">
+ <xs:enumeration value="188"/>
+ <xs:enumeration value="196"/>
+ <xs:enumeration value="206"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="I2CPortCreateSpeed">
+ <xs:annotation>
+ <xs:documentation>Speed parameter of I2CPortCreate</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="SlowMode"/>
+ <xs:enumeration value="FastMode"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="I2CPortWriteMode">
+ <xs:annotation>
+ <xs:documentation>Mode parameter of I2CPortWrite</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="DefaultMode"/>
+ <xs:enumeration value="RepeatedStartMode"/>
+ <xs:enumeration value="BurstMode"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="HexData">
+ <xs:annotation>
+ <xs:documentation>String which represents byte array as hexadecimal digits with space after each two digits</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[0-9a-fA-F]{2}(\s+[0-9a-fA-F]{2})*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="SplitterCombinerType">
+ <xs:sequence>
+ <xs:element name="MOSTSocket" type="SCMOSTSocketType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="BytesPerFrame" type="xs:integer" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="MOSTSocketType">
+ <xs:attribute name="Route" type="xs:string" use="required"/>
+ <xs:attribute name="Bandwidth" type="xs:integer" use="required"/>
+ <xs:attribute name="IsActive" type="xs:boolean" use="optional"/>
+ <xs:attribute name="RouteId" type="HexNumber" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="SCMOSTSocketType">
+ <xs:complexContent>
+ <xs:extension base="MOSTSocketType">
+ <xs:attribute name="Offset" type="xs:integer" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+</xs:schema>