~ubuntu-branches/ubuntu/karmic/gnustep-base/karmic

« back to all changes in this revision

Viewing changes to Tools/gsdoc-1_0_1.dtd

  • Committer: Bazaar Package Importer
  • Author(s): Eric Heintzmann
  • Date: 2005-04-17 00:14:38 UTC
  • mfrom: (1.2.1 upstream) (2.1.2 hoary)
  • Revision ID: james.westby@ubuntu.com-20050417001438-enf0y07c9tku85z1
Tags: 1.10.3-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!--
 
2
 
 
3
  XML Document Type Definition for GNUstep Documentation Markup
 
4
  Language (gsdoc).
 
5
 
 
6
  Written by Richard Frith-Macdonald
 
7
  Based on GDML by 1997 Yoo C. Chung
 
8
 
 
9
  This is free software; you can redistribute it and/or
 
10
  modify it under the terms of the GNU General Public License
 
11
  as published by the Free Software Foundation; either
 
12
  version 2 of the License, or (at your option) any later
 
13
  version.
 
14
 
 
15
  This document is distributed in the hope that it will be
 
16
  useful, but WITHOUT ANY WARRANTY; without even the implied
 
17
  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 
18
  PURPOSE.  See the GNU General Public License for more details.
 
19
 
 
20
  You should have received a copy of the GNU General
 
21
  Public License along with this software; if not, write to the
 
22
  Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
 
23
  02139, USA.
 
24
 
 
25
-->
 
26
 
 
27
 
 
28
<!--
 
29
  gsdoc is an XML language - Typical usage:
 
30
  <?xml version="1.0"?>
 
31
  <!DOCTYPE gsdoc PUBLIC "-//GNUstep//DTD gsdoc 1.0.1//EN"
 
32
        "http://www.gnustep.org/gsdoc.xml">
 
33
  <gsdoc base="myDocName">
 
34
  </gsdoc>
 
35
-->
 
36
 
 
37
 
 
38
<!--***** Character entities. *****-->
 
39
 
 
40
<!-- General purpose characters for gsdoc. -->
 
41
<!ENTITY copy "&#169;">         <!-- copyright symbol -->
 
42
<!ENTITY tm   "&#174;">         <!-- trademark symbol -->
 
43
<!ENTITY reg  "&#174;">
 
44
<!ENTITY dots "&#8230;">        <!-- ellipsis (...) -->
 
45
<!ENTITY nbsp "&#160;">         <!-- non breakable space -->
 
46
<!ENTITY amp  "&#38;#38;">      <!-- ampersand -->
 
47
<!ENTITY apos "&#39;">          <!-- apos -->
 
