summaryrefslogtreecommitdiff
path: root/devhelp2.xsd
blob: 899630de561b13422c906f13f1d74bd46ebca2e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
<?xml version="1.0" encoding="UTF-8"?>
<!--
get http://xml.fiforms.org/xs3p/ and generate docs
xsltproc -o devhelp2.xsd.html $HOME/download/xs3p-1.1.3/xs3p.xsl devhelp2.xsd
-->
<xsd:schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.devhelp.net/book"
  xmlns="http://www.devhelp.net/book"
  elementFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      Devhelp2 files are use in the 'devhelp' documentation browser.
    </xsd:documentation>
  </xsd:annotation>

  <xsd:simpleType name="keyword-type">
    <xsd:annotation>
      <xsd:documentation>
        Known keyword types.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="constant"/>
      <xsd:enumeration value="enum"/>
      <xsd:enumeration value="function"/>
      <xsd:enumeration value="macro"/>
      <xsd:enumeration value="member"/>
      <xsd:enumeration value="property"/>
      <xsd:enumeration value="signal"/>
      <xsd:enumeration value="struct"/>
      <xsd:enumeration value="typedef"/>
      <xsd:enumeration value="union"/>
      <xsd:enumeration value="variable"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="language-type">
    <xsd:annotation>
      <xsd:documentation>
        Known programming languages.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="c"/>
      <xsd:enumeration value="c++"/>
      <xsd:enumeration value="c#"/>
      <xsd:enumeration value="java"/>
      <xsd:enumeration value="javascript"/>
      <xsd:enumeration value="perl"/>
      <xsd:enumeration value="python"/>
      <xsd:enumeration value="vala"/>
    </xsd:restriction>
  </xsd:simpleType>


  <xsd:element name="sub">
    <xsd:annotation>
      <xsd:documentation>
        Sub tags for the hierarchy of the chapters and parts.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="sub" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
       <xsd:attribute name="name" type="xsd:string" use="required"/>
       <xsd:attribute name="link" type="xsd:string" use="required"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="chapters">
    <xsd:annotation>
      <xsd:documentation>
        The chapters tag encloses the structure of the reference manual. Each
        sub unit is represented by a sub tag.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="sub" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="keyword">
    <xsd:annotation>
      <xsd:documentation>
        The keyword tag points to the documentation of a api symbol.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:attribute name="type" type="keyword-type" use="required">
        <xsd:annotation>
          <xsd:documentation>
            Type of the keyword.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
      <xsd:attribute name="name" type="xsd:string" use="required">
        <xsd:annotation>
          <xsd:documentation>
            Keyword name.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
      <xsd:attribute name="link" type="xsd:string" use="required">
        <xsd:annotation>
          <xsd:documentation>
            Relative link for the keyword.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
      <xsd:attribute name="since" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>
            Version since that the keyword is part of the API.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
      <xsd:attribute name="deprecated" type="xsd:string">
      <xsd:annotation>
        <xsd:documentation>
          Marks the keyword as deprecated.
        </xsd:documentation>
      </xsd:annotation>
      </xsd:attribute>
      <xsd:attribute name="stability" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>
            Document the stability status.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="functions">
    <xsd:annotation>
      <xsd:documentation>
        The functions tag encloses all api symbols of the reference manual. Each
        sub unit is represented by a keyword tag.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="keyword" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="book">
    <xsd:annotation>
      <xsd:documentation>
        Toplevel element of a devhelp book. A devhelp book list the structure of
        a developer manual together with development related metadata.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="chapters" minOccurs="1" maxOccurs="1"/>
        <xsd:element ref="functions" minOccurs="1" maxOccurs="1"/>
      </xsd:sequence>
      <xsd:attribute name="title" type="xsd:string" use="required">
        <xsd:annotation>
          <xsd:documentation>
            Title of the reference manual.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
      <xsd:attribute name="link" type="xsd:string" use="required">
        <xsd:annotation>
          <xsd:documentation>
            Entry point to the manual. Can be given as a relative path to the
            location of the devhelp2 file.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
      <xsd:attribute name="author" type="xsd:string" use="required">
        <xsd:annotation>
          <xsd:documentation>
            Author of the document. Multiple authors are separated by ','.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
      <xsd:attribute name="name" type="xsd:string" use="required">
        <xsd:annotation>
          <xsd:documentation>
            Short name of the manual.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
      <xsd:attribute name="version" type="xsd:integer" use="required">
        <xsd:annotation>
          <xsd:documentation>
            Version of the devhelp xml specification (2).
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
      <xsd:attribute name="language" type="language-type">
        <xsd:annotation>
          <xsd:documentation>
            Programming language this manual refers to.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
      <xsd:attribute name="online" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>
            URL for the online version of the docs.
          </xsd:documentation>
        </xsd:annotation>
      </xsd:attribute>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>