schema.html 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <html>
  2. <body>
  3. <h1 align='right'><a name='SCHEMA'><img src="D.gif" align="right"
  4. hspace="10" width="100" height="100" alt="D"></a>XML Schema</h1>
  5. <p>This appendix provides the XML schema that is used for the XML
  6. files produced by <tt>mxmldoc</tt>. This schema is available on-line
  7. at:</p>
  8. <pre>
  9. http://www.msweet.org/schema/mxmldoc.xsd
  10. </pre>
  11. <h2 _hd_omit_toc>mxmldoc.xsd</h2>
  12. <pre><small>
  13. &lt;?xml version="1.0"?>
  14. &lt;xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  15. &lt;xsd:annotation>
  16. &lt;xsd:documentation xml:lang="en">
  17. Mini-XML 2.9 documentation schema for mxmldoc output.
  18. Copyright 2003-2014 by Michael Sweet.
  19. &lt;/xsd:documentation>
  20. &lt;/xsd:annotation>
  21. &lt;!-- basic element definitions -->
  22. &lt;xsd:element name="argument" type="argumentType"/>
  23. &lt;xsd:element name="class" type="classType"/>
  24. &lt;xsd:element name="constant" type="constantType"/>
  25. &lt;xsd:element name="description" type="xsd:string"/>
  26. &lt;xsd:element name="enumeration" type="enumerationType"/>
  27. &lt;xsd:element name="function" type="functionType"/>
  28. &lt;xsd:element name="mxmldoc" type="mxmldocType"/>
  29. &lt;xsd:element name="namespace" type="namespaceType"/>
  30. &lt;xsd:element name="returnvalue" type="returnvalueType"/>
  31. &lt;xsd:element name="seealso" type="identifierList"/>
  32. &lt;xsd:element name="struct" type="structType"/>
  33. &lt;xsd:element name="typedef" type="typedefType"/>
  34. &lt;xsd:element name="type" type="xsd:string"/>
  35. &lt;xsd:element name="union" type="unionType"/>
  36. &lt;xsd:element name="variable" type="variableType"/>
  37. &lt;!-- descriptions of complex elements -->
  38. &lt;xsd:complexType name="argumentType">
  39. &lt;xsd:sequence>
  40. &lt;xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
  41. &lt;xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  42. &lt;/xsd:sequence>
  43. &lt;xsd:attribute name="default" type="xsd:string" use="optional"/>
  44. &lt;xsd:attribute name="name" type="identifier" use="required"/>
  45. &lt;xsd:attribute name="direction" type="direction" use="optional"
  46. default="I"/>
  47. &lt;/xsd:complexType>
  48. &lt;xsd:complexType name="classType">
  49. &lt;xsd:sequence>
  50. &lt;xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  51. &lt;xsd:choice minOccurs="0" maxOccurs="unbounded">
  52. &lt;xsd:element ref="class"/>
  53. &lt;xsd:element ref="enumeration"/>
  54. &lt;xsd:element ref="function"/>
  55. &lt;xsd:element ref="struct"/>
  56. &lt;xsd:element ref="typedef"/>
  57. &lt;xsd:element ref="union"/>
  58. &lt;xsd:element ref="variable"/>
  59. &lt;/xsd:choice>
  60. &lt;/xsd:sequence>
  61. &lt;xsd:attribute name="name" type="identifier" use="required"/>
  62. &lt;xsd:attribute name="parent" type="xsd:string" use="optional"/>
  63. &lt;/xsd:complexType>
  64. &lt;xsd:complexType name="constantType">
  65. &lt;xsd:sequence>
  66. &lt;xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  67. &lt;/xsd:sequence>
  68. &lt;xsd:attribute name="name" type="identifier" use="required"/>
  69. &lt;/xsd:complexType>
  70. &lt;xsd:complexType name="enumerationType">
  71. &lt;xsd:sequence>
  72. &lt;xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  73. &lt;xsd:element ref="constant" minOccurs="1" maxOccurs="unbounded"/>
  74. &lt;/xsd:sequence>
  75. &lt;xsd:attribute name="name" type="identifier" use="required"/>
  76. &lt;/xsd:complexType>
  77. &lt;xsd:complexType name="functionType">
  78. &lt;xsd:sequence>
  79. &lt;xsd:element ref="returnvalue" minOccurs="0" maxOccurs="1"/>
  80. &lt;xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  81. &lt;xsd:element ref="argument" minOccurs="1" maxOccurs="unbounded"/>
  82. &lt;xsd:element ref="seealso" minOccurs="0" maxOccurs="1"/>
  83. &lt;/xsd:sequence>
  84. &lt;xsd:attribute name="name" type="identifier" use="required"/>
  85. &lt;xsd:attribute name="scope" type="scope" use="optional"/>
  86. &lt;/xsd:complexType>
  87. &lt;xsd:complexType name="mxmldocType">
  88. &lt;xsd:choice minOccurs="0" maxOccurs="unbounded">
  89. &lt;xsd:element ref="class"/>
  90. &lt;xsd:element ref="enumeration"/>
  91. &lt;xsd:element ref="function"/>
  92. &lt;xsd:element ref="namespace"/>
  93. &lt;xsd:element ref="struct"/>
  94. &lt;xsd:element ref="typedef"/>
  95. &lt;xsd:element ref="union"/>
  96. &lt;xsd:element ref="variable"/>
  97. &lt;/xsd:choice>
  98. &lt;/xsd:complexType>
  99. &lt;xsd:complexType name="namespaceType">
  100. &lt;xsd:sequence>
  101. &lt;xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  102. &lt;xsd:choice minOccurs="0" maxOccurs="unbounded">
  103. &lt;xsd:element ref="class"/>
  104. &lt;xsd:element ref="enumeration"/>
  105. &lt;xsd:element ref="function"/>
  106. &lt;xsd:element ref="struct"/>
  107. &lt;xsd:element ref="typedef"/>
  108. &lt;xsd:element ref="union"/>
  109. &lt;xsd:element ref="variable"/>
  110. &lt;/xsd:choice>
  111. &lt;/xsd:sequence>
  112. &lt;xsd:attribute name="name" type="identifier" use="required"/>
  113. &lt;/xsd:complexType>
  114. &lt;xsd:complexType name="returnvalueType">
  115. &lt;xsd:sequence>
  116. &lt;xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
  117. &lt;xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  118. &lt;/xsd:sequence>
  119. &lt;/xsd:complexType>
  120. &lt;xsd:complexType name="structType">
  121. &lt;xsd:sequence>
  122. &lt;xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  123. &lt;xsd:choice minOccurs="0" maxOccurs="unbounded">
  124. &lt;xsd:element ref="variable"/>
  125. &lt;xsd:element ref="function"/>
  126. &lt;/xsd:choice>
  127. &lt;/xsd:sequence>
  128. &lt;xsd:attribute name="name" type="identifier" use="required"/>
  129. &lt;/xsd:complexType>
  130. &lt;xsd:complexType name="typedefType">
  131. &lt;xsd:sequence>
  132. &lt;xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
  133. &lt;xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  134. &lt;/xsd:sequence>
  135. &lt;xsd:attribute name="name" type="identifier" use="required"/>
  136. &lt;/xsd:complexType>
  137. &lt;xsd:complexType name="unionType">
  138. &lt;xsd:sequence>
  139. &lt;xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  140. &lt;xsd:element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
  141. &lt;/xsd:sequence>
  142. &lt;xsd:attribute name="name" type="identifier" use="required"/>
  143. &lt;/xsd:complexType>
  144. &lt;xsd:complexType name="variableType">
  145. &lt;xsd:sequence>
  146. &lt;xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
  147. &lt;xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
  148. &lt;/xsd:sequence>
  149. &lt;xsd:attribute name="name" type="identifier" use="required"/>
  150. &lt;/xsd:complexType>
  151. &lt;!-- data types -->
  152. &lt;xsd:simpleType name="direction">
  153. &lt;xsd:restriction base="xsd:string">
  154. &lt;xsd:enumeration value="I"/>
  155. &lt;xsd:enumeration value="O"/>
  156. &lt;xsd:enumeration value="IO"/>
  157. &lt;/xsd:restriction>
  158. &lt;/xsd:simpleType>
  159. &lt;xsd:simpleType name="identifier">
  160. &lt;xsd:restriction base="xsd:string">
  161. &lt;xsd:pattern value="[a-zA-Z_(.]([a-zA-Z_(.,)* 0-9])*"/>
  162. &lt;/xsd:restriction>
  163. &lt;/xsd:simpleType>
  164. &lt;xsd:simpleType name="identifierList">
  165. &lt;xsd:list itemType="identifier"/>
  166. &lt;/xsd:simpleType>
  167. &lt;xsd:simpleType name="scope">
  168. &lt;xsd:restriction base="xsd:string">
  169. &lt;xsd:enumeration value=""/>
  170. &lt;xsd:enumeration value="private"/>
  171. &lt;xsd:enumeration value="protected"/>
  172. &lt;xsd:enumeration value="public"/>
  173. &lt;/xsd:restriction>
  174. &lt;/xsd:simpleType>
  175. &lt;/xsd:schema>
  176. </small></pre>
  177. </body>
  178. </html>