mxmldoc.xsd 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. <?xml version="1.0"?>
  2. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  3. <xsd:annotation>
  4. <xsd:documentation xml:lang="en">
  5. Mini-XML 2.9 documentation schema for mxmldoc output.
  6. Copyright 2003-2014 by Michael Sweet.
  7. This program is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU Library General Public
  9. License as published by the Free Software Foundation; either
  10. version 2, or (at your option) any later version.
  11. This program is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. GNU General Public License for more details.
  15. </xsd:documentation>
  16. </xsd:annotation>
  17. <!-- basic element definitions -->
  18. <xsd:element name="argument" type="argumentType"/>
  19. <xsd:element name="class" type="classType"/>
  20. <xsd:element name="constant" type="constantType"/>
  21. <xsd:element name="description" type="xsd:string"/>
  22. <xsd:element name="enumeration" type="enumerationType"/>
  23. <xsd:element name="function" type="functionType"/>
  24. <xsd:element name="mxmldoc" type="mxmldocType"/>
  25. <xsd:element name="namespace" type="namespaceType"/>
  26. <xsd:element name="returnvalue" type="returnvalueType"/>
  27. <xsd:element name="seealso" type="identifierList"/>
  28. <xsd:element name="struct" type="structType"/>
  29. <xsd:element name="typedef" type="typedefType"/>
  30. <xsd:element name="type" type="xsd:string"/>
  31. <xsd:element name="union" type="unionType"/>
  32. <xsd:element name="variable" type="variableType"/>
  33. <!-- descriptions of complex elements -->
  34. <xsd:complexType name="argumentType">
  35. <xsd:sequence>
  36. <xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
  37. <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  38. </xsd:sequence>
  39. <xsd:attribute name="default" type="xsd:string" use="optional"/>
  40. <xsd:attribute name="name" type="identifier" use="required"/>
  41. <xsd:attribute name="direction" type="direction" use="optional" default="I"/>
  42. </xsd:complexType>
  43. <xsd:complexType name="classType">
  44. <xsd:sequence>
  45. <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  46. <xsd:choice minOccurs="0" maxOccurs="unbounded">
  47. <xsd:element ref="class"/>
  48. <xsd:element ref="enumeration"/>
  49. <xsd:element ref="function"/>
  50. <xsd:element ref="struct"/>
  51. <xsd:element ref="typedef"/>
  52. <xsd:element ref="union"/>
  53. <xsd:element ref="variable"/>
  54. </xsd:choice>
  55. </xsd:sequence>
  56. <xsd:attribute name="name" type="identifier" use="required"/>
  57. <xsd:attribute name="parent" type="xsd:string" use="optional"/>
  58. </xsd:complexType>
  59. <xsd:complexType name="constantType">
  60. <xsd:sequence>
  61. <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  62. </xsd:sequence>
  63. <xsd:attribute name="name" type="identifier" use="required"/>
  64. </xsd:complexType>
  65. <xsd:complexType name="enumerationType">
  66. <xsd:sequence>
  67. <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  68. <xsd:element ref="constant" minOccurs="1" maxOccurs="unbounded"/>
  69. </xsd:sequence>
  70. <xsd:attribute name="name" type="identifier" use="required"/>
  71. </xsd:complexType>
  72. <xsd:complexType name="functionType">
  73. <xsd:sequence>
  74. <xsd:element ref="returnvalue" minOccurs="0" maxOccurs="1"/>
  75. <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  76. <xsd:element ref="argument" minOccurs="1" maxOccurs="unbounded"/>
  77. <xsd:element ref="seealso" minOccurs="0" maxOccurs="1"/>
  78. </xsd:sequence>
  79. <xsd:attribute name="name" type="identifier" use="required"/>
  80. <xsd:attribute name="scope" type="scope" use="optional"/>
  81. </xsd:complexType>
  82. <xsd:complexType name="mxmldocType">
  83. <xsd:choice minOccurs="0" maxOccurs="unbounded">
  84. <xsd:element ref="class"/>
  85. <xsd:element ref="enumeration"/>
  86. <xsd:element ref="function"/>
  87. <xsd:element ref="namespace"/>
  88. <xsd:element ref="struct"/>
  89. <xsd:element ref="typedef"/>
  90. <xsd:element ref="union"/>
  91. <xsd:element ref="variable"/>
  92. </xsd:choice>
  93. </xsd:complexType>
  94. <xsd:complexType name="namespaceType">
  95. <xsd:sequence>
  96. <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  97. <xsd:choice minOccurs="0" maxOccurs="unbounded">
  98. <xsd:element ref="class"/>
  99. <xsd:element ref="enumeration"/>
  100. <xsd:element ref="function"/>
  101. <xsd:element ref="struct"/>
  102. <xsd:element ref="typedef"/>
  103. <xsd:element ref="union"/>
  104. <xsd:element ref="variable"/>
  105. </xsd:choice>
  106. </xsd:sequence>
  107. <xsd:attribute name="name" type="identifier" use="required"/>
  108. </xsd:complexType>
  109. <xsd:complexType name="returnvalueType">
  110. <xsd:sequence>
  111. <xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
  112. <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  113. </xsd:sequence>
  114. </xsd:complexType>
  115. <xsd:complexType name="structType">
  116. <xsd:sequence>
  117. <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  118. <xsd:choice minOccurs="0" maxOccurs="unbounded">
  119. <xsd:element ref="variable"/>
  120. <xsd:element ref="function"/>
  121. </xsd:choice>
  122. </xsd:sequence>
  123. <xsd:attribute name="name" type="identifier" use="required"/>
  124. </xsd:complexType>
  125. <xsd:complexType name="typedefType">
  126. <xsd:sequence>
  127. <xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
  128. <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  129. </xsd:sequence>
  130. <xsd:attribute name="name" type="identifier" use="required"/>
  131. </xsd:complexType>
  132. <xsd:complexType name="unionType">
  133. <xsd:sequence>
  134. <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  135. <xsd:element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
  136. </xsd:sequence>
  137. <xsd:attribute name="name" type="identifier" use="required"/>
  138. </xsd:complexType>
  139. <xsd:complexType name="variableType">
  140. <xsd:sequence>
  141. <xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
  142. <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  143. </xsd:sequence>
  144. <xsd:attribute name="name" type="identifier" use="required"/>
  145. </xsd:complexType>
  146. <!-- data types -->
  147. <xsd:simpleType name="direction">
  148. <xsd:restriction base="xsd:string">
  149. <xsd:enumeration value="I"/>
  150. <xsd:enumeration value="O"/>
  151. <xsd:enumeration value="IO"/>
  152. </xsd:restriction>
  153. </xsd:simpleType>
  154. <xsd:simpleType name="identifier">
  155. <xsd:restriction base="xsd:string">
  156. <xsd:pattern value="[a-zA-Z_(.]([a-zA-Z_(.,)* 0-9])*"/>
  157. </xsd:restriction>
  158. </xsd:simpleType>
  159. <xsd:simpleType name="identifierList">
  160. <xsd:list itemType="identifier"/>
  161. </xsd:simpleType>
  162. <xsd:simpleType name="scope">
  163. <xsd:restriction base="xsd:string">
  164. <xsd:enumeration value=""/>
  165. <xsd:enumeration value="private"/>
  166. <xsd:enumeration value="protected"/>
  167. <xsd:enumeration value="public"/>
  168. </xsd:restriction>
  169. </xsd:simpleType>
  170. </xsd:schema>