2000-02-28 16:23:53 +00:00
|
|
|
<!--
|
|
|
|
|
|
|
|
XML Document Type Definition for GNUstep Documentation Markup
|
|
|
|
Language (gsdoc).
|
|
|
|
|
|
|
|
Written by Richard Frith-Macdonald
|
|
|
|
Based on GDML by 1997 Yoo C. Chung
|
|
|
|
|
|
|
|
This is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU General Public License
|
|
|
|
as published by the Free Software Foundation; either
|
|
|
|
version 2 of the License, or (at your option) any later
|
|
|
|
version.
|
|
|
|
|
|
|
|
This document is distributed in the hope that it will be
|
|
|
|
useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
|
|
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
|
|
PURPOSE. See the GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General
|
|
|
|
Public License along with this software; if not, write to the
|
|
|
|
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
|
|
|
|
02139, USA.
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
gsdoc is an XML language - Typical usage:
|
|
|
|
<?xml version="1.0"?>
|
|
|
|
<!DOCTYPE gsdoc PUBLIC "-//GNUstep//DTD gsdoc 0.6.5//EN"
|
|
|
|
"http://www.gnustep.org/gsdoc.xml">
|
|
|
|
<gsdoc base="myDocName">
|
|
|
|
</gsdoc>
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
|
|
<!--***** Character entities. *****-->
|
|
|
|
|
|
|
|
<!-- General purpose characters for gsdoc. -->
|
|
|
|
<!ENTITY copy "&copy;"> <!-- copyright symbol -->
|
|
|
|
<!ENTITY tm "&trade;"> <!-- trademark symbol -->
|
|
|
|
<!ENTITY dots "&dots;"> <!-- ellipsis (...) -->
|
|
|
|
<!ENTITY nbsp "&nbsp;"> <!-- non breakable space -->
|
|
|
|
<!ENTITY amp "&#38;"> <!-- ampersand -->
|
|
|
|
<!ENTITY apos "'"> <!-- apos -->
|
|
|
|
<!ENTITY quot """> <!-- quotation mark (") -->
|
|
|
|
<!ENTITY lt "&#60;"> <!-- lesser than symbol -->
|
|
|
|
<!ENTITY gt ">"> <!-- greater than symbol -->
|
|
|
|
|
|
|
|
<!--***** Entity declarations. *****-->
|
|
|
|
|
|
|
|
<!-- Boolean values for attributes -->
|
|
|
|
<!ENTITY % boolean "(yes|no)">
|
|
|
|
|
|
|
|
<!-- Entity for phrase elements. -->
|
|
|
|
<!ENTITY % phrase "var | em | code | strong | file | site">
|
|
|
|
|
|
|
|
<!-- Entity for cross references. -->
|
|
|
|
<!ENTITY % xref "ref | uref | url | email">
|
|
|
|
|
|
|
|
<!-- Entity for anchors. -->
|
|
|
|
<!ENTITY % anchor "label | entry">
|
|
|
|
|
|
|
|
<!-- Entity for text level elements. -->
|
|
|
|
<!ENTITY % text "#PCDATA | %xref; | %anchor; | %phrase; | footnote">
|
|
|
|
|
|
|
|
<!-- Entity for definition elements. -->
|
|
|
|
<!ENTITY % def "class|category|protocol|function|macro|type|variable">
|
|
|
|
|
|
|
|
<!-- Entity for list elements. -->
|
|
|
|
<!ENTITY % list "list | enum | deflist | qalist">
|
|
|
|
|
|
|
|
<!-- Entity for block elements like paragraphs. -->
|
|
|
|
<!ENTITY % block "%def; | %list; | p | example | embed">
|
|
|
|
|
|
|
|
<!--**********-->
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Used for describing something. -->
|
|
|
|
<!ELEMENT desc (%text; | %list; | p | example | embed)*>
|
|
|
|
|
|
|
|
<!-- A footnote. -->
|
|
|
|
<!ELEMENT footnote (%text;)*>
|
|
|
|
|
|
|
|
|
|
|
|
<!--***** Phrase elements. *****-->
|
|
|
|
|
|
|
|
<!-- The content is a metasyntactic variable name. -->
|
|
|
|
<!ELEMENT var (%text;)*>
|
|
|
|
|
|
|
|
<!-- Emphasize the content. -->
|
|
|
|
<!ELEMENT em (%text;)*>
|
|
|
|
|
|
|
|
<!-- The content is too important that simple emphasizing isn't
|
|
|
|
enough. -->
|
|
|
|
<!ELEMENT strong (%text;)*>
|
|
|
|
|
|
|
|
<!-- The content is either a name for code (e.g. class names), or a
|
|
|
|
relatively short code fragment. -->
|
|
|
|
<!ELEMENT code (%text;)*>
|
|
|
|
|
|
|
|
<!-- The content is a file name. -->
|
|
|
|
<!ELEMENT file (#PCDATA)*>
|
|
|
|
|
|
|
|
<!-- The content is a fully qualified domain name on the Internet. -->
|
|
|
|
<!ELEMENT site (#PCDATA)*>
|
|
|
|
|
|
|
|
<!--***** List elements. *****-->
|
|
|
|
|
|
|
|
<!-- An item in a list. -->
|
|
|
|
<!ELEMENT item (%text; | %block;)*>
|
|
|
|
|
|
|
|
<!-- An enumerated list. -->
|
|
|
|
<!ELEMENT enum (item+)>
|
|
|
|
|
|
|
|
<!-- A ordinary, unnumbered list. -->
|
|
|
|
<!ELEMENT list (item+)>
|
|
|
|
|
|
|
|
<!-- A term to defined in a definition list. -->
|
|
|
|
<!ELEMENT term (%text;)*>
|
|
|
|
|
|
|
|
<!-- A definition list. -->
|
|
|
|
<!ELEMENT deflist (term, desc)+>
|
|
|
|
|
|
|
|
<!-- A question for a question and answer list. -->
|
|
|
|
<!ELEMENT question (%text;)*>
|
|
|
|
|
|
|
|
<!-- An answer for a question and answer list. -->
|
|
|
|
<!ELEMENT answer (%block;)*>
|
|
|
|
|
|
|
|
<!-- A question and answer list. -->
|
|
|
|
<!ELEMENT qalist (question, answer)+>
|
|
|
|
|
|
|
|
<!--**********-->
|
|
|
|
|
|
|
|
|
|
|
|
<!--***** Cross references. *****-->
|
|
|
|
|
|
|
|
<!-- A reference.
|
|
|
|
ID of the reference.
|
|
|
|
TYPE of reference, if implied, a reference to a label.
|
|
|
|
CLASS specific class for a method
|
|
|
|
-->
|
2000-03-05 10:50:24 +00:00
|
|
|
<!ELEMENT ref (%text;)*>
|
2000-02-28 16:23:53 +00:00
|
|
|
<!ATTLIST ref
|
|
|
|
id CDATA #REQUIRED
|
|
|
|
type (class|protocol|method|function|type|macro|variable|label) "label"
|
|
|
|
class CDATA #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- An e-mail address. -->
|
2000-03-05 10:50:24 +00:00
|
|
|
<!ELEMENT email (%text;)*>
|
2000-02-28 16:23:53 +00:00
|
|
|
<!ATTLIST email
|
|
|
|
address CDATA #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- A URL. -->
|
|
|
|
<!ELEMENT url EMPTY>
|
|
|
|
<!ATTLIST url
|
|
|
|
url CDATA #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- A reference to a URL.
|
2000-03-05 10:50:24 +00:00
|
|
|
The text contained appears in the output.
|
2000-02-28 16:23:53 +00:00
|
|
|
-->
|
|
|
|
<!ELEMENT uref (%text;)*>
|
|
|
|
<!ATTLIST uref
|
|
|
|
url CDATA #REQUIRED
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<!--***** Anchors. *****-->
|
|
|
|
|
|
|
|
<!-- An anchor for a general reference.
|
|
|
|
The text contained appears in the ouput.
|
|
|
|
-->
|
|
|
|
<!ELEMENT label (%text;)*>
|
|
|
|
<!ATTLIST label
|
|
|
|
id CDATA #REQUIRED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- An entry for the general index.
|
|
|
|
The text that is contained appears in the index, and never in
|
|
|
|
the text itself.
|
|
|
|
-->
|
|
|
|
<!ELEMENT entry (%text;)*>
|
|
|
|
<!ATTLIST entry
|
|
|
|
id CDATA #REQUIRED
|
|
|
|
>
|
|
|
|
|
2000-03-10 11:47:52 +00:00
|
|
|
<!-- Entity for standard elements. -->
|
|
|
|
<!ELEMENT GNUstep EMPTY>
|
|
|
|
<!ELEMENT OpenStep EMPTY>
|
|
|
|
<!ELEMENT NotOpenStep EMPTY>
|
|
|
|
<!ELEMENT MacOS-X EMPTY>
|
|
|
|
<!ELEMENT NotMacOS-X EMPTY>
|
|
|
|
|
|
|
|
<!-- A standard that something is or isn't compliant with. -->
|
|
|
|
<!ENTITY % standard "GNUstep | OpenStep | NotOpenStep | MacOS-X | NotMacOS-X">
|
|
|
|
|
|
|
|
<!ELEMENT standards (%standard;)*>
|
2000-02-28 16:23:53 +00:00
|
|
|
|
|
|
|
<!--***** Argument elements. *****-->
|
|
|
|
|
|
|
|
<!-- An argument. -->
|
|
|
|
<!ELEMENT arg (#PCDATA)*>
|
|
|
|
<!ATTLIST arg
|
|
|
|
type CDATA #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- Denotes that the rest of the arguments is a variable list,
|
|
|
|
like in printf().
|
|
|
|
-->
|
|
|
|
<!ELEMENT vararg EMPTY>
|
|
|
|
|
|
|
|
|
|
|
|
<!--***** Method elements. *****-->
|
|
|
|
|
|
|
|
<!-- A component for a method selector. -->
|
|
|
|
<!ELEMENT sel (#PCDATA)*>
|
|
|
|
|
|
|
|
<!-- A method. If there is no DESC, it is understood that the element
|
|
|
|
is used to override some information from the same method in the
|
|
|
|
superclass.
|
|
|
|
If factory not set, instance method
|
|
|
|
-->
|
2000-03-10 11:47:52 +00:00
|
|
|
<!ELEMENT method (((sel, arg?), (sel, arg)*, vararg?), desc?, standards?)>
|
2000-02-28 16:23:53 +00:00
|
|
|
<!ATTLIST method
|
2000-07-04 15:54:11 +00:00
|
|
|
id CDATA #IMPLIED
|
2000-02-28 16:23:53 +00:00
|
|
|
type CDATA #IMPLIED
|
|
|
|
factory %boolean; "no"
|
|
|
|
init %boolean; "no"
|
|
|
|
override (subclass|never) #IMPLIED
|
|
|
|
role (alloc|init|dealloc|copy|mcopy) #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<!--***** Elements for definitions of classes, functions, etc. *****-->
|
|
|
|
|
|
|
|
<!-- Show what header file something lives in. -->
|
|
|
|
<!ELEMENT declared (#PCDATA)*>
|
|
|
|
|
|
|
|
<!-- A macro definition. -->
|
2000-03-10 11:47:52 +00:00
|
|
|
<!ELEMENT macro ((arg*, vararg?), declared?, desc?, standards?)>
|
2000-02-28 16:23:53 +00:00
|
|
|
<!ATTLIST macro
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
name CDATA #REQUIRED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!ELEMENT typespec (#PCDATA)*>
|
|
|
|
|
|
|
|
<!-- A type definition. -->
|
2000-03-10 11:47:52 +00:00
|
|
|
<!ELEMENT type (typespec, declared?, desc?, standards?)>
|
2000-02-28 16:23:53 +00:00
|
|
|
<!ATTLIST type
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
name CDATA #REQUIRED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- Variable definition.
|
|
|
|
VALUE may be set for a constant or a default value
|
|
|
|
-->
|
2000-03-10 11:47:52 +00:00
|
|
|
<!ELEMENT variable (declared?, desc?, standards?)>
|
2000-02-28 16:23:53 +00:00
|
|
|
<!ATTLIST variable
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
name CDATA #REQUIRED
|
|
|
|
type CDATA #REQUIRED
|
|
|
|
value CDATA #IMPLIED
|
|
|
|
role (except|defaults|notify|key) #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- A function definition. -->
|
2000-03-10 11:47:52 +00:00
|
|
|
<!ELEMENT function ((arg*, vararg?), declared?, desc?, standards?)>
|
2000-02-28 16:23:53 +00:00
|
|
|
<!ATTLIST function
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
name CDATA #REQUIRED
|
|
|
|
type CDATA #REQUIRED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- Protocol definition. -->
|
2000-03-10 11:47:52 +00:00
|
|
|
<!ELEMENT protocol (declared?, desc?, method*, standards?)>
|
2000-02-28 16:23:53 +00:00
|
|
|
<!ATTLIST protocol
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
name CDATA #REQUIRED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- Category definition. -->
|
2000-03-10 11:47:52 +00:00
|
|
|
<!ELEMENT category (declared?, desc?, method*, standards?)>
|
2000-02-28 16:23:53 +00:00
|
|
|
<!ATTLIST category
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
name CDATA #REQUIRED
|
|
|
|
class CDATA #REQUIRED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- Show a protocol a class conforms to. -->
|
|
|
|
<!ELEMENT conform (#PCDATA)*>
|
|
|
|
|
2000-03-10 11:47:52 +00:00
|
|
|
<!ELEMENT class (declared?, conform*, desc?, method*, standards?)>
|
2000-02-28 16:23:53 +00:00
|
|
|
<!ATTLIST class
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
name CDATA #REQUIRED
|
|
|
|
super CDATA #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<!--***** Elements for ordinary block level elements. *****-->
|
|
|
|
|
|
|
|
<!-- A paragraph. -->
|
|
|
|
<!ELEMENT p (%text;)*>
|
|
|
|
|
|
|
|
<!-- An example. -->
|
|
|
|
<!ELEMENT example (#PCDATA)*>
|
|
|
|
<!ATTLIST example
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
caption CDATA #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- An embedded object. If it is of a type that the SGML processor
|
|
|
|
cannot handle, then use the content, which is ignored otherwise.
|
|
|
|
refer - method of referring to object (default is file)
|
|
|
|
src - the reference to the object
|
|
|
|
type - Internet media type of the objec
|
|
|
|
title - optional title describing object
|
|
|
|
-->
|
|
|
|
<!ELEMENT embed (%block;)*>
|
|
|
|
<!ATTLIST embed
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
refer (file|url) #IMPLIED
|
|
|
|
src CDATA #REQUIRED
|
|
|
|
type CDATA #IMPLIED
|
|
|
|
title CDATA #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!--***** Elements for document structure such as chapters. *****-->
|
|
|
|
|
|
|
|
<!-- A heading for chapters, sections, ... -->
|
|
|
|
<!ELEMENT heading (%text;)*>
|
|
|
|
|
|
|
|
<!-- A subsubsection. -->
|
|
|
|
<!ELEMENT subsubsect (heading, (%block;)*)>
|
|
|
|
<!ATTLIST subsubsect
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- A subsection. -->
|
|
|
|
<!ELEMENT subsect (heading, (%block;)*, subsubsect*)>
|
|
|
|
<!ATTLIST subsect
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- A section. -->
|
|
|
|
<!ELEMENT section (heading, (%block;)*, subsect*)>
|
|
|
|
<!ATTLIST section
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- A chapter. -->
|
|
|
|
<!ELEMENT chapter (heading, (%block;)*, section*)>
|
|
|
|
<!ATTLIST chapter
|
|
|
|
id CDATA #IMPLIED
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<!--***** Elements that make searching for things easier. *****-->
|
|
|
|
|
|
|
|
<!-- Table of contents. -->
|
|
|
|
<!ELEMENT contents EMPTY>
|
|
|
|
|
|
|
|
<!-- Index -->
|
|
|
|
<!ELEMENT index EMPTY>
|
|
|
|
<!ATTLIST index
|
|
|
|
type (class|protocol|method|function|type|macro|variable|label) "label"
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<!--***** Elements that describe the document itself. *****-->
|
|
|
|
|
|
|
|
<!-- Copyright of the document. -->
|
|
|
|
<!ELEMENT copy (%text;)*>
|
|
|
|
|
|
|
|
<!-- An abstract. -->
|
|
|
|
<!ELEMENT abstract (%text;)*>
|
|
|
|
|
|
|
|
<!-- The version of the document. -->
|
|
|
|
<!ELEMENT version (%text;)*>
|
|
|
|
|
|
|
|
<!-- The date the document was written. -->
|
|
|
|
<!ELEMENT date (%text;)*>
|
|
|
|
|
|
|
|
<!-- An author. -->
|
|
|
|
<!ELEMENT author (email?, url?, desc?)>
|
|
|
|
<!ATTLIST author
|
|
|
|
name CDATA #REQUIRED
|
|
|
|
>
|
|
|
|
|
|
|
|
<!-- The title of the document. -->
|
|
|
|
<!ELEMENT title (%text;)*>
|
|
|
|
|
|
|
|
|
|
|
|
<!--***** The topmost structures for the document body. *****-->
|
|
|
|
|
|
|
|
<!-- Unnumbered parts appearing in the front, such as a preface. -->
|
|
|
|
<!ELEMENT front (contents?, chapter*)>
|
|
|
|
|
|
|
|
<!-- Unnumbered parts appearing in the back, such as an afterword or
|
|
|
|
indices.
|
|
|
|
-->
|
|
|
|
<!ELEMENT back (chapter*, index?)>
|
|
|
|
|
|
|
|
|
|
|
|
<!--***** The topmost structures for the document. *****-->
|
|
|
|
|
|
|
|
<!-- The head containing general information about the document. -->
|
|
|
|
<!ELEMENT head (title, author+, version?, date?, abstract?, copy?)>
|
|
|
|
|
|
|
|
<!-- The main part of the document. -->
|
|
|
|
<!ELEMENT body (front?, chapter+, back?)>
|
|
|
|
|
|
|
|
<!--**********-->
|
|
|
|
|
|
|
|
|
|
|
|
<!-- The entire document. -->
|
|
|
|
<!ELEMENT gsdoc (head, body)>
|
|
|
|
<!ATTLIST gsdoc
|
|
|
|
base CDATA #IMPLIED
|
|
|
|
next CDATA #IMPLIED
|
|
|
|
prev CDATA #IMPLIED
|
|
|
|
up CDATA #IMPLIED
|
|
|
|
>
|
|
|
|
|