dialog-info.xml 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:ietf:params:xml:ns:dialog-info" targetNamespace="urn:ietf:params:xml:ns:dialog-info" elementFormDefault="qualified" attributeFormDefault="unqualified">
  3. <!-- This import brings in the XML language attribute xml:lang-->
  4. <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
  5. <xs:element name="dialog-info">
  6. <xs:complexType>
  7. <xs:sequence>
  8. <xs:element ref="tns:dialog" minOccurs="0" maxOccurs="unbounded"/>
  9. <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  10. </xs:sequence>
  11. <xs:attribute name="version" type="xs:nonNegativeInteger" use="required"/>
  12. <xs:attribute name="state" use="required">
  13. <xs:simpleType>
  14. <xs:restriction base="xs:string">
  15. <xs:enumeration value="full"/>
  16. <xs:enumeration value="partial"/>
  17. </xs:restriction>
  18. </xs:simpleType>
  19. </xs:attribute>
  20. <xs:attribute name="entity" type="xs:anyURI" use="required"/>
  21. </xs:complexType>
  22. </xs:element>
  23. <xs:element name="dialog">
  24. <xs:complexType>
  25. <xs:sequence>
  26. <xs:element ref="tns:state" minOccurs="1" maxOccurs="1"/>
  27. <xs:element name="duration" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1"/>
  28. <xs:element name="replaces" minOccurs="0" maxOccurs="1">
  29. <xs:complexType>
  30. <xs:attribute name="call-id" type="xs:string" use="required"/>
  31. <xs:attribute name="local-tag" type="xs:string" use="required"/>
  32. <xs:attribute name="remote-tag" type="xs:string" use="required"/>
  33. </xs:complexType>
  34. </xs:element>
  35. <xs:element name="referred-by" type="tns:nameaddr" minOccurs="0" maxOccurs="1"/>
  36. <xs:element name="route-set" minOccurs="0" maxOccurs="1">
  37. <xs:complexType>
  38. <xs:sequence>
  39. <xs:element name="hop" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
  40. </xs:sequence>
  41. </xs:complexType>
  42. </xs:element>
  43. <xs:element name="local" type="tns:participant" minOccurs="0" maxOccurs="1"/>
  44. <xs:element name="remote" type="tns:participant" minOccurs="0" maxOccurs="1"/>
  45. <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  46. </xs:sequence>
  47. <xs:attribute name="id" type="xs:string" use="required"/>
  48. <xs:attribute name="call-id" type="xs:string" use="optional"/>
  49. <xs:attribute name="local-tag" type="xs:string" use="optional"/>
  50. <xs:attribute name="remote-tag" type="xs:string" use="optional"/>
  51. <xs:attribute name="direction" use="optional">
  52. <xs:simpleType>
  53. <xs:restriction base="xs:string">
  54. <xs:enumeration value="initiator"/>
  55. <xs:enumeration value="recipient"/>
  56. </xs:restriction>
  57. </xs:simpleType>
  58. </xs:attribute>
  59. </xs:complexType>
  60. </xs:element>
  61. <xs:complexType name="participant">
  62. <xs:sequence>
  63. <xs:element name="identity" type="tns:nameaddr" minOccurs="0" maxOccurs="1"/>
  64. <xs:element name="target" minOccurs="0" maxOccurs="1">
  65. <xs:complexType>
  66. <xs:sequence>
  67. <xs:element name="param" minOccurs="0" maxOccurs="unbounded">
  68. <xs:complexType>
  69. <xs:attribute name="pname" type="xs:string" use="required"/>
  70. <xs:attribute name="pval" type="xs:string" use="required"/>
  71. </xs:complexType>
  72. </xs:element>
  73. </xs:sequence>
  74. <xs:attribute name="uri" type="xs:string" use="required"/>
  75. </xs:complexType>
  76. </xs:element>
  77. <xs:element name="session-description" type="tns:sessd" minOccurs="0" maxOccurs="1"/>
  78. <xs:element name="cseq" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="1"/>
  79. <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  80. </xs:sequence>
  81. </xs:complexType>
  82. <xs:complexType name="nameaddr">
  83. <xs:simpleContent>
  84. <xs:extension base="xs:anyURI">
  85. <xs:attribute name="display-name" type="xs:string" use="optional"/>
  86. </xs:extension>
  87. </xs:simpleContent>
  88. </xs:complexType>
  89. <xs:complexType name="sessd">
  90. <xs:simpleContent>
  91. <xs:extension base="xs:string">
  92. <xs:attribute name="type" type="xs:string" use="required"/>
  93. </xs:extension>
  94. </xs:simpleContent>
  95. </xs:complexType>
  96. <xs:element name="state">
  97. <xs:complexType>
  98. <xs:simpleContent>
  99. <xs:extension base="xs:string">
  100. <xs:attribute name="event" use="optional">
  101. <xs:simpleType>
  102. <xs:restriction base="xs:string">
  103. <xs:enumeration value="cancelled"/>
  104. <xs:enumeration value="rejected"/>
  105. <xs:enumeration value="replaced"/>
  106. <xs:enumeration value="local-bye"/>
  107. <xs:enumeration value="remote-bye"/>
  108. <xs:enumeration value="error"/>
  109. <xs:enumeration value="timeout"/>
  110. </xs:restriction>
  111. </xs:simpleType>
  112. </xs:attribute>
  113. <xs:attribute name="code" use="optional">
  114. <xs:simpleType>
  115. <xs:restriction base="xs:positiveInteger">
  116. <xs:minInclusive value="100"/>
  117. <xs:maxInclusive value="699"/>
  118. </xs:restriction>
  119. </xs:simpleType>
  120. </xs:attribute>
  121. </xs:extension>
  122. </xs:simpleContent>
  123. </xs:complexType>
  124. </xs:element>
  125. </xs:schema>