1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
6
<TITLE>AdaBrowse DTD 1.1</TITLE>
7
<META NAME="description" CONTENT="AdaBrowse DTD 1.1">
8
<LINK REL="stylesheet" HREF="gal.css" TYPE="text/css">
11
<BODY BGCOLOR="#FFFFF4">
13
<TABLE WIDTH="100%" BORDER=0 CELLSPACING=0 CELLPADDING=5 CLASS="title">
16
<H1 ALIGN="CENTER">AdaBrowse DTD 1.1</H1>
25
This file is part of <A HREF="adabrowse_ug.html">AdaBrowse</A>.
27
<STRONG>Copyright © 2002-2003 by Thomas Wolf.</STRONG>
29
AdaBrowse is free software; you can redistribute it and/or modify it
30
under the terms of the GNU General Public License as published by the
31
Free Software Foundation; either version 2, or (at your option) any
32
later version. AdaBrowse is distributed in the hope that it will be
33
useful, but <EM>without any warranty</EM>; without even the implied warranty
34
of <EM>merchantability or fitness for a particular purpose.</EM> See the GNU
35
General Public License for more details. You should have received a
36
copy of the GNU General Public License with this distribution, see file
37
"<A HREF="GPL.txt">GPL.txt</A>". If not, write to the
39
Free Software Foundation
40
59 Temple Place - Suite 330
44
<STRONG>Author:</STRONG>
47
<STRONG>Purpose:</STRONG>
48
XML 1.0 Document Type Definition for AdaBrowse XML files.
50
<STRONG>Version:</STRONG>
51
AdaBrowse DTD 1.1 (generated by <A HREF="adabrowse_ug.html">AdaBrowse</A> 3.4).<BR>
54
<A HREF="adabrowse_dtd_1_0.html">AdaBrowse DTD 1.0</A> generated by AdaBrowse 3.0 up to 3.3.
55
(Has no PRIVATE attribute for the UNIT and CHILD elements.)
58
<A HREF="adabrowse_dtd_2_0.html">AdaBrowse DTD 2.0</A> generated by AdaBrowse 4.0.
63
20-AUG-2002 TW Initial version.
64
28-AUG-2002 TW Corrections in cross-references.
65
30-MAY-2003 TW Added private attributes to UNIT and CHILD elements.
68
<!ENTITY % <A NAME="pure">pure</A> "#PCDATA|<A HREF="#EL_KEYWORD">KEYWORD</A>|<A HREF="#EL_ATTRIBUTE">ATTRIBUTE</A>|<A HREF="#EL_XREF">XREF</A>|<A HREF="#EL_LITERAL">LITERAL</A>" >
69
<!ENTITY % <A NAME="inline">inline</A> "%<A HREF="#pure">pure</A>;|<A HREF="#EL_ANCHOR">ANCHOR</A>|<A HREF="#EL_COMMENT">COMMENT</A>|<A HREF="#EL_CODE">CODE</A>" >
71
<!ENTITY % <A NAME="lib_no_container">lib_no_container</A>
76
A_PACKAGE_INSTANTIATION|
77
A_PROCEDURE_INSTANTIATION |
78
A_FUNCTION_INSTANTIATION |
80
A_PROCEDURE_RENAMING |
82
A_GENERIC_PACKAGE_RENAMING |
83
A_GENERIC_PROCEDURE_RENAMING |
84
A_GENERIC_FUNCTION_RENAMING" >
86
<!ENTITY % <A NAME="lib_container">lib_container</A>
89
A_GENERIC_SIGNATURE_PACKAGE" >
91
<!ENTITY % <A NAME="no_lib_no_container">no_lib_no_container</A>
101
AN_EXCEPTION_RENAMING |
103
A_PROTECTED_PROCEDURE |
104
A_PROTECTED_FUNCTION |
107
<!ENTITY % <A NAME="no_lib_container">no_lib_container</A>
111
A_PROTECTED_OBJECT" >
113
<!ENTITY % <A NAME="boolean">boolean</A>
116
<!ENTITY % <A NAME="lib">lib</A> "%<A HREF="#lib_no_container">lib_no_container</A>; | %<A HREF="#lib_container">lib_container</A>;" >
118
<!ENTITY % <A NAME="container">container</A> "%<A HREF="#lib_container">lib_container</A>; | %<A HREF="#no_lib_container">no_lib_container</A>;" >
120
<!ENTITY % <A NAME="no_container">no_container</A> "%<A HREF="#lib_no_container">lib_no_container</A>; | %<A HREF="#no_lib_no_container">no_lib_no_container</A>; | A_TASK_TYPE | A_TASK" >
121
<!-- Tasks and task types can also appear as items. -->
123
<!-- Inline elements -->
125
<!ELEMENT <A NAME="EL_KEYWORD">KEYWORD</A> (#PCDATA) >
127
<!ELEMENT <A NAME="EL_ATTRIBUTE">ATTRIBUTE</A> (#PCDATA) >
129
<!ELEMENT <A NAME="EL_LITERAL">LITERAL</A> (#PCDATA) >
131
<!ELEMENT <A NAME="EL_CODE">CODE</A> (%<A HREF="#inline">inline</A>;)* >
133
<!ELEMENT <A NAME="EL_XREF">XREF</A> (#PCDATA|<A HREF="#EL_LITERAL">LITERAL</A>|<A HREF="#EL_KEYWORD">KEYWORD</A>)* >
134
<!-- Actually, I'd like to specify that an XREF may contain either
135
PCDATA, or a LITERAL, or a KEYWORD. It cannot contain PCDATA with
136
interspersed LITERALs and KEYWORDs (which is what the above spec
137
really says). However, there is *no* way in XML 1.0 to specify this!
139
Literals and keywords are allowed within an XREF because of operators
140
such as "&" or "or". -->
142
<!ATTLIST <A HREF="#EL_XREF">XREF</A>
145
IS_TOP (%<A HREF="#boolean">boolean</A>;) "FALSE"
146
IS_LOCAL (%<A HREF="#boolean">boolean</A>;) "FALSE">
147
<!-- XREFs always contain the Unit, even if the cross-reference is local.
148
Local cross-references have IS_LOCAL="TRUE". Cross-references to
149
other compilation UNITs have IS_TOP="TRUE". -->
151
<!ELEMENT <A NAME="EL_ANCHOR">ANCHOR</A> (%<A HREF="#pure">pure</A>;)* >
152
<!ATTLIST <A HREF="#EL_ANCHOR">ANCHOR</A>
155
IS_TOP (%<A HREF="#boolean">boolean</A>;) "FALSE">
156
<!-- ANCHORs always are local, so Unit always will equal the Name of the
157
enclosing compilation UNIT. It is still explicitly repeated in each
158
anchor to facilitate processing: there's no need to go look up the
159
enclosing UNIT's name. Is_Top is TRUE only for the anchor on that
160
compilation unit's name. -->
162
<!-- Note: I briefly considered using attribute types ID and IDREF for
163
ANCHORS and XREFs, respectively. However, that wouldn't have worked,
164
for any IDREF must correspond to some ID in the XML; but our XML may
165
contain references to units in other files. -->
167
<!ELEMENT <A NAME="EL_COMMENT">COMMENT</A> (%<A HREF="#pure">pure</A>;|<A HREF="#EL_ANCHOR">ANCHOR</A>|<A HREF="#EL_CODE">CODE</A>)* >
168
<!-- Comments cannot be nested -->
170
<!-- Block elements -->
172
<!ELEMENT <A NAME="EL_UNIT">UNIT</A> (<A HREF="#EL_DEPENDENCIES">DEPENDENCIES</A>?, <A HREF="#EL_DESCRIPTION">DESCRIPTION</A>?, (<A HREF="#EL_CONTAINER">CONTAINER</A>|<A HREF="#EL_ITEM">ITEM</A>)) >
173
<!ATTLIST <A HREF="#EL_UNIT">UNIT</A>
175
KIND (%<A HREF="#lib">lib</A>;) #REQUIRED
176
PRIVATE (%<A HREF="#boolean">boolean</A>;) "FALSE"
177
POS CDATA #IMPLIED>
178
<!-- Name and Kind of a UNIT can be used to generate indices. Pos can be
179
used for cross-reference purposes; it is the position on the unit's
180
CONTAINER's or ITEM's defining name. PRIVATE is "TRUE" if it's a
181
private compilation unit. -->
183
<!ELEMENT <A NAME="EL_ITEM">ITEM</A> (<A HREF="#EL_SNIPPET">SNIPPET</A>, <A HREF="#EL_DESCRIPTION">DESCRIPTION</A>?) >
184
<!ATTLIST <A HREF="#EL_ITEM">ITEM</A>
186
KIND (%<A HREF="#no_container">no_container</A>;) #IMPLIED
188
POS CDATA #IMPLIED>
189
<!-- Name and Kind of an Item can be used to generate indices. Unit and
190
Pos can be used for cross-reference purposes; it is the position on
191
the item's defining name. -->
193
<!ELEMENT <A NAME="EL_SNIPPET">SNIPPET</A> (<A HREF="#EL_LINE">LINE</A>)+ >
194
<!-- Used for code snippets. Implies <CODE> -->
196
<!ELEMENT <A NAME="EL_LINE">LINE</A> (%<A HREF="#inline">inline</A>;)* >
198
<!ELEMENT <A NAME="EL_DESCRIPTION">DESCRIPTION</A> (<A HREF="#EL_BLOCK">BLOCK</A>)+ >
199
<!ELEMENT <A NAME="EL_BLOCK">BLOCK</A> (<A HREF="#EL_LINE">LINE</A>)+ >
201
<!ELEMENT <A NAME="EL_DEPENDENCIES">DEPENDENCIES</A> (<A HREF="#EL_SNIPPET">SNIPPET</A>, <A HREF="#EL_DESCRIPTION">DESCRIPTION</A>?) >
203
<!ELEMENT <A NAME="EL_CONTAINER">CONTAINER</A> (<A HREF="#EL_HEADER">HEADER</A>, <A HREF="#EL_CONTENT">CONTENT</A>?, <A HREF="#EL_FOOTER">FOOTER</A>) >
204
<!ATTLIST <A HREF="#EL_CONTAINER">CONTAINER</A>
206
KIND (%<A HREF="#container">container</A>;) #IMPLIED
208
POS CDATA #IMPLIED>
209
<!-- Name and Kind of a CONTAINER can be used to generate indices. Unit and
210
Pos can be used for cross-reference purposes; it is the position on the
211
container's defining name. -->
213
<!ELEMENT <A NAME="EL_HEADER">HEADER</A> (<A HREF="#EL_LINE">LINE</A>)* >
215
<!ELEMENT <A NAME="EL_FOOTER">FOOTER</A> (<A HREF="#EL_LINE">LINE</A>)* >
217
<!ELEMENT <A NAME="EL_CONTENT">CONTENT</A> (<A HREF="#EL_TOP_ITEM">TOP_ITEM</A>?, <A HREF="#EL_CHILDREN">CHILDREN</A>?, <A HREF="#EL_EXCEPTIONS">EXCEPTIONS</A>?, <A HREF="#EL_TYPE_SUMMARY">TYPE_SUMMARY</A>?,
218
<A HREF="#EL_CONSTANTS">CONSTANTS</A>?, <A HREF="#EL_VARIABLES">VARIABLES</A>?, <A HREF="#EL_OTHERS">OTHERS</A>?, <A HREF="#EL_PRIVATE">PRIVATE</A>?) >
220
<!ELEMENT <A NAME="EL_TOP_ITEM">TOP_ITEM</A> (<A HREF="#EL_SNIPPET">SNIPPET</A>?, <A HREF="#EL_DESCRIPTION">DESCRIPTION</A>?) >
222
<!ELEMENT <A NAME="EL_CHILDREN">CHILDREN</A> (<A HREF="#EL_CHILD">CHILD</A>)+ >
224
<!ELEMENT <A NAME="EL_CHILD">CHILD</A> (#PCDATA|<A HREF="#EL_XREF">XREF</A>)* >
225
<!-- Actually, I'd like to specify that a CHILD may contain either
226
PCDATA, or an XREF. It cannot contain PCDATA with interspersed XREFs
227
(which is what the above spec really says). However, there is *no* way
228
in XML 1.0 to specify this! -->
230
<!ATTLIST <A HREF="#EL_CHILD">CHILD</A>
232
KIND (%<A HREF="#lib">lib</A>;) #IMPLIED
233
PRIVATE (%<A HREF="#boolean">boolean</A>;) "FALSE">
235
<!ELEMENT <A NAME="EL_PRIVATE">PRIVATE</A> EMPTY >
237
<!ELEMENT <A NAME="EL_EXCEPTIONS">EXCEPTIONS</A> (<A HREF="#EL_EXCEPTION">EXCEPTION</A>)+ >
239
<!ELEMENT <A NAME="EL_EXCEPTION">EXCEPTION</A> ((<A HREF="#EL_EXCEPTION_NAME">EXCEPTION_NAME</A>)+, <A HREF="#EL_EXCEPTION_RENAME">EXCEPTION_RENAME</A>?, <A HREF="#EL_ULTIMATE_EXCEPTION">ULTIMATE_EXCEPTION</A>?, <A HREF="#EL_DESCRIPTION">DESCRIPTION</A>?) >
241
<!ELEMENT <A NAME="EL_EXCEPTION_NAME">EXCEPTION_NAME</A> (#PCDATA|<A HREF="#EL_ANCHOR">ANCHOR</A>)* >
242
<!-- Actually, I'd like to specify that an EXCEPTION_NAME may contain either
243
PCDATA, or an ANCHOR. It cannot contain PCDATA with interspersed ANCHORDs
244
(which is what the above spec really says). However, there is *no* way in
245
XML 1.0 to specify this! -->
247
<!ELEMENT <A NAME="EL_EXCEPTION_RENAME">EXCEPTION_RENAME</A> (%<A HREF="#inline">inline</A>;)*>
249
<!ELEMENT <A NAME="EL_ULTIMATE_EXCEPTION">ULTIMATE_EXCEPTION</A> (%<A HREF="#inline">inline</A>;)*>
251
<!ELEMENT <A NAME="EL_OTHERS">OTHERS</A> (<A HREF="#EL_CONTAINER">CONTAINER</A>|<A HREF="#EL_ITEM">ITEM</A>|<A HREF="#EL_PRIVATE">PRIVATE</A>)+ >
253
<!ELEMENT <A NAME="EL_CONSTANTS">CONSTANTS</A> (<A HREF="#EL_ITEM">ITEM</A>)+ >
255
<!ELEMENT <A NAME="EL_VARIABLES">VARIABLES</A> (<A HREF="#EL_ITEM">ITEM</A>)+ >
257
<!ELEMENT <A NAME="EL_TYPE_SUMMARY">TYPE_SUMMARY</A> (<A HREF="#EL_TYPE">TYPE</A>)+ >
259
<!ELEMENT <A NAME="EL_TYPE">TYPE</A> (<A HREF="#EL_TYPE_NAME">TYPE_NAME</A>, <A HREF="#EL_TYPE_KIND">TYPE_KIND</A>?, <A HREF="#EL_PARENT_TYPE">PARENT_TYPE</A>?, <A HREF="#EL_OPERATIONS">OPERATIONS</A>?) >
261
<!ELEMENT <A NAME="EL_TYPE_NAME">TYPE_NAME</A> (#PCDATA|<A HREF="#EL_XREF">XREF</A>)* >
262
<!-- Actually, I'd like to specify that a TYPE_NAME may contain either
263
PCDATA, or an XREF. It cannot contain PCDATA with interspersed XREFs
264
(which is what the above spec really says). However, there is *no* way
265
in XML 1.0 to specify this! -->
267
<!ELEMENT <A NAME="EL_TYPE_KIND">TYPE_KIND</A> (#PCDATA)>
269
<!ELEMENT <A NAME="EL_PARENT_TYPE">PARENT_TYPE</A> (#PCDATA|<A HREF="#EL_XREF">XREF</A>)* >
270
<!-- Actually, I'd like to specify that a PARENT_TYPE may contain either
271
PCDATA, or an XREF. It cannot contain PCDATA with interspersed XREFs
272
(which is what the above spec really says). However, there is *no* way
273
in XML 1.0 to specify this! -->
275
<!ELEMENT <A NAME="EL_OPERATIONS">OPERATIONS</A> (<A HREF="#EL_OPLIST">OPLIST</A>)+ >
277
<!ELEMENT <A NAME="EL_OPLIST">OPLIST</A> (<A HREF="#EL_XREF">XREF</A>)+ >
278
<!ATTLIST <A HREF="#EL_OPLIST">OPLIST</A>
279
KIND (OVERRIDDEN|OWN|INHERITED) #REQUIRED>
281
<!-- Document root -->
283
<!ELEMENT <A NAME="EL_ADABROWSE">ADABROWSE</A> (<A HREF="#EL_UNIT">UNIT</A>)+ >
289
<!--================================================================-->
290
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=5 WIDTH="100%" CLASS="footer">
292
<TD WIDTH="100%" ALIGN="left" NOWRAP>
293
<FONT SIZE=-1>Copyright © 2002-2003 by Thomas Wolf. All rights
297
<FONT SIZE=-1>TW, May 30, 2003</FONT>