123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- This file is part of DocBook V5.0
-
- Copyright 1992-2008 HaL Computer Systems, Inc.,
- O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
- Corporation, Norman Walsh, Sun Microsystems, Inc., and the
- Organization for the Advancement of Structured Information
- Standards (OASIS).
-
- Release: $Id: pool.rnc 7466 2007-09-27 14:03:55Z nwalsh $
-
- Permission to use, copy, modify and distribute the DocBook schema
- and its accompanying documentation for any purpose and without fee
- is hereby granted in perpetuity, provided that the above copyright
- notice and this paragraph appear in all copies. The copyright
- holders make no representation about the suitability of the schema
- for any purpose. It is provided "as is" without expressed or implied
- warranty.
-
- If you modify the DocBook schema in any way, label your schema as a
- variant of DocBook. See the reference documentation
- (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook)
- for more information.
-
- Please direct all questions, bug reports, or suggestions for changes
- to the docbook@lists.oasis-open.org mailing list. For more
- information, see http://www.oasis-open.org/docbook/.
-
- ======================================================================
- -->
- <grammar ns="http://docbook.org/ns/docbook" xmlns:db="http://docbook.org/ns/docbook" xmlns:s="http://purl.oclc.org/dsdl/schematron" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" xmlns="http://relaxng.org/ns/structure/1.0">
- <start combine="choice">
- <choice>
- <ref name="db.synopsis.blocks"/>
- <ref name="db.funcsynopsisinfo"/>
- <ref name="db.classsynopsisinfo"/>
- </choice>
- </start>
- <define name="db.domain.inlines" combine="choice">
- <ref name="db.programming.inlines"/>
- </define>
- <define name="db.nopara.blocks" combine="choice">
- <ref name="db.synopsis.blocks"/>
- </define>
- <define name="db.cover.contentmodel" combine="choice">
- <ref name="db.synopsis.blocks"/>
- </define>
- <define name="db.verbatim.blocks" combine="choice">
- <choice>
- <ref name="db.programlisting"/>
- <ref name="db.synopsis"/>
- </choice>
- </define>
- <define name="db.programming.inlines">
- <choice>
- <ref name="db.function"/>
- <ref name="db.parameter"/>
- <ref name="db.varname"/>
- <ref name="db.returnvalue"/>
- <ref name="db.type"/>
- <ref name="db.classname"/>
- <ref name="db.exceptionname"/>
- <ref name="db.interfacename"/>
- <ref name="db.methodname"/>
- <ref name="db.modifier"/>
- <ref name="db.initializer"/>
- <ref name="db.oo.inlines"/>
- </choice>
- </define>
- <define name="db.oo.inlines">
- <choice>
- <ref name="db.ooclass"/>
- <ref name="db.ooexception"/>
- <ref name="db.oointerface"/>
- </choice>
- </define>
- <define name="db.synopsis.blocks">
- <choice>
- <ref name="db.funcsynopsis"/>
- <ref name="db.classsynopsis"/>
- <ref name="db.methodsynopsis"/>
- <ref name="db.constructorsynopsis"/>
- <ref name="db.destructorsynopsis"/>
- <ref name="db.fieldsynopsis"/>
- </choice>
- </define>
- <!-- ====================================================================== -->
- <div>
- <db:refname>synopsis</db:refname>
- <db:refpurpose>A general-purpose element for representing the syntax of commands or functions</db:refpurpose>
- <define name="db.synopsis.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.synopsis.label.attribute">
- <ref name="db.label.attribute"/>
- </define>
- <define name="db.synopsis.attlist">
- <interleave>
- <optional>
- <ref name="db.synopsis.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <ref name="db.verbatim.attributes"/>
- <optional>
- <ref name="db.synopsis.label.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.synopsis">
- <element name="synopsis">
- <ref name="db.synopsis.attlist"/>
- <ref name="db.verbatim.contentmodel"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>funcsynopsis</db:refname>
- <db:refpurpose>The syntax summary for a function definition</db:refpurpose>
- <define name="db.funcsynopsis.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.funcsynopsis.attlist">
- <interleave>
- <optional>
- <ref name="db.funcsynopsis.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.language.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.funcsynopsis.info">
- <ref name="db._info.title.forbidden"/>
- </define>
- <define name="db.funcsynopsis">
- <element name="funcsynopsis">
- <ref name="db.funcsynopsis.attlist"/>
- <ref name="db.funcsynopsis.info"/>
- <oneOrMore>
- <choice>
- <ref name="db.funcsynopsisinfo"/>
- <ref name="db.funcprototype"/>
- </choice>
- </oneOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>funcsynopsisinfo</db:refname>
- <db:refpurpose>Information supplementing the funcdefs of a funcsynopsis</db:refpurpose>
- <define name="db.funcsynopsisinfo.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.funcsynopsisinfo.attlist">
- <interleave>
- <optional>
- <ref name="db.funcsynopsisinfo.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <ref name="db.verbatim.attributes"/>
- </interleave>
- </define>
- <define name="db.funcsynopsisinfo">
- <element name="funcsynopsisinfo">
- <ref name="db.funcsynopsisinfo.attlist"/>
- <ref name="db.verbatim.contentmodel"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>funcprototype</db:refname>
- <db:refpurpose>The prototype of a function</db:refpurpose>
- <define name="db.funcprototype.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.funcprototype.attlist">
- <interleave>
- <optional>
- <ref name="db.funcprototype.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.funcprototype">
- <element name="funcprototype">
- <ref name="db.funcprototype.attlist"/>
- <zeroOrMore>
- <ref name="db.modifier"/>
- </zeroOrMore>
- <ref name="db.funcdef"/>
- <choice>
- <ref name="db.void"/>
- <ref name="db.varargs"/>
- <group>
- <oneOrMore>
- <choice>
- <ref name="db.paramdef"/>
- <ref name="db.group.paramdef"/>
- </choice>
- </oneOrMore>
- <optional>
- <ref name="db.varargs"/>
- </optional>
- </group>
- </choice>
- <zeroOrMore>
- <ref name="db.modifier"/>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>funcdef</db:refname>
- <db:refpurpose>A function (subroutine) name and its return type</db:refpurpose>
- <define name="db.funcdef.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.funcdef.attlist">
- <interleave>
- <optional>
- <ref name="db.funcdef.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.funcdef">
- <element name="funcdef">
- <ref name="db.funcdef.attlist"/>
- <zeroOrMore>
- <choice>
- <ref name="db._text"/>
- <ref name="db.type"/>
- <ref name="db.function"/>
- </choice>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>function</db:refname>
- <db:refpurpose>The name of a function or subroutine, as in a programming language</db:refpurpose>
- <define name="db.function.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.function.attlist">
- <interleave>
- <optional>
- <ref name="db.function.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.function">
- <element name="function">
- <ref name="db.function.attlist"/>
- <ref name="db._text"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>void</db:refname>
- <db:refpurpose>An empty element in a function synopsis indicating that the function in question takes no arguments</db:refpurpose>
- <define name="db.void.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.void.attlist">
- <interleave>
- <optional>
- <ref name="db.void.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.void">
- <element name="void">
- <ref name="db.void.attlist"/>
- <empty/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>varargs</db:refname>
- <db:refpurpose>An empty element in a function synopsis indicating a variable number of arguments</db:refpurpose>
- <define name="db.varargs.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.varargs.attlist">
- <interleave>
- <optional>
- <ref name="db.varargs.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.varargs">
- <element name="varargs">
- <ref name="db.varargs.attlist"/>
- <empty/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>group</db:refname>
- <db:refpurpose>A group of parameters</db:refpurpose>
- <define name="db.group.paramdef.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.group.paramdef.choice.attribute">
- <ref name="db.choice.opt.attribute"/>
- </define>
- <define name="db.group.paramdef.attlist">
- <interleave>
- <optional>
- <ref name="db.group.paramdef.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.group.paramdef.choice.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.group.paramdef">
- <element name="group">
- <ref name="db.group.paramdef.attlist"/>
- <oneOrMore>
- <choice>
- <ref name="db.paramdef"/>
- <ref name="db.group.paramdef"/>
- </choice>
- </oneOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>paramdef</db:refname>
- <db:refpurpose>Information about a function parameter in a programming language</db:refpurpose>
- <define name="db.paramdef.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.paramdef.choice.enumeration">
- <choice>
- <value>opt</value>
- <a:documentation>Formatted to indicate that it is optional.</a:documentation>
- <value>req</value>
- <a:documentation>Formatted to indicate that it is required.</a:documentation>
- </choice>
- </define>
- <define name="db.paramdef.choice.attribute">
- <attribute name="choice" a:defaultValue="opt">
- <db:refpurpose>Indicates optionality.</db:refpurpose>
- <ref name="db.paramdef.choice.enumeration"/>
- </attribute>
- </define>
- <define name="db.paramdef.attlist">
- <interleave>
- <optional>
- <ref name="db.paramdef.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.paramdef.choice.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.paramdef">
- <element name="paramdef">
- <ref name="db.paramdef.attlist"/>
- <zeroOrMore>
- <choice>
- <ref name="db._text"/>
- <ref name="db.initializer"/>
- <ref name="db.type"/>
- <ref name="db.parameter"/>
- <ref name="db.funcparams"/>
- </choice>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>funcparams</db:refname>
- <db:refpurpose>Parameters for a function referenced through a function pointer in a synopsis</db:refpurpose>
- <define name="db.funcparams.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.funcparams.attlist">
- <interleave>
- <optional>
- <ref name="db.funcparams.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.funcparams">
- <element name="funcparams">
- <ref name="db.funcparams.attlist"/>
- <ref name="db._text"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>classsynopsis</db:refname>
- <db:refpurpose>The syntax summary for a class definition</db:refpurpose>
- <define name="db.classsynopsis.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.classsynopsis.class.enumeration">
- <choice>
- <value>class</value>
- <a:documentation>This is the synopsis of a class</a:documentation>
- <value>interface</value>
- <a:documentation>This is the synopsis of an interface</a:documentation>
- </choice>
- </define>
- <define name="db.classsynopsis.class.attribute">
- <attribute name="class">
- <db:refpurpose>Specifies the nature of the synopsis</db:refpurpose>
- <ref name="db.classsynopsis.class.enumeration"/>
- </attribute>
- </define>
- <define name="db.classsynopsis.attlist">
- <interleave>
- <optional>
- <ref name="db.classsynopsis.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.language.attribute"/>
- </optional>
- <optional>
- <ref name="db.classsynopsis.class.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.classsynopsis">
- <element name="classsynopsis">
- <ref name="db.classsynopsis.attlist"/>
- <oneOrMore>
- <ref name="db.oo.inlines"/>
- </oneOrMore>
- <zeroOrMore>
- <choice>
- <ref name="db.classsynopsisinfo"/>
- <ref name="db.methodsynopsis"/>
- <ref name="db.constructorsynopsis"/>
- <ref name="db.destructorsynopsis"/>
- <ref name="db.fieldsynopsis"/>
- </choice>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>classsynopsisinfo</db:refname>
- <db:refpurpose>Information supplementing the contents of a classsynopsis</db:refpurpose>
- <define name="db.classsynopsisinfo.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.classsynopsisinfo.attlist">
- <interleave>
- <optional>
- <ref name="db.classsynopsisinfo.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <ref name="db.verbatim.attributes"/>
- </interleave>
- </define>
- <define name="db.classsynopsisinfo">
- <element name="classsynopsisinfo">
- <ref name="db.classsynopsisinfo.attlist"/>
- <ref name="db.verbatim.contentmodel"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>ooclass</db:refname>
- <db:refpurpose>A class in an object-oriented programming language</db:refpurpose>
- <define name="db.ooclass.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.ooclass.attlist">
- <interleave>
- <optional>
- <ref name="db.ooclass.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.ooclass">
- <element name="ooclass">
- <ref name="db.ooclass.attlist"/>
- <zeroOrMore>
- <choice>
- <ref name="db.package"/>
- <ref name="db.modifier"/>
- </choice>
- </zeroOrMore>
- <ref name="db.classname"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>oointerface</db:refname>
- <db:refpurpose>An interface in an object-oriented programming language</db:refpurpose>
- <define name="db.oointerface.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.oointerface.attlist">
- <interleave>
- <optional>
- <ref name="db.oointerface.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.oointerface">
- <element name="oointerface">
- <ref name="db.oointerface.attlist"/>
- <zeroOrMore>
- <choice>
- <ref name="db.package"/>
- <ref name="db.modifier"/>
- </choice>
- </zeroOrMore>
- <ref name="db.interfacename"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>ooexception</db:refname>
- <db:refpurpose>An exception in an object-oriented programming language</db:refpurpose>
- <define name="db.ooexception.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.ooexception.attlist">
- <interleave>
- <optional>
- <ref name="db.ooexception.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.ooexception">
- <element name="ooexception">
- <ref name="db.ooexception.attlist"/>
- <zeroOrMore>
- <choice>
- <ref name="db.package"/>
- <ref name="db.modifier"/>
- </choice>
- </zeroOrMore>
- <ref name="db.exceptionname"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <define name="db.modifier.xml.space.attribute">
- <attribute name="xml:space">
- <db:refpurpose>Can be used to indicate that whitespace in the modifier should be preserved (for multi-line annotations, for example).</db:refpurpose>
- <value>preserve</value>
- <a:documentation>Extra whitespace and line breaks must be preserved.</a:documentation>
- <!--
- Ideally the definition of xml:space used on modifier would be
- different from the definition used on the verbatim elements. The
- verbatim elements forbid the use of xml:space="default" which
- wouldn't be a problem on modifier. But doing that causes the
- generated XSD schemas to be broken so I'm just reusing the existing
- definition for now. It won't be backwards incompatible to fix this
- problem in the future.
- | ## Extra whitespace and line breaks are not preserved.
- "default"
- -->
- </attribute>
- </define>
- <div>
- <db:refname>modifier</db:refname>
- <db:refpurpose>Modifiers in a synopsis</db:refpurpose>
- <define name="db.modifier.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.modifier.attlist">
- <interleave>
- <optional>
- <ref name="db.modifier.xml.space.attribute"/>
- </optional>
- <optional>
- <ref name="db.modifier.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.modifier">
- <element name="modifier">
- <ref name="db.modifier.attlist"/>
- <ref name="db._text"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>interfacename</db:refname>
- <db:refpurpose>The name of an interface</db:refpurpose>
- <define name="db.interfacename.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.interfacename.attlist">
- <interleave>
- <optional>
- <ref name="db.interfacename.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.interfacename">
- <element name="interfacename">
- <ref name="db.interfacename.attlist"/>
- <ref name="db._text"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>exceptionname</db:refname>
- <db:refpurpose>The name of an exception</db:refpurpose>
- <define name="db.exceptionname.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.exceptionname.attlist">
- <interleave>
- <optional>
- <ref name="db.exceptionname.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.exceptionname">
- <element name="exceptionname">
- <ref name="db.exceptionname.attlist"/>
- <ref name="db._text"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>fieldsynopsis</db:refname>
- <db:refpurpose>The name of a field in a class definition</db:refpurpose>
- <define name="db.fieldsynopsis.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.fieldsynopsis.attlist">
- <interleave>
- <optional>
- <ref name="db.fieldsynopsis.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.language.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.fieldsynopsis">
- <element name="fieldsynopsis">
- <ref name="db.fieldsynopsis.attlist"/>
- <zeroOrMore>
- <ref name="db.modifier"/>
- </zeroOrMore>
- <optional>
- <ref name="db.type"/>
- </optional>
- <ref name="db.varname"/>
- <optional>
- <ref name="db.initializer"/>
- </optional>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>initializer</db:refname>
- <db:refpurpose>The initializer for a fieldsynopsis</db:refpurpose>
- <define name="db.initializer.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.initializer.attlist">
- <interleave>
- <optional>
- <ref name="db.initializer.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.initializer.inlines">
- <ref name="db._text"/>
- </define>
- <define name="db.initializer">
- <element name="initializer">
- <ref name="db.initializer.attlist"/>
- <zeroOrMore>
- <ref name="db.initializer.inlines"/>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>constructorsynopsis</db:refname>
- <db:refpurpose>A syntax summary for a constructor</db:refpurpose>
- <define name="db.constructorsynopsis.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.constructorsynopsis.attlist">
- <interleave>
- <optional>
- <ref name="db.constructorsynopsis.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.language.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.constructorsynopsis">
- <element name="constructorsynopsis">
- <ref name="db.constructorsynopsis.attlist"/>
- <zeroOrMore>
- <ref name="db.modifier"/>
- </zeroOrMore>
- <optional>
- <ref name="db.methodname"/>
- </optional>
- <choice>
- <oneOrMore>
- <choice>
- <ref name="db.methodparam"/>
- <ref name="db.group.methodparam"/>
- </choice>
- </oneOrMore>
- <optional>
- <ref name="db.void"/>
- </optional>
- </choice>
- <zeroOrMore>
- <ref name="db.exceptionname"/>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>destructorsynopsis</db:refname>
- <db:refpurpose>A syntax summary for a destructor</db:refpurpose>
- <define name="db.destructorsynopsis.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.destructorsynopsis.attlist">
- <interleave>
- <optional>
- <ref name="db.destructorsynopsis.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.language.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.destructorsynopsis">
- <element name="destructorsynopsis">
- <ref name="db.destructorsynopsis.attlist"/>
- <zeroOrMore>
- <ref name="db.modifier"/>
- </zeroOrMore>
- <optional>
- <ref name="db.methodname"/>
- </optional>
- <choice>
- <oneOrMore>
- <choice>
- <ref name="db.methodparam"/>
- <ref name="db.group.methodparam"/>
- </choice>
- </oneOrMore>
- <optional>
- <ref name="db.void"/>
- </optional>
- </choice>
- <zeroOrMore>
- <ref name="db.exceptionname"/>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>methodsynopsis</db:refname>
- <db:refpurpose>A syntax summary for a method</db:refpurpose>
- <define name="db.methodsynopsis.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.methodsynopsis.attlist">
- <interleave>
- <optional>
- <ref name="db.methodsynopsis.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.language.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.methodsynopsis">
- <element name="methodsynopsis">
- <ref name="db.methodsynopsis.attlist"/>
- <zeroOrMore>
- <ref name="db.modifier"/>
- </zeroOrMore>
- <optional>
- <choice>
- <ref name="db.type"/>
- <ref name="db.void"/>
- </choice>
- </optional>
- <ref name="db.methodname"/>
- <choice>
- <oneOrMore>
- <choice>
- <ref name="db.methodparam"/>
- <ref name="db.group.methodparam"/>
- </choice>
- </oneOrMore>
- <ref name="db.void"/>
- </choice>
- <zeroOrMore>
- <ref name="db.exceptionname"/>
- </zeroOrMore>
- <zeroOrMore>
- <ref name="db.modifier"/>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>methodname</db:refname>
- <db:refpurpose>The name of a method</db:refpurpose>
- <define name="db.methodname.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.methodname.attlist">
- <interleave>
- <optional>
- <ref name="db.methodname.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.methodname">
- <element name="methodname">
- <ref name="db.methodname.attlist"/>
- <ref name="db._text"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>methodparam</db:refname>
- <db:refpurpose>Parameters to a method</db:refpurpose>
- <define name="db.methodparam.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.methodparam.rep.attribute">
- <ref name="db.rep.attribute"/>
- </define>
- <define name="db.methodparam.choice.attribute">
- <ref name="db.choice.req.attribute"/>
- </define>
- <define name="db.methodparam.attlist">
- <interleave>
- <optional>
- <ref name="db.methodparam.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.methodparam.rep.attribute"/>
- </optional>
- <optional>
- <ref name="db.methodparam.choice.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.methodparam">
- <element name="methodparam">
- <ref name="db.methodparam.attlist"/>
- <zeroOrMore>
- <ref name="db.modifier"/>
- </zeroOrMore>
- <optional>
- <ref name="db.type"/>
- </optional>
- <choice>
- <group>
- <zeroOrMore>
- <ref name="db.modifier"/>
- </zeroOrMore>
- <ref name="db.parameter"/>
- <optional>
- <ref name="db.initializer"/>
- </optional>
- </group>
- <ref name="db.funcparams"/>
- </choice>
- <zeroOrMore>
- <ref name="db.modifier"/>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>group</db:refname>
- <db:refpurpose>A group of method parameters</db:refpurpose>
- <define name="db.group.methodparam.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.group.methodparam.choice.attribute">
- <ref name="db.choice.opt.attribute"/>
- </define>
- <define name="db.group.methodparam.attlist">
- <interleave>
- <optional>
- <ref name="db.group.methodparam.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.group.methodparam.choice.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.group.methodparam">
- <element name="group">
- <ref name="db.group.methodparam.attlist"/>
- <oneOrMore>
- <choice>
- <ref name="db.methodparam"/>
- <ref name="db.group.methodparam"/>
- </choice>
- </oneOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>varname</db:refname>
- <db:refpurpose>The name of a variable</db:refpurpose>
- <define name="db.varname.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.varname.attlist">
- <interleave>
- <optional>
- <ref name="db.varname.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.varname">
- <element name="varname">
- <ref name="db.varname.attlist"/>
- <ref name="db._text"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>returnvalue</db:refname>
- <db:refpurpose>The value returned by a function</db:refpurpose>
- <define name="db.returnvalue.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.returnvalue.attlist">
- <interleave>
- <optional>
- <ref name="db.returnvalue.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.returnvalue">
- <element name="returnvalue">
- <ref name="db.returnvalue.attlist"/>
- <ref name="db._text"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>type</db:refname>
- <db:refpurpose>The classification of a value</db:refpurpose>
- <define name="db.type.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.type.attlist">
- <interleave>
- <optional>
- <ref name="db.type.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.type">
- <element name="type">
- <ref name="db.type.attlist"/>
- <ref name="db._text"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>classname</db:refname>
- <db:refpurpose>The name of a class, in the object-oriented programming sense</db:refpurpose>
- <define name="db.classname.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.classname.attlist">
- <interleave>
- <optional>
- <ref name="db.classname.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.classname">
- <element name="classname">
- <ref name="db.classname.attlist"/>
- <ref name="db._text"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>programlisting</db:refname>
- <db:refpurpose>A literal listing of all or part of a program</db:refpurpose>
- <define name="db.programlisting.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.programlisting.width.attribute">
- <ref name="db.width.characters.attribute"/>
- </define>
- <define name="db.programlisting.attlist">
- <interleave>
- <optional>
- <ref name="db.programlisting.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <ref name="db.verbatim.attributes"/>
- <optional>
- <ref name="db.programlisting.width.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.programlisting">
- <element name="programlisting">
- <ref name="db.programlisting.attlist"/>
- <ref name="db.verbatim.contentmodel"/>
- </element>
- </define>
- </div>
- </grammar>
|