48
<!ENTITY quot "&#34;">          <!-- quotation mark (") -->
 
49
<!ENTITY lt   "&#38;#60;">      <!-- lesser than symbol -->
 
50
<!ENTITY gt   "&#62;">          <!-- greater than symbol -->
 
51
 
 
52
<!--***** Entity declarations. *****-->
 
53
 
 
54
<!-- Boolean values for attributes -->
 
55
<!ENTITY % boolean "(yes|no)">
 
56
 
 
57
<!-- Entity for phrase elements. -->
 
58
<!ENTITY % phrase "var | ivar | em | code | strong | file | site">
 
59
 
 
60
<!-- Entity for cross references. -->
 
61
<!ENTITY % xref "ref | uref | url | email | prjref">
 
62
 
 
63
<!-- Entity for anchors. -->
 
64
<!ENTITY % anchor "label | entry">
 
65
 
 
66
<!-- Entity for simple text level elements. -->
 
67
<!ENTITY % text "#PCDATA | %xref; | %anchor; | %phrase; | footnote | br">
 
68
 
 
69
<!-- Entity for list elements. -->
 
70
<!ENTITY % list "list | enum | deflist | qalist | dictionary">
 
71
 
 
72
<!-- Entity for block level elements. -->
 
73
<!ENTITY % block "%text; | %list; | p | example | embed | index">
 
74
 
 
75
<!-- Entity for definition elements and blocks. -->
 
76
<!ENTITY % defblock "%text; | %list; | heading | p | example | embed | index | class | category | protocol | function | macro | type | variable | constant | EOModel | EOEntity">
 
77
 
 
78
<!--**********-->
 
79
 
 
80
 
 
81
<!-- Used for describing something. -->
 
82
<!ELEMENT desc (%block;)*>
 
83
 
 
84
<!-- A footnote. -->
 
85
<!ELEMENT footnote (%text;)*>
 
86
 
 
87
 
 
88
<!--***** Phrase elements. *****-->
 
89
 
 
90
<!-- The content is a metasyntactic variable or argument name. -->
 
91
<!ELEMENT var (%text;)*>
 
92
 
 
93
<!-- The content is a metasyntactic ivariable name. -->
 
94
<!ELEMENT ivar (%text;)*>
 
95
 
 
96
<!-- Emphasize the content. -->
 
97
<!ELEMENT em (%text;)*>
 
98
 
 
99
<!-- The content is too important that simple emphasizing isn't
 
100
     enough. -->
 
101
<!ELEMENT strong (%text;)*>
 
102
 
 
103
<!-- The content is either a name for code (e.g. class names), or a
 
104
     relatively short code fragment. -->
 
105
<!ELEMENT code (%text;)*>
 
106
 
 
107
<!-- The content is a file name. -->
 
108
<!ELEMENT file (#PCDATA)*>
 
109
 
 
110
<!-- The content is a fully qualified domain name on the Internet. -->
 
111
<!ELEMENT site (#PCDATA)*>
 
112
 
 
113
<!--***** List elements. *****-->
 
114
 
 
115
<!-- An item in a list. -->
 
116
<!ELEMENT item (%block;)*>
 
117
 
 
118
<!-- An enumerated list. -->
 
119
<!ELEMENT enum (item+)>
 
120
 
 
121
<!-- A ordinary, unnumbered list. -->
 
122
<!ELEMENT list (item+)>
 
123
 
 
124
<!-- A term to defined in a definition list. -->
 
125
<!ELEMENT term (%text;)*>
 
126
 
 
127
<!-- A definition list. -->
 
128
<!ELEMENT deflist (term, desc)+>
 
129
 
 
130
<!-- A question for a question and answer list. -->
 
131
<!ELEMENT question (%text;)*>
 
132
 
 
133
<!-- An answer for a question and answer list. -->
 
134
<!ELEMENT answer (%block;)*>
 
135
 
 
136
<!-- A question and answer list. -->
 
137
<!ELEMENT qalist (question, answer)+>
 
138
 
 
139
<!--**********-->
 
140
 
 
141
 
 
142
<!--***** Cross references. *****-->
 
143
 
 
144
<!-- A reference.
 
145
 ID of the reference.
 
146
 TYPE of reference, if implied, a reference to a label.
 
147
 CLASS specific class for a method, may be one of the following formats -
 
148
   classname, classname(categoryname), (protocolname)
 
149
-->
 
150
<!ELEMENT ref (%text;)*>
 
151
<!ATTLIST ref
 
152
  id CDATA #REQUIRED
 
153
  type (class|category|protocol|method|ivariable|function|type|macro|variable|constant|label|EOModel|EOEntity|tool) "label"
 
154
  class CDATA #IMPLIED
 
155
>
 
156
 
 
157
<!-- An e-mail address. -->
 
158
<!ELEMENT email (%text;)*>
 
159
<!ATTLIST email
 
160
  address CDATA #IMPLIED
 
161
>
 
162
 
 
163
<!-- A URL. -->
 
164
<!ELEMENT url EMPTY>
 
165
<!ATTLIST url
 
166
  url CDATA #IMPLIED
 
167
>
 
168
 
 
169
<!-- A reference to a URL.
 
170
  The text contained appears in the output.
 
171
-->
 
172
<!ELEMENT uref (%text;)*>
 
173
<!ATTLIST uref
 
174
  url CDATA #REQUIRED
 
175
>
 
176
 
 
177
<!-- A reference to a project.
 
178
  The text contained appears in the output.
 
179
-->
 
180
<!ELEMENT prjref (%text;)*>
 
181
<!ATTLIST prjref
 
182
  prjname CDATA #IMPLIED
 
183
  file CDATA #IMPLIED
 
184
>
 
185
 
 
186
<!--***** Anchors. *****-->
 
187
 
 
188
<!-- An anchor for a general reference.
 
189
 The text contained appears in the output.
 
190
 If the id attribute is omitted, the text is used in its place.
 
191
-->
 
192
<!ELEMENT label (%text;)*>
 
193
<!ATTLIST label
 
194
  id CDATA #IMPLIED
 
195
>
 
196
 
 
197
<!-- An entry for the general index. 
 
198
  The text that is contained appears in the index, and never in
 
199
  the text itself.
 
200
 If the id attribute is omitted, the text is used in its place.
 
201
-->
 
202
<!ELEMENT entry (%text;)*>
 
203
<!ATTLIST entry
 
204
  id CDATA #IMPLIED
 
205
>
 
206
 
 
207
<!-- Entity for standard elements. -->
 
208
<!ELEMENT GNUstep EMPTY>
 
209
<!ELEMENT OpenStep EMPTY>
 
210
<!ELEMENT NotOpenStep EMPTY>
 
211
<!ELEMENT MacOS-X EMPTY>
 
212
<!ELEMENT NotMacOS-X EMPTY>
 
213
 
 
214
<!-- A standard that something is or isn't  compliant with. -->
 
215
<!ENTITY % standard "GNUstep | OpenStep | NotOpenStep | MacOS-X | NotMacOS-X">
 
216
 
 
217
<!ELEMENT standards (%standard;)*>
 
218
 
 
219
<!--***** Argument elements. *****-->
 
220
 
 
221
<!-- An argument. -->
 
222
<!ELEMENT arg (#PCDATA)*>
 
223
<!ATTLIST arg
 
224
  type CDATA #IMPLIED
 
225
>
 
226
 
 
227
<!-- Denotes that the rest of the arguments is a variable list,
 
228
  like in printf().
 
229
-->
 
230
<!ELEMENT vararg EMPTY>
 
231
 
 
232
 
 
233
<!--***** Method elements. *****-->
 
234
 
 
235
<!-- A component for a method selector. -->
 
236
<!ELEMENT sel (#PCDATA)*>
 
237
 
 
238
<!-- A method.  If there is no DESC, it is understood that the element
 
239
     is used to override some information from the same method in the
 
240
     superclass.
 
241
  If factory not set, instance method
 
242
-->
 
243
<!ELEMENT method (((sel, arg?), (sel, arg)*, vararg?), desc?, standards?)>
 
244
<!ATTLIST method
 
245
  type CDATA #IMPLIED
 
246
  factory %boolean; "no"
 
247
  init %boolean; "no"
 
248
  override (subclass|never) #IMPLIED
 
249
>
 
250
 
 
251
<!--***** Elements for definitions of classes, functions, etc. *****-->
 
252
 
 
253
<!-- Show what header file something lives in. -->
 
254
<!ELEMENT declared (#PCDATA)*>
 
255
 
 
256
<!-- A macro definition. -->
 
257
<!ELEMENT macro ((arg*, vararg?), declared?, desc?, standards?)>
 
258
<!ATTLIST macro
 
259
  name CDATA #REQUIRED
 
260
>
 
261
 
 
262
<!-- A type definition. -->
 
263
<!ELEMENT type (declared?, desc?, standards?)>
 
264
<!ATTLIST type
 
265
  name CDATA #REQUIRED
 
266
  type CDATA #REQUIRED
 
267
>
 
268
 
 
269
<!-- Variable definition.
 
270
  VALUE may be set for a constant or a default value
 
271
-->
 
272
<!ELEMENT variable (declared?, desc?, standards?)>
 
273
<!ATTLIST variable
 
274
  name CDATA #REQUIRED
 
275
  type CDATA #REQUIRED
 
276
  value CDATA #IMPLIED
 
277
>
 
278
 
 
279
<!-- Ivariable definition.
 
280
-->
 
281
<!ELEMENT ivariable (desc?, standards?)>
 
282
<!ATTLIST ivariable
 
283
  name CDATA #REQUIRED
 
284
  type CDATA #REQUIRED
 
285
  validity (public|protected|private) "public"
 
286
>
 
287
 
 
288
<!-- Constant definition.
 
289
  VALUE may be set for a constant or a default value
 
290
-->
 
291
<!ELEMENT constant (declared?, desc?, standards?)>
 
292
<!ATTLIST constant
 
293
  name CDATA #REQUIRED
 
294
  type CDATA #REQUIRED
 
295
  value CDATA #IMPLIED
 
296
  role (except|defaults|notify|key) #IMPLIED
 
297
>
 
298
 
 
299
<!-- A function definition. -->
 
300
<!ELEMENT function ((arg*, vararg?), declared?, desc?, standards?)>
 
301
<!ATTLIST function
 
302
  name CDATA #REQUIRED
 
303
  type CDATA #REQUIRED
 
304
>
 
305
 
 
306
<!-- Protocol definition. -->
 
307
<!ELEMENT protocol (declared?, conform*, desc?, method*, standards?)>
 
308
<!ATTLIST protocol
 
309
  name CDATA #REQUIRED
 
310
>
 
311
 
 
312
<!-- Category definition. -->
 
313
<!ELEMENT category (declared?, conform*, desc?, method*, standards?)>
 
314
<!ATTLIST category
 
315
  name CDATA #REQUIRED
 
316
  class CDATA #REQUIRED
 
317
>
 
318
 
 
319
<!-- Show a protocol a class conforms to. -->
 
320
<!ELEMENT conform (#PCDATA)*>
 
321
 
 
322
<!ELEMENT class (declared?, conform*, desc?, ivariable*, method*, standards?)>
 
323
<!ATTLIST class
 
324
  name CDATA #REQUIRED
 
325
  super CDATA #IMPLIED
 
326
>
 
327
 
 
328
<!--***** Elements for definitions of EOModels, etc. *****-->
 
329
 
 
330
<!-- a dictionary Item. -->
 
331
<!ELEMENT dictionaryItem (%block;)*>
 
332
<!ATTLIST dictionaryItem
 
333
  key CDATA #REQUIRED
 
334
  value CDATA #IMPLIED
 
335
>
 
336
 
 
337
<!-- a dictionary -->
 
338
<!ELEMENT dictionary (dictionaryItem+)>
 
339
 
 
340
<!ELEMENT EOConnectionDictionary (dictionaryItem+)>
 
341
 
 
342
<!ELEMENT EOUserDictionary (dictionaryItem+)>
 
343
 
 
344
<!--***** Elements for definitions of EOModels, etc. *****-->
 
345
 
 
346
<!-- EORelationshipComponent -->
 
347
<!ELEMENT EORelationshipComponent (EORelationshipComponent*)>
 
348
<!ATTLIST EORelationshipComponent
 
349
  definition CDATA #REQUIRED
 
350
>
 
351
 
 
352
<!-- EOJoin -->
 
353
<!ELEMENT EOJoin (desc?)>
 
354
<!ATTLIST EOJoin
 
355
  relationshipName CDATA #IMPLIED
 
356
  joinOperator CDATA #REQUIRED
 
357
  joinSemantic CDATA #REQUIRED
 
358
  sourceAttribute CDATA #REQUIRED
 
359
  destinationAttribute CDATA #REQUIRED
 
360
>
 
361
 
 
362
<!-- EORelationship -->
 
363
<!ELEMENT EORelationship ((EORelationshipComponent | (EOJoin*)), EOUserDictionary?, desc?)>
 
364
<!ATTLIST EORelationship
 
365
  entityName CDATA #REQUIRED
 
366
  destinationEntityName CDATA #REQUIRED
 
367
  name CDATA #REQUIRED
 
368
  isToMany CDATA #IMPLIED
 
369
>
 
370
 
 
371
<!-- EOAttributeRef -->
 
372
<!ELEMENT EOAttributeRef EMPTY>
 
373
<!ATTLIST EOAttributeRef
 
374
  name CDATA #REQUIRED
 
375
>
 
376
 
 
377
<!-- EOPrimaryKeyAttributes -->
 
378
<!ELEMENT EOPrimaryKeyAttributes (EOAttributeRef+)>
 
379
 
 
380
<!-- EOClassProperties -->
 
381
<!ELEMENT EOClassProperties ((EOAttributeRef)+)>
 
382
 
 
383
<!-- EOAttributesUsedForLocking -->
 
384
<!ELEMENT EOAttributesUsedForLocking (EOAttributeRef+)>
 
385
 
 
386
<!-- EOAttribute -->
 
387
<!ELEMENT EOAttribute (EOUserDictionary?, desc?)>
 
388
<!ATTLIST EOAttribute
 
389
  columnName CDATA #IMPLIED
 
390
  definition CDATA #IMPLIED
 
391
  externalType CDATA #IMPLIED
 
392
  name CDATA #REQUIRED
 
393
  valueClassName CDATA #IMPLIED
 
394
  valueType CDATA #IMPLIED
 
395
  entityName CDATA #IMPLIED
 
396
  isReadOnly CDATA #IMPLIED
 
397
  isDerived CDATA #IMPLIED
 
398
  isFlattened CDATA #IMPLIED
 
399
>
 
400
 
 
401
<!-- EOEntity -->
 
402
<!ELEMENT EOEntity (EOAttribute*, EOAttributesUsedForLocking?, EOClassProperties?, EOPrimaryKeyAttributes?, EORelationship*, EOUserDictionary?, desc?)>
 
403
<!ATTLIST EOEntity
 
404
  name CDATA #REQUIRED
 
405
  externalName CDATA #IMPLIED
 
406
  className CDATA #IMPLIED
 
407
  modelName CDATA #IMPLIED
 
408
  isReadOnly CDATA #IMPLIED
 
409
>
 
410
 
 
411
<!-- EOModel -->
 
412
<!ELEMENT EOModel (EOConnectionDictionary?, (EOEntity+ | list), EOUserDictionary?, desc?)>
 
413
<!ATTLIST EOModel
 
414
  name CDATA #REQUIRED
 
415
  version CDATA #IMPLIED
 
416
  adaptorName CDATA #REQUIRED
 
417
  adaptorClassName CDATA #REQUIRED
 
418
>
 
419
 
 
420
<!--***** Elements for ordinary block level elements. *****-->
 
421
 
 
422
<!-- A line break. -->
 
423
<!ELEMENT br EMPTY>
 
424
 
 
425
<!-- A paragraph. -->
 
426
<!ELEMENT p (%text;)*>
 
427
 
 
428
<!-- An example. -->
 
429
<!ELEMENT example (#PCDATA)*>
 
430
<!ATTLIST example
 
431
  caption CDATA #IMPLIED
 
432
>
 
433
 
 
434
<!-- An embedded object.  If it is of a type that the SGML processor
 
435
  cannot handle, then use the content, which is ignored otherwise.
 
436
  refer - method of referring to object (default is file)
 
437
  src - the reference to the object
 
438
  type - Internet media type of the objec
 
439
  title - optional title describing object
 
440
-->
 
441
<!ELEMENT embed (%block;)*>
 
442
<!ATTLIST embed
 
443
  refer (file|url) #IMPLIED
 
444
  src CDATA #REQUIRED
 
445
  type CDATA #IMPLIED
 
446
  title CDATA #IMPLIED
 
447
>
 
448
 
 
449
<!--***** Elements for document structure such as chapters. *****-->
 
450
 
 
451
<!-- A heading for chapters, sections, ... -->
 
452
<!ELEMENT heading (%text;)*>
 
453
 
 
454
<!-- A subsubsection. -->
 
455
<!ELEMENT subsubsect (%defblock;)*>
 
456
<!ATTLIST subsubsect
 
457
  id CDATA #IMPLIED
 
458
>
 
459
 
 
460
<!-- A subsection. -->
 
461
<!ELEMENT subsect (%defblock; | subsubsect)*>
 
462
<!ATTLIST subsect
 
463
  id CDATA #IMPLIED
 
464
>
 
465
 
 
466
<!-- A section. -->
 
467
<!ELEMENT section (%defblock; | subsect)*>
 
468
<!ATTLIST section
 
469
  id CDATA #IMPLIED
 
470
>
 
471
 
 
472
<!-- A chapter. -->
 
473
<!ELEMENT chapter (%defblock; | section)*>
 
474
<!ATTLIST chapter
 
475
  id CDATA #IMPLIED
 
476
>
 
477
 
 
478
 
 
479
<!--***** Elements that make searching for things easier. *****-->
 
480
 
 
481
<!-- Table of contents. -->
 
482
<!ELEMENT contents EMPTY>
 
483
 
 
484
<!-- Index  ... generates an index of the specified type of elements.
 
485
  'scope' determines whether the index is generated for the current file
 
486
  or for the whole of the current project, or for everything the software
 
487
  can find (global) ... if the document is processed in a standalone manner,
 
488
  the scope if always file.  For method or ivariable indexing, if the index
 
489
  is inside a class, protocol, or category, only  indexes for that unit
 
490
  should be generated.
 
491
  'type' determines the type of entry listed in the index.  The 'title'
 
492
  type really only makes sense for a project scope index as it produces
 
493
  a list of the files in the project (by title).
 
494
-->
 
495
<!ELEMENT index EMPTY>
 
496
<!ATTLIST index
 
497
  type (class | category | protocol | method | ivariable | function | type | macro | variable | constant | EOModel | EOEntity | label | title | tool) "label"
 
498
  scope (file | project | global) "file"
 
499
  style ( normal | bare ) "normal"
 
500
  target CDATA #IMPLIED
 
501
>
 
502
 
 
503
 
 
504
<!--***** Elements that describe the document itself. *****-->
 
505
 
 
506
<!-- Copyright of the document. -->
 
507
<!ELEMENT copy (%text;)*>
 
508
 
 
509
<!-- An abstract. -->
 
510
<!ELEMENT abstract (%text;)*>
 
511
 
 
512
<!-- The version of the document. -->
 
513
<!ELEMENT version (%text;)*>
 
514
 
 
515
<!-- The date the document was written. -->
 
516
<!ELEMENT date (%text;)*>
 
517
 
 
518
<!-- An author. -->
 
519
<!ELEMENT author (email?, url?, desc?)>
 
520
<!ATTLIST author
 
521
  name CDATA #REQUIRED
 
522
>
 
523
 
 
524
<!-- The title of the document. -->
 
525
<!ELEMENT title (%text;)*>
 
526
 
 
527
 
 
528
<!--***** The topmost structures for the document body. *****-->
 
529
 
 
530
<!-- Unnumbered parts appearing in the front, such as a preface. -->
 
531
<!ELEMENT front (contents?, chapter*)>
 
532
 
 
533
<!-- Unnumbered parts appearing in the back, such as an afterword and/or
 
534
 indices.
 
535
-->
 
536
<!ELEMENT back (chapter*, index*)>
 
537
 
 
538
 
 
539
<!--***** The topmost structures for the document. *****-->
 
540
 
 
541
<!-- The head containing general information about the document. -->
 
542
<!ELEMENT head (title, author*, version?, date?, abstract?, copy?)>
 
543
 
 
544
<!-- The main part of the document. -->
 
545
<!ELEMENT body (front?, chapter+, back?)>
 
546
 
 
547
<!--**********-->
 
548
 
 
549
 
 
550
<!-- The entire document. -->
 
551
<!ELEMENT gsdoc (head, body)>
 
552
<!ATTLIST gsdoc
 
553
  base CDATA #IMPLIED
 
554
  next CDATA #IMPLIED
 
555
  prev CDATA #IMPLIED
 
556
  up CDATA #IMPLIED
 
557
  stylesheeturl CDATA #IMPLIED
 
558
>
 
559