EMMA: Extensible MultiModal Annotation markup language
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.w3.org/2003/04/emma" elementFormDefault="unqualified" attributeFormDefault="unqualified" xmlns:emma="http://www.w3.org/2003/04/emma" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:documentation>
EMMA 1.0 schema (20070618)
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
Copyright 1998-2007 W3C (MIT, ERCIM, Keio),
All Rights Reserved. Permission to use, copy,
modify and distribute the EMMA schema and its
accompanying documentation for any purpose and
without fee is hereby granted in perpetuity,
provided that the above copyright notice and this
paragraph appear in all copies. The copyright
holders make no representation about the suitability
of the schema for any purpose. It is provided
"as is" without expressed or implied warranty.
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
dialog-turn annotation
</xs:documentation>
</xs:annotation>
<xs:attribute name="dialog-turn" type="xs:string"/>
<xs:annotation>
<xs:documentation>
EMMA element reference annotations
</xs:documentation>
</xs:annotation>
<xs:attribute name="grammar-ref" type="xs:IDREF"/>
<xs:attribute name="model-ref" type="xs:IDREF"/>
<xs:attribute name="endpoint-info-ref" type="xs:IDREF"/>
<xs:annotation>
<xs:documentation>
endpoint annotations
</xs:documentation>
</xs:annotation>
<xs:attribute name="endpoint-pair-ref" type="xs:anyURI"/>
<xs:attribute name="service-name" type="xs:string"/>
<xs:attribute name="message-id" type="xs:anyURI"/>
<xs:attribute name="port-num" type="xs:nonNegativeInteger"/>
<xs:attribute name="port-type" type="xs:QName"/>
<xs:attribute name="endpoint-address" type="xs:anyURI"/>
<xs:attribute name="endpoint-role">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="source"/>
<xs:enumeration value="sink"/>
<xs:enumeration value="reply-to"/>
<xs:enumeration value="router"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:annotation>
<xs:documentation>
cost annotation
</xs:documentation>
</xs:annotation>
<xs:attribute name="cost">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:minInclusive value="0.0"/>
<xs:maxInclusive value="10000000"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:annotation>
<xs:documentation>
hook annotation for composite integration
</xs:documentation>
</xs:annotation>
<xs:attribute name="hook" type="xs:string"/>
<xs:annotation>
<xs:documentation>
medium, mode, and function annotations
</xs:documentation>
</xs:annotation>
<xs:attribute name="verbal" type="xs:boolean"/>
<xs:attribute name="function" type="xs:NMTOKEN"/>
<xs:attribute name="mode" type="xs:NMTOKENS"/>
<xs:attribute name="medium">
<xs:simpleType>
<xs:restriction base="xs:NMTOKENS">
<xs:enumeration value="acoustic"/>
<xs:enumeration value="tactile"/>
<xs:enumeration value="visual"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:annotation>
<xs:documentation>
timestamp annotations
</xs:documentation>
</xs:annotation>
<xs:attribute name="duration" type="xs:nonNegativeInteger" default="0"/>
<xs:attribute name="offset-to-start" type="xs:integer" default="0"/>
<xs:attribute name="time-ref-anchor-point" default="start">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="start"/>
<xs:enumeration value="end"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="time-ref-uri" type="xs:anyURI"/>
<xs:attribute name="start" type="xs:unsignedLong"/>
<xs:attribute name="end" type="xs:unsignedLong"/>
<xs:attribute name="source" type="xs:anyURI"/>
<xs:attribute name="confidence">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:minInclusive value="0.0"/>
<xs:maxInclusive value="1.0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="media-type" type="xs:string"/>
<xs:attribute name="signal" type="xs:anyURI"/>
<xs:attribute name="signal-size" type="xs:nonNegativeInteger"/>
<xs:attribute name="lang" type="xs:language"/>
<xs:attribute name="uninterpreted" type="xs:boolean"/>
<xs:attribute name="no-input" type="xs:boolean"/>
<xs:attribute name="process" type="xs:anyURI"/>
<xs:attribute name="tokens" type="xs:string"/>
<xs:annotation>
<xs:documentation>
endpoint definition
</xs:documentation>
</xs:annotation>
<xs:attributeGroup name="endpoint.attribs">
<xs:attribute name="id" type="xs:ID" use="required"/>
<xs:attribute ref="emma:endpoint-role"/>
<xs:attribute ref="emma:endpoint-address"/>
<xs:attribute ref="emma:message-id"/>
<xs:attribute ref="emma:port-num"/>
<xs:attribute ref="emma:port-type"/>
<xs:attribute ref="emma:endpoint-pair-ref"/>
<xs:attribute ref="emma:service-name"/>
<xs:attribute ref="emma:media-type"/>
<xs:attribute ref="emma:medium"/>
<xs:attribute ref="emma:mode"/>
</xs:attributeGroup>
<xs:complexType name="endpoint">
<xs:choice maxOccurs="unbounded">
<xs:any namespace="##other" processContents="lax"/>
</xs:choice>
<xs:attributeGroup ref="emma:endpoint.attribs"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
endpoint-info definition
</xs:documentation>
</xs:annotation>
<xs:complexType name="endpoint-info">
<xs:choice maxOccurs="unbounded">
<xs:element ref="emma:endpoint"/>
</xs:choice>
<xs:attribute name="id" type="xs:ID" use="required"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
info definition
</xs:documentation>
</xs:annotation>
<xs:complexType name="info">
<xs:choice maxOccurs="unbounded">
<xs:any namespace="##other" processContents="lax"/>
</xs:choice>
<xs:attribute name="id" type="xs:ID"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
grammar definition
</xs:documentation>
</xs:annotation>
<xs:attributeGroup name="grammar.attribs">
<xs:attribute name="id" type="xs:ID" use="required"/>
<xs:attribute name="ref" type="xs:anyURI" use="required"/>
</xs:attributeGroup>
<xs:complexType name="grammar">
<xs:attributeGroup ref="emma:grammar.attribs"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
derivation definition
</xs:documentation>
</xs:annotation>
<xs:complexType name="derivation">
<xs:choice maxOccurs="unbounded">
<xs:element ref="emma:interpretation"/>
<xs:element ref="emma:one-of"/>
<xs:element ref="emma:sequence"/>
<xs:element ref="emma:group"/>
</xs:choice>
</xs:complexType>
<xs:annotation>
<xs:documentation>
derived-from definition
</xs:documentation>
</xs:annotation>
<xs:attributeGroup name="derived-from.attribs">
<xs:attribute name="resource" type="xs:anyURI" use="required"/>
<xs:attribute name="composite" type="xs:boolean"/>
</xs:attributeGroup>
<xs:complexType name="derived-from">
<xs:attributeGroup ref="emma:derived-from.attribs"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
model definition
</xs:documentation>
</xs:annotation>
<xs:attributeGroup name="model.attribs">
<xs:attribute name="id" type="xs:ID" use="required"/>
<xs:attribute name="ref" type="xs:anyURI"/>
</xs:attributeGroup>
<xs:complexType name="model">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:any namespace="##other" processContents="lax"/>
</xs:choice>
<xs:attributeGroup ref="emma:model.attribs"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
literal definition
</xs:documentation>
</xs:annotation>
<xs:complexType name="literal" mixed="true"/>
<xs:annotation>
<xs:documentation>
lattice definition
</xs:documentation>
</xs:annotation>
<xs:attributeGroup name="node.attribs">
<xs:attribute name="node-number" type="xs:nonNegativeInteger" use="required"/>
<xs:attribute ref="emma:confidence"/>
<xs:attribute ref="emma:cost"/>
</xs:attributeGroup>
<xs:complexType name="node">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="emma:info"/>
</xs:choice>
<xs:attributeGroup ref="emma:node.attribs"/>
</xs:complexType>
<xs:attributeGroup name="arc.attribs">
<xs:attribute name="from" type="xs:nonNegativeInteger" use="required"/>
<xs:attribute name="to" type="xs:nonNegativeInteger" use="required"/>
<xs:attribute ref="emma:start"/>
<xs:attribute ref="emma:end"/>
<xs:attribute ref="emma:offset-to-start"/>
<xs:attribute ref="emma:duration"/>
<xs:attribute ref="emma:confidence"/>
<xs:attribute ref="emma:cost"/>
<xs:attribute ref="emma:lang"/>
<xs:attribute ref="emma:medium"/>
<xs:attribute ref="emma:mode"/>
<xs:attribute ref="emma:source"/>
</xs:attributeGroup>
<xs:complexType name="arc" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:any namespace="##other" processContents="lax"/>
<xs:element ref="emma:info"/>
</xs:choice>
<xs:attributeGroup ref="emma:arc.attribs"/>
</xs:complexType>
<xs:attributeGroup name="lattice.attribs">
<xs:attribute name="initial" type="xs:nonNegativeInteger" use="required"/>
<xs:attribute name="final" use="required">
<xs:simpleType>
<xs:list itemType="xs:nonNegativeInteger"/>
</xs:simpleType>
</xs:attribute>
<xs:attribute ref="emma:time-ref-uri"/>
<xs:attribute ref="emma:time-ref-anchor-point"/>
</xs:attributeGroup>
<xs:complexType name="lattice">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="emma:arc"/>
<xs:element ref="emma:node"/>
</xs:choice>
<xs:attributeGroup ref="emma:lattice.attribs"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
group annotations
</xs:documentation>
</xs:annotation>
<xs:attributeGroup name="group.attribs">
<xs:attribute name="id" type="xs:ID" use="required"/>
<xs:attribute ref="emma:tokens"/>
<xs:attribute ref="emma:process"/>
<xs:attribute ref="emma:lang"/>
<xs:attribute ref="emma:signal"/>
<xs:attribute ref="emma:signal-size"/>
<xs:attribute ref="emma:media-type"/>
<xs:attribute ref="emma:confidence"/>
<xs:attribute ref="emma:source"/>
<xs:attribute ref="emma:start"/>
<xs:attribute ref="emma:end"/>
<xs:attribute ref="emma:time-ref-uri"/>
<xs:attribute ref="emma:time-ref-anchor-point"/>
<xs:attribute ref="emma:offset-to-start"/>
<xs:attribute ref="emma:duration"/>
<xs:attribute ref="emma:medium"/>
<xs:attribute ref="emma:mode"/>
<xs:attribute ref="emma:function"/>
<xs:attribute ref="emma:verbal"/>
<xs:attribute ref="emma:cost"/>
<xs:attribute ref="emma:grammar-ref"/>
<xs:attribute ref="emma:endpoint-info-ref"/>
<xs:attribute ref="emma:model-ref"/>
<xs:attribute ref="emma:dialog-turn"/>
</xs:attributeGroup>
<xs:annotation>
<xs:documentation>
sequence definition
</xs:documentation>
</xs:annotation>
<xs:group name="sequence.class">
<xs:choice>
<xs:element ref="emma:derived-from"/>
<xs:element ref="emma:info"/>
<xs:element ref="emma:interpretation"/>
<xs:element ref="emma:one-of"/>
<xs:element ref="emma:group"/>
<xs:element ref="emma:sequence"/>
</xs:choice>
</xs:group>
<xs:complexType name="sequence">
<xs:group ref="emma:sequence.class" minOccurs="0" maxOccurs="unbounded"/>
<xs:attributeGroup ref="emma:group.attribs"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
group-info definition
</xs:documentation>
</xs:annotation>
<xs:attributeGroup name="group-info.attribs">
<xs:attribute name="ref" type="xs:anyURI"/>
</xs:attributeGroup>
<xs:complexType name="group-info">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:any namespace="##other" processContents="lax"/>
</xs:choice>
<xs:attributeGroup ref="emma:group-info.attribs"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
group definition
</xs:documentation>
</xs:annotation>
<xs:group name="group.class">
<xs:choice>
<xs:element ref="emma:derived-from"/>
<xs:element ref="emma:group-info"/>
<xs:element ref="emma:info"/>
<xs:element ref="emma:interpretation"/>
<xs:element ref="emma:one-of"/>
<xs:element ref="emma:group"/>
<xs:element ref="emma:sequence"/>
</xs:choice>
</xs:group>
<xs:complexType name="group">
<xs:group ref="emma:group.class" minOccurs="0" maxOccurs="unbounded"/>
<xs:attributeGroup ref="emma:group.attribs"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
one-of definition
</xs:documentation>
</xs:annotation>
<xs:group name="one-of.class">
<xs:choice>
<xs:element ref="emma:derived-from"/>
<xs:element ref="emma:info"/>
<xs:element ref="emma:interpretation"/>
<xs:element ref="emma:one-of"/>
<xs:element ref="emma:group"/>
<xs:element ref="emma:sequence"/>
</xs:choice>
</xs:group>
<xs:complexType name="one-of">
<xs:group ref="emma:one-of.class" minOccurs="0" maxOccurs="unbounded"/>
<xs:attribute name="disjunction-type">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="recognition"/>
<xs:enumeration value="understanding"/>
<xs:enumeration value="multi-device"/>
<xs:enumeration value="multi-process"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attributeGroup ref="emma:group.attribs"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
interpretation definition
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
interpretation annotations
</xs:documentation>
</xs:annotation>
<xs:attributeGroup name="interpretation.attribs">
<xs:attributeGroup ref="emma:group.attribs"/>
<xs:attribute ref="emma:no-input"/>
<xs:attribute ref="emma:uninterpreted"/>
</xs:attributeGroup>
<xs:group name="interpretation.class">
<xs:choice>
<xs:element ref="emma:derived-from"/>
<xs:element ref="emma:info"/>
<xs:element ref="emma:lattice"/>
<xs:element ref="emma:literal"/>
<xs:any namespace="##other" processContents="lax"/>
</xs:choice>
</xs:group>
<xs:complexType name="interpretation">
<xs:group ref="emma:interpretation.class" minOccurs="0" maxOccurs="unbounded"/>
<xs:attributeGroup ref="emma:interpretation.attribs"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
emma definition
</xs:documentation>
</xs:annotation>
<xs:group name="emma.class">
<xs:annotation>
<xs:documentation>
emma content model
</xs:documentation>
</xs:annotation>
<xs:choice>
<xs:element ref="emma:derivation"/>
<xs:element ref="emma:grammar"/>
<xs:element ref="emma:model"/>
<xs:element ref="emma:endpoint-info"/>
<xs:element ref="emma:info"/>
<xs:element ref="emma:interpretation"/>
<xs:element ref="emma:one-of"/>
<xs:element ref="emma:group"/>
<xs:element ref="emma:sequence"/>
</xs:choice>
</xs:group>
<xs:complexType name="emma">
<xs:annotation>
<xs:documentation>
emma content model and root attributes
</xs:documentation>
</xs:annotation>
<xs:group ref="emma:emma.class" minOccurs="0" maxOccurs="unbounded"/>
<xs:attribute name="version" type="xs:string" use="required"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
EMMA elements
</xs:documentation>
</xs:annotation>
<xs:element name="endpoint" type="emma:endpoint"/>
<xs:element name="endpoint-info" type="emma:endpoint-info"/>
<xs:element name="info" type="emma:info"/>
<xs:element name="grammar" type="emma:grammar"/>
<xs:element name="derivation" type="emma:derivation"/>
<xs:element name="derived-from" type="emma:derived-from"/>
<xs:element name="model" type="emma:model"/>
<xs:element name="literal" type="emma:literal"/>
<xs:element name="node" type="emma:node"/>
<xs:element name="arc" type="emma:arc"/>
<xs:element name="lattice" type="emma:lattice"/>
<xs:element name="sequence" type="emma:sequence"/>
<xs:element name="group-info" type="emma:group-info"/>
<xs:element name="group" type="emma:group"/>
<xs:element name="one-of" type="emma:one-of"/>
<xs:element name="interpretation" type="emma:interpretation"/>
<xs:element name="emma" type="emma:emma"/>
</xs:schema>
View source