namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" default namespace db = "http://docbook.org/ns/docbook" namespace html = "http://www.w3.org/1999/xhtml" namespace mml = "http://www.w3.org/1998/Math/MathML" namespace s = "http://www.ascc.net/xml/schematron" namespace svg = "http://www.w3.org/2000/svg" namespace xi = "http://www.w3.org/2001/XInclude" namespace xlink = "http://www.w3.org/1999/xlink" # DocBook NG: The "Mezcal" Release # See http://docbook.org/ns/docbook # DocBook NG: The "Mezcal" Release # See http://docbook.org/ns/docbook # This file is part of DocBook NG: The "Mezcal" Release. # This schema is a "work-in-progress". It validates a DocBook-like grammar that # may, in some incarnation, form the basis for DocBook V.next. Or it may not. # At the moment, it's just an exploration by Norm. It has utterly no normative # value at all. # # Author: Norman Walsh, # Source: Derived from DocBook XML V4.3 # Release: $Id: docbook.rnc,v 1.2 2005/07/07 14:28:25 nwalsh Exp $ # # ====================================================================== start = (db.set | db.book | db.divisions | db.components | db.navigation.components | db.section | db.para) | (db.sect1 | db.sect2 | db.sect3 | db.sect4 | db.sect5) | (db.refentry | db.refsection) | (db.refsect1 | db.refsect2 | db.refsect3) | db.setindex div { db._any = element * - (db:* | html:*) { ((attribute * { text } | text | db._any)*) >> a:documentation [ "Any element from any namespace except the DocBook namespace" ] } } db.effectivity.attributes = ## Designates the computer or chip architecture to which the element applies attribute arch { text }?, ## provides a standard place for application-specific effectivity attribute condition { text }?, ## Indicates standards conformance characteristics of the element attribute conformance { text }?, ## Indicates the operating system to which the element is applicable attribute os { text }?, ## Indicates the editorial revision to which the element belongs attribute revision { text }?, ## Indicates something about the security level associated with the element to which it applies attribute security { text }?, ## Indicates the level of user experience for which the element applies attribute userlevel { text }?, ## Indicates the computer vendor to which the element applies. attribute vendor { text }?, ## Indicates the word size (width in bits) of the computer architecture to which the element applies attribute wordsize { text }? db.linkend.attribute = attribute linkend { xsd:IDREF >> a:documentation [ "Points to an internal link target by identifying the value of its xml:id attribute" ] } db.linkends.attribute = attribute linkends { xsd:IDREFS >> a:documentation [ "Points to one or more internal link targets by identifying the value of their xml:id attributes" ] } db.xlink.href.attribute = ## Identifies a link target with a URI attribute xlink:href { text } db.xlink.type.attribute = attribute xlink:type { ## Identifies the element as an XLink simple link "simple" } db.xlink.role.attribute = attribute xlink:role { xsd:anyURI >> a:documentation [ "Identifies the XLink role of the link" ] } db.xlink.arcrole.attribute = attribute xlink:arcrole { xsd:anyURI >> a:documentation [ "Identifies the XLink arcrole of the link" ] } db.xlink.title.attribute = ## Identifies the XLink title of the link attribute xlink:title { text }? db.xlink.show.enumeration = "new" | "replace" | "embed" | "other" db.xlink.show.attribute = attribute xlink:show { db.xlink.show.enumeration >> a:documentation [ "Identifies the XLink show behavior of the link" ] } db.xlink.actuate.enumeration = "onLoad" | "onRequest" | "other" | "none" db.xlink.actuate.attribute = attribute xlink:actuate { db.xlink.actuate.enumeration >> a:documentation [ "Identifies the XLink actuate behavior of the link" ] } db.href.attribute = db.xlink.href.attribute & db.xlink.type.attribute? & db.xlink.role.attribute? & db.xlink.arcrole.attribute? & db.xlink.title.attribute? & db.xlink.show.attribute? & db.xlink.actuate.attribute? db.xml.id.attribute = attribute xml:id { xsd:ID >> a:documentation [ "Identifies the unique ID value of the element" ] } db.version.attribute = ## Specifies the DocBook version of the element and its descendants attribute version { text } db.xml.lang.attribute = ## Specifies the natural language of the element and its descendants attribute xml:lang { text } db.xml.base.attribute = ## Specifies the base URI of the element and its descendants attribute xml:base { text } db.remap.attribute = ## Provides the name or similar semantic identifier assigned to the content in some previous markup scheme attribute remap { text } db.xreflabel.attribute = ## Provides the text that is to be generated for a cross reference to the element attribute xreflabel { text } db.revisionflag.enumeration = "changed" | "added" | "deleted" | "off" db.revisionflag.attribute = attribute revisionflag { db.revisionflag.enumeration >> a:documentation [ "Identifies the revision status of the element" ] } db.common.attributes = db.xml.id.attribute? & db.version.attribute? & db.xml.lang.attribute? & db.xml.base.attribute? & db.remap.attribute? & db.xreflabel.attribute? & db.revisionflag.attribute? & db.effectivity.attributes & db.annotations.attribute? db.common.idreq.attributes = db.xml.id.attribute & db.version.attribute? & db.xml.lang.attribute? & db.xml.base.attribute? & db.remap.attribute? & db.xreflabel.attribute? & db.revisionflag.attribute? & db.effectivity.attributes & db.annotations.attribute? db.common.linking.attributes = (db.linkend.attribute | db.href.attribute)? db.common.req.linking.attributes = db.linkend.attribute | db.href.attribute db.common.data.attributes = attribute format { text }?, (attribute fileref { xsd:anyURI } | attribute entityref { xsd:ENTITY }) db.verbatim.continuation.enumeration = "continues" | "restarts" db.verbatim.continuation.attribute = attribute continuation { db.verbatim.continuation.enumeration } db.verbatim.linenumbering.enumeration = "numbered" | "unnumbered" db.verbatim.linenumbering.attribute = attribute linenumbering { db.verbatim.linenumbering.enumeration } db.verbatim.startinglinenumber.attribute = attribute startinglinenumber { xsd:integer } db.verbatim.language.attribute = attribute language { text } db.verbatim.xml.space.attribute = attribute xml:space { "preserve" } db.verbatim.attributes = db.verbatim.continuation.attribute? & db.verbatim.linenumbering.attribute? & db.verbatim.startinglinenumber.attribute? & db.verbatim.language.attribute? & db.verbatim.xml.space.attribute? db.spacing.enumeration = "compact" | "normal" db.spacing.attribute = attribute spacing { db.spacing.enumeration } db.pgwide.enumeration = "0" | "1" db.pgwide.attribute = attribute pgwide { db.pgwide.enumeration >> a:documentation [ "Indicates if the element is rendered across the column or the page" ] } db.language.attribute = attribute language { text } db.performance.enumeration = "optional" | "required" db.performance.attribute = attribute performance { db.performance.enumeration } db.floatstyle.attribute = attribute floatstyle { text } db.halign.enumeration = "center" | "char" | "justify" | "left" | "right" db.valign.enumeration = "bottom" | "middle" | "top" db.biblio.class.enumeration = "doi" | "isbn" | "isrn" | "issn" | "libraryofcongress" | "pubnumber" | "uri" db.biblio.class-enum.attribute = attribute class { db.biblio.class.enumeration >> a:documentation [ "Identifies the kind of bibliographic identifier" ] }? db.biblio.class-other.attribute = attribute otherclass { xsd:NMTOKEN >> a:documentation [ "Provides an identifier for elements with the class 'other'" ] } db.biblio.class-other.attributes = attribute class { "other" } & db.biblio.class-other.attribute db.biblio.class.attribute = db.biblio.class-enum.attribute | db.biblio.class-other.attributes db.ubiq.inlines = (db.inlinemediaobject | db.remark | db.superscript | db.subscript | db.link.inlines | db.alt) | db.annotation | db.indexterm db._text = (text | db.ubiq.inlines | db._phrase | db.replaceable)* db._phrase = element phrase { db.phrase.attlist, db._text } db._emphasis = element emphasis { db.emphasis.attlist, (db._text | db._emphasis)* } db._title = db.title? & db.titleabbrev? & db.subtitle? db._title.req = db.title & db.titleabbrev? & db.subtitle? db._title.only = db.title? & db.titleabbrev? db._title.onlyreq = db.title & db.titleabbrev? db._info = (db._title.req?, db.titleforbidden.info?) | db.info? db._info.title.req = (db._title.req, db.titleforbidden.info?) | db.titlereq.info db._info.title.only = (db._title.only, db.titleforbidden.info?) | db.titleonly.info db._info.title.onlyreq = (db._title.onlyreq, db.titleforbidden.info?) | db.titleonlyreq.info db._info.title.forbidden = db.titleforbidden.info? db.all.inlines = (text | db.ubiq.inlines | db.general.inlines | db.domain.inlines | db.extension.inlines) | db.xi.include db.general.inlines = db.publishing.inlines | db.product.inlines | db.bibliography.inlines | db.graphic.inlines | db.indexing.inlines | db.link.inlines db.domain.inlines = (db.technical.inlines | db.error.inlines | db.os.inlines | db.programming.inlines | db.markup.inlines | db.gui.inlines | db.keyboard.inlines) | db.math.inlines db.technical.inlines = (db.replaceable | db.systemitem | db.option | db.optional | db.package | db.property | db.termdef) | db.nonterminal db.error.inlines = db.errorcode | db.errortext | db.errorname | db.errortype db.oo.inlines = db.ooclass | db.ooexception | db.oointerface db.programming.inlines = db.function | db.parameter | db.varname | db.returnvalue | db.type | db.classname | db.exceptionname | db.interfacename | db.methodname | db.modifier | db.initializer | db.oo.inlines db.product.inlines = db.productnumber | db.productname | db.database | db.application | db.hardware | db.trademark db.os.inlines = db.prompt | db.envar | db.filename | db.command | db.computeroutput | db.userinput db.markup.inlines = db.tag | db.markup | db.token | db.symbol | db.literal | db.code | db.constant | db.email | db.uri db.bibliography.inlines = db.citation | db.citerefentry | db.citetitle | db.citebiblioid | db.author | db.personname | db.orgname | db.editor db.publishing.inlines = (db.abbrev | db.acronym | db.date | db.emphasis | db.footnote | db.footnoteref | db.foreignphrase | db.phrase | db.quote | db.subscript | db.superscript | db.wordasword) | db.glossary.inlines | db.coref db.graphic.inlines = db.inlinemediaobject db.indexing.inlines = notAllowed | db.indexterm db.gui.inlines = db.guiicon | db.guibutton | db.guimenuitem | db.guimenu | db.guisubmenu | db.guilabel | db.menuchoice | db.mousebutton db.keyboard.inlines = db.keycombo | db.keycap | db.keycode | db.keysym | db.shortcut | db.accel db.link.inlines = (db.xref | db.link | db.olink | db.anchor) | db.biblioref db.extension.inlines = notAllowed db.nopara.blocks = (db.list.blocks | db.admonition.blocks | db.formal.blocks | db.informal.blocks | db.publishing.blocks | db.graphic.blocks | db.technical.blocks | db.verbatim.blocks | db.synopsis.blocks | db.bridgehead | db.remark | db.revhistory) | db.indexterm | db.math.blocks db.para.blocks = db.anchor | db.para | db.formalpara | db.simpara db.all.blocks = (db.nopara.blocks | db.para.blocks | db.extension.blocks) | db.annotation | db.xi.include db.formal.blocks = db.example | db.figure | db.table db.informal.blocks = db.informalexample | db.informalfigure | db.informaltable db.publishing.blocks = db.sidebar | db.blockquote | db.address | db.epigraph db.graphic.blocks = db.mediaobject | db.screenshot db.technical.blocks = db.procedure | db.task | (db.productionset | db.constraintdef) | db.msgset db.admonition.blocks = db.caution | db.important | db.note | db.tip | db.warning db.list.blocks = (db.itemizedlist | db.orderedlist | db.procedure | db.simplelist | db.variablelist | db.segmentedlist) | db.glosslist | db.bibliolist | db.calloutlist | db.qandaset db.verbatim.blocks = (db.programlisting | db.screen | db.literallayout | db.synopsis) | (db.programlistingco | db.screenco) db.synopsis.blocks = db.cmdsynopsis | db.funcsynopsis | db.classsynopsis | db.methodsynopsis | db.constructorsynopsis | db.destructorsynopsis | db.fieldsynopsis db.extension.blocks = notAllowed db.info.elements = (db.abstract | db.address | db.artpagenums | db.author | db.authorgroup | db.authorinitials | db.bibliocoverage | db.biblioid | db.bibliosource | db.collab | db.confgroup | db.contractsponsor | db.contractnum | db.copyright | db.date | db.edition | db.editor | db.issuenum | db.keywordset | db.legalnotice | db.mediaobject | db.orgname | db.othercredit | db.pagenums | db.printhistory | db.productname | db.productnumber | db.pubdate | db.publisher | db.publishername | db.releaseinfo | db.revhistory | db.seriesvolnums | db.subjectset | db.volumenum) | db.extendedlink | (db.bibliomisc | db.bibliomset | db.bibliorelation | db.biblioset) | db.itermset db.bibliographic.elements = db.info.elements | db.abbrev | db.citerefentry | db.citetitle | db.citebiblioid | db.personname | db.subtitle | db.title div { db.title.role.attribute = attribute role { text } db.title.attlist = db.title.role.attribute? & db.common.attributes & db.common.linking.attributes db.title = element title { db.title.attlist, (db.all.inlines*) >> a:documentation [ "The text of the title of a section of a document or of a formal block-level element" ] } } div { db.titleabbrev.role.attribute = attribute role { text } db.titleabbrev.attlist = db.titleabbrev.role.attribute? & db.common.attributes & db.common.linking.attributes db.titleabbrev = element titleabbrev { db.titleabbrev.attlist, (db.all.inlines*) >> a:documentation [ "The abbreviation of a Title" ] } } div { db.subtitle.role.attribute = attribute role { text } db.subtitle.attlist = db.subtitle.role.attribute? & db.common.attributes & db.common.linking.attributes db.subtitle = element subtitle { db.subtitle.attlist, (db.all.inlines*) >> a:documentation [ "The subtitle of a document" ] } } div { db.info.role.attribute = attribute role { text } db.info.attlist = db.info.role.attribute? & db.common.attributes db.info = element info { db.info.attlist, db._title, (db.info.elements*) >> a:documentation [ "A wrapper for information about a component or other block" ] } } div { db.titlereq.info.role.attribute = attribute role { text } db.titlereq.info.attlist = db.titlereq.info.role.attribute? & db.common.attributes db.titlereq.info = element info { db.titlereq.info.attlist, db._title.req, (db.info.elements*) >> a:documentation [ "A wrapper for information about a component or other block with a required title" ] } } div { db.titleonly.info.role.attribute = attribute role { text } db.titleonly.info.attlist = db.titleonly.info.role.attribute? & db.common.attributes db.titleonly.info = element info { db.titleonly.info.attlist, db._title.only, (db.info.elements*) >> a:documentation [ "A wrapper for information about a component or other block with only a title" ] } } div { db.titleonlyreq.info.role.attribute = attribute role { text } db.titleonlyreq.info.attlist = db.titleonlyreq.info.role.attribute? & db.common.attributes db.titleonlyreq.info = element info { db.titleonlyreq.info.attlist, db._title.onlyreq, (db.info.elements*) >> a:documentation [ "A wrapper for information about a component or other block with only a required title" ] } } div { db.titleforbidden.info.role.attribute = attribute role { text } db.titleforbidden.info.attlist = db.titleforbidden.info.role.attribute? & db.common.attributes db.titleforbidden.info = element info { db.titleforbidden.info.attlist, (db.info.elements*) >> a:documentation [ "A wrapper for information about a component or other block without a title" ] } } div { db.subjectset.role.attribute = attribute role { text } db.subjectset.scheme.attribute = attribute scheme { xsd:NMTOKEN } db.subjectset.attlist = db.subjectset.role.attribute? & db.common.attributes & db.common.linking.attributes & db.subjectset.scheme.attribute? db.subjectset = element subjectset { db.subjectset.attlist, (db.subject+) >> a:documentation [ "A set of terms describing the subject matter of a document" ] } } div { db.subject.role.attribute = attribute role { text } db.subject.weight.attribute = attribute weight { text } db.subject.attlist = db.subject.role.attribute? & db.common.attributes & db.common.linking.attributes & db.subject.weight.attribute? db.subject = element subject { db.subject.attlist, (db.subjectterm+) >> a:documentation [ "One of a group of terms describing the subject matter of a document" ] } } div { db.subjectterm.role.attribute = attribute role { text } db.subjectterm.attlist = db.subjectterm.role.attribute? & db.common.attributes & db.common.linking.attributes db.subjectterm = element subjectterm { db.subjectterm.attlist, text >> a:documentation [ "A term in a group of terms describing the subject matter of a document" ] } } div { db.keywordset.role.attribute = attribute role { text } db.keywordset.attlist = db.keywordset.role.attribute? & db.common.attributes & db.common.linking.attributes db.keywordset = element keywordset { db.keywordset.attlist, (db.keyword+) >> a:documentation [ "A set of keywords describing the content of a document" ] } } div { db.keyword.role.attribute = attribute role { text } db.keyword.attlist = db.keyword.role.attribute? & db.common.attributes & db.common.linking.attributes db.keyword = element keyword { db.keyword.attlist, text >> a:documentation [ "One of a set of keywords describing the content of a document" ] } } db.table.choice = notAllowed | db.cals.table | db.html.table db.informaltable.choice = notAllowed | db.cals.informaltable | db.html.informaltable db.table = db.table.choice db.informaltable = db.informaltable.choice div { db.procedure.role.attribute = attribute role { text } db.procedure.attlist = db.procedure.role.attribute? & db.common.attributes & db.common.linking.attributes db.procedure.info = db._info.title.only db.procedure = element procedure { db.procedure.attlist, db.procedure.info, db.all.blocks*, (db.step+) >> a:documentation [ "A list of operations to be performed in a well-defined sequence" ] } } div { db.step.role.attribute = attribute role { text } db.step.attlist = db.step.role.attribute? & db.common.attributes & db.common.linking.attributes & db.performance.attribute? db.step.info = db._info.title.only db.step = element step { db.step.attlist, db.step.info, db.all.blocks*, (db.substeps | db.stepalternatives)?, (db.all.blocks*) >> a:documentation [ "A unit of action in a procedure" ] } } div { db.stepalternatives.role.attribute = attribute role { text } db.stepalternatives.attlist = db.stepalternatives.role.attribute? & db.common.attributes & db.common.linking.attributes & db.performance.attribute? db.stepalternatives.info = db._info.title.forbidden db.stepalternatives = element stepalternatives { db.stepalternatives.attlist, db.stepalternatives.info, (db.step+) >> a:documentation [ "Alternative steps in a procedure" ] } } div { db.substeps.role.attribute = attribute role { text } db.substeps.attlist = db.substeps.role.attribute? & db.common.attributes & db.common.linking.attributes & db.performance.attribute? db.substeps = element substeps { db.substeps.attlist, (db.step+) >> a:documentation [ "A wrapper for steps that occur within steps in a procedure" ] } } div { db.sidebar.role.attribute = attribute role { text } db.sidebar.attlist = db.sidebar.role.attribute? & db.common.attributes & db.common.linking.attributes db.sidebar.info = db._info.title.only db.sidebar = [ s:rule [ context = "db:sidebar" "\x{a}" ~ " " s:assert [ test = "not(.//db:sidebar)" "sidebar must not occur in the descendants of sidebar" ] "\x{a}" ~ " " ] s:rule [ context = "db:sidebar" "\x{a}" ~ " " s:assert [ test = "not(.//db:sidebar)" "sidebar must not occur in the descendants of sidebar" ] "\x{a}" ~ " " ] ] element sidebar { db.sidebar.attlist, db.sidebar.info, (db.all.blocks+) >> a:documentation [ "A portion of a document that is isolated from the main narrative flow" ] } } div { db.abstract.role.attribute = attribute role { text } db.abstract.attlist = db.abstract.role.attribute? & db.common.attributes & db.common.linking.attributes db.abstract.info = db._info.title.only db.abstract = element abstract { db.abstract.attlist, db.abstract.info, (db.para.blocks+) >> a:documentation [ "A summary" ] } } div { db.personblurb.role.attribute = attribute role { text } db.personblurb.attlist = db.personblurb.role.attribute? & db.common.attributes & db.common.linking.attributes db.personblurb.info = db._info.title.only db.personblurb = element personblurb { db.personblurb.attlist, db.personblurb.info, (db.para.blocks+) >> a:documentation [ "A short description or note about a person" ] } } div { db.blockquote.role.attribute = attribute role { text } db.blockquote.attlist = db.blockquote.role.attribute? & db.common.attributes & db.common.linking.attributes db.blockquote.info = db._info.title.only db.blockquote = element blockquote { db.blockquote.attlist, db.blockquote.info, db.attribution?, (db.all.blocks+) >> a:documentation [ "A quotation set off from the main text" ] } } div { db.attribution.role.attribute = attribute role { text } db.attribution.attlist = db.attribution.role.attribute? & db.common.attributes & db.common.linking.attributes db.attribution = element attribution { db.attribution.attlist, ((db._text | db.personname | db.citetitle | db.citation)*) >> a:documentation [ "The source of a block quote or epigraph" ] } } div { db.bridgehead.role.attribute = attribute role { text } db.bridgehead.renderas.enumeration = "other" | "sect1" | "sect2" | "sect3" | "sect4" | "sect5" db.bridgehead.renderas.attribute = attribute renderas { db.bridgehead.renderas.enumeration } db.bridgehead.attlist = db.bridgehead.role.attribute? & db.common.attributes & db.common.linking.attributes & db.bridgehead.renderas.attribute? db.bridgehead = element bridgehead { db.bridgehead.attlist, (db.all.inlines*) >> a:documentation [ "A free-floating heading" ] } } div { db.remark.role.attribute = attribute role { text } db.remark.attlist = db.remark.role.attribute? & db.common.attributes & db.common.linking.attributes db.remark = element remark { db.remark.attlist, db._text >> a:documentation [ "A remark (or comment) intended for presentation in a draft manuscript" ] } } div { db.epigraph.role.attribute = attribute role { text } db.epigraph.attlist = db.epigraph.role.attribute? & db.common.attributes & db.common.linking.attributes db.epigraph.info = db._info.title.forbidden db.epigraph = element epigraph { db.epigraph.attlist, db.epigraph.info, db.attribution?, ((db.para.blocks | db.literallayout)+) >> a:documentation [ "A short inscription at the beginning of a document or component" ] } } div { db.footnote.role.attribute = attribute role { text } db.footnote.label.attribute = attribute label { text } db.footnote.attlist = db.footnote.role.attribute? & db.common.attributes & db.common.linking.attributes & db.footnote.label.attribute? db.footnote = [ s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:footnote)" "footnote must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:indexterm)" "indexterm must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:indexterm)" "indexterm must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:indexterm)" "indexterm must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:sidebar)" "sidebar must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:task)" "task must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:epigraph)" "epigraph must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:footnote)" "footnote must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:indexterm)" "indexterm must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:indexterm)" "indexterm must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:indexterm)" "indexterm must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:sidebar)" "sidebar must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:task)" "task must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] s:rule [ context = "db:footnote" "\x{a}" ~ " " s:assert [ test = "not(.//db:epigraph)" "epigraph must not occur in the descendants of footnote" ] "\x{a}" ~ " " ] ] element footnote { db.footnote.attlist, (db.all.blocks+) >> a:documentation [ "A footnote" ] } } div { db.formalpara.role.attribute = attribute role { text } db.formalpara.attlist = db.formalpara.role.attribute? & db.common.attributes & db.common.linking.attributes db.formalpara.info = db._info.title.onlyreq db.formalpara = element formalpara { db.formalpara.attlist, db.formalpara.info, db.indexing.inlines*, db.para >> a:documentation [ "A paragraph with a title" ] } } div { db.para.role.attribute = attribute role { text } db.para.attlist = db.para.role.attribute? & db.common.attributes & db.common.linking.attributes db.para.info = db._info.title.forbidden db.para = [ s:rule [ context = "/db:para" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:para" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element para { db.para.attlist, db.para.info, ((db.all.inlines | db.nopara.blocks)*) >> a:documentation [ "A paragraph" ] } } div { db.simpara.role.attribute = attribute role { text } db.simpara.attlist = db.simpara.role.attribute? & db.common.attributes & db.common.linking.attributes db.simpara.info = db._info.title.forbidden db.simpara = element simpara { db.simpara.attlist, db.simpara.info, (db.all.inlines*) >> a:documentation [ "A paragraph that contains only text and inline markup, no block elements" ] } } db.admonition.contentmodel = db._info.title.only, db.all.blocks+ div { db.caution.role.attribute = attribute role { text } db.caution.attlist = db.caution.role.attribute? & db.common.attributes & db.common.linking.attributes db.caution = [ s:rule [ context = "db:caution" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of caution" ] "\x{a}" ~ " " ] s:rule [ context = "db:caution" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of caution" ] "\x{a}" ~ " " ] s:rule [ context = "db:caution" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of caution" ] "\x{a}" ~ " " ] s:rule [ context = "db:caution" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of caution" ] "\x{a}" ~ " " ] s:rule [ context = "db:caution" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of caution" ] "\x{a}" ~ " " ] s:rule [ context = "db:caution" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of caution" ] "\x{a}" ~ " " ] s:rule [ context = "db:caution" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of caution" ] "\x{a}" ~ " " ] s:rule [ context = "db:caution" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of caution" ] "\x{a}" ~ " " ] s:rule [ context = "db:caution" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of caution" ] "\x{a}" ~ " " ] s:rule [ context = "db:caution" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of caution" ] "\x{a}" ~ " " ] ] element caution { db.caution.attlist, db.admonition.contentmodel >> a:documentation [ "A note of caution" ] } } div { db.important.role.attribute = attribute role { text } db.important.attlist = db.important.role.attribute? & db.common.attributes & db.common.linking.attributes db.important = [ s:rule [ context = "db:important" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of important" ] "\x{a}" ~ " " ] s:rule [ context = "db:important" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of important" ] "\x{a}" ~ " " ] s:rule [ context = "db:important" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of important" ] "\x{a}" ~ " " ] s:rule [ context = "db:important" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of important" ] "\x{a}" ~ " " ] s:rule [ context = "db:important" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of important" ] "\x{a}" ~ " " ] s:rule [ context = "db:important" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of important" ] "\x{a}" ~ " " ] s:rule [ context = "db:important" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of important" ] "\x{a}" ~ " " ] s:rule [ context = "db:important" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of important" ] "\x{a}" ~ " " ] s:rule [ context = "db:important" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of important" ] "\x{a}" ~ " " ] s:rule [ context = "db:important" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of important" ] "\x{a}" ~ " " ] ] element important { db.important.attlist, db.admonition.contentmodel >> a:documentation [ "An admonition set off from the text" ] } } div { db.note.role.attribute = attribute role { text } db.note.attlist = db.note.role.attribute? & db.common.attributes & db.common.linking.attributes db.note = [ s:rule [ context = "db:note" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of note" ] "\x{a}" ~ " " ] s:rule [ context = "db:note" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of note" ] "\x{a}" ~ " " ] s:rule [ context = "db:note" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of note" ] "\x{a}" ~ " " ] s:rule [ context = "db:note" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of note" ] "\x{a}" ~ " " ] s:rule [ context = "db:note" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of note" ] "\x{a}" ~ " " ] s:rule [ context = "db:note" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of note" ] "\x{a}" ~ " " ] s:rule [ context = "db:note" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of note" ] "\x{a}" ~ " " ] s:rule [ context = "db:note" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of note" ] "\x{a}" ~ " " ] s:rule [ context = "db:note" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of note" ] "\x{a}" ~ " " ] s:rule [ context = "db:note" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of note" ] "\x{a}" ~ " " ] ] element note { db.note.attlist, db.admonition.contentmodel >> a:documentation [ "A message set off from the text" ] } } div { db.tip.role.attribute = attribute role { text } db.tip.attlist = db.tip.role.attribute? & db.common.attributes & db.common.linking.attributes db.tip = [ s:rule [ context = "db:tip" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of tip" ] "\x{a}" ~ " " ] s:rule [ context = "db:tip" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of tip" ] "\x{a}" ~ " " ] s:rule [ context = "db:tip" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of tip" ] "\x{a}" ~ " " ] s:rule [ context = "db:tip" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of tip" ] "\x{a}" ~ " " ] s:rule [ context = "db:tip" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of tip" ] "\x{a}" ~ " " ] s:rule [ context = "db:tip" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of tip" ] "\x{a}" ~ " " ] s:rule [ context = "db:tip" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of tip" ] "\x{a}" ~ " " ] s:rule [ context = "db:tip" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of tip" ] "\x{a}" ~ " " ] s:rule [ context = "db:tip" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of tip" ] "\x{a}" ~ " " ] s:rule [ context = "db:tip" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of tip" ] "\x{a}" ~ " " ] ] element tip { db.tip.attlist, db.admonition.contentmodel >> a:documentation [ "A suggestion to the user, set off from the text" ] } } div { db.warning.role.attribute = attribute role { text } db.warning.attlist = db.warning.role.attribute? & db.common.attributes & db.common.linking.attributes db.warning = [ s:rule [ context = "db:warning" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of warning" ] "\x{a}" ~ " " ] s:rule [ context = "db:warning" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of warning" ] "\x{a}" ~ " " ] s:rule [ context = "db:warning" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of warning" ] "\x{a}" ~ " " ] s:rule [ context = "db:warning" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of warning" ] "\x{a}" ~ " " ] s:rule [ context = "db:warning" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of warning" ] "\x{a}" ~ " " ] s:rule [ context = "db:warning" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of warning" ] "\x{a}" ~ " " ] s:rule [ context = "db:warning" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of warning" ] "\x{a}" ~ " " ] s:rule [ context = "db:warning" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of warning" ] "\x{a}" ~ " " ] s:rule [ context = "db:warning" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of warning" ] "\x{a}" ~ " " ] s:rule [ context = "db:warning" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of warning" ] "\x{a}" ~ " " ] ] element warning { db.warning.attlist, db.admonition.contentmodel >> a:documentation [ "An admonition set off from the text" ] } } div { db.itemizedlist.role.attribute = attribute role { text } db.itemizedlist.mark.attribute = attribute mark { text } db.itemizedlist.attlist = db.itemizedlist.role.attribute? & db.common.attributes & db.common.linking.attributes & db.spacing.attribute? & db.itemizedlist.mark.attribute? db.itemizedlist.info = db._info.title.only db.itemizedlist = element itemizedlist { db.itemizedlist.attlist, db.itemizedlist.info, db.all.blocks*, (db.listitem+) >> a:documentation [ "A list in which each entry is marked with a bullet or other dingbat" ] } } div { db.orderedlist.role.attribute = attribute role { text } db.orderedlist.continuation.enumeration = "continues" | "restarts" db.orderedlist.continuation.attribute = attribute continuation { db.orderedlist.continuation.enumeration } db.orderedlist.inheritnum.enumeration = "ignore" | "inherit" db.orderedlist.inheritnum.attribute = attribute inheritnum { db.orderedlist.inheritnum.enumeration } db.orderedlist.numeration.enumeration = "arabic" | "upperalpha" | "loweralpha" | "upperroman" | "lowerroman" db.orderedlist.numeration.attribute = attribute numeration { db.orderedlist.numeration.enumeration } db.orderedlist.attlist = db.orderedlist.role.attribute? & db.common.attributes & db.common.linking.attributes & db.spacing.attribute? & db.orderedlist.continuation.attribute? & db.orderedlist.inheritnum.attribute? & db.orderedlist.numeration.attribute? db.orderedlist.info = db._info.title.only db.orderedlist = element orderedlist { db.orderedlist.attlist, db.orderedlist.info, db.all.blocks*, (db.listitem+) >> a:documentation [ "A list in which each entry is marked with a sequentially incremented label" ] } } div { db.listitem.role.attribute = attribute role { text } db.listitem.override.attribute = attribute override { text } db.listitem.attlist = db.listitem.role.attribute? & db.common.attributes & db.common.linking.attributes & db.listitem.override.attribute? db.listitem = element listitem { db.listitem.attlist, (db.all.blocks+) >> a:documentation [ "A wrapper for the elements of a list item" ] } } div { db.segmentedlist.role.attribute = attribute role { text } db.segmentedlist.attlist = db.segmentedlist.role.attribute? & db.common.attributes & db.common.linking.attributes db.segmentedlist.info = db._info.title.only db.segmentedlist = element segmentedlist { db.segmentedlist.attlist, db.segmentedlist.info, db.segtitle+, (db.seglistitem+) >> a:documentation [ "A segmented list, a list of sets of elements" ] } } div { db.segtitle.role.attribute = attribute role { text } db.segtitle.attlist = db.segtitle.role.attribute? & db.common.attributes & db.common.linking.attributes db.segtitle = element segtitle { db.segtitle.attlist, (db.all.inlines*) >> a:documentation [ "The title of an element of a list item in a segmented list" ] } } div { db.seglistitem.role.attribute = attribute role { text } db.seglistitem.attlist = db.seglistitem.role.attribute? & db.common.attributes & db.common.linking.attributes db.seglistitem = [ s:rule [ context = "db:seglistitem" "\x{a}" ~ " " s:assert [ test = "count(db:seg) = count(../db:segtitle)" "The number of seg elements must be the same as the number of segtitle elements in the parent segmentedlist" ] "\x{a}" ~ " " ] ] element seglistitem { db.seglistitem.attlist, (db.seg+) >> a:documentation [ "A list item in a segmented list" ] } } div { db.seg.role.attribute = attribute role { text } db.seg.attlist = db.seg.role.attribute? & db.common.attributes & db.common.linking.attributes db.seg = element seg { db.seg.attlist, (db.all.inlines*) >> a:documentation [ "An element of a list item in a segmented list" ] } } div { db.simplelist.role.attribute = attribute role { text } db.simplelist.type.enumeration = "horiz" | "vert" | "inline" db.simplelist.type.attribute = attribute type { db.simplelist.type.enumeration } db.simplelist.columns.attribute = attribute columns { xsd:integer } db.simplelist.attlist = db.simplelist.role.attribute? & db.common.attributes & db.common.linking.attributes & db.simplelist.type.attribute? & db.simplelist.columns.attribute? db.simplelist = element simplelist { db.simplelist.attlist, (db.member+) >> a:documentation [ "An undecorated list of single words or short phrases" ] } } div { db.member.role.attribute = attribute role { text } db.member.attlist = db.member.role.attribute? & db.common.attributes & db.common.linking.attributes db.member = element member { db.member.attlist, (db.all.inlines*) >> a:documentation [ "An element of a simple list" ] } } div { db.variablelist.role.attribute = attribute role { text } db.variablelist.termlength.attribute = attribute termlength { text } db.variablelist.attlist = db.variablelist.role.attribute? & db.common.attributes & db.common.linking.attributes & db.spacing.attribute? & db.variablelist.termlength.attribute? db.variablelist.info = db._info.title.only db.variablelist = element variablelist { db.variablelist.attlist, db.variablelist.info, db.all.blocks*, (db.varlistentry+) >> a:documentation [ "A list in which each entry is composed of a set of one or more terms and an associated description" ] } } div { db.varlistentry.role.attribute = attribute role { text } db.varlistentry.attlist = db.varlistentry.role.attribute? & db.common.attributes & db.common.linking.attributes db.varlistentry = element varlistentry { db.varlistentry.attlist, db.term+, db.listitem >> a:documentation [ "A wrapper for a set of terms and the associated description in a variable list" ] } } div { db.term.role.attribute = attribute role { text } db.term.attlist = db.term.role.attribute? & db.common.attributes & db.common.linking.attributes db.term = element term { db.term.attlist, (db.all.inlines*) >> a:documentation [ "The word or phrase being defined or described in a variable list" ] } } div { db.example.role.attribute = attribute role { text } db.example.label.attribute = attribute label { text } db.example.width.attribute = attribute width { text } db.example.attlist = db.example.role.attribute? & db.common.attributes & db.common.linking.attributes & db.example.label.attribute? & db.floatstyle.attribute? & db.example.width.attribute? db.example.info = db._info.title.onlyreq db.example = [ s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of example" ] "\x{a}" ~ " " ] s:rule [ context = "db:example" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of example" ] "\x{a}" ~ " " ] ] element example { db.example.attlist, db.example.info, db.all.blocks+, (db.caption?) >> a:documentation [ "A formal example, with a title" ] } } div { db.informalexample.role.attribute = attribute role { text } db.informalexample.width.attribute = attribute width { text } db.informalexample.attlist = db.informalexample.role.attribute? & db.common.attributes & db.common.linking.attributes & db.floatstyle.attribute? & db.informalexample.width.attribute? db.informalexample.info = db._info.title.forbidden db.informalexample = element informalexample { db.informalexample.attlist, db.informalexample.info, db.all.blocks+, (db.caption?) >> a:documentation [ "A displayed example without a title" ] } } db.verbatim.inlines = (db.all.inlines | db.lineannotation) | db.co db.verbatim.contentmodel = db._info.title.forbidden, (db.textobject | db.verbatim.inlines*) div { db.programlisting.role.attribute = attribute role { text } db.programlisting.width.attribute = attribute width { text } db.programlisting.attlist = db.programlisting.role.attribute? & db.common.attributes & db.common.linking.attributes & db.verbatim.attributes & db.programlisting.width.attribute? db.programlisting = element programlisting { db.programlisting.attlist, db.verbatim.contentmodel >> a:documentation [ "A literal listing of all or part of a program" ] } } div { db.literallayout.role.attribute = attribute role { text } db.literallayout.class.enumeration = "monospaced" | "normal" db.literallayout.class.attribute = attribute class { db.literallayout.class.enumeration } db.literallayout.attlist = db.literallayout.role.attribute? & db.common.attributes & db.common.linking.attributes & db.verbatim.attributes & db.literallayout.class.attribute? db.literallayout = element literallayout { db.literallayout.attlist, db.verbatim.contentmodel >> a:documentation [ "A block of text in which line breaks and white space are to be reproduced faithfully" ] } } div { db.screen.role.attribute = attribute role { text } db.screen.width.attribute = attribute width { text } db.screen.attlist = db.screen.role.attribute? & db.common.attributes & db.common.linking.attributes & db.verbatim.attributes & db.screen.width.attribute? db.screen = element screen { db.screen.attlist, db.verbatim.contentmodel >> a:documentation [ "Text that a user sees or might see on a computer screen" ] } } div { db.screenshot.role.attribute = attribute role { text } db.screenshot.attlist = db.screenshot.role.attribute? & db.common.attributes & db.common.linking.attributes db.screenshot.info = db._info db.screenshot = element screenshot { db.screenshot.attlist, db.screenshot.info, db.mediaobject >> a:documentation [ "A representation of what the user sees or might see on a computer screen" ] } } div { db.figure.role.attribute = attribute role { text } db.figure.label.attribute = attribute label { text } db.figure.attlist = db.figure.role.attribute? & db.common.attributes & db.common.linking.attributes & db.figure.label.attribute? & db.pgwide.attribute? & db.floatstyle.attribute? db.figure.info = db._info.title.onlyreq db.figure = [ s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of figure" ] "\x{a}" ~ " " ] s:rule [ context = "db:figure" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of figure" ] "\x{a}" ~ " " ] ] element figure { db.figure.attlist, db.figure.info, db.all.blocks+, (db.caption?) >> a:documentation [ "A formal figure, generally an illustration, with a title" ] } } div { db.informalfigure.role.attribute = attribute role { text } db.informalfigure.label.attribute = attribute label { text } db.informalfigure.attlist = db.informalfigure.role.attribute? & db.common.attributes & db.common.linking.attributes & db.informalfigure.label.attribute? & db.pgwide.attribute? & db.floatstyle.attribute? db.informalfigure.info = db._info.title.forbidden db.informalfigure = element informalfigure { db.informalfigure.attlist, db.informalfigure.info, db.all.blocks+, (db.caption?) >> a:documentation [ "A untitled figure" ] } } db.mediaobject.content = (db.videoobject | db.audioobject | db.imageobject | db.textobject) | db.imageobjectco div { db.mediaobject.role.attribute = attribute role { text } db.mediaobject.attlist = db.mediaobject.role.attribute? & db.common.attributes & db.common.linking.attributes db.mediaobject.info = db._info.title.forbidden db.mediaobject = element mediaobject { db.mediaobject.attlist, db.mediaobject.info, db.alt?, db.mediaobject.content+, (db.caption?) >> a:documentation [ "A displayed media object (video, audio, image, etc.)" ] } } div { db.inlinemediaobject.role.attribute = attribute role { text } db.inlinemediaobject.attlist = db.inlinemediaobject.role.attribute? & db.common.attributes & db.common.linking.attributes db.inlinemediaobject.info = db._info.title.forbidden db.inlinemediaobject = element inlinemediaobject { db.inlinemediaobject.attlist, db.inlinemediaobject.info, db.alt?, (db.mediaobject.content+) >> a:documentation [ "An inline media object (video, audio, image, and so on)" ] } } div { db.videoobject.role.attribute = attribute role { text } db.videoobject.attlist = db.videoobject.role.attribute? & db.common.attributes & db.common.linking.attributes db.videoobject.info = db._info.title.forbidden db.videoobject = element videoobject { db.videoobject.attlist, db.videoobject.info, db.videodata >> a:documentation [ "A wrapper for video data and its associated meta-information" ] } } div { db.audioobject.role.attribute = attribute role { text } db.audioobject.attlist = db.audioobject.role.attribute? & db.common.attributes & db.common.linking.attributes db.audioobject.info = db._info.title.forbidden db.audioobject = element audioobject { db.audioobject.attlist, db.audioobject.info, db.audiodata >> a:documentation [ "A wrapper for audio data and its associated meta-information" ] } } db.imageobject.content = db.imagedata | db._any.svg div { db.imageobject.role.attribute = attribute role { text } db.imageobject.attlist = db.imageobject.role.attribute? & db.common.attributes & db.common.linking.attributes db.imageobject.info = db._info.title.forbidden db.imageobject = element imageobject { db.imageobject.attlist, db.imageobject.info, db.imageobject.content >> a:documentation [ "A wrapper for image data and its associated meta-information" ] } } div { db.textobject.role.attribute = attribute role { text } db.textobject.attlist = db.textobject.role.attribute? & db.common.attributes & db.common.linking.attributes db.textobject.info = db._info.title.forbidden db.textobject = element textobject { db.textobject.attlist, db.textobject.info, (db.phrase | db.textdata | db.all.blocks+) >> a:documentation [ "A wrapper for a text description of an object and its associated meta-information" ] } } div { db.videodata.role.attribute = attribute role { text } db.videodata.align.enumeration = db.halign.enumeration db.videodata.align.attribute = attribute align { db.videodata.align.enumeration } db.videodata.valign.enumeration = db.valign.enumeration db.videodata.valign.attribute = attribute valign { db.videodata.valign.enumeration } db.videodata.width.attribute = attribute width { text } db.videodata.contentwidth.attribute = attribute contentwidth { text } db.videodata.scalefit.enumeration = "0" | "1" db.videodata.scalefit.attribute = attribute scalefit { db.videodata.scalefit.enumeration } db.videodata.scale.attribute = attribute scale { text } db.videodata.depth.attribute = attribute depth { text } db.videodata.contentdepth.attribute = attribute contentdepth { text } db.videodata.attlist = db.videodata.role.attribute? & db.common.attributes & db.common.data.attributes & db.videodata.align.attribute? & db.videodata.valign.attribute? & db.videodata.width.attribute? & db.videodata.contentwidth.attribute? & db.videodata.scalefit.attribute? & db.videodata.scale.attribute? & db.videodata.depth.attribute? & db.videodata.contentdepth.attribute? db.videodata.info = db._info.title.forbidden db.videodata = element videodata { db.videodata.attlist, db.videodata.info >> a:documentation [ "Pointer to external video data" ] } } div { db.audiodata.role.attribute = attribute role { text } db.audiodata.attlist = db.audiodata.role.attribute? & db.common.attributes & db.common.data.attributes db.audiodata.info = db._info.title.forbidden db.audiodata = element audiodata { db.audiodata.attlist, db.audiodata.info >> a:documentation [ "Pointer to external audio data" ] } } div { db.imagedata.role.attribute = attribute role { text } db.imagedata.align.enumeration = db.halign.enumeration db.imagedata.align.attribute = attribute align { db.imagedata.align.enumeration } db.imagedata.valign.enumeration = db.valign.enumeration db.imagedata.valign.attribute = attribute valign { db.imagedata.valign.enumeration } db.imagedata.width.attribute = attribute width { text } db.imagedata.contentwidth.attribute = attribute contentwidth { text } db.imagedata.scalefit.enumeration = "0" | "1" db.imagedata.scalefit.attribute = attribute scalefit { db.imagedata.scalefit.enumeration } db.imagedata.scale.attribute = attribute scale { text } db.imagedata.depth.attribute = attribute depth { text } db.imagedata.contentdepth.attribute = attribute contentdepth { text } db.imagedata.attlist = db.imagedata.role.attribute? & db.common.attributes & db.common.data.attributes & db.imagedata.align.attribute? & db.imagedata.valign.attribute? & db.imagedata.width.attribute? & db.imagedata.contentwidth.attribute? & db.imagedata.scalefit.attribute? & db.imagedata.scale.attribute? & db.imagedata.depth.attribute? & db.imagedata.contentdepth.attribute? db.imagedata.info = db._info.title.forbidden db.imagedata = element imagedata { db.imagedata.attlist, db.imagedata.info >> a:documentation [ "Pointer to external image data" ] } } div { db.textdata.role.attribute = attribute role { text } db.textdata.encoding.attribute = attribute encoding { text } db.textdata.attlist = db.textdata.role.attribute? & db.common.attributes & db.common.data.attributes & db.textdata.encoding.attribute? db.textdata.info = db._info.title.forbidden db.textdata = element textdata { db.textdata.attlist, db.textdata.info >> a:documentation [ "Pointer to external text data" ] } } div { db.caption.role.attribute = attribute role { text } db.caption.attlist = db.caption.role.attribute? & db.common.attributes & db.common.linking.attributes db.caption.info = db._info.title.forbidden db.caption = [ s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:sidebar)" "sidebar must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:task)" "task must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:sidebar)" "sidebar must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:task)" "task must not occur in the descendants of caption" ] "\x{a}" ~ " " ] ] element caption { db.caption.attlist, db.caption.info, (db.all.blocks+) >> a:documentation [ "A caption" ] } } div { db.synopsis.role.attribute = attribute role { text } db.synopsis.label.attribute = attribute label { text } db.synopsis.attlist = db.synopsis.role.attribute? & db.common.attributes & db.common.linking.attributes & db.verbatim.attributes & db.synopsis.label.attribute? db.synopsis = element synopsis { db.synopsis.attlist, db.verbatim.contentmodel >> a:documentation [ "A general-purpose element for representing the syntax of commands or functions" ] } } div { db.cmdsynopsis.role.attribute = attribute role { text } db.cmdsynopsis.sepchar.attribute = attribute sepchar { text } db.cmdsynopsis.cmdlength.attribute = attribute cmdlength { text } db.cmdsynopsis.label.attribute = attribute label { text } db.cmdsynopsis.attlist = db.cmdsynopsis.role.attribute? & db.common.attributes & db.common.linking.attributes & db.cmdsynopsis.sepchar.attribute? & db.cmdsynopsis.cmdlength.attribute? & db.cmdsynopsis.label.attribute? db.cmdsynopsis.info = db._info.title.forbidden db.cmdsynopsis = element cmdsynopsis { db.cmdsynopsis.attlist, db.cmdsynopsis.info, (db.command | db.arg | db.group | db.sbr)+, (db.synopfragment*) >> a:documentation [ "A syntax summary for a software command" ] } } db.rep.enumeration = "norepeat" | "repeat" db.rep.attribute = attribute rep { db.rep.enumeration } db.choice.enumeration = "opt" | "plain" | "req" db.choice.attribute = attribute choice { db.choice.enumeration } div { db.arg.role.attribute = attribute role { text } db.arg.attlist = db.arg.role.attribute? & db.common.attributes & db.common.linking.attributes & db.rep.attribute? & db.choice.attribute? db.arg = element arg { db.arg.attlist, ((db._text | db.arg | db.group | db.option | db.synopfragmentref | db.sbr)*) >> a:documentation [ "An argument in a CmdSynopsis" ] } } div { db.group.role.attribute = attribute role { text } db.group.attlist = db.group.role.attribute? & db.common.attributes & db.common.linking.attributes & db.rep.attribute? & db.choice.attribute? db.group = element group { db.group.attlist, ((db.arg | db.group | db.option | db.synopfragmentref | db.replaceable | db.sbr)+) >> a:documentation [ "A group of elements in a CmdSynopsis" ] } } div { db.sbr.role.attribute = attribute role { text } db.sbr.attlist = db.sbr.role.attribute? & db.common.attributes db.sbr = element sbr { db.sbr.attlist, empty >> a:documentation [ "An explicit line break in a command synopsis" ] } } div { db.synopfragment.role.attribute = attribute role { text } db.synopfragment.attlist = db.synopfragment.role.attribute? & db.common.attributes & db.common.linking.attributes db.synopfragment = element synopfragment { db.synopfragment.attlist, ((db.arg | db.group)+) >> a:documentation [ "A portion of a CmdSynopsis broken out from the main body of the synopsis" ] } } div { db.synopfragmentref.role.attribute = attribute role { text } db.synopfragmentref.attlist = db.synopfragmentref.role.attribute? & db.common.attributes & db.linkend.attribute db.synopfragmentref = [ s:rule [ context = "db:synopfragmentref" "\x{a}" ~ " " s:assert [ test = "local-name(//*[@id=current()/@linkend]) = 'synopfragment' and namespace-uri(//*[@id=current()/@linkend]) = 'http://docbook.org/ns/docbook'" "@linkend on synopfragmentref must point to a synopfragment." ] "\x{a}" ~ " " ] ] element synopfragmentref { db.synopfragmentref.attlist, text >> a:documentation [ "A reference to a fragment of a command synopsis" ] } } div { db.funcsynopsis.role.attribute = attribute role { text } db.funcsynopsis.attlist = db.funcsynopsis.role.attribute? & db.common.attributes & db.common.linking.attributes & db.language.attribute? db.funcsynopsis.info = db._info.title.forbidden db.funcsynopsis = element funcsynopsis { db.funcsynopsis.attlist, db.funcsynopsis.info, ((db.funcsynopsisinfo | db.funcprototype)+) >> a:documentation [ "The syntax summary for a function definition" ] } } div { db.funcsynopsisinfo.role.attribute = attribute role { text } db.funcsynopsisinfo.attlist = db.funcsynopsisinfo.role.attribute? & db.common.attributes & db.common.linking.attributes & db.verbatim.attributes db.funcsynopsisinfo = element funcsynopsisinfo { db.funcsynopsisinfo.attlist, db.verbatim.contentmodel >> a:documentation [ "Information supplementing the FuncDefs of a FuncSynopsis" ] } } div { db.funcprototype.role.attribute = attribute role { text } db.funcprototype.attlist = db.funcprototype.role.attribute? & db.common.attributes & db.common.linking.attributes db.funcprototype = element funcprototype { db.funcprototype.attlist, db.modifier*, db.funcdef, (db.void | db.varargs | (db.paramdef+, db.varargs?)), (db.modifier*) >> a:documentation [ "The prototype of a function" ] } } div { db.funcdef.role.attribute = attribute role { text } db.funcdef.attlist = db.funcdef.role.attribute? & db.common.attributes & db.common.linking.attributes db.funcdef = element funcdef { db.funcdef.attlist, ((db._text | db.type | db.function)*) >> a:documentation [ "A function (subroutine) name and its return type" ] } } div { db.void.role.attribute = attribute role { text } db.void.attlist = db.void.role.attribute? & db.common.attributes & db.common.linking.attributes db.void = element void { db.void.attlist, empty >> a:documentation [ "An empty element in a function synopsis indicating that the function in question takes no arguments" ] } } div { db.varargs.role.attribute = attribute role { text } db.varargs.attlist = db.varargs.role.attribute? & db.common.attributes & db.common.linking.attributes db.varargs = element varargs { db.varargs.attlist, empty >> a:documentation [ "An empty element in a function synopsis indicating a variable number of arguments" ] } } div { db.paramdef.role.attribute = attribute role { text } db.paramdef.attlist = db.paramdef.role.attribute? & db.common.attributes & db.common.linking.attributes & db.choice.attribute? db.paramdef = element paramdef { db.paramdef.attlist, ((db._text | db.initializer | db.type | db.parameter | db.funcparams)*) >> a:documentation [ "Information about a function parameter in a programming language" ] } } div { db.funcparams.role.attribute = attribute role { text } db.funcparams.attlist = db.funcparams.role.attribute? & db.common.attributes & db.common.linking.attributes db.funcparams = element funcparams { db.funcparams.attlist, db._text >> a:documentation [ "Parameters for a function referenced through a function pointer in a synopsis" ] } } div { db.classsynopsis.role.attribute = attribute role { text } db.classsynopsis.class.enumeration = "class" | "interface" db.classsynopsis.class.attribute = attribute class { db.classsynopsis.class.enumeration } db.classsynopsis.attlist = db.classsynopsis.role.attribute? & db.common.attributes & db.common.linking.attributes & db.language.attribute? & db.classsynopsis.class.attribute? db.classsynopsis = element classsynopsis { db.classsynopsis.attlist, db.oo.inlines+, ((db.classsynopsisinfo | db.methodsynopsis | db.constructorsynopsis | db.destructorsynopsis | db.fieldsynopsis)*) >> a:documentation [ "The syntax summary for a class definition" ] } } div { db.classsynopsisinfo.role.attribute = attribute role { text } db.classsynopsisinfo.attlist = db.classsynopsisinfo.role.attribute? & db.common.attributes & db.common.linking.attributes & db.verbatim.attributes db.classsynopsisinfo = element classsynopsisinfo { db.classsynopsisinfo.attlist, db.verbatim.contentmodel >> a:documentation [ "Information supplementing the contents of a ClassSynopsis" ] } } div { db.ooclass.role.attribute = attribute role { text } db.ooclass.attlist = db.ooclass.role.attribute? & db.common.attributes & db.common.linking.attributes db.ooclass = element ooclass { db.ooclass.attlist, (db.package | db.modifier)*, db.classname >> a:documentation [ "A class in an object-oriented programming language" ] } } div { db.oointerface.role.attribute = attribute role { text } db.oointerface.attlist = db.oointerface.role.attribute? & db.common.attributes & db.common.linking.attributes db.oointerface = element oointerface { db.oointerface.attlist, (db.package | db.modifier)*, db.interfacename >> a:documentation [ "An interface in an object-oriented programming language" ] } } div { db.ooexception.role.attribute = attribute role { text } db.ooexception.attlist = db.ooexception.role.attribute? & db.common.attributes & db.common.linking.attributes db.ooexception = element ooexception { db.ooexception.attlist, (db.package | db.modifier)*, db.exceptionname >> a:documentation [ "An exception in an object-oriented programming language" ] } } div { db.modifier.role.attribute = attribute role { text } db.modifier.attlist = db.modifier.role.attribute? & db.common.attributes & db.common.linking.attributes db.modifier = element modifier { db.modifier.attlist, db._text >> a:documentation [ "Modifiers in a synopsis" ] } } div { db.interfacename.role.attribute = attribute role { text } db.interfacename.attlist = db.interfacename.role.attribute? & db.common.attributes & db.common.linking.attributes db.interfacename = element interfacename { db.interfacename.attlist, db._text >> a:documentation [ "The name of an interface" ] } } div { db.exceptionname.role.attribute = attribute role { text } db.exceptionname.attlist = db.exceptionname.role.attribute? & db.common.attributes & db.common.linking.attributes db.exceptionname = element exceptionname { db.exceptionname.attlist, db._text >> a:documentation [ "The name of an exception" ] } } div { db.fieldsynopsis.role.attribute = attribute role { text } db.fieldsynopsis.attlist = db.fieldsynopsis.role.attribute? & db.common.attributes & db.common.linking.attributes & db.language.attribute? db.fieldsynopsis = element fieldsynopsis { db.fieldsynopsis.attlist, db.modifier*, db.type?, db.varname, (db.initializer?) >> a:documentation [ "The name of a field in a class definition" ] } } div { db.initializer.role.attribute = attribute role { text } db.initializer.attlist = db.initializer.role.attribute? & db.common.attributes & db.common.linking.attributes db.initializer = element initializer { db.initializer.attlist, db._text >> a:documentation [ "The initializer for a FieldSynopsis" ] } } div { db.constructorsynopsis.role.attribute = attribute role { text } db.constructorsynopsis.attlist = db.constructorsynopsis.role.attribute? & db.common.attributes & db.common.linking.attributes & db.language.attribute? db.constructorsynopsis = element constructorsynopsis { db.constructorsynopsis.attlist, db.modifier*, db.methodname?, (db.methodparam+ | db.void?), (db.exceptionname*) >> a:documentation [ "A syntax summary for a constructor" ] } } div { db.destructorsynopsis.role.attribute = attribute role { text } db.destructorsynopsis.attlist = db.destructorsynopsis.role.attribute? & db.common.attributes & db.common.linking.attributes & db.language.attribute? db.destructorsynopsis = element destructorsynopsis { db.destructorsynopsis.attlist, db.modifier*, db.methodname?, (db.methodparam+ | db.void?), (db.exceptionname*) >> a:documentation [ "A syntax summary for a destructor" ] } } div { db.methodsynopsis.role.attribute = attribute role { text } db.methodsynopsis.attlist = db.methodsynopsis.role.attribute? & db.common.attributes & db.common.linking.attributes & db.language.attribute? db.methodsynopsis = element methodsynopsis { db.methodsynopsis.attlist, db.modifier*, (db.type | db.void)?, db.methodname, (db.methodparam+ | db.void), db.exceptionname*, (db.modifier*) >> a:documentation [ "A syntax summary for a method" ] } } div { db.methodname.role.attribute = attribute role { text } db.methodname.attlist = db.methodname.role.attribute? & db.common.attributes & db.common.linking.attributes db.methodname = element methodname { db.methodname.attlist, db._text >> a:documentation [ "The name of a method" ] } } div { db.methodparam.role.attribute = attribute role { text } db.methodparam.attlist = db.methodparam.role.attribute? & db.common.attributes & db.common.linking.attributes & db.rep.attribute? & db.choice.attribute? db.methodparam = element methodparam { db.methodparam.attlist, db.modifier*, db.type?, ((db.parameter, db.initializer?) | db.funcparams), (db.modifier*) >> a:documentation [ "Parameters to a method" ] } } div { db.address.role.attribute = attribute role { text } db.address.attlist = db.address.role.attribute? & db.common.attributes & db.common.linking.attributes & db.verbatim.attributes db.address = element address { db.address.attlist, ((db._text | db.personname | db.pob | db.street | db.city | db.state | db.postcode | db.country | db.phone | db.fax | db.email | db.otheraddr)*) >> a:documentation [ "A real-world address, generally a postal address" ] } } div { db.street.role.attribute = attribute role { text } db.street.attlist = db.street.role.attribute? & db.common.attributes & db.common.linking.attributes db.street = element street { db.street.attlist, db._text >> a:documentation [ "A street address in an address" ] } } div { db.pob.role.attribute = attribute role { text } db.pob.attlist = db.pob.role.attribute? & db.common.attributes & db.common.linking.attributes db.pob = element pob { db.pob.attlist, db._text >> a:documentation [ "A post office box in an address" ] } } div { db.postcode.role.attribute = attribute role { text } db.postcode.attlist = db.postcode.role.attribute? & db.common.attributes & db.common.linking.attributes db.postcode = element postcode { db.postcode.attlist, db._text >> a:documentation [ "A postal code in an address" ] } } div { db.city.role.attribute = attribute role { text } db.city.attlist = db.city.role.attribute? & db.common.attributes & db.common.linking.attributes db.city = element city { db.city.attlist, db._text >> a:documentation [ "The name of a city in an address" ] } } div { db.state.role.attribute = attribute role { text } db.state.attlist = db.state.role.attribute? & db.common.attributes & db.common.linking.attributes db.state = element state { db.state.attlist, db._text >> a:documentation [ "A state or province in an address" ] } } div { db.country.role.attribute = attribute role { text } db.country.attlist = db.country.role.attribute? & db.common.attributes & db.common.linking.attributes db.country = element country { db.country.attlist, db._text >> a:documentation [ "The name of a country" ] } } div { db.phone.role.attribute = attribute role { text } db.phone.attlist = db.phone.role.attribute? & db.common.attributes & db.common.linking.attributes db.phone = element phone { db.phone.attlist, db._text >> a:documentation [ "A telephone number" ] } } div { db.fax.role.attribute = attribute role { text } db.fax.attlist = db.fax.role.attribute? & db.common.attributes & db.common.linking.attributes db.fax = element fax { db.fax.attlist, db._text >> a:documentation [ "A fax number" ] } } div { db.otheraddr.role.attribute = attribute role { text } db.otheraddr.attlist = db.otheraddr.role.attribute? & db.common.attributes & db.common.linking.attributes db.otheraddr = element otheraddr { db.otheraddr.attlist, db._text >> a:documentation [ "Uncategorized information in address" ] } } div { db.affiliation.role.attribute = attribute role { text } db.affiliation.attlist = db.affiliation.role.attribute? & db.common.attributes & db.common.linking.attributes db.affiliation = element affiliation { db.affiliation.attlist, db.shortaffil?, db.jobtitle*, db.orgname?, db.orgdiv*, (db.address*) >> a:documentation [ "The institutional affiliation of an individual" ] } } div { db.shortaffil.role.attribute = attribute role { text } db.shortaffil.attlist = db.shortaffil.role.attribute? & db.common.attributes & db.common.linking.attributes db.shortaffil = element shortaffil { db.shortaffil.attlist, db._text >> a:documentation [ "A brief description of an affiliation" ] } } div { db.jobtitle.role.attribute = attribute role { text } db.jobtitle.attlist = db.jobtitle.role.attribute? & db.common.attributes & db.common.linking.attributes db.jobtitle = element jobtitle { db.jobtitle.attlist, db._text >> a:documentation [ "The title of an individual in an organization" ] } } div { db.orgname.class.enumeration = "consortium" | "corporation" | "informal" | "nonprofit" db.orgname.class-enum.attribute = attribute class { db.orgname.class.enumeration } db.orgname.class-other.attributes = attribute class { "other" } & attribute otherclass { text } db.orgname.class.attribute = db.orgname.class-enum.attribute | db.orgname.class-other.attributes db.orgname.role.attribute = attribute role { text } db.orgname.attlist = db.orgname.role.attribute? & db.common.attributes & db.common.linking.attributes & db.orgname.class.attribute? db.orgname = element orgname { db.orgname.attlist, db._text >> a:documentation [ "The name of an organization other than a corporation " ] } } div { db.orgdiv.role.attribute = attribute role { text } db.orgdiv.attlist = db.orgdiv.role.attribute? & db.common.attributes & db.common.linking.attributes db.orgdiv = element orgdiv { db.orgdiv.attlist, (db.all.inlines*) >> a:documentation [ "A division of an organization" ] } } div { db.artpagenums.role.attribute = attribute role { text } db.artpagenums.attlist = db.artpagenums.role.attribute? & db.common.attributes & db.common.linking.attributes db.artpagenums = element artpagenums { db.artpagenums.attlist, db._text >> a:documentation [ "The page numbers of an article as published" ] } } div { db.personname.role.attribute = attribute role { text } db.personname.attlist = db.personname.role.attribute? & db.common.attributes & db.common.linking.attributes db.personname = element personname { db.personname.attlist, (db._text | (db.honorific | db.firstname | db.surname | db.lineage | db.othername)+) >> a:documentation [ "The personal name of an individual" ] } } db.person.author.contentmodel = db.personname, (db.personblurb | db.affiliation | db.email | db.address | db.contrib)* db.org.author.contentmodel = db.orgname, (db.orgdiv | db.affiliation | db.email | db.address | db.contrib)* db.credit.contentmodel = db.person.author.contentmodel | db.org.author.contentmodel div { db.author.role.attribute = attribute role { text } db.author.attlist = db.author.role.attribute? & db.common.attributes & db.common.linking.attributes db.author = element author { db.author.attlist, db.credit.contentmodel >> a:documentation [ "The name of an individual author" ] } } div { db.authorgroup.role.attribute = attribute role { text } db.authorgroup.attlist = db.authorgroup.role.attribute? & db.common.attributes & db.common.linking.attributes db.authorgroup = element authorgroup { db.authorgroup.attlist, ((db.author | db.editor | db.othercredit)+) >> a:documentation [ "Wrapper for author information when a document has multiple authors or collabarators" ] } } div { db.collab.role.attribute = attribute role { text } db.collab.attlist = db.collab.role.attribute? & db.common.attributes & db.common.linking.attributes db.collab = element collab { db.collab.attlist, (db.personname | db.orgname)+, (db.affiliation*) >> a:documentation [ "Identifies a collaborator" ] } } div { db.authorinitials.role.attribute = attribute role { text } db.authorinitials.attlist = db.authorinitials.role.attribute? & db.common.attributes & db.common.linking.attributes db.authorinitials = element authorinitials { db.authorinitials.attlist, db._text >> a:documentation [ "The initials or other short identifier for an author" ] } } div { db.confgroup.role.attribute = attribute role { text } db.confgroup.attlist = db.confgroup.role.attribute? & db.common.attributes & db.common.linking.attributes db.confgroup = element confgroup { db.confgroup.attlist, ((db.confdates | db.conftitle | db.confnum | db.confsponsor | db.address)*) >> a:documentation [ "A wrapper for document meta-information about a conference" ] } } div { db.confdates.role.attribute = attribute role { text } db.confdates.attlist = db.confdates.role.attribute? & db.common.attributes & db.common.linking.attributes db.confdates = element confdates { db.confdates.attlist, db._text >> a:documentation [ "The dates of a conference for which a document was written" ] } } div { db.conftitle.role.attribute = attribute role { text } db.conftitle.attlist = db.conftitle.role.attribute? & db.common.attributes & db.common.linking.attributes db.conftitle = element conftitle { db.conftitle.attlist, db._text >> a:documentation [ "The title of a conference for which a document was written" ] } } div { db.confnum.role.attribute = attribute role { text } db.confnum.attlist = db.confnum.role.attribute? & db.common.attributes & db.common.linking.attributes db.confnum = element confnum { db.confnum.attlist, db._text >> a:documentation [ "An identifier, frequently numerical, associated with a conference for which a document was written" ] } } div { db.confsponsor.role.attribute = attribute role { text } db.confsponsor.attlist = db.confsponsor.role.attribute? & db.common.attributes & db.common.linking.attributes db.confsponsor = element confsponsor { db.confsponsor.attlist, db._text >> a:documentation [ "The sponsor of a conference for which a document was written" ] } } div { db.contractnum.role.attribute = attribute role { text } db.contractnum.attlist = db.contractnum.role.attribute? & db.common.attributes & db.common.linking.attributes db.contractnum = element contractnum { db.contractnum.attlist, db._text >> a:documentation [ "The contract number of a document" ] } } div { db.contractsponsor.role.attribute = attribute role { text } db.contractsponsor.attlist = db.contractsponsor.role.attribute? & db.common.attributes & db.common.linking.attributes db.contractsponsor = element contractsponsor { db.contractsponsor.attlist, db._text >> a:documentation [ "The sponsor of a contract" ] } } div { db.copyright.role.attribute = attribute role { text } db.copyright.attlist = db.copyright.role.attribute? & db.common.attributes & db.common.linking.attributes db.copyright = element copyright { db.copyright.attlist, db.year+, (db.holder*) >> a:documentation [ "Copyright information about a document" ] } } div { db.year.role.attribute = attribute role { text } db.year.attlist = db.year.role.attribute? & db.common.attributes & db.common.linking.attributes db.year = element year { db.year.attlist, db._text >> a:documentation [ "The year of publication of a document" ] } } div { db.holder.role.attribute = attribute role { text } db.holder.attlist = db.holder.role.attribute? & db.common.attributes & db.common.linking.attributes db.holder = element holder { db.holder.attlist, db._text >> a:documentation [ "The name of the individual or organization that holds a copyright" ] } } db.date.contentmodel = xsd:date | xsd:dateTime | xsd:gYearMonth | xsd:gYear | text div { db.date.role.attribute = attribute role { text } db.date.attlist = db.date.role.attribute? & db.common.attributes & db.common.linking.attributes db.date = element date { db.date.attlist, db.date.contentmodel >> a:documentation [ "The date of publication or revision of a document" ] } } div { db.edition.role.attribute = attribute role { text } db.edition.attlist = db.edition.role.attribute? & db.common.attributes & db.common.linking.attributes db.edition = element edition { db.edition.attlist, db._text >> a:documentation [ "The name or number of an edition of a document" ] } } div { db.editor.role.attribute = attribute role { text } db.editor.attlist = db.editor.role.attribute? & db.common.attributes & db.common.linking.attributes db.editor = element editor { db.editor.attlist, db.credit.contentmodel >> a:documentation [ "The name of the editor of a document" ] } } div { db.biblioid.role.attribute = attribute role { text } db.biblioid.attlist = db.biblioid.role.attribute? & db.common.attributes & db.common.linking.attributes & db.biblio.class.attribute db.biblioid = element biblioid { db.biblioid.attlist, db._text >> a:documentation [ "An identifier for a document" ] } } div { db.citebiblioid.role.attribute = attribute role { text } db.citebiblioid.attlist = db.citebiblioid.role.attribute? & db.common.attributes & db.common.linking.attributes & db.biblio.class.attribute db.citebiblioid = element citebiblioid { db.citebiblioid.attlist, db._text >> a:documentation [ "A citation of a bibliographic identifier" ] } } div { db.bibliosource.role.attribute = attribute role { text } db.bibliosource.attlist = db.bibliosource.role.attribute? & db.common.attributes & db.common.linking.attributes & db.biblio.class.attribute db.bibliosource = element bibliosource { db.bibliosource.attlist, db._text >> a:documentation [ "The source of a document" ] } } div { db.bibliorelation.type-enum.attribute = attribute type { "hasformat" | "haspart" | "hasversion" | "isformatof" | "ispartof" | "isreferencedby" | "isreplacedby" | "isrequiredby" | "isversionof" | "othertype" | "references" | "replaces" | "requires" }? db.bibliorelation.type-other.attributes = attribute type { "othertype" }?, attribute othertype { xsd:NMTOKEN } db.bibliorelation.type.attribute = db.bibliorelation.type-enum.attribute | db.bibliorelation.type-other.attributes db.bibliorelation.role.attribute = attribute role { text } db.bibliorelation.attlist = db.bibliorelation.role.attribute? & db.common.attributes & db.common.linking.attributes & db.biblio.class.attribute & db.bibliorelation.type.attribute db.bibliorelation = element bibliorelation { db.bibliorelation.attlist, db._text >> a:documentation [ "The relationship of a document to another" ] } } div { db.bibliocoverage.spacial.enumeration = "dcmipoint" | "iso3166" | "dcmibox" | "tgn" db.bibliocoverage.spatial-enum.attribute = attribute spatial { db.bibliocoverage.spacial.enumeration }? db.bibliocoverage.spatial-other.attributes = attribute spatial { "otherspatial" }?, attribute otherspatial { xsd:NMTOKEN } db.bibliocoverage.spatial.attribute = db.bibliocoverage.spatial-enum.attribute | db.bibliocoverage.spatial-other.attributes db.bibliocoverage.temporal.enumeration = "dcmiperiod" | "w3c-dtf" db.bibliocoverage.temporal-enum.attribute = attribute temporal { db.bibliocoverage.temporal.enumeration }? db.bibliocoverage.temporal-other.attributes = attribute temporal { "othertemporal" }?, attribute othertemporal { xsd:NMTOKEN } db.bibliocoverage.temporal.attribute = db.bibliocoverage.temporal-enum.attribute | db.bibliocoverage.temporal-other.attributes db.bibliocoverage.coverage.attrib = db.bibliocoverage.spatial.attribute & db.bibliocoverage.temporal.attribute db.bibliocoverage.role.attribute = attribute role { text } db.bibliocoverage.attlist = db.bibliocoverage.role.attribute? & db.common.attributes & db.common.linking.attributes & db.bibliocoverage.coverage.attrib db.bibliocoverage = element bibliocoverage { db.bibliocoverage.attlist, db._text >> a:documentation [ "The spatial or temporal coverage of a document" ] } } div { db.legalnotice.role.attribute = attribute role { text } db.legalnotice.attlist = db.legalnotice.role.attribute? & db.common.attributes & db.common.linking.attributes db.legalnotice.info = db._info.title.only db.legalnotice = element legalnotice { db.legalnotice.attlist, db.legalnotice.info, (db.all.blocks+) >> a:documentation [ "A statement of legal obligations or requirements" ] } } div { db.othercredit.class.attribute = attribute class { "copyeditor" | "graphicdesigner" | "other" | "productioneditor" | "technicaleditor" | "translator" }? db.othercredit.role.attribute = attribute role { text } db.othercredit.attlist = db.othercredit.role.attribute? & db.common.attributes & db.common.linking.attributes & db.othercredit.class.attribute db.othercredit = element othercredit { db.othercredit.attlist, db.credit.contentmodel >> a:documentation [ "A person or entity, other than an author or editor, credited in a document" ] } } div { db.pagenums.role.attribute = attribute role { text } db.pagenums.attlist = db.pagenums.role.attribute? & db.common.attributes & db.common.linking.attributes db.pagenums = element pagenums { db.pagenums.attlist, db._text >> a:documentation [ "The numbers of the pages in a book, for use in a bibliographic entry" ] } } div { db.contrib.role.attribute = attribute role { text } db.contrib.attlist = db.contrib.role.attribute? & db.common.attributes & db.common.linking.attributes db.contrib = element contrib { db.contrib.attlist, db._text >> a:documentation [ "A summary of the contributions made to a document by a credited source" ] } } div { db.honorific.role.attribute = attribute role { text } db.honorific.attlist = db.honorific.role.attribute? & db.common.attributes & db.common.linking.attributes db.honorific = element honorific { db.honorific.attlist, db._text >> a:documentation [ "The title of a person" ] } } div { db.firstname.role.attribute = attribute role { text } db.firstname.attlist = db.firstname.role.attribute? & db.common.attributes & db.common.linking.attributes db.firstname = element firstname { db.firstname.attlist, db._text >> a:documentation [ "The first name of a person" ] } } div { db.surname.role.attribute = attribute role { text } db.surname.attlist = db.surname.role.attribute? & db.common.attributes & db.common.linking.attributes db.surname = element surname { db.surname.attlist, db._text >> a:documentation [ "A family name; in western cultures the last name" ] } } div { db.lineage.role.attribute = attribute role { text } db.lineage.attlist = db.lineage.role.attribute? & db.common.attributes & db.common.linking.attributes db.lineage = element lineage { db.lineage.attlist, db._text >> a:documentation [ "The portion of a person's name indicating a relationship to ancestors" ] } } div { db.othername.role.attribute = attribute role { text } db.othername.attlist = db.othername.role.attribute? & db.common.attributes & db.common.linking.attributes db.othername = element othername { db.othername.attlist, db._text >> a:documentation [ "A component of a persons name that is not a first name, surname, or lineage" ] } } div { db.printhistory.role.attribute = attribute role { text } db.printhistory.attlist = db.printhistory.role.attribute? & db.common.attributes & db.common.linking.attributes db.printhistory = element printhistory { db.printhistory.attlist, (db.para.blocks+) >> a:documentation [ "The printing history of a document" ] } } div { db.productname.role.attribute = attribute role { text } db.productname.class.enumeration = "copyright" | "registered" | "service" | "trade" db.productname.class.attribute = attribute class { db.productname.class.enumeration } db.productname.attlist = db.productname.role.attribute? & db.common.attributes & db.common.linking.attributes & db.productname.class.attribute? db.productname = element productname { db.productname.attlist, db._text >> a:documentation [ "The formal name of a product" ] } } div { db.productnumber.role.attribute = attribute role { text } db.productnumber.attlist = db.productnumber.role.attribute? & db.common.attributes & db.common.linking.attributes db.productnumber = element productnumber { db.productnumber.attlist, db._text >> a:documentation [ "A number assigned to a product" ] } } div { db.pubdate.role.attribute = attribute role { text } db.pubdate.attlist = db.pubdate.role.attribute? & db.common.attributes & db.common.linking.attributes db.pubdate = element pubdate { db.pubdate.attlist, db.date.contentmodel >> a:documentation [ "The date of publication of a document" ] } } div { db.publisher.role.attribute = attribute role { text } db.publisher.attlist = db.publisher.role.attribute? & db.common.attributes & db.common.linking.attributes db.publisher = element publisher { db.publisher.attlist, db.publishername, (db.address*) >> a:documentation [ "The publisher of a document" ] } } div { db.publishername.role.attribute = attribute role { text } db.publishername.attlist = db.publishername.role.attribute? & db.common.attributes & db.common.linking.attributes db.publishername = element publishername { db.publishername.attlist, db._text >> a:documentation [ "The name of the publisher of a document" ] } } div { db.releaseinfo.role.attribute = attribute role { text } db.releaseinfo.attlist = db.releaseinfo.role.attribute? & db.common.attributes & db.common.linking.attributes db.releaseinfo = element releaseinfo { db.releaseinfo.attlist, db._text >> a:documentation [ "Information about a particular release of a document" ] } } div { db.revhistory.role.attribute = attribute role { text } db.revhistory.attlist = db.revhistory.role.attribute? & db.common.attributes & db.common.linking.attributes db.revhistory.info = db._info.title.only db.revhistory = element revhistory { db.revhistory.attlist, db.revhistory.info, (db.revision+) >> a:documentation [ "A history of the revisions to a document" ] } } div { db.revision.role.attribute = attribute role { text } db.revision.attlist = db.revision.role.attribute? & db.common.attributes & db.common.linking.attributes db.revision = element revision { db.revision.attlist, db.revnumber?, db.date, (db.authorinitials | db.author)*, ((db.revremark | db.revdescription)?) >> a:documentation [ "An entry describing a single revision in the history of the revisions to a document" ] } } div { db.revnumber.role.attribute = attribute role { text } db.revnumber.attlist = db.revnumber.role.attribute? & db.common.attributes & db.common.linking.attributes db.revnumber = element revnumber { db.revnumber.attlist, db._text >> a:documentation [ "A document revision number" ] } } div { db.revremark.role.attribute = attribute role { text } db.revremark.attlist = db.revremark.role.attribute? & db.common.attributes & db.common.linking.attributes db.revremark = element revremark { db.revremark.attlist, db._text >> a:documentation [ "A description of a revision to a document" ] } } div { db.revdescription.role.attribute = attribute role { text } db.revdescription.attlist = db.revdescription.role.attribute? & db.common.attributes & db.common.linking.attributes db.revdescription = element revdescription { db.revdescription.attlist, (db.all.blocks*) >> a:documentation [ "A extended description of a revision to a document" ] } } div { db.seriesvolnums.role.attribute = attribute role { text } db.seriesvolnums.attlist = db.seriesvolnums.role.attribute? & db.common.attributes & db.common.linking.attributes db.seriesvolnums = element seriesvolnums { db.seriesvolnums.attlist, db._text >> a:documentation [ "Numbers of the volumes in a series of books" ] } } div { db.volumenum.role.attribute = attribute role { text } db.volumenum.attlist = db.volumenum.role.attribute? & db.common.attributes & db.common.linking.attributes db.volumenum = element volumenum { db.volumenum.attlist, db._text >> a:documentation [ "The volume number of a document in a set (as of books in a set or articles in a journal)" ] } } div { db.issuenum.role.attribute = attribute role { text } db.issuenum.attlist = db.issuenum.role.attribute? & db.common.attributes & db.common.linking.attributes db.issuenum = element issuenum { db.issuenum.attlist, db._text >> a:documentation [ "The number of an issue of a journal" ] } } div { db.accel.role.attribute = attribute role { text } db.accel.attlist = db.accel.role.attribute? & db.common.attributes & db.common.linking.attributes db.accel = element accel { db.accel.attlist, db._text >> a:documentation [ "A graphical user interface (GUI) keyboard shortcut" ] } } div { db.application.class.enumeration = "hardware" | "software" db.application.class.attribute = attribute class { db.application.class.enumeration } db.application.role.attribute = attribute role { text } db.application.attlist = db.application.role.attribute? & db.common.attributes & db.common.linking.attributes & db.application.class.attribute? db.application = element application { db.application.attlist, db._text >> a:documentation [ "The name of a software program" ] } } div { db.package.role.attribute = attribute role { text } db.package.attlist = db.package.role.attribute? & db.common.attributes & db.common.linking.attributes db.package = element package { db.package.attlist, db._text >> a:documentation [ "A software or application package" ] } } div { db.classname.role.attribute = attribute role { text } db.classname.attlist = db.classname.role.attribute? & db.common.attributes & db.common.linking.attributes db.classname = element classname { db.classname.attlist, db._text >> a:documentation [ "The name of a class, in the object-oriented programming sense" ] } } div { db.command.role.attribute = attribute role { text } db.command.attlist = db.command.role.attribute? & db.common.attributes & db.common.linking.attributes db.command = element command { db.command.attlist, db._text >> a:documentation [ "The name of an executable program or other software command" ] } } db.computeroutput.inlines = (text | db.ubiq.inlines | db.os.inlines | db.technical.inlines | db.markup.inlines) | db.co | db.co div { db.computeroutput.role.attribute = attribute role { text } db.computeroutput.attlist = db.computeroutput.role.attribute? & db.common.attributes & db.common.linking.attributes db.computeroutput = element computeroutput { db.computeroutput.attlist, (db.computeroutput.inlines*) >> a:documentation [ "Data, generally text, displayed or presented by a computer" ] } } div { db.database.class.attribute = attribute class { "altkey" | "constraint" | "datatype" | "field" | "foreignkey" | "group" | "index" | "key1" | "key2" | "name" | "primarykey" | "procedure" | "record" | "rule" | "secondarykey" | "table" | "user" | "view" } db.database.role.attribute = attribute role { text } db.database.attlist = db.database.role.attribute? & db.common.attributes & db.common.linking.attributes & db.database.class.attribute? db.database = element database { db.database.attlist, db._text >> a:documentation [ "The name of a database, or part of a database" ] } } div { db.email.role.attribute = attribute role { text } db.email.attlist = db.email.role.attribute? & db.common.attributes & db.common.linking.attributes db.email = element email { db.email.attlist, db._text >> a:documentation [ "An email address" ] } } div { db.envar.role.attribute = attribute role { text } db.envar.attlist = db.envar.role.attribute? & db.common.attributes & db.common.linking.attributes db.envar = element envar { db.envar.attlist, db._text >> a:documentation [ "A software environment variable" ] } } div { db.errorcode.role.attribute = attribute role { text } db.errorcode.attlist = db.errorcode.role.attribute? & db.common.attributes & db.common.linking.attributes db.errorcode = element errorcode { db.errorcode.attlist, db._text >> a:documentation [ "An error code" ] } } div { db.errorname.role.attribute = attribute role { text } db.errorname.attlist = db.errorname.role.attribute? & db.common.attributes & db.common.linking.attributes db.errorname = element errorname { db.errorname.attlist, db._text >> a:documentation [ "An error name" ] } } div { db.errortext.role.attribute = attribute role { text } db.errortext.attlist = db.errortext.role.attribute? & db.common.attributes & db.common.linking.attributes db.errortext = element errortext { db.errortext.attlist, db._text >> a:documentation [ "An error message." ] } } div { db.errortype.role.attribute = attribute role { text } db.errortype.attlist = db.errortype.role.attribute? & db.common.attributes & db.common.linking.attributes db.errortype = element errortype { db.errortype.attlist, db._text >> a:documentation [ "The classification of an error message" ] } } div { db.filename.path.attribute = attribute path { text } db.filename.class.attribute = attribute class { "devicefile" | "directory" | "extension" | "headerfile" | "libraryfile" | "partition" | "symlink" } db.filename.role.attribute = attribute role { text } db.filename.attlist = db.filename.role.attribute? & db.common.attributes & db.common.linking.attributes & db.filename.path.attribute? & db.filename.class.attribute? db.filename = element filename { db.filename.attlist, db._text >> a:documentation [ "The name of a file" ] } } div { db.function.role.attribute = attribute role { text } db.function.attlist = db.function.role.attribute? & db.common.attributes & db.common.linking.attributes db.function = element function { db.function.attlist, db._text >> a:documentation [ "The name of a function or subroutine, as in a programming language" ] } } div { db.guibutton.role.attribute = attribute role { text } db.guibutton.attlist = db.guibutton.role.attribute? & db.common.attributes & db.common.linking.attributes db.guibutton = element guibutton { db.guibutton.attlist, ((db._text | db.accel | db.superscript | db.subscript)*) >> a:documentation [ "The text on a button in a GUI" ] } } div { db.guiicon.role.attribute = attribute role { text } db.guiicon.attlist = db.guiicon.role.attribute? & db.common.attributes & db.common.linking.attributes db.guiicon = element guiicon { db.guiicon.attlist, ((db._text | db.accel | db.superscript | db.subscript)*) >> a:documentation [ "Graphic and/or text appearing as a icon in a GUI" ] } } div { db.guilabel.role.attribute = attribute role { text } db.guilabel.attlist = db.guilabel.role.attribute? & db.common.attributes & db.common.linking.attributes db.guilabel = element guilabel { db.guilabel.attlist, ((db._text | db.accel | db.superscript | db.subscript)*) >> a:documentation [ "The text of a label in a GUI" ] } } div { db.guimenu.role.attribute = attribute role { text } db.guimenu.attlist = db.guimenu.role.attribute? & db.common.attributes & db.common.linking.attributes db.guimenu = element guimenu { db.guimenu.attlist, ((db._text | db.accel | db.superscript | db.subscript)*) >> a:documentation [ "The name of a menu in a GUI" ] } } div { db.guimenuitem.role.attribute = attribute role { text } db.guimenuitem.attlist = db.guimenuitem.role.attribute? & db.common.attributes & db.common.linking.attributes db.guimenuitem = element guimenuitem { db.guimenuitem.attlist, ((db._text | db.accel | db.superscript | db.subscript)*) >> a:documentation [ "The name of a terminal menu item in a GUI" ] } } div { db.guisubmenu.role.attribute = attribute role { text } db.guisubmenu.attlist = db.guisubmenu.role.attribute? & db.common.attributes & db.common.linking.attributes db.guisubmenu = element guisubmenu { db.guisubmenu.attlist, ((db._text | db.accel | db.superscript | db.subscript)*) >> a:documentation [ "The name of a submenu in a GUI" ] } } div { db.hardware.role.attribute = attribute role { text } db.hardware.attlist = db.hardware.role.attribute? & db.common.attributes & db.common.linking.attributes db.hardware = element hardware { db.hardware.attlist, db._text >> a:documentation [ "A physical part of a computer system" ] } } div { db.keycap.function-enum.attribute = attribute function { "alt" | "backspace" | "command" | "control" | "delete" | "down" | "end" | "enter" | "escape" | "home" | "insert" | "left" | "meta" | "option" | "pagedown" | "pageup" | "right" | "shift" | "space" | "tab" | "up" }? db.keycap.function-other.attributes = attribute function { "other" }?, attribute otherfunction { text } db.keycap.function.attrib = db.keycap.function-enum.attribute | db.keycap.function-other.attributes db.keycap.role.attribute = attribute role { text } db.keycap.attlist = db.keycap.role.attribute? & db.common.attributes & db.common.linking.attributes & db.keycap.function.attrib db.keycap = element keycap { db.keycap.attlist, db._text >> a:documentation [ "The text printed on a key on a keyboard" ] } } div { db.keycode.role.attribute = attribute role { text } db.keycode.attlist = db.keycode.role.attribute? & db.common.attributes & db.common.linking.attributes db.keycode = element keycode { db.keycode.attlist, db._text >> a:documentation [ "The internal, frequently numeric, identifier for a key on a keyboard" ] } } div { db.keycombo.action.enumeration = "click" | "double-click" | "press" | "seq" | "simul" db.keycombo.action-enum.attribute = attribute action { db.keycombo.action.enumeration }? db.keycombo.action-other.attributes = attribute action { "other" }?, attribute otheraction { text } db.keycombo.action.attrib = db.keycombo.action-enum.attribute | db.keycombo.action-other.attributes db.keycombo.role.attribute = attribute role { text } db.keycombo.attlist = db.keycombo.role.attribute? & db.common.attributes & db.common.linking.attributes & db.keycombo.action.attrib db.keycombo = element keycombo { db.keycombo.attlist, ((db.keycap | db.keycombo | db.keysym | db.mousebutton)+) >> a:documentation [ "A combination of input actions" ] } } div { db.keysym.role.attribute = attribute role { text } db.keysym.attlist = db.keysym.role.attribute? & db.common.attributes & db.common.linking.attributes db.keysym = element keysym { db.keysym.attlist, db._text >> a:documentation [ "The symbolic name of a key on a keyboard" ] } } div { db.lineannotation.role.attribute = attribute role { text } db.lineannotation.attlist = db.lineannotation.role.attribute? & db.common.attributes & db.common.linking.attributes db.lineannotation = element lineannotation { db.lineannotation.attlist, db._text >> a:documentation [ "A comment on a line in a verbatim listing" ] } } div { db.literal.role.attribute = attribute role { text } db.literal.attlist = db.literal.role.attribute? & db.common.attributes & db.common.linking.attributes db.literal = element literal { db.literal.attlist, db._text >> a:documentation [ "Inline text that is some literal value" ] } } div { code.language.attribute = attribute language { text } db.code.role.attribute = attribute role { text } db.code.attlist = db.code.role.attribute? & db.common.attributes & db.common.linking.attributes & code.language.attribute? db.code = element code { db.code.attlist, db._text >> a:documentation [ "An inline code fragment" ] } } div { constant.class.attribute = attribute class { "limit" } db.constant.role.attribute = attribute role { text } db.constant.attlist = db.constant.role.attribute? & db.common.attributes & db.common.linking.attributes & constant.class.attribute? db.constant = element constant { db.constant.attlist, db._text >> a:documentation [ "A programming or system constant" ] } } div { db.varname.role.attribute = attribute role { text } db.varname.attlist = db.varname.role.attribute? & db.common.attributes & db.common.linking.attributes db.varname = element varname { db.varname.attlist, db._text >> a:documentation [ "The name of a variable" ] } } div { db.markup.role.attribute = attribute role { text } db.markup.attlist = db.markup.role.attribute? & db.common.attributes & db.common.linking.attributes db.markup = element markup { db.markup.attlist, db._text >> a:documentation [ "A string of formatting markup in text that is to be represented literally" ] } } div { db.menuchoice.role.attribute = attribute role { text } db.menuchoice.attlist = db.menuchoice.role.attribute? & db.common.attributes & db.common.linking.attributes db.menuchoice = element menuchoice { db.menuchoice.attlist, db.shortcut?, ((db.guibutton | db.guiicon | db.guilabel | db.guimenu | db.guimenuitem | db.guisubmenu)+) >> a:documentation [ "A selection or series of selections from a menu" ] } } div { db.shortcut.action.attrib = db.keycombo.action.attrib db.shortcut.role.attribute = attribute role { text } db.shortcut.attlist = db.shortcut.role.attribute? & db.common.attributes & db.common.linking.attributes & db.shortcut.action.attrib db.shortcut = element shortcut { db.shortcut.attlist, ((db.keycap | db.keycombo | db.keysym | db.mousebutton)+) >> a:documentation [ "A key combination for an action that is also accessible through a menu" ] } } div { db.mousebutton.role.attribute = attribute role { text } db.mousebutton.attlist = db.mousebutton.role.attribute? & db.common.attributes & db.common.linking.attributes db.mousebutton = element mousebutton { db.mousebutton.attlist, db._text >> a:documentation [ "The conventional name of a mouse button" ] } } div { db.option.role.attribute = attribute role { text } db.option.attlist = db.option.role.attribute? & db.common.attributes & db.common.linking.attributes db.option = element option { db.option.attlist, db._text >> a:documentation [ "An option for a software command" ] } } div { db.optional.role.attribute = attribute role { text } db.optional.attlist = db.optional.role.attribute? & db.common.attributes & db.common.linking.attributes db.optional = element optional { db.optional.attlist, db._text >> a:documentation [ "Optional information" ] } } div { db.property.role.attribute = attribute role { text } db.property.attlist = db.property.role.attribute? & db.common.attributes & db.common.linking.attributes db.property = element property { db.property.attlist, db._text >> a:documentation [ "A unit of data associated with some part of a computer system" ] } } div { db.parameter.class.enumeration = "command" | "function" | "option" db.parameter.class.attribute = attribute class { db.parameter.class.enumeration } db.parameter.role.attribute = attribute role { text } db.parameter.attlist = db.parameter.role.attribute? & db.common.attributes & db.common.linking.attributes & db.parameter.class.attribute? db.parameter = element parameter { db.parameter.attlist, db._text >> a:documentation [ "A value or a symbolic reference to a value" ] } } db.prompt.inlines = db._text | db.co div { db.prompt.role.attribute = attribute role { text } db.prompt.attlist = db.prompt.role.attribute? & db.common.attributes & db.common.linking.attributes db.prompt = element prompt { db.prompt.attlist, (db.prompt.inlines*) >> a:documentation [ "A character or string indicating the start of an input field in a computer display" ] } } db.replaceable.inlines = db._text | db.co div { db.replaceable.class.enumeration = "command" | "function" | "option" | "parameter" db.replaceable.class.attribute = attribute class { db.replaceable.class.enumeration } db.replaceable.role.attribute = attribute role { text } db.replaceable.attlist = db.replaceable.role.attribute? & db.common.attributes & db.common.linking.attributes & db.replaceable.class.attribute? db.replaceable = element replaceable { db.replaceable.attlist, (db.replaceable.inlines*) >> a:documentation [ "Content that may or must be replaced by the user" ] } } div { db.returnvalue.role.attribute = attribute role { text } db.returnvalue.attlist = db.returnvalue.role.attribute? & db.common.attributes & db.common.linking.attributes db.returnvalue = element returnvalue { db.returnvalue.attlist, db._text >> a:documentation [ "The value returned by a function" ] } } div { db.tag.role.attribute = attribute role { text } db.tag.class.enumeration = "attribute" | "attvalue" | "element" | "emptytag" | "endtag" | "genentity" | "numcharref" | "paramentity" | "pi" | "sgmlcomment" | "starttag" | "xmlpi" db.tag.class.attribute = attribute class { db.tag.class.enumeration } db.tag.namespace.attribute = attribute namespace { xsd:anyURI } db.tag.attlist = db.tag.role.attribute? & db.common.attributes & db.common.linking.attributes & db.tag.class.attribute? & db.tag.namespace.attribute? db.tag = element tag { db.tag.attlist, db._text >> a:documentation [ "A component of XML (or SGML) markup" ] } } div { db.symbol.class.attribute = attribute class { "limit" }? db.symbol.role.attribute = attribute role { text } db.symbol.attlist = db.symbol.role.attribute? & db.common.attributes & db.common.linking.attributes & db.symbol.class.attribute db.symbol = element symbol { db.symbol.attlist, db._text >> a:documentation [ "A name that is replaced by a value before processing" ] } } db.systemitem.inlines = db._text | db.co div { db.systemitem.class.attribute = attribute class { "daemon" | "domainname" | "etheraddress" | "event" | "eventhandler" | "filesystem" | "fqdomainname" | "groupname" | "ipaddress" | "library" | "macro" | "netmask" | "newsgroup" | "osname" | "process" | "protocol" | "resource" | "server" | "service" | "systemname" | "username" } db.systemitem.role.attribute = attribute role { text } db.systemitem.attlist = db.systemitem.role.attribute? & db.common.attributes & db.common.linking.attributes & db.systemitem.class.attribute? db.systemitem = element systemitem { db.systemitem.attlist, (db.systemitem.inlines*) >> a:documentation [ "A system-related item or term" ] } } div { db.uri.type.attribute = attribute type { text }? db.uri.role.attribute = attribute role { text } db.uri.attlist = db.uri.role.attribute? & db.common.attributes & db.common.linking.attributes & db.uri.type.attribute db.uri = element uri { db.uri.attlist, db._text >> a:documentation [ "A Uniform Resource Identifier" ] } } div { db.token.role.attribute = attribute role { text } db.token.attlist = db.token.role.attribute? & db.common.attributes & db.common.linking.attributes db.token = element token { db.token.attlist, db._text >> a:documentation [ "A unit of information" ] } } div { db.type.role.attribute = attribute role { text } db.type.attlist = db.type.role.attribute? & db.common.attributes & db.common.linking.attributes db.type = element type { db.type.attlist, db._text >> a:documentation [ "The classification of a value" ] } } db.userinput.inlines = (text | db.ubiq.inlines | db.os.inlines | db.technical.inlines | db.markup.inlines) | db.co div { db.userinput.role.attribute = attribute role { text } db.userinput.attlist = db.userinput.role.attribute? & db.common.attributes & db.common.linking.attributes db.userinput = element userinput { db.userinput.attlist, (db.userinput.inlines*) >> a:documentation [ "Data entered by the user" ] } } div { db.abbrev.role.attribute = attribute role { text } db.abbrev.attlist = db.abbrev.role.attribute? & db.common.attributes & db.common.linking.attributes db.abbrev = element abbrev { db.abbrev.attlist, ((db._text | db.superscript | db.subscript | db.trademark)*) >> a:documentation [ "An abbreviation, especially one followed by a period" ] } } div { db.acronym.role.attribute = attribute role { text } db.acronym.attlist = db.acronym.role.attribute? & db.common.attributes & db.common.linking.attributes db.acronym = element acronym { db.acronym.attlist, ((db._text | db.superscript | db.subscript | db.trademark)*) >> a:documentation [ "An often pronounceable word made from the initial (or selected) letters of a name or phrase" ] } } div { db.citation.role.attribute = attribute role { text } db.citation.attlist = db.citation.role.attribute? & db.common.attributes & db.common.linking.attributes db.citation = element citation { db.citation.attlist, (db.all.inlines*) >> a:documentation [ "An inline bibliographic reference to another published work" ] } } div { db.citerefentry.role.attribute = attribute role { text } db.citerefentry.attlist = db.citerefentry.role.attribute? & db.common.attributes & db.common.linking.attributes db.citerefentry = element citerefentry { db.citerefentry.attlist, db.refentrytitle, (db.manvolnum?) >> a:documentation [ "A citation to a reference page" ] } } div { db.refentrytitle.role.attribute = attribute role { text } db.refentrytitle.attlist = db.refentrytitle.role.attribute? & db.common.attributes & db.common.linking.attributes db.refentrytitle = element refentrytitle { db.refentrytitle.attlist, (db.all.inlines*) >> a:documentation [ "The title of a reference page" ] } } div { db.manvolnum.role.attribute = attribute role { text } db.manvolnum.attlist = db.manvolnum.role.attribute? & db.common.attributes & db.common.linking.attributes db.manvolnum = element manvolnum { db.manvolnum.attlist, db._text >> a:documentation [ "A reference volume number" ] } } div { db.citetitle.pubwork.attribute = attribute pubwork { "article" | "bbs" | "book" | "cdrom" | "chapter" | "dvd" | "emailmessage" | "gopher" | "journal" | "manuscript" | "newsposting" | "part" | "refentry" | "section" | "series" | "set" | "webpage" | "wiki" } db.citetitle.role.attribute = attribute role { text } db.citetitle.attlist = db.citetitle.role.attribute? & db.common.attributes & db.common.linking.attributes & db.citetitle.pubwork.attribute? db.citetitle = element citetitle { db.citetitle.attlist, (db.all.inlines*) >> a:documentation [ "The title of a cited work" ] } } div { db.emphasis.role.attribute = attribute role { text } db.emphasis.attlist = db.emphasis.role.attribute? & db.common.attributes & db.common.linking.attributes db.emphasis = element emphasis { db.emphasis.attlist, (db.all.inlines*) >> a:documentation [ "Emphasized text" ] } } div { db.foreignphrase.role.attribute = attribute role { text } db.foreignphrase.attlist = db.foreignphrase.role.attribute? & db.common.attributes & db.common.linking.attributes db.foreignphrase = element foreignphrase { db.foreignphrase.attlist, ((text | db.general.inlines)*) >> a:documentation [ "A word or phrase in a language other than the primary language of the document" ] } } div { db.phrase.role.attribute = attribute role { text } db.phrase.attlist = db.phrase.role.attribute? & db.common.attributes & db.common.linking.attributes db.phrase = element phrase { db.phrase.attlist, (db.all.inlines*) >> a:documentation [ "A span of text" ] } } div { db.quote.role.attribute = attribute role { text } db.quote.attlist = db.quote.role.attribute? & db.common.attributes & db.common.linking.attributes db.quote = element quote { db.quote.attlist, (db.all.inlines*) >> a:documentation [ "An inline quotation" ] } } div { db.subscript.role.attribute = attribute role { text } db.subscript.attlist = db.subscript.role.attribute? & db.common.attributes & db.common.linking.attributes db.subscript = element subscript { db.subscript.attlist, db._text >> a:documentation [ "A subscript (as in H2O, the molecular formula for water)" ] } } div { db.superscript.role.attribute = attribute role { text } db.superscript.attlist = db.superscript.role.attribute? & db.common.attributes & db.common.linking.attributes db.superscript = element superscript { db.superscript.attlist, db._text >> a:documentation [ "A superscript (as in x^2, the mathematical notation for x multiplied by itself)" ] } } div { db.trademark.class.enumeration = "copyright" | "registered" | "service" | "trade" db.trademark.class.attribute = attribute class { db.trademark.class.enumeration } db.trademark.role.attribute = attribute role { text } db.trademark.attlist = db.trademark.role.attribute? & db.common.attributes & db.common.linking.attributes & db.trademark.class.attribute? db.trademark = element trademark { db.trademark.attlist, db._text >> a:documentation [ "A trademark" ] } } div { db.wordasword.role.attribute = attribute role { text } db.wordasword.attlist = db.wordasword.role.attribute? & db.common.attributes & db.common.linking.attributes db.wordasword = element wordasword { db.wordasword.attlist, db._text >> a:documentation [ "A word meant specifically as a word and not representing anything else" ] } } div { db.footnoteref.role.attribute = attribute role { text } db.footnoteref.label.attribute = attribute label { text } db.footnoteref.attlist = db.footnoteref.role.attribute? & db.common.attributes & db.linkend.attribute & db.footnoteref.label.attribute? db.footnoteref = [ s:rule [ context = "db:footnoteref" "\x{a}" ~ " " s:assert [ test = "local-name(//*[@id=current()/@linkend]) = 'footnote' and namespace-uri(//*[@id=current()/@linkend]) = 'http://docbook.org/ns/docbook'" "@linkend on footnoteref must point to a footnote." ] "\x{a}" ~ " " ] ] element footnoteref { db.footnoteref.attlist, empty >> a:documentation [ "A cross reference to a footnote (a footnote mark)" ] } } div { db.xref.role.attribute = attribute role { text } db.xref.xrefstyle.attribute = attribute xrefstyle { text } db.xref.endterm.attribute = attribute endterm { xsd:IDREF } db.xref.attlist = db.xref.role.attribute? & db.common.attributes & db.common.req.linking.attributes & db.xref.xrefstyle.attribute? & db.xref.endterm.attribute? db.xref = element xref { db.xref.attlist, empty >> a:documentation [ "A cross reference to another part of the document" ] } } div { db.link.role.attribute = attribute role { text } db.link.xrefstyle.attribute = attribute xrefstyle { text } db.link.endterm.attribute = attribute endterm { xsd:IDREF } db.link.attlist = db.link.role.attribute? & db.common.attributes & db.common.req.linking.attributes & db.link.xrefstyle.attribute? & db.link.endterm.attribute? db.link = element link { db.link.attlist, (db.all.inlines*) >> a:documentation [ "A hypertext link" ] } } div { db.olink.role.attribute = attribute role { text } db.olink.xrefstyle.attribute = attribute xrefstyle { xsd:IDREF } db.olink.localinfo.attribute = attribute localinfo { text } db.olink.targetdoc.attribute = attribute targetdoc { xsd:anyURI } db.olink.targetptr.attribute = attribute targetptr { text } db.olink.type.attribute = attribute type { text } db.olink.attlist = db.common.attributes & db.olink.targetdoc.attribute & db.olink.role.attribute? & db.olink.xrefstyle.attribute? & db.olink.localinfo.attribute? & db.olink.targetptr.attribute? & db.olink.type.attribute? db.olink = element olink { db.olink.attlist, (db.all.inlines*) >> a:documentation [ "A link that addresses its target indirectly" ] } } div { db.anchor.role.attribute = attribute role { text } db.anchor.attlist = db.anchor.role.attribute? & db.common.idreq.attributes db.anchor = element anchor { db.anchor.attlist, empty >> a:documentation [ "A spot in the document" ] } } div { db.alt.role.attribute = attribute role { text } db.alt.attlist = db.alt.role.attribute? & db.common.attributes db.alt = element alt { db.alt.attlist, ((text | db.inlinemediaobject)*) >> a:documentation [ "A text-only annotation, often used for accessibility" ] } } db.annotations.attribute = attribute annotations { text } div { db.annotation.role.attribute = attribute role { text } db.annotation.annotates.attribute = attribute annotates { text } db.annotation.attlist = db.annotation.role.attribute? & db.annotation.annotates.attribute? & db.common.attributes db.annotation.info = db._info.title.only db.annotation = [ s:rule [ context = "db:annotation" "\x{a}" ~ " " s:assert [ test = "not(.//db:annotation)" "annotation must not occur in the descendants of annotation" ] "\x{a}" ~ " " ] s:rule [ context = "db:annotation" "\x{a}" ~ " " s:assert [ test = "not(.//db:annotation)" "annotation must not occur in the descendants of annotation" ] "\x{a}" ~ " " ] ] element annotation { db.annotation.attlist, db.annotation.info, (db.all.blocks+) >> a:documentation [ "An annotation" ] } } div { db.extendedlink.role.attribute = attribute role { text } db.extendedlink.attlist = db.extendedlink.role.attribute? & db.common.attributes & [ a:defaultValue = "extended" ] attribute xlink:type { "extended" }? & attribute xlink:role { xsd:anyURI }? & attribute xlink:title { text }? db.extendedlink = element extendedlink { db.extendedlink.attlist, ((db.locator | db.arc)+) >> a:documentation [ "An XLink extended link" ] } } div { db.locator.role.attribute = attribute role { text } db.locator.attlist = db.locator.role.attribute? & db.common.attributes & [ a:defaultValue = "locator" ] attribute xlink:type { "locator" }? & attribute xlink:href { text } & attribute xlink:role { xsd:anyURI }? & attribute xlink:title { text }? & attribute xlink:label { xsd:NMTOKEN }? db.locator = element locator { db.locator.attlist, empty >> a:documentation [ "An XLink locator in an extendedlink" ] } } div { db.arc.role.attribute = attribute role { text } db.arc.attlist = db.arc.role.attribute? & db.common.attributes & [ a:defaultValue = "arc" ] attribute xlink:type { "arc" }? & attribute xlink:arcrole { xsd:anyURI }? & attribute xlink:title { text }? & attribute xlink:show { "new" | "replace" | "embed" | "other" }? & attribute xlink:actuate { "onLoad" | "onRequest" | "other" | "none" }? & attribute xlink:from { xsd:NMTOKEN }? & attribute xlink:to { xsd:NMTOKEN }? db.arc = element arc { db.arc.attlist, empty >> a:documentation [ "An XLink arc in an extendedlink" ] } } div { db.xi.include.attlist = attribute href { xsd:anyURI { pattern = "[^#]+" } }?, [ a:defaultValue = "xml" ] attribute parse { "xml" | "text" }?, attribute xpointer { text }?, attribute encoding { text }?, attribute accept { text }?, attribute accept-language { text }? db.xi.include = element xi:include { db.xi.include.attlist, (db.xi.fallback?) >> a:documentation [ "An XInclude" ] } } div { # The fallback element has no attributes db.xi.fallback = element xi:fallback { (db.all.blocks+ | db.all.inlines+ | db._any*) >> a:documentation [ "An XInclude fallback" ] } } db.status.attribute = attribute status { text } db.label.attribute = attribute label { text } db.toplevel.sections = (db.section+ | db.simplesect+) | ((db.section | db.xi.include)+ | (db.simplesect | db.xi.include)+) | (db.refentry | db.xi.include)+ | (db.refsect1 | db.xi.include)+ | (db.sect1 | db.xi.include)+ | db.sect1+ | db.refentry+ db.toplevel.blocks.or.sections = (db.all.blocks+, db.toplevel.sections?) | db.toplevel.sections db.recursive.sections = (db.section+ | db.simplesect+) | ((db.section | db.xi.include)+ | (db.simplesect | db.xi.include)+) | (db.refentry | db.xi.include)+ | (db.refsect1 | db.xi.include)+ | db.refentry+ db.recursive.blocks.or.sections = (db.all.blocks+, db.recursive.sections?) | db.recursive.sections db.divisions = db.part | db.xi.include | db.reference db.components = (db.dedication | db.preface | db.chapter | db.appendix | db.article | db.colophon) | db.xi.include db.navigation.components = notAllowed | db.glossary | db.bibliography | db.index | db.toc db.component.contentmodel = db.navigation.components*, db.toplevel.blocks.or.sections, db.navigation.components* db.setindex.components = notAllowed | db.setindex db.toc.components = notAllowed | db.toc div { db.set.status.attribute = db.status.attribute db.set.role.attribute = attribute role { text } db.set.attlist = db.set.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.set.status.attribute? db.set.info = db._info.title.req db.set = [ s:rule [ context = "/db:set" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:set" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element set { db.set.attlist, db.set.info, db.toc.components?, (db.set | db.book)+, (db.setindex.components?) >> a:documentation [ "A collection of books" ] } } div { db.book.status.attribute = db.status.attribute db.book.role.attribute = attribute role { text } db.book.attlist = db.book.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.book.status.attribute? db.book.info = db._info.title.req db.book = [ s:rule [ context = "/db:book" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:book" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element book { db.book.attlist, db.book.info, ((db.navigation.components | db.components | db.divisions)+) >> a:documentation [ "A book" ] } } div { db.dedication.status.attribute = db.status.attribute db.dedication.role.attribute = attribute role { text } db.dedication.attlist = db.dedication.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.dedication.status.attribute? db.dedication.info = db._info db.dedication = [ s:rule [ context = "/db:dedication" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:dedication" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element dedication { db.dedication.attlist, db.dedication.info, (db.all.blocks+) >> a:documentation [ "A wrapper for the dedication section of a book" ] } } div { db.colophon.status.attribute = db.status.attribute db.colophon.role.attribute = attribute role { text } db.colophon.attlist = db.colophon.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.colophon.status.attribute? db.colophon.info = db._info db.colophon = [ s:rule [ context = "/db:colophon" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:colophon" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element colophon { db.colophon.attlist, db.colophon.info, (db.all.blocks+) >> a:documentation [ "Text at the back of a book describing facts about its production" ] } } div { db.appendix.status.attribute = db.status.attribute db.appendix.role.attribute = attribute role { text } db.appendix.attlist = db.appendix.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.appendix.status.attribute? db.appendix.info = db._info.title.req db.appendix = [ s:rule [ context = "/db:appendix" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:appendix" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element appendix { db.appendix.attlist, db.appendix.info, db.component.contentmodel >> a:documentation [ "An appendix in a Book or Article" ] } } div { db.chapter.status.attribute = db.status.attribute db.chapter.role.attribute = attribute role { text } db.chapter.attlist = db.chapter.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.chapter.status.attribute? db.chapter.info = db._info.title.req db.chapter = [ s:rule [ context = "/db:chapter" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:chapter" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element chapter { db.chapter.attlist, db.chapter.info, db.component.contentmodel >> a:documentation [ "A chapter, as of a book" ] } } db.part.components = (db.navigation.components | db.components) | db.xi.include | (db.refentry | db.reference) div { db.part.status.attribute = db.status.attribute db.part.role.attribute = attribute role { text } db.part.attlist = db.part.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.part.status.attribute? db.part.info = db._info.title.req db.part = [ s:rule [ context = "/db:part" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:part" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element part { db.part.attlist, db.part.info, db.partintro?, (db.part.components+) >> a:documentation [ "A division in a book" ] } } div { db.preface.status.attribute = db.status.attribute db.preface.role.attribute = attribute role { text } db.preface.attlist = db.preface.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.preface.status.attribute? db.preface.info = db._info.title.req db.preface = [ s:rule [ context = "/db:preface" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:preface" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element preface { db.preface.attlist, db.preface.info, db.component.contentmodel >> a:documentation [ "Introductory matter preceding the first chapter of a book" ] } } div { db.partintro.status.attribute = db.status.attribute db.partintro.role.attribute = attribute role { text } db.partintro.attlist = db.partintro.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.partintro.status.attribute? db.partintro.info = db._info db.partintro = element partintro { db.partintro.attlist, db.partintro.info, db.toplevel.blocks.or.sections >> a:documentation [ "An introduction to the contents of a part" ] } } div { db.section.status.attribute = db.status.attribute db.section.role.attribute = attribute role { text } db.section.attlist = db.section.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.section.status.attribute? db.section.info = db._info.title.req db.section = [ s:rule [ context = "/db:section" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:section" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element section { db.section.attlist, db.section.info, db.recursive.blocks.or.sections, (db.navigation.components*) >> a:documentation [ "A recursive section" ] } } div { db.simplesect.status.attribute = db.status.attribute db.simplesect.role.attribute = attribute role { text } db.simplesect.attlist = db.simplesect.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.simplesect.status.attribute? db.simplesect.info = db._info.title.req db.simplesect = element simplesect { db.simplesect.attlist, db.simplesect.info, (db.all.blocks+) >> a:documentation [ "A section of a document with no subdivisions" ] } } div { db.ackno.role.attribute = attribute role { text } db.ackno.attlist = db.ackno.role.attribute? & db.common.attributes & db.common.linking.attributes db.ackno = element ackno { db.ackno.attlist, (db.para.blocks+) >> a:documentation [ "Acknowledgements in an Article" ] } } db.article.components = db.toplevel.sections div { db.article.status.attribute = db.status.attribute db.article.class.enumeration = "faq" | "journalarticle" | "productsheet" | "specification" | "techreport" | "whitepaper" db.article.class.attribute = attribute class { db.article.class.enumeration } db.article.role.attribute = attribute role { text } db.article.attlist = db.article.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.article.status.attribute? & db.article.class.attribute? db.article.info = db._info.title.req db.article = [ s:rule [ context = "/db:article" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:article" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element article { db.article.attlist, db.article.info, db.navigation.components*, ((db.all.blocks+, db.article.components?) | db.article.components), ((db.appendix | db.navigation.components | db.ackno | db.colophon)*) >> a:documentation [ "An article" ] } } db.sect1.sections = (db.sect2+ | db.simplesect+) | (db.sect2 | db.xi.include)+ div { db.sect1.status.attribute = db.status.attribute db.sect1.role.attribute = attribute role { text } db.sect1.attlist = db.sect1.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.sect1.status.attribute? db.sect1.info = db._info.title.req db.sect1 = [ s:rule [ context = "/db:sect1" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:sect1" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element sect1 { db.sect1.attlist, db.sect1.info, ((db.all.blocks+, db.sect1.sections?) | db.sect1.sections), (db.navigation.components*) >> a:documentation [ "A top-level section of document" ] } } db.sect2.sections = (db.sect3+ | db.simplesect+) | (db.sect3 | db.xi.include)+ div { db.sect2.status.attribute = db.status.attribute db.sect2.role.attribute = attribute role { text } db.sect2.attlist = db.sect2.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.sect2.status.attribute? db.sect2.info = db._info.title.req db.sect2 = [ s:rule [ context = "/db:sect2" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:sect2" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element sect2 { db.sect2.attlist, db.sect2.info, ((db.all.blocks+, db.sect2.sections?) | db.sect2.sections), (db.navigation.components*) >> a:documentation [ "A subsection within a Sect1" ] } } db.sect3.sections = (db.sect4+ | db.simplesect+) | (db.sect4 | db.xi.include)+ div { db.sect3.status.attribute = db.status.attribute db.sect3.role.attribute = attribute role { text } db.sect3.attlist = db.sect3.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.sect3.status.attribute? db.sect3.info = db._info.title.req db.sect3 = [ s:rule [ context = "/db:sect3" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:sect3" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element sect3 { db.sect3.attlist, db.sect3.info, ((db.all.blocks+, db.sect3.sections?) | db.sect3.sections), (db.navigation.components*) >> a:documentation [ "A subsection within a Sect2" ] } } db.sect4.sections = (db.sect5+ | db.simplesect+) | (db.sect5 | db.xi.include)+ div { db.sect4.status.attribute = db.status.attribute db.sect4.role.attribute = attribute role { text } db.sect4.attlist = db.sect4.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.sect4.status.attribute? db.sect4.info = db._info.title.req db.sect4 = [ s:rule [ context = "/db:sect4" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:sect4" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element sect4 { db.sect4.attlist, db.sect4.info, ((db.all.blocks+, db.sect4.sections?) | db.sect4.sections), (db.navigation.components*) >> a:documentation [ "A subsection within a Sect3" ] } } db.sect5.sections = db.simplesect+ | (db.simplesect | db.xi.include)+ div { db.sect5.status.attribute = db.status.attribute db.sect5.role.attribute = attribute role { text } db.sect5.attlist = db.sect5.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.sect5.status.attribute? db.sect5.info = db._info.title.req db.sect5 = [ s:rule [ context = "/db:sect5" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:sect5" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element sect5 { db.sect5.attlist, db.sect5.info, ((db.all.blocks+, db.sect5.sections?) | db.sect5.sections), (db.navigation.components*) >> a:documentation [ "A subsection within a Sect4" ] } } db.toplevel.refsection = db.refsection+ | (db.refentry | db.xi.include)+ | (db.refsect1 | db.xi.include)+ | db.refsect1+ db.secondlevel.refsection = db.refsection+ | (db.refentry | db.xi.include)+ | (db.refsect2 | db.xi.include)+ | db.refsect2+ div { db.reference.role.attribute = attribute role { text } db.reference.attlist = db.reference.role.attribute? & db.common.attributes & db.common.linking.attributes & db.status.attribute? & db.label.attribute? db.reference.info = db._info.title.req db.reference = [ s:rule [ context = "/db:reference" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:reference" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element reference { db.reference.attlist, db.reference.info, db.partintro?, (db.refentry+) >> a:documentation [ "A collection of reference entries" ] } } div { db.refentry.role.attribute = attribute role { text } db.refentry.attlist = db.refentry.role.attribute? & db.common.attributes & db.common.linking.attributes & db.status.attribute? & db.label.attribute? db.refentry.info = db._info.title.forbidden db.refentry = [ s:rule [ context = "/db:refentry" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:refentry" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element refentry { db.refentry.attlist, db.indexterm*, db.refentry.info, db.refmeta?, db.refnamediv+, db.refsynopsisdiv?, db.toplevel.refsection >> a:documentation [ "A reference page (originally a UNIX man-style reference page)" ] } } div { db.refmeta.role.attribute = attribute role { text } db.refmeta.attlist = db.refmeta.role.attribute? & db.common.attributes & db.common.linking.attributes db.refmeta = element refmeta { db.refmeta.attlist, db.indexterm*, db.refentrytitle, db.manvolnum?, db.refmiscinfo*, (db.indexterm*) >> a:documentation [ "Meta-information for a reference entry" ] } } div { db.refmiscinfo.role.attribute = attribute role { text } db.refmiscinfo.class.attribute = attribute class { text } db.refmiscinfo.attlist = db.refmiscinfo.role.attribute? & db.common.attributes & db.common.linking.attributes & db.refmiscinfo.class.attribute? db.refmiscinfo = element refmiscinfo { db.refmiscinfo.attlist, db._text >> a:documentation [ ] } } div { db.refnamediv.role.attribute = attribute role { text } db.refnamediv.attlist = db.refnamediv.role.attribute? & db.common.attributes & db.common.linking.attributes db.refnamediv = element refnamediv { db.refnamediv.attlist, db.refdescriptor?, db.refname+, db.refpurpose, (db.refclass*) >> a:documentation [ "The name, purpose, and classification of a reference page" ] } } div { db.refdescriptor.role.attribute = attribute role { text } db.refdescriptor.attlist = db.refdescriptor.role.attribute? & db.common.attributes & db.common.linking.attributes db.refdescriptor = element refdescriptor { db.refdescriptor.attlist, (db.all.inlines*) >> a:documentation [ "A description of the topic of a reference page" ] } } div { db.refname.role.attribute = attribute role { text } db.refname.attlist = db.refname.role.attribute? & db.common.attributes & db.common.linking.attributes db.refname = element refname { db.refname.attlist, (db.all.inlines*) >> a:documentation [ "The name of (one of) the subject(s) of a reference page" ] } } div { db.refpurpose.role.attribute = attribute role { text } db.refpurpose.attlist = db.refpurpose.role.attribute? & db.common.attributes & db.common.linking.attributes db.refpurpose = element refpurpose { db.refpurpose.attlist, (db.all.inlines*) >> a:documentation [ "A short (one sentence) synopsis of the topic of a reference page" ] } } div { db.refclass.role.attribute = attribute role { text } db.refclass.attlist = db.refclass.role.attribute? & db.common.attributes & db.common.linking.attributes db.refclass = element refclass { db.refclass.attlist, ((text | db.application)*) >> a:documentation [ "The scope or other indication of applicability of a reference entry" ] } } div { db.refsynopsisdiv.role.attribute = attribute role { text } db.refsynopsisdiv.attlist = db.refsynopsisdiv.role.attribute? & db.common.attributes & db.common.linking.attributes db.refsynopsisdiv.info = db._info db.refsynopsisdiv = element refsynopsisdiv { db.refsynopsisdiv.attlist, db.refsynopsisdiv.info, ((db.all.blocks+, db.secondlevel.refsection?) | db.secondlevel.refsection) >> a:documentation [ "A syntactic synopsis of the subject of the reference page" ] } } div { db.refsection.role.attribute = attribute role { text } db.refsection.attlist = db.refsection.role.attribute? & db.common.attributes & db.common.linking.attributes & db.status.attribute? & db.label.attribute? db.refsection.info = db._info.title.req db.refsection = [ s:rule [ context = "/db:refsection" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:refsection" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element refsection { db.refsection.attlist, db.refsection.info, ((db.all.blocks+, db.refsection*) | db.refsection+) >> a:documentation [ "A recursive section in a refentry" ] } } db.refsect1.sections = db.refsect2+ div { db.refsect1.status.attribute = db.status.attribute db.refsect1.role.attribute = attribute role { text } db.refsect1.attlist = db.refsect1.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.refsect1.status.attribute? db.refsect1.info = db._info.title.req db.refsect1 = [ s:rule [ context = "/db:refsect1" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:refsect1" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element refsect1 { db.refsect1.attlist, db.refsect1.info, ((db.all.blocks+, db.refsect1.sections?) | db.refsect1.sections) >> a:documentation [ "A major subsection of a reference entry" ] } } db.refsect2.sections = db.refsect3+ div { db.refsect2.status.attribute = db.status.attribute db.refsect2.role.attribute = attribute role { text } db.refsect2.attlist = db.refsect2.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.refsect2.status.attribute? db.refsect2.info = db._info.title.req db.refsect2 = [ s:rule [ context = "/db:refsect2" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:refsect2" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element refsect2 { db.refsect2.attlist, db.refsect2.info, ((db.all.blocks+, db.refsect2.sections?) | db.refsect2.sections) >> a:documentation [ "A subsection of a refsect1" ] } } div { db.refsect3.status.attribute = db.status.attribute db.refsect3.role.attribute = attribute role { text } db.refsect3.attlist = db.refsect3.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.refsect3.status.attribute? db.refsect3.info = db._info.title.req db.refsect3 = [ s:rule [ context = "/db:refsect3" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:refsect3" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element refsect3 { db.refsect3.attlist, db.refsect3.info, (db.all.blocks+) >> a:documentation [ "A subsection of a refsect2" ] } } db.glossary.inlines = db.firstterm | db.glossterm db.baseform.attribute = attribute baseform { text }? div { db.glosslist.role.attribute = attribute role { text } db.glosslist.attlist = db.glosslist.role.attribute? & db.common.attributes & db.common.linking.attributes db.glosslist.info = db._info.title.only db.glosslist = element glosslist { db.glosslist.attlist, db.glosslist.info?, db.all.blocks*, (db.glossentry+) >> a:documentation [ "A wrapper for a list of glossary entries" ] } } div { db.glossentry.role.attribute = attribute role { text } db.glossentry.sortas.attribute = attribute sortas { text } db.glossentry.attlist = db.glossentry.role.attribute? & db.common.attributes & db.common.linking.attributes & db.glossentry.sortas.attribute? db.glossentry = element glossentry { db.glossentry.attlist, db.glossterm, db.acronym?, db.abbrev?, db.indexterm*, (db.glosssee | db.glossdef+) >> a:documentation [ "An entry in a Glossary or GlossList" ] } } div { db.glossdef.role.attribute = attribute role { text } db.glossdef.subject.attribute = attribute subject { text } db.glossdef.attlist = db.glossdef.role.attribute? & db.common.attributes & db.common.linking.attributes & db.glossdef.subject.attribute? db.glossdef = element glossdef { db.glossdef.attlist, db.all.blocks+, (db.glossseealso*) >> a:documentation [ "A definition in a GlossEntry" ] } } div { db.glosssee.role.attribute = attribute role { text } db.glosssee.otherterm.attribute = attribute otherterm { xsd:IDREF } db.glosssee.attlist = db.glosssee.role.attribute? & db.common.attributes & db.common.linking.attributes & db.glosssee.otherterm.attribute? db.glosssee = [ s:rule [ context = "db:glosssee[@otherterm]" "\x{a}" ~ " " s:assert [ test = "local-name(//*[@id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'" "@otherterm on glosssee must point to a glossentry." ] "\x{a}" ~ " " ] ] element glosssee { db.glosssee.attlist, (db.all.inlines*) >> a:documentation [ "A cross-reference from one GlossEntry to another" ] } } div { db.glossseealso.role.attribute = attribute role { text } db.glossseealso.otherterm.attribute = attribute otherterm { xsd:IDREF } db.glossseealso.attlist = db.glossseealso.role.attribute? & db.common.attributes & db.common.linking.attributes & db.glossseealso.otherterm.attribute? db.glossseealso = [ s:rule [ context = "db:glossseealso[@otherterm]" "\x{a}" ~ " " s:assert [ test = "local-name(//*[@id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'" "@otherterm on glossseealso must point to a glossentry." ] "\x{a}" ~ " " ] ] element glossseealso { db.glossseealso.attlist, (db.all.inlines*) >> a:documentation [ "A cross-reference from one GlossEntry to another" ] } } div { db.firstterm.role.attribute = attribute role { text } db.firstterm.attlist = db.firstterm.role.attribute? & db.common.attributes & db.common.linking.attributes & db.baseform.attribute db.firstterm = [ s:rule [ context = "db:firstterm[@linkend]" "\x{a}" ~ " " s:assert [ test = "local-name(//*[@id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@id=current()/@linkend]) = 'http://docbook.org/ns/docbook'" "@linkend on firstterm must point to a glossentry." ] "\x{a}" ~ " " ] ] element firstterm { db.firstterm.attlist, (db.all.inlines*) >> a:documentation [ "The first occurrence of a term" ] } } div { db.glossterm.role.attribute = attribute role { text } db.glossterm.attlist = db.glossterm.role.attribute? & db.common.attributes & db.common.linking.attributes & db.baseform.attribute db.glossterm = [ s:rule [ context = "db:glossterm[@linkend]" "\x{a}" ~ " " s:assert [ test = "local-name(//*[@id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@id=current()/@linkend]) = 'http://docbook.org/ns/docbook'" "@linkend on glossterm must point to a glossentry." ] "\x{a}" ~ " " ] ] element glossterm { db.glossterm.attlist, (db.all.inlines*) >> a:documentation [ "A glossary term" ] } } div { db.glossary.status.attribute = db.status.attribute db.glossary.role.attribute = attribute role { text } db.glossary.attlist = db.glossary.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.glossary.status.attribute? db.glossary.info = db._info db.glossary = [ s:rule [ context = "/db:glossary" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:glossary" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element glossary { db.glossary.attlist, db.glossary.info, db.all.blocks*, (db.glossdiv+ | db.glossentry+), (db.bibliography?) >> a:documentation [ "A glossary" ] } } div { db.glossdiv.status.attribute = db.status.attribute db.glossdiv.role.attribute = attribute role { text } db.glossdiv.attlist = db.glossdiv.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.glossdiv.status.attribute? db.glossdiv.info = db._info.title.req db.glossdiv = element glossdiv { db.glossdiv.attlist, db.glossdiv.info, db.all.blocks*, (db.glossentry+) >> a:documentation [ "A division in a Glossary" ] } } div { db.termdef.role.attribute = attribute role { text } db.termdef.attlist = db.termdef.role.attribute? & db.common.attributes & db.common.linking.attributes & db.baseform.attribute db.termdef = [ s:rule [ context = "db:termdef" "\x{a}" ~ " " s:assert [ test = "count(db:glossterm) != 1" "A termdef must contain a glossterm" ] "\x{a}" ~ " " ] ] element termdef { db.termdef.attlist, (db.all.inlines*) >> a:documentation [ "An inline definition of a term" ] } } db.relation.attribute = attribute relation { text } div { db.biblioentry.role.attribute = attribute role { text } db.biblioentry.attlist = db.biblioentry.role.attribute? & db.common.attributes & db.common.linking.attributes db.biblioentry = element biblioentry { db.biblioentry.attlist, (db.bibliographic.elements+) >> a:documentation [ "An entry in a Bibliography" ] } } div { db.bibliomixed.role.attribute = attribute role { text } db.bibliomixed.attlist = db.bibliomixed.role.attribute? & db.common.attributes & db.common.linking.attributes db.bibliomixed = element bibliomixed { db.bibliomixed.attlist, ((text | db.bibliographic.elements)*) >> a:documentation [ "An entry in a Bibliography" ] } } div { db.biblioset.relation.attrib = db.relation.attribute db.biblioset.role.attribute = attribute role { text } db.biblioset.attlist = db.biblioset.role.attribute? & db.common.attributes & db.common.linking.attributes & db.biblioset.relation.attrib? db.biblioset = element biblioset { db.biblioset.attlist, (db.bibliographic.elements+) >> a:documentation [ "A raw container for related bibliographic information" ] } } div { db.bibliomset.relation.attrib = db.relation.attribute db.bibliomset.role.attribute = attribute role { text } db.bibliomset.attlist = db.bibliomset.role.attribute? & db.common.attributes & db.common.linking.attributes & db.bibliomset.relation.attrib? db.bibliomset = element bibliomset { db.bibliomset.attlist, ((db._text | db.bibliographic.elements)*) >> a:documentation [ "A cooked container for related bibliographic information" ] } } div { db.bibliomisc.role.attribute = attribute role { text } db.bibliomisc.attlist = db.bibliomisc.role.attribute? & db.common.attributes & db.common.linking.attributes db.bibliomisc = element bibliomisc { db.bibliomisc.attlist, db._text >> a:documentation [ "Untyped bibliographic information" ] } } div { db.bibliography.status.attrib = db.status.attribute db.bibliography.role.attribute = attribute role { text } db.bibliography.attlist = db.bibliography.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.bibliography.status.attrib? db.bibliography.info = db._info db.bibliography = [ s:rule [ context = "/db:bibliography" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:bibliography" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element bibliography { db.bibliography.attlist, db.bibliography.info, db.all.blocks*, (db.bibliodiv+ | (db.biblioentry | db.bibliomixed)+) >> a:documentation [ "A bibliography" ] } } div { db.bibliodiv.status.attrib = db.status.attribute db.bibliodiv.role.attribute = attribute role { text } db.bibliodiv.attlist = db.bibliodiv.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.bibliodiv.status.attrib? db.bibliodiv.info = db._info.title.req db.bibliodiv = element bibliodiv { db.bibliodiv.attlist, db.bibliodiv.info, db.all.blocks*, ((db.biblioentry | db.bibliomixed)+) >> a:documentation [ "A section of a Bibliography" ] } } div { db.bibliolist.role.attribute = attribute role { text } db.bibliolist.attlist = db.bibliolist.role.attribute? & db.common.attributes & db.common.linking.attributes db.bibliolist.info = db._info.title.only db.bibliolist = element bibliolist { db.bibliolist.attlist, db.bibliolist.info?, db.all.blocks*, ((db.biblioentry | db.bibliomixed)+) >> a:documentation [ "A wrapper for a list of bibliography entries" ] } } div { db.biblioref.role.attribute = attribute role { text } db.biblioref.xrefstyle.attribute = attribute xrefstyle { text } db.biblioref.endterm.attribute = attribute endterm { xsd:IDREF } db.biblioref.units.attribute = attribute units { xsd:token } db.biblioref.begin.attribute = attribute begin { xsd:token } db.biblioref.end.attribute = attribute end { xsd:token } db.biblioref.attlist = db.biblioref.role.attribute? & db.common.attributes & db.common.req.linking.attributes & db.biblioref.xrefstyle.attribute? & db.biblioref.endterm.attribute? & db.biblioref.units.attribute? & db.biblioref.begin.attribute? & db.biblioref.end.attribute? db.biblioref = element biblioref { db.biblioref.attlist, empty >> a:documentation [ ] } } db.significance.attribute = attribute significance { "normal" | "preferred" } db.zone.attribute = attribute zone { xsd:IDREFS } db.pagenum.attribute = attribute pagenum { text } db.scope.attribute = attribute scope { "all" | "global" | "local" } db.sortas.attribute = attribute sortas { text } div { db.itermset.role.attribute = attribute role { text } db.itermset.attlist = db.itermset.role.attribute? & db.common.attributes & db.common.linking.attributes db.itermset = element itermset { db.itermset.attlist, (db.indexterm.singular+) >> a:documentation [ "A set of index terms in the meta-information of a document" ] } } db.indexterm.contentmodel = db.primary?, ((db.secondary, ((db.tertiary, (db.see | db.seealso+)?) | db.see | db.seealso+)?) | db.see | db.seealso+)? div { db.indexterm.singular.role.attribute = attribute role { text } db.indexterm.singular.class.attribute = attribute class { "singular" } db.indexterm.singular.attlist = db.indexterm.singular.role.attribute? & db.common.attributes & db.common.linking.attributes & db.significance.attribute? & db.zone.attribute? & db.pagenum.attribute? & db.scope.attribute? & db.indexterm.singular.class.attribute? db.indexterm.singular = element indexterm { db.indexterm.singular.attlist, db.indexterm.contentmodel >> a:documentation [ "A wrapper for an indexed term" ] } } div { db.indexterm.startofrange.role.attribute = attribute role { text } db.indexterm.startofrange.class.attribute = attribute class { "startofrange" } db.indexterm.startofrange.attlist = db.indexterm.startofrange.role.attribute? & db.common.attributes & db.common.linking.attributes & db.significance.attribute? & db.zone.attribute? & db.pagenum.attribute? & db.scope.attribute? & db.indexterm.startofrange.class.attribute db.indexterm.startofrange = element indexterm { db.indexterm.startofrange.attlist, db.indexterm.contentmodel >> a:documentation [ "A wrapper for an indexed term that covers a range" ] } } div { db.indexterm.endofrange.role.attribute = attribute role { text } db.indexterm.endofrange.class.attribute = attribute class { "endofrange" } db.indexterm.endofrange.startref.attribute = attribute startref { xsd:IDREF } db.indexterm.endofrange.attlist = db.indexterm.endofrange.role.attribute? & db.common.attributes & db.common.linking.attributes & db.indexterm.endofrange.class.attribute & db.indexterm.endofrange.startref.attribute db.indexterm.endofrange = element indexterm { db.indexterm.endofrange.attlist, empty >> a:documentation [ "Identifies the end of a range associated with an indexed term" ] } } div { db.indexterm = db.indexterm.singular | db.indexterm.startofrange | db.indexterm.endofrange } div { db.primary.role.attribute = attribute role { text } db.primary.attlist = db.primary.role.attribute? & db.common.attributes & db.common.linking.attributes & db.sortas.attribute? db.primary = element primary { db.primary.attlist, (db.all.inlines*) >> a:documentation [ "The primary word or phrase under which an index term should be sorted" ] } } div { db.secondary.role.attribute = attribute role { text } db.secondary.attlist = db.secondary.role.attribute? & db.common.attributes & db.common.linking.attributes & db.sortas.attribute? db.secondary = element secondary { db.secondary.attlist, (db.all.inlines*) >> a:documentation [ "A secondary word or phrase in an index term" ] } } div { db.tertiary.role.attribute = attribute role { text } db.tertiary.attlist = db.tertiary.role.attribute? & db.common.attributes & db.common.linking.attributes & db.sortas.attribute? db.tertiary = element tertiary { db.tertiary.attlist, (db.all.inlines*) >> a:documentation [ "A tertiary word or phrase in an index term" ] } } div { db.see.role.attribute = attribute role { text } db.see.attlist = db.see.role.attribute? & db.common.attributes & db.common.linking.attributes db.see = element see { db.see.attlist, (db.all.inlines*) >> a:documentation [ "Part of an index term directing the reader instead to another entry in the index" ] } } div { db.seealso.role.attribute = attribute role { text } db.seealso.attlist = db.seealso.role.attribute? & db.common.attributes & db.common.linking.attributes db.seealso = element seealso { db.seealso.attlist, (db.all.inlines*) >> a:documentation [ "Part of an index term directing the reader also to another entry in the index" ] } } div { db.index.status.attribute = db.status.attribute db.index.role.attribute = attribute role { text } db.index.attlist = db.index.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.index.status.attribute? db.index.info = db._info db.index = [ s:rule [ context = "/db:index" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:index" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element index { db.index.attlist, db.index.info, db.all.blocks*, (db.indexdiv* | db.indexentry* | db.segmentedlist) >> a:documentation [ "An index to a book or part of a book" ] } } div { db.setindex.status.attribute = db.status.attribute db.setindex.role.attribute = attribute role { text } db.setindex.attlist = db.setindex.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.setindex.status.attribute? db.setindex.info = db._info db.setindex = [ s:rule [ context = "/db:setindex" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:setindex" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element setindex { db.setindex.attlist, db.setindex.info, db.all.blocks*, (db.indexdiv* | db.indexentry*) >> a:documentation [ "An index to a set of books" ] } } div { db.indexdiv.status.attribute = db.status.attribute db.indexdiv.role.attribute = attribute role { text } db.indexdiv.attlist = db.indexdiv.role.attribute? & db.common.attributes & db.common.linking.attributes & db.label.attribute? & db.indexdiv.status.attribute? db.indexdiv.info = db._info.title.req db.indexdiv = element indexdiv { db.indexdiv.attlist, db.indexdiv.info, db.all.blocks*, (db.indexentry+ | db.segmentedlist) >> a:documentation [ "A division in an index" ] } } div { db.indexentry.role.attribute = attribute role { text } db.indexentry.attlist = db.indexentry.role.attribute? & db.common.attributes & db.common.linking.attributes db.indexentry = element indexentry { db.indexentry.attlist, db.primaryie, (db.seeie | db.seealsoie)*, ((db.secondaryie, (db.seeie | db.seealsoie | db.tertiaryie)*)*) >> a:documentation [ "An entry in an index" ] } } div { db.primaryie.role.attribute = attribute role { text } db.primaryie.attlist = db.primaryie.role.attribute? & db.common.attributes & db.linkends.attribute? db.primaryie = element primaryie { db.primaryie.attlist, (db.all.inlines*) >> a:documentation [ "A primary term in an index entry, not in the text" ] } } div { db.secondaryie.role.attribute = attribute role { text } db.secondaryie.attlist = db.secondaryie.role.attribute? & db.common.attributes & db.linkends.attribute? db.secondaryie = element secondaryie { db.secondaryie.attlist, (db.all.inlines*) >> a:documentation [ "A secondary term in an index entry, rather than in the text" ] } } div { db.tertiaryie.role.attribute = attribute role { text } db.tertiaryie.attlist = db.tertiaryie.role.attribute? & db.common.attributes & db.linkends.attribute? db.tertiaryie = element tertiaryie { db.tertiaryie.attlist, (db.all.inlines*) >> a:documentation [ "A tertiary term in an index entry, rather than in the text" ] } } div { db.seeie.role.attribute = attribute role { text } db.seeie.attlist = db.seeie.role.attribute? & db.common.attributes & db.linkend.attribute? db.seeie = element seeie { db.seeie.attlist, (db.all.inlines*) >> a:documentation [ "A See\x{a}" ~ "entry in an index, rather than in the text" ] } } div { db.seealsoie.role.attribute = attribute role { text } db.seealsoie.attlist = db.seealsoie.role.attribute? & db.common.attributes & db.linkends.attribute? db.seealsoie = element seealsoie { db.seealsoie.attlist, (db.all.inlines*) >> a:documentation [ "A See also\x{a}" ~ " entry in an index, rather than in the text" ] } } div { db.toc.role.attribute = attribute role { text } db.toc.attlist = db.toc.role.attribute? & db.common.attributes & db.common.linking.attributes db.toc.info = db._info.title.only db.toc = [ s:rule [ context = "/db:toc" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] s:rule [ context = "/db:toc" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element toc { db.toc.attlist, db.toc.info, db.all.blocks*, ((db.tocdiv | db.tocentry)*) >> a:documentation [ "A table of contents" ] } } div { db.tocdiv.role.attribute = attribute role { text } db.tocdiv.pagenum.attribute = attribute pagenum { text } db.tocdiv.attlist = db.tocdiv.role.attribute? & db.common.attributes & db.tocdiv.pagenum.attribute? & db.linkend.attribute? db.tocdiv.info = db._info db.tocdiv = element tocdiv { db.tocdiv.attlist, db.tocdiv.info, db.all.blocks*, ((db.tocdiv | db.tocentry)+) >> a:documentation [ ] } } div { db.tocentry.role.attribute = attribute role { text } db.tocentry.pagenum.attribute = attribute pagenum { text } db.tocentry.attlist = db.tocentry.role.attribute? & db.common.attributes & db.tocentry.pagenum.attribute? & db.linkend.attribute? db.tocentry = element tocentry { db.tocentry.attlist, (db.all.inlines*) >> a:documentation [ "A component title in a table of contents" ] } } db.task.info = db._info.title.only div { db.task.role.attribute = attribute role { text } db.task.attlist = db.task.role.attribute? & db.common.attributes & db.common.linking.attributes db.task = element task { db.task.attlist, db.task.info, db.tasksummary?, db.taskprerequisites?, db.procedure, db.example*, (db.taskrelated?) >> a:documentation [ "A task to be completed" ] } } div { db.tasksummary.role.attribute = attribute role { text } db.tasksummary.attlist = db.tasksummary.role.attribute? & db.common.attributes & db.common.linking.attributes db.tasksummary.info = db._info.title.only db.tasksummary = element tasksummary { db.tasksummary.attlist, db.tasksummary.info, (db.all.blocks+) >> a:documentation [ "A summary of a task" ] } } div { db.taskprerequisites.role.attribute = attribute role { text } db.taskprerequisites.attlist = db.taskprerequisites.role.attribute? & db.common.attributes & db.common.linking.attributes db.taskprerequisites.info = db._info.title.only db.taskprerequisites = element taskprerequisites { db.taskprerequisites.attlist, db.taskprerequisites.info, (db.all.blocks+) >> a:documentation [ "The prerequisites for a task" ] } } div { db.taskrelated.role.attribute = attribute role { text } db.taskrelated.attlist = db.taskrelated.role.attribute? & db.common.attributes & db.common.linking.attributes db.taskrelated.info = db._info.title.only db.taskrelated = element taskrelated { db.taskrelated.attlist, db.taskrelated.info, (db.all.blocks+) >> a:documentation [ "Information related to a task" ] } } db.area.units.enumeration = "calspair" | "linecolumn" | "linecolumnpair" | "linerange" db.area.units-enum.attribute = attribute units { db.area.units.enumeration }? db.area.units-other.attributes = attribute units { "other" }?, attribute otherunits { xsd:NMTOKEN } db.area.units.attribute = db.area.units-enum.attribute | db.area.units-other.attributes div { db.calloutlist.role.attribute = attribute role { text } db.calloutlist.attlist = db.calloutlist.role.attribute? & db.common.attributes & db.common.linking.attributes db.calloutlist.info = db._info.title.only db.calloutlist = element calloutlist { db.calloutlist.attlist, db.calloutlist.info, db.all.blocks*, (db.callout+) >> a:documentation [ "A list of callout\x{a}" ~ "s" ] } } div { db.callout.role.attribute = attribute role { text } db.callout.arearefs.attribute = attribute arearefs { xsd:IDREFS } db.callout.attlist = db.callout.role.attribute? & db.common.attributes & db.callout.arearefs.attribute db.callout = element callout { db.callout.attlist, (db.all.blocks+) >> a:documentation [ "A “called out” description of a marked Area" ] } } div { db.programlistingco.role.attribute = attribute role { text } db.programlistingco.attlist = db.programlistingco.role.attribute? & db.common.attributes & db.common.linking.attributes db.programlistingco.info = db._info.title.forbidden db.programlistingco = element programlistingco { db.programlistingco.attlist, db.programlistingco.info, db.areaspec, db.programlisting, (db.calloutlist*) >> a:documentation [ "A program listing with associated areas used in callouts" ] } } div { db.areaspec.role.attribute = attribute role { text } db.areaspec.attlist = db.areaspec.role.attribute? & db.common.attributes & db.common.linking.attributes & db.area.units.attribute db.areaspec = element areaspec { db.areaspec.attlist, ((db.area | db.areaset)+) >> a:documentation [ "A collection of regions in a graphic or code example" ] } } div { db.area.role.attribute = attribute role { text } db.area.linkends.attribute = attribute linkends { xsd:IDREFS } db.area.label.attribute = attribute label { text } db.area.coords.attribute = attribute coords { text } db.area.attlist = db.area.role.attribute? & db.common.idreq.attributes & db.area.units.attribute & (db.area.linkends.attribute | db.href.attribute)? & db.area.label.attribute? & db.area.coords.attribute db.area = element area { db.area.attlist, empty >> a:documentation [ "A region defined for a Callout in a graphic or code example" ] } } div { db.areaset.role.attribute = attribute role { text } db.areaset.label.attribute = attribute label { text } db.areaset.attlist = db.areaset.role.attribute? & db.common.idreq.attributes & db.area.units.attribute & db.areaset.label.attribute? db.areaset = element areaset { db.areaset.attlist, (db.area+) >> a:documentation [ "A set of related areas in a graphic or code example" ] } } div { db.screenco.role.attribute = attribute role { text } db.screenco.attlist = db.screenco.role.attribute? & db.common.attributes & db.common.linking.attributes db.screenco.info = db._info.title.forbidden db.screenco = element screenco { db.screenco.attlist, db.screenco.info, db.areaspec, db.screen, (db.calloutlist*) >> a:documentation [ "A screen with associated areas used in callouts" ] } } div { db.imageobjectco.role.attribute = attribute role { text } db.imageobjectco.attlist = db.imageobjectco.role.attribute? & db.common.attributes & db.common.linking.attributes db.imageobjectco.info = db._info.title.forbidden db.imageobjectco = element imageobjectco { db.imageobjectco.attlist, db.imageobjectco.info, db.areaspec, db.imageobject, (db.calloutlist*) >> a:documentation [ "A wrapper for an image object with callouts" ] } } div { db.co.role.attribute = attribute role { text } db.co.linkends.attribute = attribute linkends { xsd:IDREFS } db.co.label.attribute = attribute label { text } db.co.attlist = db.co.role.attribute? & db.common.idreq.attributes & db.co.linkends.attribute? & db.co.label.attribute? db.co = element co { db.co.attlist, empty >> a:documentation [ "The location of a callout embedded in text" ] } } div { db.coref.role.attribute = attribute role { text } db.coref.label.attribute = attribute label { text } db.coref.attlist = db.coref.role.attribute? & db.common.attributes & db.linkend.attribute & db.coref.label.attribute? db.coref = element coref { db.coref.attlist, empty >> a:documentation [ "A cross reference to a co" ] } } div { db.productionset.role.attribute = attribute role { text } db.productionset.attlist = db.productionset.role.attribute? & db.common.attributes & db.common.linking.attributes db.productionset.info = db._info.title.only db.productionset = element productionset { db.productionset.attlist, db.productionset.info, ((db.production | db.productionrecap)+) >> a:documentation [ "A set of EBNF productions" ] } } div { db.production.role.attribute = attribute role { text } db.production.attlist = db.production.role.attribute? & db.common.idreq.attributes & db.common.linking.attributes db.production = element production { db.production.attlist, db.lhs, db.rhs, (db.constraint*) >> a:documentation [ "A production in a set of EBNF productions" ] } } div { db.lhs.role.attribute = attribute role { text } db.lhs.attlist = db.lhs.role.attribute? & db.common.attributes & db.common.linking.attributes db.lhs = element lhs { db.lhs.attlist, text >> a:documentation [ "The left-hand side of an EBNF production" ] } } div { db.rhs.role.attribute = attribute role { text } db.rhs.attlist = db.rhs.role.attribute? & db.common.attributes & db.common.linking.attributes db.rhs = element rhs { db.rhs.attlist, ((text | db.nonterminal | db.lineannotation | db.sbr)*) >> a:documentation [ "The right-hand side of an EBNF production" ] } } div { db.nonterminal.role.attribute = attribute role { text } db.nonterminal.def.attribute = attribute def { text } db.nonterminal.attlist = db.nonterminal.role.attribute? & db.common.attributes & db.common.linking.attributes & db.nonterminal.def.attribute db.nonterminal = element nonterminal { db.nonterminal.attlist, text >> a:documentation [ "A non-terminal in an EBNF production" ] } } div { db.constraint.role.attribute = attribute role { text } db.constraint.attlist = db.constraint.role.attribute? & db.common.attributes & db.common.req.linking.attributes db.constraint = element constraint { db.constraint.attlist, empty >> a:documentation [ "A constraint in an EBNF production" ] } } div { db.productionrecap.role.attribute = attribute role { text } db.productionrecap.attlist = db.productionrecap.role.attribute? & db.common.attributes & db.common.req.linking.attributes db.productionrecap = element productionrecap { db.productionrecap.attlist, empty >> a:documentation [ "A cross-reference to an EBNF production" ] } } div { db.constraintdef.role.attribute = attribute role { text } db.constraintdef.attlist = db.constraintdef.role.attribute? & db.common.attributes & db.common.linking.attributes db.constraintdef.info = db._info.title.only db.constraintdef = element constraintdef { db.constraintdef.attlist, db.constraintdef.info, (db.all.blocks+) >> a:documentation [ "The definition of a constraint in an EBNF production" ] } } db.char.attribute = attribute char { text } db.charoff.attribute = attribute charoff { text } db.frame.attribute = attribute frame { ("all" | "bottom" | "none" | "sides" | "top" | "topbot") >> a:documentation [ "Specifies how the table is to be framed" ] } db.colsep.attribute = ## Specifies the presence or absence of the column separator attribute colsep { text } db.rowsep.attribute = ## Specifies the presence or absence of the row separator attribute rowsep { text } db.orient.attribute = attribute orient { ("land" | "port") >> a:documentation [ "Specifies the orientation of the table" ] } db.tabstyle.attribute = ## Specifies the table style attribute tabstyle { text } db.rowheader.attribute = attribute rowheader { ("firstcol" | "norowheader") >> a:documentation [ "Indicates whether or not the entries in the first column should be considered row headers" ] } db.align.attribute = attribute align { "center" | "char" | "justify" | "left" | "right" } db.valign.attribute = attribute valign { "bottom" | "middle" | "top" } db.specify-col-by-colname.attributes = attribute colname { text } db.specify-col-by-namest.attributes = attribute namest { text } db.specify-span-by-spanspec.attributes = attribute spanname { text } db.specify-span-directly.attributes = attribute namest { text } & attribute nameend { text } db.column-spec.attributes = db.specify-col-by-colname.attributes | db.specify-col-by-namest.attributes | db.specify-span-by-spanspec.attributes | db.specify-span-directly.attributes db.colname.attribute = attribute colname { text } db.spanname.attribute = attribute spanname { text } div { db.tgroup.role.attribute = attribute role { text } db.tgroup.tgroupstyle.attribute = attribute tgroupstyle { text } db.tgroup.cols.attribute = attribute cols { xsd:integer } db.tgroup.attlist = db.tgroup.role.attribute? & db.common.attributes & db.common.linking.attributes & db.char.attribute? & db.charoff.attribute? & db.tgroup.tgroupstyle.attribute? & db.tgroup.cols.attribute & db.colsep.attribute? & db.rowsep.attribute? & db.align.attribute? db.tgroup = element tgroup { db.tgroup.attlist, db.colspec*, db.spanspec*, db.cals.thead?, db.cals.tfoot?, db.cals.tbody >> a:documentation [ "A wrapper for the main content of a table, or part of a table" ] } } div { db.colspec.role.attribute = attribute role { text } db.colspec.colnum.attribute = attribute colnum { xsd:integer } db.colspec.colwidth.attribute = attribute colwidth { text } db.colspec.attlist = db.colspec.role.attribute? & db.common.attributes & db.common.linking.attributes & db.colspec.colnum.attribute? & db.char.attribute? & db.colsep.attribute? & db.colspec.colwidth.attribute? & db.charoff.attribute? & db.colname.attribute? & db.rowsep.attribute? & db.align.attribute? db.colspec = element colspec { db.colspec.attlist, empty >> a:documentation [ "Specifications for a column in a table" ] } } div { db.spanspec.role.attribute = attribute role { text } db.spanspec.namest.attribute = attribute namest { text } db.spanspec.nameend.attribute = attribute nameend { text } db.spanspec.attlist = db.spanspec.role.attribute? & db.common.attributes & db.common.linking.attributes & db.spanname.attribute & db.spanspec.namest.attribute & db.spanspec.nameend.attribute & db.char.attribute? & db.colsep.attribute? & db.charoff.attribute? & db.rowsep.attribute? & db.align.attribute? db.spanspec = element spanspec { db.spanspec.attlist, empty >> a:documentation [ "Formatting information for a spanned column in a table" ] } } div { db.cals.thead.role.attribute = attribute role { text } db.cals.thead.attlist = db.cals.thead.role.attribute? & db.common.attributes & db.common.linking.attributes & db.valign.attribute? db.cals.thead = element thead { db.cals.thead.attlist, db.colspec*, (db.row+) >> a:documentation [ "A table header consisting of one or more rows" ] } } div { db.cals.tfoot.role.attribute = attribute role { text } db.cals.tfoot.attlist = db.cals.tfoot.role.attribute? & db.common.attributes & db.common.linking.attributes & db.valign.attribute? db.cals.tfoot = element tfoot { db.cals.tfoot.attlist, db.colspec*, (db.row+) >> a:documentation [ "A table footer consisting of one or more rows" ] } } div { db.cals.tbody.role.attribute = attribute role { text } db.cals.tbody.attlist = db.cals.tbody.role.attribute? & db.common.attributes & db.common.linking.attributes & db.valign.attribute? db.cals.tbody = element tbody { db.cals.tbody.attlist, (db.row+) >> a:documentation [ "A wrapper for the rows of a table or informal table" ] } } div { db.row.role.attribute = attribute role { text } db.row.attlist = db.row.role.attribute? & db.common.attributes & db.common.linking.attributes & db.rowsep.attribute? & db.valign.attribute? db.row = element row { db.row.attlist, ((db.entry | db.entrytbl)+) >> a:documentation [ "A row in a table" ] } } div { db.entry.role.attribute = attribute role { text } db.entry.morerows.attribute = attribute morerows { xsd:integer } db.entry.rotate.attribute = attribute rotate { text } db.entry.attlist = db.entry.role.attribute? & db.common.attributes & db.common.linking.attributes & db.valign.attribute? & db.char.attribute? & db.colsep.attribute? & db.charoff.attribute? & db.entry.morerows.attribute? & db.column-spec.attributes? & db.rowsep.attribute? & db.entry.rotate.attribute? & db.align.attribute? db.entry = element entry { db.entry.attlist, (db.all.inlines* | db.all.blocks*) >> a:documentation [ "A cell in a table" ] } } div { db.entrytbl.role.attribute = attribute role { text } db.entrytbl.tgroupstyle.attribute = attribute tgroupstyle { text } db.entrytbl.cols.attribute = attribute cols { xsd:integer } db.entrytbl.attlist = db.entrytbl.role.attribute? & db.common.attributes & db.common.linking.attributes & db.char.attribute? & db.charoff.attribute? & db.column-spec.attributes? & db.entrytbl.tgroupstyle.attribute? & db.entrytbl.cols.attribute? & db.colsep.attribute? & db.rowsep.attribute? & db.align.attribute? db.entrytbl = element entrytbl { db.entrytbl.attlist, db.colspec*, db.spanspec*, db.cals.entrytbl.thead?, db.cals.entrytbl.tbody >> a:documentation [ "A subtable appearing in place of an Entry in a table" ] } } div { db.cals.entrytbl.thead.role.attribute = attribute role { text } db.cals.entrytbl.thead.attlist = db.cals.entrytbl.thead.role.attribute? & db.common.attributes & db.common.linking.attributes & db.valign.attribute? db.cals.entrytbl.thead = element thead { db.cals.entrytbl.thead.attlist, db.colspec*, (db.entrytbl.row+) >> a:documentation [ "A table header consisting of one or more rows" ] } } div { db.cals.entrytbl.tbody.role.attribute = attribute role { text } db.cals.entrytbl.tbody.attlist = db.cals.entrytbl.tbody.role.attribute? & db.common.attributes & db.common.linking.attributes & db.valign.attribute? db.cals.entrytbl.tbody = element tbody { db.cals.entrytbl.tbody.attlist, (db.entrytbl.row+) >> a:documentation [ "A wrapper for the rows of a table or informal table" ] } } div { db.entrytbl.row.role.attribute = attribute role { text } db.entrytbl.row.attlist = db.entrytbl.row.role.attribute? & db.common.attributes & db.common.linking.attributes & db.rowsep.attribute? & db.valign.attribute? db.entrytbl.row = element row { db.entrytbl.row.attlist, (db.entry+) >> a:documentation [ "A row in a table" ] } } div { db.cals.table.role.attribute = attribute role { text } db.cals.table.attlist = db.cals.table.role.attribute? & db.common.attributes & db.common.linking.attributes & db.tabstyle.attribute? & db.floatstyle.attribute? & db.orient.attribute? & db.colsep.attribute? & db.rowsep.attribute? & db.frame.attribute? & db.pgwide.attribute? & attribute shortentry { ("0" | "1") >> a:documentation [ "Indicates if the short or long title should be used in a List of Tables" ] }? & attribute tocentry { ("0" | "1") >> a:documentation [ "Indicates if the table should appear in a List of Tables" ] }? & db.rowheader.attribute? db.cals.table.info = db._info.title.onlyreq db.cals.table = [ s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:informaltable)" "informaltable must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:informaltable)" "informaltable must not occur in the descendants of table" ] "\x{a}" ~ " " ] ] element table { db.cals.table.attlist, db.cals.table.info, (db.alt? & db.indexing.inlines* & db.textobject*), (db.mediaobject+ | db.tgroup+), (db.caption?) >> a:documentation [ "A formal table in a document" ] } } div { db.cals.informaltable.role.attribute = attribute role { text } db.cals.informaltable.attlist = db.cals.informaltable.role.attribute? & db.common.attributes & db.common.linking.attributes & db.tabstyle.attribute? & db.floatstyle.attribute? & db.orient.attribute? & db.colsep.attribute? & db.rowsep.attribute? & db.frame.attribute? & db.pgwide.attribute? & db.rowheader.attribute? db.cals.informaltable.info = db._info.title.forbidden db.cals.informaltable = element informaltable { db.cals.informaltable.attlist, db.cals.informaltable.info, (db.alt? & db.indexing.inlines* & db.textobject*), (db.mediaobject+ | db.tgroup+), (db.caption?) >> a:documentation [ "A table without a title" ] } } db.html.coreattrs = attribute class { text }? & attribute style { text }? & attribute title { text }? db.html.i18n = attribute lang { text }? & attribute dir { "ltr" | "rtl" }? db.html.events = attribute onclick { text }? & attribute ondblclick { text }? & attribute onmousedown { text }? & attribute onmouseup { text }? & attribute onmouseover { text }? & attribute onmousemove { text }? & attribute onmouseout { text }? & attribute onkeypress { text }? & attribute onkeydown { text }? & attribute onkeyup { text }? db.html.attrs = db.common.attributes & db.html.coreattrs & db.html.i18n & db.html.events db.html.cellhalign = attribute align { "left" | "center" | "right" | "justify" | "char" }? & attribute char { text }? & attribute charoff { text }? db.html.cellvalign = attribute valign { "top" | "middle" | "bottom" | "baseline" }? db.html.table.model = db.html.caption, (db.html.col* | db.html.colgroup*), db.html.thead?, db.html.tfoot?, (db.html.tbody+ | db.html.tr+) db.html.informaltable.model = (db.html.col* | db.html.colgroup*), db.html.thead?, db.html.tfoot?, (db.html.tbody+ | db.html.tr+) div { db.html.table.attlist = db.html.attrs & db.orient.attribute? & db.pgwide.attribute? & db.tabstyle.attribute? & db.floatstyle.attribute? & attribute summary { text }? & attribute width { text }? & attribute border { text }? & attribute frame { "void" | "above" | "below" | "hsides" | "lhs" | "rhs" | "vsides" | "box" | "border" }? & attribute rules { "none" | "groups" | "rows" | "cols" | "all" }? & attribute cellspacing { text }? & attribute cellpadding { text }? db.html.table = [ s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:informaltable)" "informaltable must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of table" ] "\x{a}" ~ " " ] s:rule [ context = "db:table" "\x{a}" ~ " " s:assert [ test = "not(.//db:informaltable)" "informaltable must not occur in the descendants of table" ] "\x{a}" ~ " " ] ] element table { db.html.table.attlist, db.html.table.model >> a:documentation [ "A formal table in a document" ] } } div { db.html.informaltable.attlist = db.html.attrs & attribute summary { text }? & attribute width { text }? & attribute border { text }? & attribute frame { "void" | "above" | "below" | "hsides" | "lhs" | "rhs" | "vsides" | "box" | "border" }? & attribute rules { "none" | "groups" | "rows" | "cols" | "all" }? & attribute cellspacing { text }? & attribute cellpadding { text }? db.html.informaltable = element informaltable { db.html.informaltable.attlist, db.html.informaltable.model >> a:documentation [ "A table without a title" ] } } div { db.html.caption.attlist = db.html.attrs db.html.caption = [ s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:sidebar)" "sidebar must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:task)" "task must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:example)" "example must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:figure)" "figure must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:table)" "table must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:caution)" "caution must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:important)" "important must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:note)" "note must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:tip)" "tip must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:warning)" "warning must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:sidebar)" "sidebar must not occur in the descendants of caption" ] "\x{a}" ~ " " ] s:rule [ context = "db:caption" "\x{a}" ~ " " s:assert [ test = "not(.//db:task)" "task must not occur in the descendants of caption" ] "\x{a}" ~ " " ] ] element caption { db.html.caption.attlist, text >> a:documentation [ "A caption" ] } } div { db.html.col.attlist = db.html.attrs & attribute span { text }? & attribute width { text }? & db.html.cellhalign & db.html.cellvalign db.html.col = element col { db.html.col.attlist, empty >> a:documentation [ "Specifications for a column in an HTML table" ] } } div { db.html.colgroup.attlist = db.html.attrs & attribute span { text }? & attribute width { text }? & db.html.cellhalign & db.html.cellvalign db.html.colgroup = element colgroup { db.html.colgroup.attlist, (db.html.col*) >> a:documentation [ "A group of columns in an HTML table" ] } } div { db.html.thead.attlist = db.html.attrs & db.html.cellhalign & db.html.cellvalign db.html.thead = element thead { db.html.thead.attlist, (db.html.tr+) >> a:documentation [ "A table header consisting of one or more rows" ] } } div { db.html.tfoot.attlist = db.html.attrs & db.html.cellhalign & db.html.cellvalign db.html.tfoot = element tfoot { db.html.tfoot.attlist, (db.html.tr+) >> a:documentation [ "A table footer consisting of one or more rows" ] } } div { db.html.tbody.attlist = db.html.attrs & db.html.cellhalign & db.html.cellvalign db.html.tbody = element tbody { db.html.tbody.attlist, (db.html.tr+) >> a:documentation [ "A wrapper for the rows of a table or informal table" ] } } div { db.html.tr.attlist = db.html.attrs & db.html.cellhalign & db.html.cellvalign db.html.tr = element tr { db.html.tr.attlist, ((db.html.th | db.html.td)+) >> a:documentation [ "A row in an HTML table" ] } } div { db.html.th.attlist = db.html.attrs & attribute abbr { text }? & attribute axis { text }? & attribute headers { text }? & attribute scope { text }? & attribute rowspan { text }? & attribute colspan { text }? & db.html.cellhalign & db.html.cellvalign db.html.th = element th { db.html.th.attlist, (db.all.inlines* | db.all.blocks*) >> a:documentation [ "A table header entry in an HTML table" ] } } div { db.html.td.attlist = db.html.attrs & attribute abbr { text }? & attribute axis { text }? & attribute headers { text }? & attribute scope { text }? & attribute rowspan { text }? & attribute colspan { text }? & db.html.cellhalign & db.html.cellvalign db.html.td = element td { db.html.td.attlist, (db.all.inlines* | db.all.blocks*) >> a:documentation [ "A table entry in an HTML table" ] } } div { db.msgset.role.attribute = attribute role { text } db.msgset.attlist = db.msgset.role.attribute? & db.common.attributes & db.common.linking.attributes db.msgset.info = db._info.title.only db.msgset = element msgset { db.msgset.attlist, db.msgset.info, (db.msgentry+ | db.simplemsgentry+) >> a:documentation [ "A detailed set of messages, usually error messages" ] } } div { db.msgentry.role.attribute = attribute role { text } db.msgentry.attlist = db.msgentry.role.attribute? & db.common.attributes & db.common.linking.attributes db.msgentry = element msgentry { db.msgentry.attlist, db.msg+, db.msginfo?, (db.msgexplan*) >> a:documentation [ "A wrapper for an entry in a message set" ] } } div { db.simplemsgentry.role.attribute = attribute role { text } db.simplemsgentry.audience.attribute = attribute audience { text } db.simplemsgentry.origin.attribute = attribute origin { text } db.simplemsgentry.level.attribute = attribute level { text } db.simplemsgentry.attlist = db.simplemsgentry.role.attribute? & db.common.attributes & db.common.linking.attributes & db.simplemsgentry.audience.attribute & db.simplemsgentry.origin.attribute & db.simplemsgentry.level.attribute db.simplemsgentry = element simplemsgentry { db.simplemsgentry.attlist, db.msgtext, (db.msgexplan+) >> a:documentation [ "A wrapper for a simpler entry in a message set" ] } } div { db.msg.role.attribute = attribute role { text } db.msg.attlist = db.msg.role.attribute? & db.common.attributes & db.common.linking.attributes db.msg.info = db._info.title.only db.msg = element msg { db.msg.attlist, db.msg.info, db.msgmain, ((db.msgsub | db.msgrel)*) >> a:documentation [ "A message in a message set" ] } } div { db.msgmain.role.attribute = attribute role { text } db.msgmain.attlist = db.msgmain.role.attribute? & db.common.attributes & db.common.linking.attributes db.msgmain.info = db._info.title.only db.msgmain = element msgmain { db.msgmain.attlist, db.msgmain.info, db.msgtext >> a:documentation [ "The primary component of a message in a message set " ] } } div { db.msgsub.role.attribute = attribute role { text } db.msgsub.attlist = db.msgsub.role.attribute? & db.common.attributes & db.common.linking.attributes db.msgsub.info = db._info.title.only db.msgsub = element msgsub { db.msgsub.attlist, db.msgsub.info, db.msgtext >> a:documentation [ "A subcomponent of a message in a message set" ] } } div { db.msgrel.role.attribute = attribute role { text } db.msgrel.attlist = db.msgrel.role.attribute? & db.common.attributes & db.common.linking.attributes db.msgrel.info = db._info.title.only db.msgrel = element msgrel { db.msgrel.attlist, db.msgrel.info, db.msgtext >> a:documentation [ "A related component of a message in a message set" ] } } div { db.msgtext.role.attribute = attribute role { text } db.msgtext.attlist = db.msgtext.role.attribute? & db.common.attributes & db.common.linking.attributes db.msgtext = element msgtext { db.msgtext.attlist, (db.all.blocks+) >> a:documentation [ "The actual text of a message component in a message set" ] } } div { db.msginfo.role.attribute = attribute role { text } db.msginfo.attlist = db.msginfo.role.attribute? & db.common.attributes & db.common.linking.attributes db.msginfo = element msginfo { db.msginfo.attlist, ((db.msglevel | db.msgorig | db.msgaud)*) >> a:documentation [ "Information about a message in a message set" ] } } div { db.msglevel.role.attribute = attribute role { text } db.msglevel.attlist = db.msglevel.role.attribute? & db.common.attributes & db.common.linking.attributes db.msglevel = element msglevel { db.msglevel.attlist, db._text >> a:documentation [ "The level of importance or severity of a message in a message set" ] } } div { db.msgorig.role.attribute = attribute role { text } db.msgorig.attlist = db.msgorig.role.attribute? & db.common.attributes & db.common.linking.attributes db.msgorig = element msgorig { db.msgorig.attlist, db._text >> a:documentation [ "The origin of a message in a message set" ] } } div { db.msgaud.role.attribute = attribute role { text } db.msgaud.attlist = db.msgaud.role.attribute? & db.common.attributes & db.common.linking.attributes db.msgaud = element msgaud { db.msgaud.attlist, db._text >> a:documentation [ "The audience to which a message in a message set is relevant" ] } } div { db.msgexplan.role.attribute = attribute role { text } db.msgexplan.attlist = db.msgexplan.role.attribute? & db.common.attributes & db.common.linking.attributes db.msgexplan.info = db._info.title.only db.msgexplan = element msgexplan { db.msgexplan.attlist, db.msgexplan.info, (db.all.blocks+) >> a:documentation [ "Explanatory material relating to a message in a message set" ] } } div { db.qandaset.role.attribute = attribute role { text } db.qandaset.defaultlabel.enumeration = "none" | "number" | "qanda" db.qandaset.defaultlabel.attribute = attribute defaultlabel { db.qandaset.defaultlabel.enumeration } db.qandaset.attlist = db.qandaset.role.attribute? & db.common.attributes & db.common.linking.attributes & db.qandaset.defaultlabel.attribute? db.qandaset.info = db._info.title.only db.qandaset = element qandaset { db.qandaset.attlist, db.qandaset.info, db.all.blocks*, (db.qandadiv+ | db.qandaentry+) >> a:documentation [ "A question-and-answer set" ] } } div { db.qandadiv.role.attribute = attribute role { text } db.qandadiv.attlist = db.qandadiv.role.attribute? & db.common.attributes & db.common.linking.attributes db.qandadiv.info = db._info.title.only db.qandadiv = element qandadiv { db.qandadiv.attlist, db.qandadiv.info, db.all.blocks*, (db.qandadiv+ | db.qandaentry+) >> a:documentation [ "A titled division in a QandASet" ] } } div { db.qandaentry.role.attribute = attribute role { text } db.qandaentry.attlist = db.qandaentry.role.attribute? & db.common.attributes & db.common.linking.attributes db.qandaentry.info = db._info.title.forbidden db.qandaentry = element qandaentry { db.qandaentry.attlist, db.qandaentry.info, db.question, (db.answer*) >> a:documentation [ "A question/answer set within a QandASet" ] } } div { db.question.role.attribute = attribute role { text } db.question.attlist = db.question.role.attribute? & db.common.attributes & db.common.linking.attributes db.question = element question { db.question.attlist, db.label?, (db.all.blocks+) >> a:documentation [ "A question in a QandASet" ] } } div { db.answer.role.attribute = attribute role { text } db.answer.attlist = db.answer.role.attribute? & db.common.attributes & db.common.linking.attributes db.answer = element answer { db.answer.attlist, db.label?, (db.all.blocks+) >> a:documentation [ "An answer to a question posed in a QandASet" ] } } div { db.label.role.attribute = attribute role { text } db.label.attlist = db.label.role.attribute? & db.common.attributes & db.common.linking.attributes db.label = element label { db.label.attlist, db._text >> a:documentation [ "A label on a Question or Answer" ] } } db.math.inlines = db.inlineequation db.math.blocks = db.equation | db.informalequation db.equation.content = db.alt? | (db.mediaobject+ | db.mathphrase+) | db._any.mml div { db.equation.role.attribute = attribute role { text } db.equation.label.attribute = attribute label { text } db.equation.attlist = db.equation.role.attribute? & db.common.attributes & db.common.linking.attributes & db.equation.label.attribute? & db.pgwide.attribute? & db.floatstyle.attribute? db.equation.info = db._info.title.only db.equation = element equation { db.equation.attlist, db.equation.info, db.equation.content, (db.caption?) >> a:documentation [ "A displayed mathematical equation" ] } } div { db.informalequation.role.attribute = attribute role { text } db.informalequation.attlist = db.informalequation.role.attribute? & db.common.attributes & db.common.linking.attributes db.informalequation.info = db._info.title.forbidden db.informalequation = element informalequation { db.informalequation.attlist, db.informalequation.info, db.equation.content, (db.caption?) >> a:documentation [ "A displayed mathematical equation without a title" ] } } div { db.inlineequation.role.attribute = attribute role { text } db.inlineequation.attlist = db.inlineequation.role.attribute? & db.common.attributes & db.common.linking.attributes db.inlineequation = element inlineequation { db.inlineequation.attlist, db.equation.content >> a:documentation [ "A mathematical equation or expression occurring inline" ] } } div { db.mathphrase.role.attribute = attribute role { text } db.mathphrase.attlist = db.mathphrase.role.attribute? & db.common.attributes & db.common.linking.attributes db.mathphrase = element mathphrase { db.mathphrase.attlist, ((db._text | db.ubiq.inlines | db._emphasis)*) >> a:documentation [ "A mathematical phrase, an expression that can be represented with ordinary text and a small amount of markup" ] } } div { db._any.mml = element mml:* { db._any >> a:documentation [ "Any element from the MathML namespace" ] } } div { db._any.svg = element svg:* { db._any >> a:documentation [ "Any element from the SVG namespace" ] } }