2001-10-17 20:58:12 +00:00
<!--
X M L D o c u m e n t T y p e D e f i n i t i o n f o r G N U s t e p D o c u m e n t a t i o n M a r k u p
L a n g u a g e ( g s d o c ) .
W r i t t e n b y R i c h a r d F r i t h - M a c d o n a l d
B a s e d o n G D M L b y 1 9 9 7 Y o o C . C h u n g
T h i s i s f r e e s o f t w a r e ; y o u c a n r e d i s t r i b u t e i t a n d / o r
2013-03-16 17:12:30 +00:00
m o d i f y i t u n d e r t h e t e r m s o f t h e G N U L e s s e r G e n e r a l P u b l i c
L i c e n s e a s p u b l i s h e d b y t h e F r e e S o f t w a r e F o u n d a t i o n ; e i t h e r
v e r s i o n 2 o f t h e L i c e n s e , o r ( a t y o u r o p t i o n ) a n y l a t e r v e r s i o n .
T h i s d o c u m e n t i s d i s t r i b u t e d i n t h e h o p e t h a t i t w i l l b e u s e f u l ,
b u t W I T H O U T A N Y W A R R A N T Y ; w i t h o u t e v e n t h e i m p l i e d w a r r a n t y o f
M E R C H A N T A B I L I T Y o r F I T N E S S F O R A P A R T I C U L A R P U R P O S E . S e e t h e G N U
L i b r a r y G e n e r a l P u b l i c L i c e n s e f o r m o r e d e t a i l s .
Y o u s h o u l d h a v e r e c e i v e d a c o p y o f t h e G N U L e s s e r G e n e r a l P u b l i c
L i c e n s e a l o n g w i t h t h i s l i b r a r y ; i f n o t , w r i t e t o t h e F r e e
2024-11-07 13:37:59 +00:00
S o f t w a r e F o u n d a t i o n , I n c . , 3 1 M i l k S t r e e t # 9 6 0 7 8 9 B o s t o n , M A 0 2 1 9 6 U S A .
2001-10-17 20:58:12 +00:00
- - >
<!--
g s d o c i s a n X M L l a n g u a g e - T y p i c a l u s a g e :
< ? x m l v e r s i o n = "1.0" ? >
<!DOCTYPE gsdoc PUBLIC "-//GNUstep//DTD gsdoc 0.6.7//EN"
"http://www.gnustep.org/gsdoc.xml" >
< g s d o c b a s e = "myDocName" >
< / g s d o c >
- - >
<!-- ***** 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. -->
2001-12-15 07:54:10 +00:00
<!ENTITY % phrase "var | ivar | em | code | strong | file | site" >
2001-10-17 20:58:12 +00:00
<!-- Entity for cross references. -->
<!ENTITY % xref "ref | uref | url | email | prjref" >
<!-- Entity for anchors. -->
<!ENTITY % anchor "label | entry" >
<!-- Entity for simple text level elements. -->
<!ENTITY % text "#PCDATA | %xref; | %anchor; | %phrase; | footnote | br" >
<!-- Entity for list elements. -->
<!ENTITY % list "list | enum | deflist | qalist | dictionary" >
<!-- Entity for block level elements. -->
2002-01-05 09:54:28 +00:00
<!ENTITY % block "%text; | %list; | p | example | embed | index" >
2001-10-17 20:58:12 +00:00
<!-- Entity for definition elements and blocks. -->
2002-01-05 09:54:28 +00:00
<!ENTITY % defblock "%list; | p | example | embed | index | class | category | protocol | function | macro | type | variable | constant | EOModel | EOEntity" >
2001-10-17 20:58:12 +00:00
<!-- ********** -->
<!-- Used for describing something. -->
<!ELEMENT desc ( %block; ) * >
<!-- A footnote. -->
<!ELEMENT footnote ( %text; ) * >
<!-- ***** Phrase elements. ***** -->
<!-- The content is a metasyntactic variable or argument name. -->
<!ELEMENT var ( %text; ) * >
<!-- The content is a metasyntactic ivariable name. -->
<!ELEMENT ivar ( %text; ) * >
<!-- Emphasize the content. -->
<!ELEMENT em ( %text; ) * >
<!-- The content is too important that simple emphasizing isn't
e n o u g h . - - >
<!ELEMENT strong ( %text; ) * >
<!-- The content is either a name for code (e.g. class names), or a
r e l a t i v e l y s h o r t c o d e f r a g m e n t . - - >
<!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 ( %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.
I D o f t h e r e f e r e n c e .
T Y P E o f r e f e r e n c e , i f i m p l i e d , a r e f e r e n c e t o a l a b e l .
C L A S S s p e c i f i c c l a s s f o r a m e t h o d , m a y b e o n e o f t h e f o l l o w i n g f o r m a t s -
c l a s s n a m e , c l a s s n a m e ( c a t e g o r y n a m e ) , ( p r o t o c o l n a m e )
- - >
<!ELEMENT ref ( %text; ) * >
<!ATTLIST ref
i d C D A T A # R E Q U I R E D
2001-12-15 07:54:10 +00:00
t y p e ( c l a s s | p r o t o c o l | m e t h o d | i v a r i a b l e | f u n c t i o n | t y p e | m a c r o | v a r i a b l e | c o n s t a n t | l a b e l | E O M o d e l | E O E n t i t y ) "label"
2001-10-17 20:58:12 +00:00
c l a s s C D A T A # I M P L I E D
>
<!-- An e - mail address. -->
<!ELEMENT email ( %text; ) * >
<!ATTLIST email
a d d r e s s C D A T A # I M P L I E D
>
<!-- A URL. -->
<!ELEMENT url EMPTY >
<!ATTLIST url
u r l C D A T A # I M P L I E D
>
<!-- A reference to a URL.
T h e t e x t c o n t a i n e d a p p e a r s i n t h e o u t p u t .
- - >
<!ELEMENT uref ( %text; ) * >
<!ATTLIST uref
u r l C D A T A # R E Q U I R E D
>
<!-- A reference to a project.
T h e t e x t c o n t a i n e d a p p e a r s i n t h e o u t p u t .
- - >
<!ELEMENT prjref ( %text; ) * >
<!ATTLIST prjref
p r j n a m e C D A T A # I M P L I E D
f i l e C D A T A # I M P L I E D
>
<!-- ***** Anchors. ***** -->
<!-- An anchor for a general reference.
T h e t e x t c o n t a i n e d a p p e a r s i n t h e o u t p u t .
I f t h e i d a t t r i b u t e i s o m i t t e d , t h e t e x t i s u s e d i n i t s p l a c e .
- - >
<!ELEMENT label ( %text; ) * >
<!ATTLIST label
i d C D A T A # I M P L I E D
>
<!-- An entry for the general index.
T h e t e x t t h a t i s c o n t a i n e d a p p e a r s i n t h e i n d e x , a n d n e v e r i n
t h e t e x t i t s e l f .
I f t h e i d a t t r i b u t e i s o m i t t e d , t h e t e x t i s u s e d i n i t s p l a c e .
- - >
<!ELEMENT entry ( %text; ) * >
<!ATTLIST entry
i d C D A T A # I M P L I E D
>
<!-- 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; ) * >
<!-- ***** Argument elements. ***** -->
<!-- An argument. -->
<!ELEMENT arg ( #PCDATA ) * >
<!ATTLIST arg
t y p e C D A T A # I M P L I E D
>
<!-- Denotes that the rest of the arguments is a variable list,
l i k e i n p r i n t f ( ) .
- - >
<!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
i s u s e d t o o v e r r i d e s o m e i n f o r m a t i o n f r o m t h e s a m e m e t h o d i n t h e
s u p e r c l a s s .
I f f a c t o r y n o t s e t , i n s t a n c e m e t h o d
- - >
<!ELEMENT method ( ( ( sel , arg ? ) , ( sel , arg ) * , vararg ? ) , desc ? , standards ? ) >
<!ATTLIST method
t y p e C D A T A # I M P L I E D
f a c t o r y %boolean; "no"
i n i t %boolean; "no"
o v e r r i d e ( s u b c l a s s | n e v e r ) # I M P L I E D
>
<!-- ***** Elements for definitions of classes, functions, etc. ***** -->
<!-- Show what header file something lives in. -->
<!ELEMENT declared ( #PCDATA ) * >
<!-- A macro definition. -->
<!ELEMENT macro ( ( arg * , vararg ? ) , declared ? , desc ? , standards ? ) >
<!ATTLIST macro
n a m e C D A T A # R E Q U I R E D
>
<!-- A type definition. -->
2002-02-04 20:20:07 +00:00
<!ELEMENT type ( declared ? , desc ? , standards ? ) >
2001-10-17 20:58:12 +00:00
<!ATTLIST type
n a m e C D A T A # R E Q U I R E D
2002-02-04 20:20:07 +00:00
t y p e C D A T A # R E Q U I R E D
2001-10-17 20:58:12 +00:00
>
<!-- Variable definition.
V A L U E m a y b e s e t f o r a c o n s t a n t o r a d e f a u l t v a l u e
- - >
<!ELEMENT variable ( declared ? , desc ? , standards ? ) >
<!ATTLIST variable
n a m e C D A T A # R E Q U I R E D
t y p e C D A T A # R E Q U I R E D
v a l u e C D A T A # I M P L I E D
>
<!-- Ivariable definition.
- - >
2002-01-08 17:31:38 +00:00
<!ELEMENT ivariable ( desc ? , standards ? ) >
2001-10-17 20:58:12 +00:00
<!ATTLIST ivariable
n a m e C D A T A # R E Q U I R E D
t y p e C D A T A # R E Q U I R E D
2002-01-08 17:31:38 +00:00
v a l i d i t y ( p u b l i c | p r o t e c t e d | p r i v a t e ) "public"
2001-10-17 20:58:12 +00:00
>
<!-- Constant definition.
V A L U E m a y b e s e t f o r a c o n s t a n t o r a d e f a u l t v a l u e
- - >
<!ELEMENT constant ( declared ? , desc ? , standards ? ) >
<!ATTLIST constant
n a m e C D A T A # R E Q U I R E D
2002-01-08 17:31:38 +00:00
t y p e C D A T A # R E Q U I R E D
2001-10-17 20:58:12 +00:00
v a l u e C D A T A # I M P L I E D
r o l e ( e x c e p t | d e f a u l t s | n o t i f y | k e y ) # I M P L I E D
>
<!-- A function definition. -->
<!ELEMENT function ( ( arg * , vararg ? ) , declared ? , desc ? , standards ? ) >
<!ATTLIST function
n a m e C D A T A # R E Q U I R E D
t y p e C D A T A # R E Q U I R E D
>
<!-- Protocol definition. -->
2001-12-16 06:41:53 +00:00
<!ELEMENT protocol ( declared ? , conform * , desc ? , method * , standards ? ) >
2001-10-17 20:58:12 +00:00
<!ATTLIST protocol
n a m e C D A T A # R E Q U I R E D
>
<!-- Category definition. -->
<!ELEMENT category ( declared ? , conform * , desc ? , method * , standards ? ) >
<!ATTLIST category
n a m e C D A T A # R E Q U I R E D
c l a s s C D A T A # R E Q U I R E D
>
<!-- Show a protocol a class conforms to. -->
<!ELEMENT conform ( #PCDATA ) * >
<!ELEMENT class ( declared ? , conform * , desc ? , ivariable * , method * , standards ? ) >
<!ATTLIST class
n a m e C D A T A # R E Q U I R E D
s u p e r C D A T A # I M P L I E D
>
<!-- ***** Elements for definitions of EOModels, etc. ***** -->
<!-- a dictionary Item. -->
<!ELEMENT dictionaryItem ( %block; ) * >
<!ATTLIST dictionaryItem
k e y C D A T A # R E Q U I R E D
v a l u e C D A T A # I M P L I E D
>
<!-- a dictionary -->
<!ELEMENT dictionary ( dictionaryItem + ) >
<!ELEMENT EOConnectionDictionary ( dictionaryItem + ) >
<!ELEMENT EOUserDictionary ( dictionaryItem + ) >
<!-- ***** Elements for definitions of EOModels, etc. ***** -->
<!-- EORelationshipComponent -->
<!ELEMENT EORelationshipComponent ( EORelationshipComponent * ) >
<!ATTLIST EORelationshipComponent
d e f i n i t i o n C D A T A # R E Q U I R E D
>
<!-- EOJoin -->
<!ELEMENT EOJoin ( desc ? ) >
<!ATTLIST EOJoin
r e l a t i o n s h i p N a m e C D A T A # I M P L I E D
j o i n O p e r a t o r C D A T A # R E Q U I R E D
j o i n S e m a n t i c C D A T A # R E Q U I R E D
s o u r c e A t t r i b u t e C D A T A # R E Q U I R E D
d e s t i n a t i o n A t t r i b u t e C D A T A # R E Q U I R E D
>
<!-- EORelationship -->
<!ELEMENT EORelationship ( ( EORelationshipComponent | ( EOJoin * ) ) , EOUserDictionary ? , desc ? ) >
<!ATTLIST EORelationship
e n t i t y N a m e C D A T A # R E Q U I R E D
d e s t i n a t i o n E n t i t y N a m e C D A T A # R E Q U I R E D
n a m e C D A T A # R E Q U I R E D
i s T o M a n y C D A T A # I M P L I E D
>
<!-- EOAttributeRef -->
<!ELEMENT EOAttributeRef EMPTY >
<!ATTLIST EOAttributeRef
n a m e C D A T A # R E Q U I R E D
>
<!-- EOPrimaryKeyAttributes -->
<!ELEMENT EOPrimaryKeyAttributes ( EOAttributeRef + ) >
<!-- EOClassProperties -->
<!ELEMENT EOClassProperties ( ( EOAttributeRef ) + ) >
<!-- EOAttributesUsedForLocking -->
<!ELEMENT EOAttributesUsedForLocking ( EOAttributeRef + ) >
<!-- EOAttribute -->
<!ELEMENT EOAttribute ( EOUserDictionary ? , desc ? ) >
<!ATTLIST EOAttribute
c o l u m n N a m e C D A T A # I M P L I E D
d e f i n i t i o n C D A T A # I M P L I E D
e x t e r n a l T y p e C D A T A # I M P L I E D
n a m e C D A T A # R E Q U I R E D
v a l u e C l a s s N a m e C D A T A # I M P L I E D
v a l u e T y p e C D A T A # I M P L I E D
e n t i t y N a m e C D A T A # I M P L I E D
i s R e a d O n l y C D A T A # I M P L I E D
i s D e r i v e d C D A T A # I M P L I E D
i s F l a t t e n e d C D A T A # I M P L I E D
>
<!-- EOEntity -->
<!ELEMENT EOEntity ( EOAttribute * , EOAttributesUsedForLocking ? , EOClassProperties ? , EOPrimaryKeyAttributes ? , EORelationship * , EOUserDictionary ? , desc ? ) >
<!ATTLIST EOEntity
n a m e C D A T A # R E Q U I R E D
e x t e r n a l N a m e C D A T A # I M P L I E D
c l a s s N a m e C D A T A # I M P L I E D
m o d e l N a m e C D A T A # I M P L I E D
i s R e a d O n l y C D A T A # I M P L I E D
>
<!-- EOModel -->
<!ELEMENT EOModel ( EOConnectionDictionary ? , ( EOEntity + | list ) , EOUserDictionary ? , desc ? ) >
<!ATTLIST EOModel
n a m e C D A T A # R E Q U I R E D
v e r s i o n C D A T A # I M P L I E D
a d a p t o r N a m e C D A T A # R E Q U I R E D
a d a p t o r C l a s s N a m e C D A T A # R E Q U I R E D
>
<!-- ***** Elements for ordinary block level elements. ***** -->
<!-- A line break. -->
<!ELEMENT br EMPTY >
<!-- A paragraph. -->
<!ELEMENT p ( %text; ) * >
<!-- An example. -->
<!ELEMENT example ( #PCDATA ) * >
<!ATTLIST example
c a p t i o n C D A T A # I M P L I E D
>
<!-- An embedded object. If it is of a type that the SGML processor
c a n n o t h a n d l e , t h e n u s e t h e c o n t e n t , w h i c h i s i g n o r e d o t h e r w i s e .
r e f e r - m e t h o d o f r e f e r r i n g t o o b j e c t ( d e f a u l t i s f i l e )
s r c - t h e r e f e r e n c e t o t h e o b j e c t
t y p e - I n t e r n e t m e d i a t y p e o f t h e o b j e c
t i t l e - o p t i o n a l t i t l e d e s c r i b i n g o b j e c t
- - >
<!ELEMENT embed ( %block; ) * >
<!ATTLIST embed
r e f e r ( f i l e | u r l ) # I M P L I E D
s r c C D A T A # R E Q U I R E D
t y p e C D A T A # I M P L I E D
t i t l e C D A T A # I M P L I E D
>
<!-- ***** Elements for document structure such as chapters. ***** -->
<!-- A heading for chapters, sections, ... -->
<!ELEMENT heading ( %text; ) * >
<!-- A subsubsection. -->
<!ELEMENT subsubsect ( heading , ( %defblock; ) * ) >
<!ATTLIST subsubsect
i d C D A T A # I M P L I E D
>
<!-- A subsection. -->
<!ELEMENT subsect ( heading , ( %defblock; ) * , subsubsect * ) >
<!ATTLIST subsect
i d C D A T A # I M P L I E D
>
<!-- A section. -->
<!ELEMENT section ( heading , ( %defblock; ) * , subsect * ) >
<!ATTLIST section
i d C D A T A # I M P L I E D
>
<!-- A chapter. -->
<!ELEMENT chapter ( heading , ( %defblock; ) * , section * ) >
<!ATTLIST chapter
i d C D A T A # I M P L I E D
>
<!-- ***** Elements that make searching for things easier. ***** -->
<!-- Table of contents. -->
<!ELEMENT contents EMPTY >
2001-12-18 09:57:11 +00:00
<!-- Index ... generates an index of the specified type of elements.
'scope' d e t e r m i n e s w h e t h e r t h e i n d e x i s g e n e r a t e d f o r t h e c u r r e n t f i l e
2002-01-05 10:11:34 +00:00
o r f o r t h e w h o l e o f t h e c u r r e n t p r o j e c t , o r f o r e v e r y t h i n g t h e s o f t w a r e
c a n f i n d ( g l o b a l ) . . . i f t h e d o c u m e n t i s p r o c e s s e d i n a s t a n d a l o n e m a n n e r ,
t h e s c o p e i f a l w a y s f i l e . F o r m e t h o d o r i v a r i a b l e i n d e x i n g , i f t h e i n d e x
i s i n s i d e a c l a s s , p r o t o c o l , o r c a t e g o r y , o n l y i n d e x e s f o r t h a t u n i t
s h o u l d b e g e n e r a t e d .
2001-12-18 09:57:11 +00:00
'type' d e t e r m i n e s t h e t y p e o f e n t r y l i s t e d i n t h e i n d e x . T h e 'title'
t y p e r e a l l y o n l y m a k e s s e n s e f o r a p r o j e c t s c o p e i n d e x a s i t p r o d u c e s
a l i s t o f t h e f i l e s i n t h e p r o j e c t ( b y t i t l e ) .
- - >
2001-10-17 20:58:12 +00:00
<!ELEMENT index EMPTY >
<!ATTLIST index
2001-12-18 09:57:11 +00:00
t y p e ( c l a s s | p r o t o c o l | m e t h o d | i v a r i a b l e | f u n c t i o n | t y p e | m a c r o | v a r i a b l e | c o n s t a n t | l a b e l | t i t l e ) "label"
2002-01-05 10:11:34 +00:00
s c o p e ( f i l e | p r o j e c t | g l o b a l ) "file"
2001-10-17 20:58:12 +00:00
>
<!-- ***** 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
n a m e C D A T A # R E Q U I R E D
>
<!-- 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 and/or
i n d i c e s .
- - >
<!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
b a s e C D A T A # I M P L I E D
n e x t C D A T A # I M P L I E D
p r e v C D A T A # I M P L I E D
u p C D A T A # I M P L I E D
s t y l e s h e e t u r l C D A T A # I M P L I E D
>