This topic presents three schema definitions for Microsoft extensions to EMMA.
WebRecoExtensions.xsd
XML | Copy Code |
---|---|
<?xml version="1.0" encoding="utf-8"?> <xs:schema id="WebRecoExtensions" targetNamespace="http://www.microsoft.com/xmlns/webreco" elementFormDefault="qualified" xmlns="http://www.microsoft.com/xmlns/webreco" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:emma="http://www.w3.org/2003/04/emma" > <xs:import schemaLocation="http://www.w3.org/TR/2009/REC-emma-20090210/emma.xsd" namespace="http://www.w3.org/2003/04/emma"/> <!-- Attribute type for 'ms:actualConfidence' --> <xs:simpleType name="actualConfidence"> <xs:restriction base="xs:integer"> <xs:minInclusive value="-1"/> <xs:maxInclusive value="1"/> </xs:restriction> </xs:simpleType> <!-- Attribute type for 'confidencelevel', 'speedvsaccuracy' etc. --> <xs:simpleType name="percent"> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0.0"/> <xs:maxInclusive value="1.0"/> </xs:restriction> </xs:simpleType> <!-- Attribute type for 'timeout', 'completetimeout' etc. --> <xs:simpleType name="duration"> <xs:restriction base="xs:string"> <xs:pattern value="\+?(([0-9]*\.[0-9]+)|([0-9]+))(s|ms)|(-|\+)?(0+|0*\.0+)(s|ms)?"/> </xs:restriction> </xs:simpleType> <!-- Attribute type for 'dataType' and 'valueType' --> <xs:simpleType name="ecmaDataType"> <xs:restriction base="xs:string"> <xs:enumeration value="object"/> <xs:enumeration value="array"/> <xs:enumeration value="string"/> <xs:enumeration value="number"/> <xs:enumeration value="boolean"/> <xs:enumeration value="undefined"/> <xs:enumeration value="null"/> </xs:restriction> </xs:simpleType> <!-- Type for 'ms:properties' element --> <xs:complexType name="properties"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="property"/> </xs:choice> <xs:attribute name="time" type="xs:dateTime"/> <xs:attribute name="status" type="xs:string"/> <xs:attribute name="reason" type="xs:integer"/> <xs:attribute name="timeout" type="duration"/> <xs:attribute name="completetimeout" type="duration"/> <xs:attribute name="incompletetimeout" type="duration"/> <xs:attribute name="requesttimeout" type="duration"/> <xs:attribute name="confidencelevel" type="percent"/> <xs:attribute name="sensitivity" type="percent"/> <xs:attribute name="speedvsaccuracy" type="percent"/> <xs:attribute name="engineproperty" type="xs:string"/> <xs:attribute name="maxnbest" type="xs:positiveInteger"/> <xs:attribute name="enginerequiredattributes" type="xs:string"/> <xs:attribute name="engineoptionalattributes" type="xs:string"/> </xs:complexType> <!-- Type for 'ms:property' element --> <xs:complexType name="property"> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="value" type="xs:string" use="required"/> </xs:complexType> <!-- Type for 'ms:audio' element --> <xs:complexType name="audio" mixed="true"> <xs:attribute name="type" type="xs:string"/> <xs:attribute name="ref" type="xs:anyURI"/> </xs:complexType> <!-- Type for 'ms:transcript' element --> <xs:complexType name="transcript"> <xs:choice maxOccurs="unbounded"> <xs:element ref="original"/> <xs:element ref="matched-string"/> <xs:element ref="error"/> <xs:element ref="emma:one-of"/> <xs:element ref="emma:interpretation"/> </xs:choice> <xs:attribute ref="status"/> </xs:complexType> <!-- Type for 'ms:matched-string' element --> <xs:complexType name="matched-string" mixed="true"> <xs:attribute name="mappingrulelog" type="xs:string"/> <xs:attribute name="modificationlevel" type="xs:nonNegativeInteger"/> </xs:complexType> <!-- Type for 'ms:initial-engine-state' element --> <xs:complexType name="initial-engine-state" mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:any namespace="##any" processContents="lax"/> </xs:choice> </xs:complexType> <!-- Type for 'ms:active-grammars' element --> <xs:complexType name="active-grammars"> <xs:choice maxOccurs="unbounded"> <xs:element ref="grammar"/> </xs:choice> </xs:complexType> <!-- Type for 'ms:grammar' element --> <xs:complexType name="grammar"> <xs:attribute name="weight" type="xs:decimal"/> <xs:attribute ref="emma:grammar-ref" use="required"/> </xs:complexType> <!-- Type for 'ms:item' element --> <xs:complexType name="item" mixed="true"> <xs:choice minOccurs ="0" maxOccurs="unbounded"> <xs:any namespace="##any"/> </xs:choice> <xs:attribute ref="index"/> <xs:attribute ref="dataType"/> <xs:attribute ref="valueType"/> </xs:complexType> <!-- Type for 'ms:sapiPhraseReplacement' element --> <xs:complexType name="sapiPhraseReplacement"> <xs:attribute ref="displayAttributes"/> </xs:complexType> <!-- Type for 'ms:sapiPhraseElement' element --> <xs:complexType name="sapiPhraseElement"> <xs:attribute ref="displayAttributes"/> <xs:attribute ref="pronunciation"/> <xs:attribute ref="lexicalForm"/> <xs:attribute ref="actualConfidence"/> </xs:complexType> <!-- Type for 'ms:error' element --> <xs:complexType name="error" mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:any namespace="##any" processContents="lax"/> </xs:choice> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> <!-- Attributes --> <xs:attribute name="status" type="xs:string"/> <xs:attribute name="dataType" type="xs:string"/> <xs:attribute name="valueType" type="xs:string"/> <xs:attribute name="typespace" type="xs:string"/> <xs:attribute name="actualConfidence" type="actualConfidence"/> <xs:attribute name="displayAttributes" type="xs:nonNegativeInteger"/> <xs:attribute name="pronunciation" type="xs:string"/> <xs:attribute name="lexicalForm" type="xs:string"/> <xs:attribute name="index" type="xs:nonNegativeInteger"/> <xs:attribute name="length" type="xs:nonNegativeInteger"/> <!-- Elements --> <xs:element name="properties" type="properties"/> <xs:element name="property" type="property"/> <xs:element name="audio" type="audio"/> <xs:element name="initial-engine-state" type="initial-engine-state"/> <xs:element name="transcript" type="transcript"/> <xs:element name="original" type="xs:string"/> <xs:element name="matched-string" type="matched-string"/> <xs:element name="sessionid" type="xs:string"/> <xs:element name="requestid" type="xs:string"/> <xs:element name="logstring" type="xs:string"/> <xs:element name="active-grammars" type="active-grammars"/> <xs:element name="grammar" type="grammar"/> <xs:element name="error" type="error"/> </xs:schema> |
EmmaWithWebRecoExtension.xsd
XML | Copy Code |
---|---|
<?xml version="1.0" encoding="utf-8"?> <xs:schema id="EmmaWithWebRecoExtensions" targetNamespace="http://www.w3.org/2003/04/emma" elementFormDefault="qualified" xmlns="http://www.w3.org/2003/04/emma" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ms="http://www.microsoft.com/xmlns/webreco" xmlns:tm="http://www.tellme.com/ns/2009/01/emma" > <xs:import schemaLocation="WebRecoExtensions.xsd" namespace="http://www.microsoft.com/xmlns/webreco"/> <xs:import schemaLocation="TellMeExtensions.xsd" namespace="http://www.tellme.com/ns/2009/01/emma"/> <xs:redefine schemaLocation="http://www.w3.org/TR/2009/REC-emma-20090210/emma.xsd"> <!-- Add 'ms:status' and 'tm:version' attributes to emma:emma --> <xs:complexType name="emma"> <xs:complexContent> <xs:extension base="emma"> <xs:attribute ref="ms:status" /> <xs:attribute ref="tm:version" /> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Add 'ms:status' attribute to emma:info --> <xs:complexType name="info"> <xs:complexContent> <xs:extension base="info"> <xs:attribute ref="ms:status" /> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Add 'tm:name' attribute to emma:grammar --> <xs:complexType name="grammar"> <xs:complexContent> <xs:extension base="grammar"> <xs:attribute ref="tm:name" /> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Add 'ms:dataType' and 'ms:valueType' attributes to emma:literal --> <xs:complexType name="literal"> <xs:complexContent> <xs:extension base="literal"> <xs:attribute ref="ms:dataType" /> <xs:attribute ref="ms:valueType" /> </xs:extension> </xs:complexContent> </xs:complexType> <!-- Add 'ms:typespace' and 'ms:length' attributes to emma:interpretation --> <xs:complexType name="interpretation"> <xs:complexContent> <xs:extension base="interpretation"> <xs:choice> <xs:any minOccurs="0" maxOccurs="unbounded" namespace ="##local" processContents="lax"/> </xs:choice> <xs:attribute ref="ms:typespace" /> <xs:attribute ref="ms:length" /> </xs:extension> </xs:complexContent> </xs:complexType> </xs:redefine> </xs:schema> |
TellMeExtensions.xsd
XML | Copy Code |
---|---|
<?xml version="1.0" encoding="utf-8"?> <xs:schema id="TellMeExtensions" targetNamespace="http://www.tellme.com/ns/2009/01/emma" elementFormDefault="qualified" xmlns="http://www.tellme.com/ns/2009/01/emma" xmlns:mstns="http://www.tellme.com/ns/2009/01/emma" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:attribute name="version" type="xs:string"/> <xs:attribute name="name" type="xs:string"/> </xs:schema> |