| <!-- =================================================================== |
| |
| Apache Documentation DTD (Version 1.1) |
| |
| PURPOSE: |
| This DTD was developed to create a simple yet powerful document |
| type for software documentation for use with the Apache projects. |
| It is an XML-compliant DTD and it's maintained by the Apache XML |
| project. |
| |
| TYPICAL INVOCATION: |
| |
| <!DOCTYPE document PUBLIC |
| "-//APACHE//DTD Documentation Vx.y//EN" |
| "document-vxy.dtd"> |
| |
| where |
| |
| x := major version |
| y := minor version |
| |
| NOTES: |
| Many of the design patterns used in this DTD were take from the |
| W3C XML Specification DTD edited by Eve Maler <elm@arbortext.com>. |
| |
| Where possible, great care has been used to reuse HTML tag |
| names to reduce learning efforts and to allow HTML editors to be |
| used for complex authorings like tables and lists. |
| |
| EXTENSIBILITY: |
| This DTD includes several empty placeholders that can be used to |
| extend it. These placeholders are implemented with empty entities. Here |
| is the list of those empty entities and what they are used for: |
| |
| - local.inline: this entity should contain extended definitions of |
| elements that can be used 'inline', or directly inside |
| the content. An example for this entity could be |
| |
| <!ENTITY % local.inline "|citation"> |
| |
| - local.blocks: this entity should contain extended definitions of |
| elements that behave as 'blocks', thus can be visually |
| rendered as areas on the canvas. An example for this |
| entity could be: |
| |
| <!ENTITY % local.blocks "|poem"> |
| |
| - local.sections: this entity should contain extended definitions of |
| elements that behave as 'sections', thus can be considered |
| containers of block-level elements. An example for |
| this entity could be: |
| |
| <!ENTITY % local.sections "|chapter"> |
| |
| - local.headers: this entity should contain extended definitions of |
| elements that behave as parts of the document header. |
| An example for this header could be: |
| |
| <!ENTITY % local.headers ", notes?"> |
| |
| - local.footers: this entity should contain extended definitions of |
| elements that behave as parts of the document footer. |
| An example for this header could be: |
| |
| <!ENTITY % local.footers ", annotations*"> |
| |
| |
| AUTHORS: |
| Stefano Mazzocchi <stefano@apache.org> |
| Steven Noels <stevenn@outerthought.org> |
| |
| FIXME: |
| - should "form" tags be included? |
| |
| CHANGE HISTORY: |
| [Version 1.0] |
| 19991121 Initial version. (SM) |
| 19991123 Replaced "res" with more standard "strong" for emphasis. (SM) |
| 19991124 Added "fork" element for window forking behavior. (SM) |
| 19991124 Added "img-inline" element to separate from "img". (SM) |
| 19991129 Removed "affiliation" from "author". (SM) |
| 19991129 Made "author" empty and moved "name|email" as attributes. (SM) |
| 19991215 Simplified table section. (SM) |
| 19991215 Changed "img-block" in more friendly "figure". (SM) |
| 20000125 Added the "icon" image. (SM) |
| 20000126 Allowed "anchor" in all levels. (SM) |
| 20000404 Removed the "role" attribute from common-xxx.att. (SM) |
| 20000815 Allowed "code" inside "strong" and "em". (SM) |
| [Version 1.1] |
| 20011212 Used public identifiers for external entities. (SM) |
| 20011212 Removed xlink attributes since not used. (SM) |
| 20011212 Removed "connect" since not required at this level. (SM) |
| 20011218 Added "warning" as a block level object. (SM) |
| 20011218 Removed explicitly numbered sections ("s1|s2|s3|s4"). (SM) |
| 20011218 Added "section" element. (SM) |
| 20011218 Allowed "body" to have blocks without a section. (SM) |
| 20011218 Removed "sl" since not really different from "ul". (SM) |
| 20020214 Moved empty placeholder entity declarations up front (SNS) |
| 20020214 Corrected content model of content.mix parameter entity (SNS) |
| |
| COPYRIGHT: |
| Copyright (c) @year@ The Apache Software Foundation. |
| |
| Permission to copy in any form is granted provided this notice is |
| included in all copies. Permission to redistribute is granted |
| provided this file is distributed untouched in all its parts and |
| included files. |
| |
| ==================================================================== --> |
| |
| |
| |
| |
| <!-- =============================================================== --> |
| <!-- Common character entities (included from external file) --> |
| <!-- =============================================================== --> |
| |
| <!ENTITY % ISOlat1 PUBLIC |
| "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML" |
| "ISOlat1.pen"> |
| %ISOlat1; |
| |
| <!ENTITY % ISOpub PUBLIC |
| "ISO 8879:1986//ENTITIES Publishing//EN//XML" |
| "ISOpub.pen"> |
| %ISOpub; |
| |
| <!ENTITY % ISOtech PUBLIC |
| "ISO 8879:1986//ENTITIES General Technical//EN//XML" |
| "ISOtech.pen"> |
| %ISOtech; |
| |
| <!ENTITY % ISOnum PUBLIC |
| "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML" |
| "ISOnum.pen"> |
| %ISOnum; |
| |
| <!ENTITY % ISOdia PUBLIC |
| "ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML" |
| "ISOdia.pen"> |
| %ISOdia; |
| |
| <!-- =============================================================== --> |
| <!-- Useful entities for increased DTD readability --> |
| <!-- =============================================================== --> |
| |
| <!ENTITY % text "#PCDATA"> |
| |
| <!-- Entities referred to later on are defined up front --> |
| |
| <!ENTITY % markup "strong|em|code|sub|sup"> |
| <!ENTITY % special-inline "br|img|icon"> |
| <!ENTITY % links "link|jump|fork"> |
| <!ENTITY % paragraphs "p|source|note|warning|fixme"> |
| <!ENTITY % tables "table"> |
| <!ENTITY % lists "ol|ul|dl"> |
| <!ENTITY % special-blocks "figure|anchor"> |
| |
| |
| <!-- =============================================================== --> |
| <!-- Entities for general XML compliance --> |
| <!-- =============================================================== --> |
| |
| <!-- Common attributes |
| Every element has an ID attribute (sometimes required, |
| but usually optional) for links. %common.att; |
| is for common attributes where the ID is optional, and |
| %common-idreq.att; is for common attributes where the |
| ID is required. |
| --> |
| <!ENTITY % common.att |
| 'id ID #IMPLIED |
| xml:lang NMTOKEN #IMPLIED'> |
| <!ENTITY % common-idreq.att |
| 'id ID #REQUIRED |
| xml:lang NMTOKEN #IMPLIED'> |
| |
| |
| <!-- xml:space attribute =============================================== |
| Indicates that the element contains white space |
| that the formatter or other application should retain, |
| as appropriate to its function. |
| ==================================================================== --> |
| <!ENTITY % xmlspace.att |
| 'xml:space (default|preserve) #FIXED "preserve"'> |
| |
| |
| <!-- def attribute ===================================================== |
| Points to the element where the relevant definition can be |
| found, using the IDREF mechanism. %def.att; is for optional |
| def attributes, and %def-req.att; is for required def |
| attributes. |
| ==================================================================== --> |
| <!ENTITY % def.att |
| 'def IDREF #IMPLIED'> |
| <!ENTITY % def-req.att |
| 'def IDREF #REQUIRED'> |
| |
| |
| <!-- ref attribute ===================================================== |
| Points to the element where more information can be found, |
| using the IDREF mechanism. %ref.att; is for optional |
| ref attributes, and %ref-req.att; is for required ref |
| attributes. |
| ================================================================== --> |
| <!ENTITY % ref.att |
| 'ref IDREF #IMPLIED'> |
| <!ENTITY % ref-req.att |
| 'ref IDREF #REQUIRED'> |
| |
| |
| <!-- =============================================================== --> |
| <!-- Entities for general usage --> |
| <!-- =============================================================== --> |
| |
| |
| <!-- Key attribute ===================================================== |
| Optionally provides a sorting or indexing key, for cases when |
| the element content is inappropriate for this purpose. |
| ==================================================================== --> |
| <!ENTITY % key.att |
| 'key CDATA #IMPLIED'> |
| |
| |
| |
| <!-- Title attributes ================================================== |
| Indicates that the element requires to have a title attribute. |
| ==================================================================== --> |
| <!ENTITY % title.att |
| 'title CDATA #REQUIRED'> |
| |
| |
| |
| <!-- Name attributes ================================================== |
| Indicates that the element requires to have a name attribute. |
| ==================================================================== --> |
| <!ENTITY % name.att |
| 'name CDATA #REQUIRED'> |
| |
| |
| |
| <!-- Email attributes ================================================== |
| Indicates that the element requires to have an email attribute. |
| ==================================================================== --> |
| <!ENTITY % email.att |
| 'email CDATA #REQUIRED'> |
| |
| |
| <!-- Link attributes =================================================== |
| Indicates that the element requires to have hyperlink attributes. |
| ==================================================================== --> |
| |
| <!ENTITY % link.att |
| 'href CDATA #IMPLIED |
| role CDATA #IMPLIED |
| title CDATA #IMPLIED '> |
| |
| |
| |
| <!-- =============================================================== --> |
| <!-- General definitions --> |
| <!-- =============================================================== --> |
| |
| <!-- A person is a general human entity --> |
| <!ELEMENT person EMPTY> |
| <!ATTLIST person %common.att; |
| %name.att; |
| %email.att;> |
| |
| |
| |
| <!-- =============================================================== --> |
| <!-- Content definitions --> |
| <!-- =============================================================== --> |
| |
| <!ENTITY % local.inline ""> |
| |
| <!ENTITY % link-content.mix "%text;|%markup;|%special-inline; %local.inline;"> |
| |
| <!ENTITY % content.mix "%link-content.mix;|%links;"> |
| |
| <!-- ==================================================== --> |
| <!-- Phrase Markup --> |
| <!-- ==================================================== --> |
| |
| <!-- Strong (typically bold) --> |
| <!ELEMENT strong (%text;|code)*> |
| <!ATTLIST strong %common.att;> |
| |
| <!-- Emphasis (typically italic) --> |
| <!ELEMENT em (%text;|code)*> |
| <!ATTLIST em %common.att;> |
| |
| <!-- Code (typically monospaced) --> |
| <!ELEMENT code (%text;)> |
| <!ATTLIST code %common.att;> |
| |
| <!-- Superscript (typically smaller and higher) --> |
| <!ELEMENT sup (%text;)> |
| <!ATTLIST sup %common.att;> |
| |
| <!-- Subscript (typically smaller and lower) --> |
| <!ELEMENT sub (%text;)> |
| <!ATTLIST sub %common.att;> |
| |
| <!-- ==================================================== --> |
| <!-- Hypertextual Links --> |
| <!-- ==================================================== --> |
| |
| <!-- hyperlink (equivalent of <a ...>) --> |
| <!ELEMENT link (%link-content.mix;)*> |
| <!ATTLIST link %common.att; |
| %link.att;> |
| |
| <!-- windows-replacing link (equivalent of <a ... target="_top">) --> |
| <!ELEMENT jump (%link-content.mix;)*> |
| <!ATTLIST jump %common.att; |
| %link.att;> |
| |
| <!-- window-forking link (equivalent of <a ... target="_new">) --> |
| <!ELEMENT fork (%link-content.mix;)*> |
| <!ATTLIST fork %common.att; |
| %link.att;> |
| |
| <!-- ==================================================== --> |
| <!-- Specials --> |
| <!-- ==================================================== --> |
| |
| <!-- Breakline Object (typically forces line break) --> |
| <!ELEMENT br EMPTY> |
| <!ATTLIST br %common.att;> |
| |
| <!-- Image Object (typically an inlined image) --> |
| <!ELEMENT img EMPTY> |
| <!ATTLIST img src CDATA #REQUIRED |
| alt CDATA #REQUIRED |
| height CDATA #IMPLIED |
| width CDATA #IMPLIED |
| usemap CDATA #IMPLIED |
| ismap (ismap) #IMPLIED |
| %common.att;> |
| |
| <!-- Image Icon (typically an inlined image placed as graphical item) --> |
| <!ELEMENT icon EMPTY> |
| <!ATTLIST icon src CDATA #REQUIRED |
| alt CDATA #REQUIRED |
| height CDATA #IMPLIED |
| width CDATA #IMPLIED |
| %common.att;> |
| |
| |
| <!-- =============================================================== --> |
| <!-- Blocks definitions --> |
| <!-- =============================================================== --> |
| |
| <!ENTITY % local.blocks ""> |
| |
| <!ENTITY % blocks "%paragraphs;|%tables;|%lists;|%special-blocks; %local.blocks;"> |
| |
| <!-- ==================================================== --> |
| <!-- Paragraphs --> |
| <!-- ==================================================== --> |
| |
| <!-- Text Paragraph (normally vertically space delimited) --> |
| <!ELEMENT p (%content.mix;)*> |
| <!ATTLIST p %common.att;> |
| |
| <!-- Source Paragraph (normally space is preserved) --> |
| <!ELEMENT source (%content.mix;)*> |
| <!ATTLIST source %common.att; |
| %xmlspace.att;> |
| |
| <!-- Note Paragraph (normally shown encapsulated) --> |
| <!ELEMENT note (%content.mix;)*> |
| <!ATTLIST note %common.att;> |
| |
| <!-- Warning Paragraph (normally shown with eye-catching colors) --> |
| <!ELEMENT warning (%content.mix;)*> |
| <!ATTLIST warning %common.att;> |
| |
| <!-- Fixme Paragraph (normally not shown) --> |
| <!ELEMENT fixme (%content.mix;)*> |
| <!ATTLIST fixme author CDATA #REQUIRED |
| %common.att;> |
| |
| <!-- ==================================================== --> |
| <!-- Tables --> |
| <!-- ==================================================== --> |
| |
| <!-- Attributes that indicate the spanning of the table cell --> |
| <!ENTITY % cell.span |
| 'colspan CDATA "1" |
| rowspan CDATA "1"'> |
| |
| <!-- Table element --> |
| <!ELEMENT table (caption?, tr+)> |
| <!ATTLIST table %common.att;> |
| |
| <!-- The table title --> |
| <!ELEMENT caption (%content.mix;)*> |
| <!ATTLIST caption %common.att;> |
| |
| <!-- The table row element --> |
| <!ELEMENT tr (th|td)+> |
| <!ATTLIST tr %common.att;> |
| |
| <!-- The table row header element --> |
| <!ELEMENT th (%content.mix;)*> |
| <!ATTLIST th %common.att; |
| %cell.span;> |
| |
| <!-- The table row description element --> |
| <!ELEMENT td (%content.mix;)*> |
| <!ATTLIST td %common.att; |
| %cell.span;> |
| |
| <!-- ==================================================== --> |
| <!-- Lists --> |
| <!-- ==================================================== --> |
| |
| <!-- List item --> |
| <!ELEMENT li (%content.mix;|%lists;)*> |
| <!ATTLIST li %common.att;> |
| |
| <!-- Unordered list (typically bulleted) --> |
| <!ELEMENT ul (li|%lists;)+> |
| <!-- spacing attribute: |
| Use "normal" to get normal vertical spacing for items; |
| use "compact" to get less spacing. The default is dependent |
| on the stylesheet. --> |
| <!ATTLIST ul |
| %common.att; |
| spacing (normal|compact) #IMPLIED> |
| |
| <!-- Ordered list (typically numbered) --> |
| <!ELEMENT ol (li|%lists;)+> |
| <!-- spacing attribute: |
| Use "normal" to get normal vertical spacing for items; |
| use "compact" to get less spacing. The default is dependent |
| on the stylesheet. --> |
| <!ATTLIST ol |
| %common.att; |
| spacing (normal|compact) #IMPLIED> |
| |
| <!-- Definition list (typically two-column) --> |
| <!ELEMENT dl (dt,dd)+> |
| <!ATTLIST dl %common.att;> |
| |
| <!-- Definition term --> |
| <!ELEMENT dt (%content.mix;)*> |
| <!ATTLIST dt %common.att;> |
| |
| <!-- Definition description --> |
| <!ELEMENT dd (%content.mix;)*> |
| <!ATTLIST dd %common.att;> |
| |
| <!-- ==================================================== --> |
| <!-- Special Blocks --> |
| <!-- ==================================================== --> |
| |
| <!-- Image Block (typically a separated and centered image) --> |
| <!ELEMENT figure EMPTY> |
| <!ATTLIST figure src CDATA #REQUIRED |
| alt CDATA #REQUIRED |
| height CDATA #IMPLIED |
| width CDATA #IMPLIED |
| usemap CDATA #IMPLIED |
| ismap (ismap) #IMPLIED |
| %common.att;> |
| |
| <!-- anchor point (equivalent of <a name="...">, typically not rendered) --> |
| <!ELEMENT anchor EMPTY> |
| <!ATTLIST anchor %common-idreq.att;> |
| |
| |
| <!-- =============================================================== --> |
| <!-- Document --> |
| <!-- =============================================================== --> |
| |
| <!ELEMENT document (header?, body, footer?)> |
| <!ATTLIST document %common.att;> |
| |
| <!-- ==================================================== --> |
| <!-- Header --> |
| <!-- ==================================================== --> |
| |
| <!ENTITY % local.headers ""> |
| |
| <!ELEMENT header (title, subtitle?, version?, type?, authors, |
| notice*, abstract? %local.headers;)> |
| <!ATTLIST header %common.att;> |
| |
| <!ELEMENT title (%text;)> |
| <!ATTLIST title %common.att;> |
| |
| <!ELEMENT subtitle (%text;)> |
| <!ATTLIST subtitle %common.att;> |
| |
| <!ELEMENT version (%text;)> |
| <!ATTLIST version %common.att;> |
| |
| <!ELEMENT type (%text;)> |
| <!ATTLIST type %common.att;> |
| |
| <!ELEMENT authors (person+)> |
| <!ATTLIST authors %common.att;> |
| |
| <!ELEMENT notice (%content.mix;)*> |
| <!ATTLIST notice %common.att;> |
| |
| <!ELEMENT abstract (%content.mix;)*> |
| <!ATTLIST abstract %common.att;> |
| |
| <!-- ==================================================== --> |
| <!-- Body --> |
| <!-- ==================================================== --> |
| |
| <!ENTITY % local.sections ""> |
| |
| <!ENTITY % sections "section %local.sections;"> |
| |
| <!ELEMENT body (%sections;|%blocks;)+> |
| <!ATTLIST body %common.att;> |
| |
| <!ELEMENT section (%sections;|%blocks;)*> |
| <!ATTLIST section %title.att; %common.att;> |
| |
| <!-- ==================================================== --> |
| <!-- Footer --> |
| <!-- ==================================================== --> |
| |
| <!ENTITY % local.footers ""> |
| |
| <!ELEMENT footer (legal %local.footers;)> |
| |
| <!ELEMENT legal (%content.mix;)*> |
| <!ATTLIST legal %common.att;> |
| |
| <!-- =============================================================== --> |
| <!-- End of DTD --> |
| <!-- =============================================================== --> |