held.xml 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <?xml version="1.0"?>
  2. <xs:schema
  3. targetNamespace="urn:ietf:params:xml:ns:geopriv:held"
  4. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  5. xmlns:held="urn:ietf:params:xml:ns:geopriv:held"
  6. xmlns:xml="http://www.w3.org/XML/1998/namespace"
  7. elementFormDefault="qualified"
  8. attributeFormDefault="unqualified">
  9. <xs:annotation>
  10. <xs:documentation>
  11. This document (RFC-ietf-geopriv-http-location-delivery-16) defines HELD messages.
  12. </xs:documentation>
  13. </xs:annotation>
  14. <xs:import namespace="http://www.w3.org/XML/1998/namespace"/>
  15. <!-- Return Location -->
  16. <xs:complexType name="returnLocationType">
  17. <xs:complexContent>
  18. <xs:restriction base="xs:anyType">
  19. <xs:sequence>
  20. <xs:element name="locationURI" type="xs:anyURI"
  21. maxOccurs="unbounded"/>
  22. </xs:sequence>
  23. <xs:attribute name="expires" type="xs:dateTime"
  24. use="required"/>
  25. </xs:restriction>
  26. </xs:complexContent>
  27. </xs:complexType>
  28. <!-- responseTime Type -->
  29. <xs:simpleType name="responseTimeType">
  30. <xs:union>
  31. <xs:simpleType>
  32. <xs:restriction base="xs:token">
  33. <xs:enumeration value="emergencyRouting"/>
  34. <xs:enumeration value="emergencyDispatch"/>
  35. </xs:restriction>
  36. </xs:simpleType>
  37. <xs:simpleType>
  38. <xs:restriction base="xs:nonNegativeInteger">
  39. <xs:minInclusive value="0"/>
  40. </xs:restriction>
  41. </xs:simpleType>
  42. </xs:union>
  43. </xs:simpleType>
  44. <!-- Location Type -->
  45. <xs:simpleType name="locationTypeBase">
  46. <xs:union>
  47. <xs:simpleType>
  48. <xs:restriction base="xs:token">
  49. <xs:enumeration value="any"/>
  50. </xs:restriction>
  51. </xs:simpleType>
  52. <xs:simpleType>
  53. <xs:restriction base="held:locationTypeList">
  54. <xs:minLength value="1"/>
  55. </xs:restriction>
  56. </xs:simpleType>
  57. </xs:union>
  58. </xs:simpleType>
  59. <xs:simpleType name="locationTypeList">
  60. <xs:list>
  61. <xs:simpleType>
  62. <xs:restriction base="xs:token">
  63. <xs:enumeration value="civic"/>
  64. <xs:enumeration value="geodetic"/>
  65. <xs:enumeration value="locationURI"/>
  66. </xs:restriction>
  67. </xs:simpleType>
  68. </xs:list>
  69. </xs:simpleType>
  70. <xs:complexType name="locationTypeType">
  71. <xs:simpleContent>
  72. <xs:extension base="held:locationTypeBase">
  73. <xs:attribute name="exact" type="xs:boolean"
  74. use="optional" default="false"/>
  75. </xs:extension>
  76. </xs:simpleContent>
  77. </xs:complexType>
  78. <!-- Message Definitions -->
  79. <xs:complexType name="baseRequestType">
  80. <xs:complexContent>
  81. <xs:restriction base="xs:anyType">
  82. <xs:sequence/>
  83. <xs:attribute name="responseTime" type="held:responseTimeType"
  84. use="optional"/>
  85. <xs:anyAttribute namespace="##any" processContents="lax"/>
  86. </xs:restriction>
  87. </xs:complexContent>
  88. </xs:complexType>
  89. <xs:complexType name="errorType">
  90. <xs:complexContent>
  91. <xs:restriction base="xs:anyType">
  92. <xs:sequence>
  93. <xs:element name="message" type="held:errorMsgType"
  94. minOccurs="0" maxOccurs="unbounded"/>
  95. <xs:any namespace="##other" processContents="lax"
  96. minOccurs="0" maxOccurs="unbounded"/>
  97. </xs:sequence>
  98. <xs:attribute name="code" type="xs:token"
  99. use="required"/>
  100. <xs:anyAttribute namespace="##any" processContents="lax"/>
  101. </xs:restriction>
  102. </xs:complexContent>
  103. </xs:complexType>
  104. <xs:complexType name="errorMsgType">
  105. <xs:simpleContent>
  106. <xs:extension base="xs:token">
  107. <xs:attribute ref="xml:lang"/>
  108. <xs:anyAttribute namespace="##any" processContents="lax"/>
  109. </xs:extension>
  110. </xs:simpleContent>
  111. </xs:complexType>
  112. <xs:element name="error" type="held:errorType"/>
  113. <!-- Location Response -->
  114. <xs:complexType name="locationResponseType">
  115. <xs:complexContent>
  116. <xs:restriction base="xs:anyType">
  117. <xs:sequence>
  118. <xs:element name="locationUriSet"
  119. type="held:returnLocationType"
  120. minOccurs="0"/>
  121. <xs:any namespace="##other" processContents="lax"
  122. minOccurs="0" maxOccurs="unbounded"/>
  123. </xs:sequence>
  124. </xs:restriction>
  125. </xs:complexContent>
  126. </xs:complexType>
  127. <xs:element name="locationResponse"
  128. type="held:locationResponseType"/>
  129. <!-- Location Request -->
  130. <xs:complexType name="locationRequestType">
  131. <xs:complexContent>
  132. <xs:extension base="held:baseRequestType">
  133. <xs:sequence>
  134. <xs:element name="locationType"
  135. type="held:locationTypeType"
  136. minOccurs="0"/>
  137. <xs:any namespace="##other" processContents="lax"
  138. minOccurs="0" maxOccurs="unbounded"/>
  139. </xs:sequence>
  140. </xs:extension>
  141. </xs:complexContent>
  142. </xs:complexType>
  143. <xs:element name="locationRequest"
  144. type="held:locationRequestType"/>
  145. </xs:schema>