123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488 |
- <?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: refentry.rnc 8931 2010-10-20 13:29:20Z 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.refentry"/>
- <ref name="db.refsection"/>
- <ref name="db.refsynopsisdiv"/>
- </choice>
- </start>
- <define name="db.divisions" combine="choice">
- <ref name="db.reference"/>
- </define>
- <define name="db.part.components" combine="choice">
- <choice>
- <ref name="db.refentry"/>
- <ref name="db.reference"/>
- </choice>
- </define>
- <define name="db.toplevel.sections" combine="choice">
- <oneOrMore>
- <ref name="db.refentry"/>
- </oneOrMore>
- </define>
- <define name="db.recursive.sections" combine="choice">
- <oneOrMore>
- <ref name="db.refentry"/>
- </oneOrMore>
- </define>
- <define name="db.toplevel.refsection">
- <oneOrMore>
- <ref name="db.refsection"/>
- </oneOrMore>
- </define>
- <define name="db.secondlevel.refsection">
- <oneOrMore>
- <ref name="db.refsection"/>
- </oneOrMore>
- </define>
- <!-- ====================================================================== -->
- <define name="db.reference.components">
- <ref name="db.refentry"/>
- </define>
- <!-- ====================================================================== -->
- <div>
- <db:refname>reference</db:refname>
- <db:refpurpose>A collection of reference entries</db:refpurpose>
- <define name="db.reference.status.attribute">
- <ref name="db.status.attribute"/>
- </define>
- <define name="db.reference.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.reference.attlist">
- <interleave>
- <optional>
- <ref name="db.reference.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.reference.status.attribute"/>
- </optional>
- <optional>
- <ref name="db.label.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.reference.info">
- <ref name="db._info.title.req"/>
- </define>
- <define name="db.reference">
- <element name="reference">
- <ref name="db.reference.attlist"/>
- <ref name="db.reference.info"/>
- <optional>
- <ref name="db.partintro"/>
- </optional>
- <oneOrMore>
- <ref name="db.reference.components"/>
- </oneOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>refentry</db:refname>
- <db:refpurpose>A reference page (originally a UNIX man-style reference page)</db:refpurpose>
- <define name="db.refentry.status.attribute">
- <ref name="db.status.attribute"/>
- </define>
- <define name="db.refentry.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.refentry.attlist">
- <interleave>
- <optional>
- <ref name="db.refentry.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.refentry.status.attribute"/>
- </optional>
- <optional>
- <ref name="db.label.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.refentry.info">
- <ref name="db._info.title.forbidden"/>
- </define>
- <define name="db.refentry">
- <element name="refentry">
- <ref name="db.refentry.attlist"/>
- <zeroOrMore>
- <ref name="db.indexterm"/>
- </zeroOrMore>
- <ref name="db.refentry.info"/>
- <optional>
- <ref name="db.refmeta"/>
- </optional>
- <oneOrMore>
- <ref name="db.refnamediv"/>
- </oneOrMore>
- <optional>
- <ref name="db.refsynopsisdiv"/>
- </optional>
- <ref name="db.toplevel.refsection"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>refmeta</db:refname>
- <db:refpurpose>Meta-information for a reference entry</db:refpurpose>
- <define name="db.refmeta.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.refmeta.attlist">
- <interleave>
- <optional>
- <ref name="db.refmeta.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.refmeta">
- <element name="refmeta">
- <ref name="db.refmeta.attlist"/>
- <zeroOrMore>
- <ref name="db.indexterm"/>
- </zeroOrMore>
- <ref name="db.refentrytitle"/>
- <optional>
- <ref name="db.manvolnum"/>
- </optional>
- <zeroOrMore>
- <ref name="db.refmiscinfo"/>
- </zeroOrMore>
- <zeroOrMore>
- <ref name="db.indexterm"/>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <ctrl:other-attribute name="db.refmiscinfo.class.attribute" enum-name="db.refmiscinfo.class-enum.attribute" other-name="db.refmiscinfo.class-other.attributes"/>
- <define name="db.refmiscinfo.class.enumeration">
- <choice>
- <value>source</value>
- <a:documentation>The name of the software product or component to which this topic applies</a:documentation>
- <value>version</value>
- <a:documentation>The version of the software product or component to which this topic applies</a:documentation>
- <value>manual</value>
- <a:documentation>The section title of the reference page (e.g., User Commands)</a:documentation>
- <value>sectdesc</value>
- <a:documentation>The section title of the reference page (believed synonymous with "manual" but in wide use)</a:documentation>
- <value>software</value>
- <a:documentation>The name of the software product or component to which this topic applies (e.g., SunOS x.y; believed synonymous with "source" but in wide use)</a:documentation>
- </choice>
- </define>
- <define name="db.refmiscinfo.class-enum.attribute">
- <optional>
- <attribute name="class">
- <db:refpurpose>Identifies the kind of miscellaneous information</db:refpurpose>
- <ref name="db.refmiscinfo.class.enumeration"/>
- </attribute>
- </optional>
- </define>
- <define name="db.refmiscinfo.class-other.attribute">
- <attribute name="otherclass">
- <db:refpurpose>Identifies the nature of non-standard miscellaneous information</db:refpurpose>
- </attribute>
- </define>
- <define name="db.refmiscinfo.class-other.attributes">
- <interleave>
- <attribute name="class">
- <db:refpurpose>Identifies the kind of miscellaneious information</db:refpurpose>
- <value>other</value>
- <a:documentation>Indicates that the information is some 'other' kind.</a:documentation>
- </attribute>
- <ref name="db.refmiscinfo.class-other.attribute"/>
- </interleave>
- </define>
- <define name="db.refmiscinfo.class.attribute">
- <choice>
- <ref name="db.refmiscinfo.class-enum.attribute"/>
- <ref name="db.refmiscinfo.class-other.attributes"/>
- </choice>
- </define>
- <!-- ====================================================================== -->
- <div>
- <db:refname>refmiscinfo</db:refname>
- <db:refpurpose>Meta-information for a reference entry other than the title and volume number</db:refpurpose>
- <define name="db.refmiscinfo.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.refmiscinfo.attlist">
- <interleave>
- <optional>
- <ref name="db.refmiscinfo.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.refmiscinfo.class.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.refmiscinfo">
- <element name="refmiscinfo">
- <ref name="db.refmiscinfo.attlist"/>
- <ref name="db._text"/>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>refnamediv</db:refname>
- <db:refpurpose>The name, purpose, and classification of a reference page</db:refpurpose>
- <define name="db.refnamediv.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.refnamediv.attlist">
- <interleave>
- <optional>
- <ref name="db.refnamediv.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.refnamediv">
- <element name="refnamediv">
- <ref name="db.refnamediv.attlist"/>
- <optional>
- <ref name="db.refdescriptor"/>
- </optional>
- <oneOrMore>
- <ref name="db.refname"/>
- </oneOrMore>
- <ref name="db.refpurpose"/>
- <zeroOrMore>
- <ref name="db.refclass"/>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>refdescriptor</db:refname>
- <db:refpurpose>A description of the topic of a reference page</db:refpurpose>
- <define name="db.refdescriptor.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.refdescriptor.attlist">
- <interleave>
- <optional>
- <ref name="db.refdescriptor.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.refdescriptor">
- <element name="refdescriptor">
- <ref name="db.refdescriptor.attlist"/>
- <zeroOrMore>
- <ref name="db.all.inlines"/>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>refname</db:refname>
- <db:refpurpose>The name of (one of) the subject(s) of a reference page</db:refpurpose>
- <define name="db.refname.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.refname.attlist">
- <interleave>
- <optional>
- <ref name="db.refname.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.refname">
- <element name="refname">
- <ref name="db.refname.attlist"/>
- <zeroOrMore>
- <ref name="db.all.inlines"/>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>refpurpose</db:refname>
- <db:refpurpose>A short (one sentence) synopsis of the topic of a reference page</db:refpurpose>
- <define name="db.refpurpose.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.refpurpose.attlist">
- <interleave>
- <optional>
- <ref name="db.refpurpose.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.refpurpose">
- <element name="refpurpose">
- <ref name="db.refpurpose.attlist"/>
- <zeroOrMore>
- <ref name="db.all.inlines"/>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>refclass</db:refname>
- <db:refpurpose>The scope or other indication of applicability of a reference entry</db:refpurpose>
- <define name="db.refclass.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.refclass.attlist">
- <interleave>
- <optional>
- <ref name="db.refclass.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.refclass">
- <element name="refclass">
- <ref name="db.refclass.attlist"/>
- <zeroOrMore>
- <choice>
- <text/>
- <ref name="db.application"/>
- </choice>
- </zeroOrMore>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>refsynopsisdiv</db:refname>
- <db:refpurpose>A syntactic synopsis of the subject of the reference page</db:refpurpose>
- <define name="db.refsynopsisdiv.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.refsynopsisdiv.attlist">
- <interleave>
- <optional>
- <ref name="db.refsynopsisdiv.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- </interleave>
- </define>
- <define name="db.refsynopsisdiv.info">
- <ref name="db._info"/>
- </define>
- <define name="db.refsynopsisdiv">
- <element name="refsynopsisdiv">
- <ref name="db.refsynopsisdiv.attlist"/>
- <ref name="db.refsynopsisdiv.info"/>
- <choice>
- <group>
- <oneOrMore>
- <ref name="db.all.blocks"/>
- </oneOrMore>
- <optional>
- <ref name="db.secondlevel.refsection"/>
- </optional>
- </group>
- <ref name="db.secondlevel.refsection"/>
- </choice>
- </element>
- </define>
- </div>
- <!-- ====================================================================== -->
- <div>
- <db:refname>refsection</db:refname>
- <db:refpurpose>A recursive section in a refentry</db:refpurpose>
- <define name="db.refsection.status.attribute">
- <ref name="db.status.attribute"/>
- </define>
- <define name="db.refsection.role.attribute">
- <attribute name="role"/>
- </define>
- <define name="db.refsection.attlist">
- <interleave>
- <optional>
- <ref name="db.refsection.role.attribute"/>
- </optional>
- <ref name="db.common.attributes"/>
- <ref name="db.common.linking.attributes"/>
- <optional>
- <ref name="db.refsection.status.attribute"/>
- </optional>
- <optional>
- <ref name="db.label.attribute"/>
- </optional>
- </interleave>
- </define>
- <define name="db.refsection.info">
- <ref name="db._info.title.req"/>
- </define>
- <define name="db.refsection">
- <element name="refsection">
- <ref name="db.refsection.attlist"/>
- <ref name="db.refsection.info"/>
- <choice>
- <group>
- <oneOrMore>
- <ref name="db.all.blocks"/>
- </oneOrMore>
- <zeroOrMore>
- <ref name="db.refsection"/>
- </zeroOrMore>
- </group>
- <oneOrMore>
- <ref name="db.refsection"/>
- </oneOrMore>
- </choice>
- </element>
- </define>
- </div>
- </grammar>
|