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>