Media Server Control Markup Language (MSCML) and Protocol: MSCML XML Schema

Date: 2003-09-18


Media Server Control Markup Language (MSCML) and Protocol
MSCML XML Schema

From: http://www.ietf.org/internet-drafts/draft-vandyke-mscml-03.txt
See also: http://xml.coverpages.org/draft-vandyke-mscml-03.txt

See also: http://xml.coverpages.org/ni2003-09-19-a.html
          SnowShore Networks Develops Royalty-Free Media
          Server Control Markup Language (MSCML)

8.2 Schema
   This section is informative.  The normative definition of the schema
   is the DTD described in the previous section, MSCML DTD (Section
   8.1).
   <?xml version="1.0" encoding="UTF-8"?>
   <!-- =========================================================== -->
   <!-- MediaServerControl XML Schema           -->
   <!-- Copyright (c) 2001-2003 SnowShore Networks, Inc.            -->
   <!-- All Rights Reserved.            -->
   <!-- =========================================================== -->
   <!--W3C Schema generated by XMLSPY v5 rel. 2 U         -->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified">
    <xs:element name="MediaServerControl">
     <xs:annotation>
     <xs:documentation>
     Media Server Control Markup Language (MSCML)
     </xs:documentation>
     </xs:annotation>
     <xs:complexType>
     <xs:choice>
     <xs:element name="request" type="requestType"/>
     <xs:element name="response" type="responseType"/>
     <xs:element name="notification" type="notificationType"/>
     </xs:choice>
     <xs:attribute name="version" use="required">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="1.0"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     </xs:complexType>
     </xs:element>
     <xs:complexType name="activetalkersType">
     <xs:sequence minOccurs="0">
     <xs:element name="talker" type="talkerType"
     maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attribute name="report" default="no">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="yes"/>
     <xs:enumeration value="no"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="interval" type="xs:string"/>
     </xs:complexType>
     <xs:complexType name="audioType">
     <xs:attribute name="url" type="xs:string" use="required"/>
     <xs:attribute name="encoding">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="ulaw"/>
     <xs:enumeration value="alaw"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     </xs:complexType>
     <xs:complexType name="autoType">
     <xs:attribute name="startlevel" type="xs:string"/>
     <xs:attribute name="targetlevel" type="xs:string"/>
     <xs:attribute name="silencethreshold" type="xs:string"/>
     </xs:complexType>
     <xs:complexType name="conferenceType">
     <xs:sequence>
     <xs:element name="activetalkers" type="activetalkersType"/>
     </xs:sequence>
     <xs:attribute name="uniqueid" type="xs:string" use="required"/>
     <xs:attribute name="numtalkers" type="xs:string" use="required"/>
     </xs:complexType>
     <xs:complexType name="configure_conferenceType">
     <xs:sequence>
     <xs:element name="inputgain" type="inputgainType"
     minOccurs="0"/>
     <xs:element name="outputgain" type="outputgainType"
     minOccurs="0"/>
     <xs:element name="subscribe" type="subscribeType"
     minOccurs="0"/>
     </xs:sequence>
     <xs:attribute name="id" type="xs:string"/>
     <xs:attribute name="reservedtalkers" type="xs:string"/>
     <xs:attribute name="reserveconfmedia">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="yes"/>
     <xs:enumeration value="no"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     </xs:complexType>
     <xs:complexType name="configure_legType">
     <xs:sequence>
     <xs:element name="inputgain" type="inputgainType"
     minOccurs="0"/>
     <xs:element name="outputgain" type="outputgainType"
     minOccurs="0"/>
     </xs:sequence>
     <xs:attribute name="id" type="xs:string"/>
     <xs:attribute name="type">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="talker"/>
     <xs:enumeration value="listener"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="mixmode">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="full"/>
     <xs:enumeration value="mute"/>
     <xs:enumeration value="preferred"/>
     <xs:enumeration value="parked"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="dtmfclamp">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="yes"/>
     <xs:enumeration value="no"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     </xs:complexType>
     <xs:complexType name="digitmapType">
     <xs:attribute name="value" type="xs:string" use="required"/>
     <xs:attribute name="name" type="xs:string"/>
     </xs:complexType>
     <xs:complexType name="eventsType">
     <xs:sequence>
     <xs:element name="activetalkers" type="activetalkersType"/>
     </xs:sequence>
     </xs:complexType>
     <xs:complexType name="fixedType">
     <xs:attribute name="level" type="xs:string"/>
     </xs:complexType>
     <xs:complexType name="inputgainType">
     <xs:choice>
     <xs:element name="auto" type="autoType"/>
     <xs:element name="fixed" type="fixedType"/>
     </xs:choice>
     </xs:complexType>
     <xs:complexType name="notificationType">
     <xs:sequence>
     <xs:element name="conference" type="conferenceType"/>
     </xs:sequence>
     </xs:complexType>
     <xs:complexType name="outputgainType">
     <xs:choice>
     <xs:element name="auto" type="autoType"/>
     <xs:element name="fixed" type="fixedType"/>
     </xs:choice>
     </xs:complexType>
     <xs:complexType name="patternType">
     <xs:choice maxOccurs="unbounded">
     <xs:element name="regex" type="regexType"/>
     <xs:element name="digitmap" type="digitmapType"/>
     </xs:choice>
     </xs:complexType>
     <xs:complexType name="playType">
     <xs:sequence minOccurs="0">
     <xs:element name="prompt" type="promptType"/>
     </xs:sequence>
     <xs:attribute name="id" type="xs:string"/>
     <xs:attribute name="prompturl" type="xs:string"/>
     <xs:attribute name="promptencoding">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="ulaw"/>
     <xs:enumeration value="alaw"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     </xs:complexType>
     <xs:complexType name="playcollectType">
     <xs:sequence>
     <xs:element name="prompt" type="promptType" minOccurs="0"/>
     <xs:element name="pattern" type="patternType" minOccurs="0"/>
     </xs:sequence>
     <xs:attribute name="id" type="xs:string"/>
     <xs:attribute name="prompturl" type="xs:string"/>
     <xs:attribute name="barge" default="yes">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="yes"/>
     <xs:enumeration value="no"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="promptencoding">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="ulaw"/>
     <xs:enumeration value="alaw"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="cleardigits" type="xs:string" default="yes"/>
     <xs:attribute name="maxdigits" type="xs:string"/>
     <xs:attribute name="firstdigittimer" type="xs:string"/>
     <xs:attribute name="interdigittimer" type="xs:string"/>
     <xs:attribute name="intdigcrittimer" type="xs:string"/>
     <xs:attribute name="extradigittimer" type="xs:string"/>
     <xs:attribute name="returnkey" type="xs:string" default="#"/>
     <xs:attribute name="escapekey" type="xs:string" default="*"/>
     </xs:complexType>
     <xs:complexType name="faxplayType"/>
     <xs:complexType name="faxrecordType"/>
     <xs:complexType name="playrecordType">
     <xs:sequence minOccurs="0">
     <xs:element name="prompt" type="promptType"/>
     </xs:sequence>
     <xs:attribute name="id" type="xs:string"/>
     <xs:attribute name="prompturl" type="xs:string"/>
     <xs:attribute name="barge">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="yes"/>
     <xs:enumeration value="no"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="cleardigits">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="yes"/>
     <xs:enumeration value="no"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="escapekey" type="xs:string" default="*"/>
     <xs:attribute name="recurl" type="xs:string" use="required"/>
     <xs:attribute name="mode" default="overwrite">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="append"/>
     <xs:enumeration value="overwrite"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="recencoding">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="ulaw"/>
     <xs:enumeration value="alaw"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="initsilence" type="xs:string"/>
     <xs:attribute name="endsilence" type="xs:string"/>
     <xs:attribute name="duration" type="xs:string"/>
     <xs:attribute name="beep" default="yes">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="yes"/>
     <xs:enumeration value="no"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="recstopmask" type="xs:string"
     default="01234567890*#"/>
     </xs:complexType>
     <xs:complexType name="promptType">
     <xs:choice maxOccurs="unbounded">
     <xs:element name="audio" type="audioType"/>
     <xs:element name="variable" type="variableType"/>
     </xs:choice>
     <xs:attribute name="locale" type="xs:string"/>
     <xs:attribute name="baseurl" type="xs:string"/>
     </xs:complexType>
     <xs:complexType name="regexType">
     <xs:attribute name="value" type="xs:string" use="required"/>
     <xs:attribute name="name" type="xs:string"/>
     </xs:complexType>
     <xs:complexType name="requestType">
     <xs:choice>
     <xs:element name="configure_conference"
     type="configure_conferenceType"/>
     <xs:element name="configure_leg" type="configure_legType"/>
     <xs:element name="play" type="playType"/>
     <xs:element name="playcollect" type="playcollectType"/>
     <xs:element name="playrecord" type="playrecordType"/>
     <xs:element name="faxrecord" type="faxrecordType"/>
     <xs:element name="faxplay" type="faxplayType"/>
     <xs:element ref="stop"/>
     </xs:choice>
     </xs:complexType>
     <xs:complexType name="responseType">
     <xs:attribute name="request" use="required">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="configure_conference"/>
     <xs:enumeration value="configure_leg"/>
     <xs:enumeration value="play"/>
     <xs:enumeration value="playcollect"/>
     <xs:enumeration value="playrecord"/>
     <xs:enumeration value="faxrecord"/>
     <xs:enumeration value="faxplay"/>
     <xs:enumeration value="stop"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="id" type="xs:string"/>
     <xs:attribute name="code" type="xs:string" use="required"/>
     <xs:attribute name="reason" type="xs:string" use="required"/>
     <xs:attribute name="text" type="xs:string" use="required"/>
     <xs:attribute name="patternname" type="xs:string"/>
     <xs:attribute name="digits" type="xs:string"/>
     <xs:attribute name="reclength" type="xs:string"/>
     <xs:attribute name="faxcode" type="xs:string"/>
     <xs:attribute name="pages_sent" type="xs:string"/>
     <xs:attribute name="pages_recv" type="xs:string"/>
     </xs:complexType>
     <xs:element name="stop">
     <xs:complexType/>
     </xs:element>
     <xs:complexType name="subscribeType">
     <xs:sequence>
     <xs:element name="events" type="eventsType"/>
     </xs:sequence>
     </xs:complexType>
     <xs:complexType name="talkerType">
     <xs:attribute name="callid" type="xs:string" use="required"/>
     </xs:complexType>
     <xs:complexType name="variableType">
     <xs:attribute name="type" use="required">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="date"/>
     <xs:enumeration value="digit"/>
     <xs:enumeration value="duration"/>
     <xs:enumeration value="month"/>
     <xs:enumeration value="money"/>
     <xs:enumeration value="number"/>
     <xs:enumeration value="silence"/>
     <xs:enumeration value="string"/>
     <xs:enumeration value="time"/>
     <xs:enumeration value="weekday"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="subtype">
     <xs:simpleType>
     <xs:restriction base="xs:NMTOKEN">
     <xs:enumeration value="mdy"/>
     <xs:enumeration value="dmy"/>
     <xs:enumeration value="ymd"/>
     <xs:enumeration value="ndn"/>
     <xs:enumeration value="t12"/>
     <xs:enumeration value="t24"/>
     <xs:enumeration value="USD"/>
     <xs:enumeration value="gen"/>
     <xs:enumeration value="ndn"/>
     <xs:enumeration value="crd"/>
     <xs:enumeration value="ord"/>
     </xs:restriction>
     </xs:simpleType>
     </xs:attribute>
     <xs:attribute name="value" type="xs:string" use="required"/>
     </xs:complexType>
   </xs:schema>