-- XSD schema extracted from ITU-T H.625 (03/2017)

<?xml version="2.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="MCML"> <xs:complexType> <xs:sequence> <xs:element ref="User" minOccurs="0"/> <xs:element ref="Server" maxOccurs="unbounded"/> <xs:element ref="History" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="Version" type="xs:string" use="required" fixed=''"2.0"''/> </xs:complexType> </xs:element> <xs:element name="User"> <xs:complexType> <xs:sequence> <xs:element ref="Transmitter" minOccurs="0"/> <xs:element ref="Receiver" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Transmitter"> <xs:complexType> <xs:sequence> <xs:element ref="Device" minOccurs="0"/> <xs:element ref="UserProfile" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Device"> <xs:complexType> <xs:sequence> <xs:element name="Location"> <xs:complexType> <xs:sequence> <xs:element name="URI" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"/> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="GlobalPosition" minOccurs="0"> <xs:complexType> <xs:attributeGroup ref="Location"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:attributeGroup name="Location"> <xs:attribute name="Longitude" type="xs:float" use="required"/> <xs:attribute name="Latitude" type="xs:float" use="required"/> </xs:attributeGroup> <xs:element name="UserProfile"> <xs:complexType> <xs:attributeGroup ref="Profile"/> </xs:complexType> </xs:element> <xs:attributeGroup name="Profile"> <xs:attribute name="ID" type="xs:string" use="required"/> <xs:attribute name="Age" type="xs:int" use="optional"/> <xs:attribute name="Gender" type="xs:string" use="optional" fixed=''"female", "male"''/> <xs:attribute name="Option"/> </xs:attributeGroup> <xs:element name="Receiver"> <xs:complexType> <xs:sequence> <xs:element ref="Device" minOccurs="0"/> <xs:element ref="UserProfile" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Server"> <xs:complexType> <xs:choice> <xs:element ref="Request" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation> </xs:documentation> </xs:annotation> </xs:element> <xs:element ref="Response" minOccurs="0"> <xs:annotation> <xs:documentation> </xs:documentation> </xs:annotation> </xs:element> </xs:choice> <xs:attributeGroup ref="ServiceInfo"/> </xs:complexType> </xs:element> <xs:attributeGroup name="ServiceInfo"> <xs:attribute name="Service" type="xs:string" use="required"/> <xs:attribute name="ProcessOrder" type="xs:int" use="required"/> </xs:attributeGroup> <xs:element name="Request"> <xs:complexType> <xs:sequence> <xs:element ref="Routing" minOccurs="0"/> <xs:element ref="InputUserProfile" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="TargetOutput" minOccurs="0"/> <xs:element ref="Input" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Response"> <xs:complexType> <xs:sequence> <xs:element ref="Routing" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Output" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Error" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Error"> <xs:complexType> <xs:sequence> <xs:element name="Option" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="Code" type="xs:string" use="required"/> <xs:attribute name="Service" type="xs:string" use="required"/> <xs:attribute name="Message" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="Routing"> <xs:complexType> <xs:sequence> <xs:element name="From" minOccurs="0"> <xs:complexType> <xs:attribute name="URI" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="To" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="URI" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="InputUserProfile"> <xs:complexType> <xs:sequence> <xs:element ref="InputModality" minOccurs="0"> <xs:annotation> <xs:documentation> </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> <xs:attributeGroup ref="Profile"/> </xs:complexType> </xs:element> <xs:element name="InputModality"> <xs:complexType> <xs:sequence> <xs:element ref="Speaking" minOccurs="0"/> <xs:element ref="Writing" minOccurs="0"/> <xs:element ref="Signing" minOccurs="0"/> <xs:element name="Option" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Speaking"> <xs:complexType> <xs:sequence> <xs:element ref="Language"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Writing"> <xs:complexType> <xs:sequence> <xs:element ref="Language"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Signing"> <xs:complexType> <xs:sequence> <xs:element ref="Language"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Language"> <xs:complexType> <xs:attributeGroup ref="LanguageSkill"/> </xs:complexType> </xs:element> <xs:attributeGroup name="LanguageSkill"> <xs:attribute name="ID" type="xs:string" use="required"/> <xs:attribute name="Dialect" type="xs:string" use="optional"/> <xs:attribute name="Fluency" type="xs:int" use="optional"/> </xs:attributeGroup> <xs:element name="TargetOutput"> <xs:complexType> <xs:sequence> <xs:element name="HypothesisFormat" minOccurs="0"> <xs:complexType> <xs:attribute name="NofN-best" use="required"> <xs:annotation> <xs:documentation> </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> <xs:element ref="LanguageType" minOccurs="0"/> <xs:element name="Option" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="Key" use="required"/> <xs:attribute name="Value" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="LanguageType"> <xs:complexType> <xs:attribute name="ID" type="xs:string" use="required"/> <xs:attribute name="Dialect" type="xs:string" use="optional"/> </xs:complexType> </xs:element> <xs:element name="Input"> <xs:complexType> <xs:sequence> <xs:element ref="Data"> <xs:annotation> <xs:documentation> </xs:documentation> </xs:annotation> </xs:element> <xs:element ref="AttachedBinary" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:attributeGroup name="BinaryInfo"> <xs:attribute name="DataID" type="xs:string" use="required"/> <xs:attribute name="DataType" type="xs:string" use="required"/> <xs:attribute name="ChannelID" type="xs:int" use="required"/> </xs:attributeGroup> <xs:element name="Data"> <xs:complexType> <xs:sequence> <xs:element ref="Text" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Audio" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Image" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Video" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Application" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Option" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Text"> <xs:complexType> <xs:sequence> <xs:element ref="ModelType" minOccurs="0"/> <xs:element ref="SentenceSequence" maxOccurs="unbounded"/> </xs:sequence> <xs:attributeGroup ref="Channel"/> </xs:complexType> </xs:element> <xs:attributeGroup name="Channel"> <xs:attribute name="ChannelID" type="xs:int" use="required"/> <xs:attribute name="BeginTimestamp" type="xs:dateTime" use="optional"/> <xs:attribute name="EndTimestamp" type="xs:dateTime" use="optional"/> <xs:attribute name="EndPoint" type="xs:dateTime" use="optional"/> </xs:attributeGroup> <xs:element name="ModelType"> <xs:complexType> <xs:sequence> <xs:element name="Domain" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Personality" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attributeGroup ref="UserModel"/> </xs:complexType> </xs:element> <xs:element name="Task" type="xs:string" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:attributeGroup name="UserModel"> <xs:attribute name="ID" type="xs:string" use="required"/> <xs:attribute name="Age" type="xs:int" use="optional"/> <xs:attribute name="Gender" type="xs:string" use="optional" fixed=''"female", "male"''/> </xs:attributeGroup> <xs:element name="SentenceSequence"> <xs:complexType> <xs:sequence> <xs:element ref="Sentence" maxOccurs="unbounded"/> </xs:sequence> <xs:attributeGroup ref="TextMetaInfo"/> <xs:attribute name="N-bestRank" type="xs:int"/> </xs:complexType> </xs:element> <xs:attributeGroup name="TextMetaInfo"> <xs:attribute name="Order" type="xs:int" use="required"/> <xs:attribute name="Score" type="xs:float" use="optional"/> <xs:attribute name="TimeStamp" type="xs:dateTime" use="optional"/> <xs:attribute name="BeginTime" type="xs:integer" use="optional"/> <xs:attribute name="EndTime" type="xs:integer" use="optional"/> </xs:attributeGroup> <xs:element name="Sentence"> <xs:complexType> <xs:sequence> <xs:element name="Function" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"/> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="Surface" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="Delimiter" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element ref="Chunk" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attributeGroup ref="TextMetaInfo"/> </xs:complexType> </xs:element> <xs:element name="Chunk"> <xs:complexType> <xs:sequence> <xs:element name="Surface" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attributeGroup ref="Dictionary"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="POS" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attributeGroup ref="Dictionary"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="Pronunciation" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attributeGroup ref="Dictionary"/> </xs:complexType> </xs:element> <xs:element name="IPA" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attributeGroup ref="Dictionary"/> </xs:complexType> </xs:element> <xs:element name="Accent" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attributeGroup ref="Dictionary"/> </xs:complexType> </xs:element> <xs:element name="Option" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attributeGroup ref="TextMetaInfo"/> </xs:complexType> </xs:element> <xs:attributeGroup name="Dictionary"> <xs:attribute name="DictionaryID" type="xs:string"/> <xs:attribute name="EntryID" type="xs:string"/> <xs:attribute name="Option "/> </xs:attributeGroup> <xs:element name="Audio"> <xs:complexType> <xs:sequence> <xs:element ref="ModelType" minOccurs="0"/> <xs:element ref="Signal" maxOccurs="unbounded"/> <xs:element name="Feature" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="Option"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attributeGroup ref="Channel"/> </xs:complexType> </xs:element> <xs:element name="Signal"> <xs:complexType> <xs:attributeGroup ref="SignalInfo"/> </xs:complexType> </xs:element> <xs:attributeGroup name="SignalInfo"> <xs:attribute name="DataFormat" type="xs:string" use="required" fixed=''"PCM", "ADPCM"''/> <xs:attribute name="SamplingRate" type="xs:int" use="optional"/> <xs:attribute name="BitRate" type="xs:int" use="optional"/> <xs:attribute name="Endian" type="xs:string" use="optional" fixed=''"big", "little"''/> <xs:attribute name="ChannelQty" type="xs:int" use="optional"/> <xs:attribute name="ValueType" type="xs:string" use="optional" fixed=''"float", "integer"''/> <xs:attribute name="Option"/> </xs:attributeGroup> <xs:element name="Image"> <xs:complexType mixed="true"> <xs:sequence> <xs:element ref="ModelType" minOccurs="0"/> <xs:element name="Option " minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attributeGroup ref="Channel"/> </xs:complexType> </xs:element> <xs:element name="Video"> <xs:complexType> <xs:sequence> <xs:element ref="ModelType" minOccurs="0"/> <xs:element name="Option " minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attributeGroup ref="Channel"/> </xs:complexType> </xs:element> <xs:element name="Output"> <xs:complexType> <xs:sequence> <xs:element ref="Data"/> <xs:element ref="AttachedBinary" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="History"> <xs:complexType> <xs:sequence> <xs:element ref="Request"/> <xs:element ref="Response"/> </xs:sequence> <xs:attributeGroup ref="ServiceInfo"/> </xs:complexType> </xs:element> <xs:element name="AttachedBinary"> <xs:complexType> <xs:attributeGroup ref="BinaryInfo"/> </xs:complexType> </xs:element> <xs:element name="Surface"> <xs:complexType> <xs:attributeGroup ref="TextMetaInfo"/> </xs:complexType> </xs:element> <xs:element name="Speed"> <xs:complexType> <xs:attributeGroup ref="Channel"/> <xs:attribute name="Direction"/> <xs:attribute name="Size"/> <xs:attribute name="Time"/> <xs:attribute name="KBPS"/> </xs:complexType> </xs:element> <xs:element name="Custom"> <xs:complexType> <xs:sequence> <xs:element name="Detail"> <xs:complexType> <xs:sequence> <xs:element name="Title"/> <xs:element name="Spot"/> <xs:element name="Display"/> <xs:element ref="Image"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="List"> <xs:complexType> <xs:sequence> <xs:element name="Title"/> <xs:element name="Item" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="Spot"/> <xs:element ref="Image"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Map"> <xs:complexType> <xs:sequence> <xs:element name="Title"/> <xs:element name="Spot"/> <xs:element name="Latitude"/> <xs:element name="Longitude"/> </xs:sequence> </xs:complexType> </xs:element> <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Application"> <xs:complexType> <xs:sequence> <xs:element name="Option" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="Option"/> </xs:complexType> </xs:element> </xs:schema>