-- XSD schema extracted from ITU-T H.625 (10/2010)

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mcml="http://www.itu.int/xml-namespace/itu-t/h.625/MCML/" targetNamespace="http://www.itu.int/xml-namespace/itu-t/h.625/MCML/" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="MCML"> <xs:complexType> <xs:sequence> <xs:element ref="User"/> <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"/> </xs:complexType> </xs:element> <xs:element name="User"> <xs:complexType> <xs:sequence> <xs:element ref="Transmitter"/> <xs:element ref="Receiver" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Transmitter"> <xs:complexType> <xs:sequence> <xs:element ref="Device"/> <xs:element ref="UserProfile" 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"/> <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:attributeGroup> <xs:element name="Receiver"> <xs:complexType> <xs:sequence> <xs:element ref="Device"/> <xs:element ref="UserProfile" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Server"> <xs:complexType> <xs:choice> <xs:element ref="Request" maxOccurs="unbounded"> <xs:annotation> <xs:documentation> </xs:documentation> </xs:annotation> </xs:element> <xs:element ref="Response"> <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"/> <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"/> <xs:element ref="Output" maxOccurs="unbounded"/> <xs:element ref="Error"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Error"> <xs:complexType> <xs:sequence> <xs:any namespace="##other" 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"> <xs:complexType> <xs:attribute name="URI" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="To" 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 name="Speaking" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element ref="Language"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Writing" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element ref="Language"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Signing" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> </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="required"/> </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 name="AttachedBinary" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attributeGroup ref="BinaryInfo"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:attributeGroup name="BinaryInfo"> <xs:attribute name="DataID" use="required"/> <xs:attribute name="DataType" type="xs:string" use="optional"/> <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:any namespace="##other" 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="required"/> <xs:attribute name="EndTimestamp" type="xs:dateTime" use="required"/> <xs:attribute name="EndPoint" type="xs:dateTime" use="optional"/> </xs:attributeGroup> <xs:element name="ModelType"> <xs:complexType> <xs:sequence> <xs:element name="Domain" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Personality" minOccurs="0"> <xs:complexType> <xs:attributeGroup ref="UserModel"/> </xs:complexType> </xs:element> </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="required"/> <xs:attribute name="Gender" type="xs:string" use="required" 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:element name="Surface" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="Delimiter" type="xs:string"/> </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:attributeGroup ref="Dictionary"/> </xs:complexType> </xs:element> <xs:element name="POS" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attributeGroup ref="Dictionary"/> </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:any namespace="##other" 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:anyAttribute namespace="##other"/> </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:anyAttribute/> </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="AudioFormat" type="xs:string" use="required" fixed=''"PCM", "ADPCM"''/> <xs:attribute name="SamplingRate" type="xs:int" use="required"/> <xs:attribute name="BitRate" type="xs:int" use="required"/> <xs:attribute name="Endian" type="xs:string" use="required" fixed=''"big", "little"''/> <xs:attribute name="ChannelQty" type="xs:int" use="required"/> <xs:attribute name="ValueType" type="xs:string" use="required" fixed=''"float", "integer"''/> </xs:attributeGroup> <xs:element name="Image"> <xs:complexType> <xs:sequence> <xs:element ref="ModelType" minOccurs="0"/> <xs:any namespace="##other" 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:any namespace="##other" 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 name="AttachedBinary" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attributeGroup ref="BinaryInfo"/> </xs:complexType> </xs:element> </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:schema>