PageRenderTime 23ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/indra/newview/app_settings/llsd.xsd

https://bitbucket.org/lindenlab/viewer-beta/
XML Schema | 131 lines | 116 code | 15 blank | 0 comment | 0 complexity | 647b053f5a125ba514bbf225d68e6f7c MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?xml version="1.0"?>
  2. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  3. <!-- LLSD document has exactly one value -->
  4. <xsd:element name="llsd">
  5. <xsd:complexType>
  6. <xsd:group ref="llsd-value" />
  7. </xsd:complexType>
  8. </xsd:element>
  9. <!-- Value is one of undef, boolean, integer, real,
  10. uuid, string, date, binary, array, or map -->
  11. <xsd:group name="llsd-value">
  12. <xsd:choice>
  13. <xsd:element ref="undef"/>
  14. <xsd:element ref="boolean"/>
  15. <xsd:element ref="integer"/>
  16. <xsd:element ref="real"/>
  17. <xsd:element ref="uuid"/>
  18. <xsd:element ref="string"/>
  19. <xsd:element ref="date"/>
  20. <xsd:element ref="uri"/>
  21. <xsd:element ref="binary"/>
  22. <xsd:element ref="array"/>
  23. <xsd:element ref="map"/>
  24. </xsd:choice>
  25. </xsd:group>
  26. <!-- Undefined is an empty eleemnt -->
  27. <xsd:element name="undef">
  28. <xsd:simpleType>
  29. <xsd:restriction base="xsd:string">
  30. <xsd:length value="0" />
  31. </xsd:restriction>
  32. </xsd:simpleType>
  33. </xsd:element>
  34. <!-- Boolean is true or false -->
  35. <xsd:element name="boolean">
  36. <xsd:simpleType>
  37. <xsd:restriction base="xsd:string">
  38. <xsd:enumeration value="true" />
  39. <xsd:enumeration value="false" />
  40. <!-- In practice, these other serializations are seen: -->
  41. <xsd:enumeration value="" />
  42. <xsd:enumeration value="1" />
  43. <xsd:enumeration value="0" />
  44. </xsd:restriction>
  45. </xsd:simpleType>
  46. </xsd:element>
  47. <!-- Integer is restricted to 32-bit signed values -->
  48. <xsd:element name="integer">
  49. <xsd:simpleType>
  50. <xsd:restriction base="xsd:int" />
  51. </xsd:simpleType>
  52. </xsd:element>
  53. <!-- Real is an IEEE 754 "double" value, including Infinities and NaN -->
  54. <xsd:element name="real">
  55. <xsd:simpleType>
  56. <!-- TODO: xsd:double uses "INF", "-INF", and "NaN",
  57. whereas LLSD prefers "Infinity", "-Infinity" and "NaN" -->
  58. <xsd:restriction base="xsd:double" />
  59. </xsd:simpleType>
  60. </xsd:element>
  61. <!-- UUID per RFC 4122 -->
  62. <xsd:element name="uuid">
  63. <xsd:simpleType>
  64. <xsd:restriction base="xsd:string">
  65. <xsd:pattern value="[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|" />
  66. </xsd:restriction>
  67. </xsd:simpleType>
  68. </xsd:element>
  69. <!-- String is any sequence of Unicode characters -->
  70. <xsd:element name="string">
  71. <xsd:simpleType>
  72. <xsd:restriction base="xsd:string" />
  73. </xsd:simpleType>
  74. </xsd:element>
  75. <!-- Date is ISO 8601 in UTC -->
  76. <xsd:element name="date">
  77. <xsd:simpleType>
  78. <xsd:restriction base="xsd:dateTime">
  79. <!-- Restrict to UTC (Z) times -->
  80. <xsd:pattern value="[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?Z" />
  81. </xsd:restriction>
  82. </xsd:simpleType>
  83. </xsd:element>
  84. <!-- URI per RFC 3986 -->
  85. <xsd:element name="uri">
  86. <xsd:simpleType>
  87. <xsd:restriction base="xsd:anyURI" />
  88. </xsd:simpleType>
  89. </xsd:element>
  90. <!-- Binary data is base64 encoded -->
  91. <xsd:element name="binary">
  92. <xsd:simpleType>
  93. <!-- TODO: Require encoding attribute? -->
  94. <xsd:restriction base="xsd:base64Binary" />
  95. </xsd:simpleType>
  96. </xsd:element>
  97. <!-- Array is a sequence of zero or more values -->
  98. <xsd:element name="array">
  99. <xsd:complexType>
  100. <xsd:group minOccurs="0" maxOccurs="unbounded" ref="llsd-value" />
  101. </xsd:complexType>
  102. </xsd:element>
  103. <!-- Map is a sequence of zero or more key/value pairs -->
  104. <xsd:element name="map">
  105. <xsd:complexType>
  106. <xsd:sequence minOccurs="0" maxOccurs="unbounded">
  107. <xsd:element name="key">
  108. <xsd:simpleType>
  109. <xsd:restriction base="xsd:string" />
  110. </xsd:simpleType>
  111. </xsd:element>
  112. <xsd:group ref="llsd-value" />
  113. </xsd:sequence>
  114. </xsd:complexType>
  115. </xsd:element>
  116. </xsd:schema>