namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" default namespace db = "http://docbook.org/ns/docbook" namespace dbx = "http://sourceforge.net/projects/docbook/defguide/schema/extra-markup" 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 xlink = "http://www.w3.org/1999/xlink" # DocBook NG: The "PTO" Release # See http://docbook.org/ns/docbook [ db:refname [ "*:*" ] db:refpurpose [ "Any element from any namespace except the DocBook namespace" ] ] div { db._any = element * - (db:* | html:*) { (attribute * { text } | text | db._any)* } } db.effectivity.attributes = [ db:refpurpose [ "Designates the computer or chip architecture to which the element applies" ] ] attribute arch { text }?, [ db:refpurpose [ "provides a standard place for application-specific effectivity" ] dbx:description [ "\x{a}" ~ " " db:para [ "Many DocBook users observed that in order to add an effectivity condition that was unique to their environment required " db:quote [ "abusing" ] "\x{a}" ~ " the semantics of one of the existing attributes, or adding their own, making their customization " db:link [ linkend = "s-notdocbook" "an extension rather than a subset" ] "\x{a}" ~ ". The" db:tag [ class = "attribute" "condition" ] "\x{a}" ~ " attribute is a general-purpose effectivity attribute with no specified semantics." ] "\x{a}" ~ " " ] ] attribute condition { text }?, [ db:refpurpose [ "Indicates standards conformance characteristics of the element" ] dbx:description [ "\x{a}" ~ " " db:para [ "These characteristics are application-specific; DocBook provides no default semantics." ] "\x{a}" ~ " " ] ] attribute conformance { text }?, [ db:refpurpose [ "Indicates the operating system to which the element is applicable" ] ] attribute os { text }?, [ db:refpurpose [ "Indicates the editorial revision to which the element belongs" ] ] attribute revision { text }?, [ db:refpurpose [ "Indicates something about the security level associated with the element to which it applies" ] ] attribute security { text }?, [ db:refpurpose [ "Indicates the level of user experience for which the element applies" ] ] attribute userlevel { text }?, [ db:refpurpose [ "Indicates the computer vendor to which the element applies." ] ] attribute vendor { text }?, [ db:refpurpose [ "Indicates the word size (width in bits) of the computer architecture to which the element applies" ] ] attribute wordsize { text }? db.linkend.attribute = [ db:refpurpose [ "Points to an internal link target by identifying the value of its xml:id attribute" ] ] attribute linkend { xsd:IDREF } db.linkends.attribute = [ db:refpurpose [ "Points to one or more internal link targets by identifying the value of their xml:id attributes" ] ] attribute linkends { xsd:IDREFS } db.xlink.href.attribute = [ db:refpurpose [ "Identifies a link target with a URI" ] ] attribute xlink:href { text } db.xlink.type.attribute = [ db:refpurpose [ "Identifies the element as an XLink simple link" ] ] attribute xlink:type { "simple" } db.xlink.role.attribute = [ db:refpurpose [ "Identifies the XLink role of the link" ] ] attribute xlink:role { xsd:anyURI } db.xlink.arcrole.attribute = [ db:refpurpose [ "Identifies the XLink arcrole of the link" ] ] attribute xlink:arcrole { xsd:anyURI } db.xlink.title.attribute = [ db:refpurpose [ "Identifies the XLink title of the link" ] ] attribute xlink:title { text }? db.xlink.show.enumeration = ## An application traversing to the ending resource should load it in a new window, frame, pane, or other relevant presentation context. "new" | ## An application traversing to the ending resource should load the resource in the same window, frame, pane, or other relevant presentation context in which the starting resource was loaded. "replace" | ## An application traversing to the ending resource should load its presentation in place of the presentation of the starting resource. "embed" | ## The behavior of an application traversing to the ending resource is unconstrained by XLink. The application should look for other markup present in the link to determine the appropriate behavior. "other" | ## The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior. "none" db.xlink.show.attribute = [ db:refpurpose [ "Identifies the XLink show behavior of the link" ] ] attribute xlink:show { db.xlink.show.enumeration } db.xlink.actuate.enumeration = ## An application should traverse to the ending resource immediately on loading the starting resource. "onLoad" | ## An application should traverse from the starting resource to the ending resource only on a post-loading event triggered for the purpose of traversal. "onRequest" | ## The behavior of an application traversing to the ending resource is unconstrained by this specification. The application should look for other markup present in the link to determine the appropriate behavior. "other" | ## The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior. "none" db.xlink.actuate.attribute = [ db:refpurpose [ "Identifies the XLink actuate behavior of the link" ] ] attribute xlink:actuate { db.xlink.actuate.enumeration } 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 = [ db:refpurpose [ "Identifies the unique ID value of the element" ] ] attribute xml:id { xsd:ID } db.version.attribute = [ db:refpurpose [ "Specifies the DocBook version of the element and its descendants" ] ] attribute version { text } db.xml.lang.attribute = [ db:refpurpose [ "Specifies the natural language of the element and its descendants" ] ] attribute xml:lang { text } db.xml.base.attribute = [ db:refpurpose [ "Specifies the base URI of the element and its descendants" ] ] attribute xml:base { text } db.remap.attribute = [ db:refpurpose [ "Provides the name or similar semantic identifier assigned to the content in some previous markup scheme" ] ] attribute remap { text } db.xreflabel.attribute = [ db:refpurpose [ "Provides the text that is to be generated for a cross reference to the element" ] ] attribute xreflabel { text } db.revisionflag.enumeration = ## The element has been changed. "changed" | ## The element is new (has been added to the document). "added" | ## The element has been deleted. "deleted" | ## Explicitly turns off revision markup for this element. "off" db.revisionflag.attribute = [ db:refpurpose [ "Identifies the revision status of the element" ] ] attribute revisionflag { db.revisionflag.enumeration } 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 = [ db:refpurpose [ "Specifies the format of the data" ] ] attribute format { text }?, ([ db:refpurpose [ "Indentifies the location of the data by URI" ] ] attribute fileref { xsd:anyURI } | [ db:refpurpose [ "Identifies the location of the data by external identifier (entity name)" ] ] attribute entityref { xsd:ENTITY }) db.verbatim.continuation.enumeration = ## Line numbering continues from the immediately preceding element with the same name. "continues" | ## Line numbering restarts (begins at 1, usually). "restarts" db.verbatim.continuation.attribute = [ db:refpurpose [ "Determines whether line numbering continues from the previous element or restarts." ] ] attribute continuation { db.verbatim.continuation.enumeration } db.verbatim.linenumbering.enumeration = ## Lines are numbered. "numbered" | ## Lines are not numbered. "unnumbered" db.verbatim.linenumbering.attribute = [ db:refpurpose [ "Determines whether lines are numbered." ] ] attribute linenumbering { db.verbatim.linenumbering.enumeration } db.verbatim.startinglinenumber.attribute = [ db:refpurpose [ "Specifies the initial line number." ] ] attribute startinglinenumber { xsd:integer } db.verbatim.language.attribute = [ db:refpurpose [ "Identifies the language (i.e. programming language) of the verbatim content." ] ] attribute language { text } db.verbatim.xml.space.attribute = [ db:refpurpose [ "Can be used to indicate explicitly that whitespace in the verbatim environment is preserved. Whitespace must always be preserved in verbatim environments whether this attribute is specified or not." ] ] attribute xml:space { ## Whitespace must be preserved. "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 = ## The spacing should be "compact". "compact" | ## The spacing should be "normal". "normal" db.spacing.attribute = [ db:refpurpose [ "Specifies (a hint about) the spacing of the content" ] ] attribute spacing { db.spacing.enumeration } db.pgwide.enumeration = ## The element should be rendered in the current text flow (with the flow column width). "0" | ## The element should be rendered across the full text page. "1" db.pgwide.attribute = [ db:refpurpose [ "Indicates if the element is rendered across the column or the page" ] ] attribute pgwide { db.pgwide.enumeration } db.language.attribute = [ db:refpurpose [ "Identifies the language (i.e. programming language) of the content." ] ] attribute language { text } db.performance.enumeration = ## The content describes an optional step or steps. "optional" | ## The content describes a required step or steps. "required" db.performance.attribute = [ db:refpurpose [ "Specifies if the content is required or optional." ] ] attribute performance { db.performance.enumeration } db.floatstyle.attribute = [ db:refpurpose [ "Specifies style information to be used when rendering the float" ] ] attribute floatstyle { text } db.halign.enumeration = ## Centered horizontally "center" | ## Aligned horizontally on the specified character "char" | ## Fully justified (left and right margins or edges) "justify" | ## Left aligned "left" | ## Right aligned "right" db.valign.enumeration = ## Aligned on the bottom of the region "bottom" | ## Centered vertically "middle" | ## Aligned on the top of the region "top" ctrl:other-attribute [ name = "db.biblio.class.attribute" enum-name = "db.biblio.class-enum.attribute" other-name = "db.biblio.class-other.attributes" ] db.biblio.class.enumeration = ## A document object identifier. "doi" | ## An international standard book number. "isbn" | ## An international standard technical report number (ISO 10444). "isrn" | ## An international standard serial number. "issn" | ## A Library of Congress reference number. "libraryofcongress" | ## A publication number (an internal number or possibly organizational standard). "pubnumber" | ## A Uniform Resource Identifier "uri" db.biblio.class-enum.attribute = [ db:refpurpose [ "Identifies the kind of bibliographic identifier" ] dbx:description [ "\x{a}" ~ " " db:informaltable [ "\x{a}" ~ " " db:tgroup [ cols = "2" "\x{a}" ~ " " db:thead [ "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "Value" ] "\x{a}" ~ " " db:entry [ "Identifier" ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:tbody [ "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "doi" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "A " db:link [ xlink:href = "http://www.doi.org/" "Digital Object Identifier" ] "\x{a}" ~ "." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "isbn" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "An " db:link [ xlink:href = "http://www.isbn.org/" "International Standard Book Number" ] "\x{a}" ~ "." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "isrn" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "An International Standard Technical Report Number as defined by ISO 10444:1994." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "issn" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "An " db:link [ xlink:href = "http://www.issn.org/" "International Standard Serial Number" ] "\x{a}" ~ "." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "libraryofcongress" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "A Library of Congress subject identifer" ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "pubnumber" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "A publication number, for example from a private or corporate numbering scheme." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "uri" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "A Uniform Resource Identifier." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "other" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "Some other kind of identifier. If the value " db:tag [ class = "attvalue" "other" ] "\x{a}" ~ " is specified, the " db:tag [ class = "attribute" "otherclass" ] "\x{a}" ~ " attribute must also be provided." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] ] attribute class { db.biblio.class.enumeration }? db.biblio.class-other.attribute = [ db:refpurpose [ "Provides an identifier for elements with the class 'other'" ] dbx:description [ "\x{a}" ~ " " db:para [ "The value of the " db:tag [ class = "attribute" "otherclass" ] "\x{a}" ~ " attribute specifies some identifier for the class. It is required when the value " db:tag [ class = "attvalue" "other" ] "\x{a}" ~ " is specified for the " db:tag [ class = "attribute" "class" ] "\x{a}" ~ " attribute; it is forbidden otherwise." ] "\x{a}" ~ " " ] ] attribute otherclass { xsd:NMTOKEN } 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._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.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 | sl.speakernotes ctrl:exclude [ from = "db.formal.blocks" exclude = "db.formal.blocks" ] ctrl:exclude [ from = "db.formal.blocks" exclude = "db.admonition.blocks" ] 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 ctrl:exclude [ from = "db.admonition.blocks" exclude = "db.admonition.blocks" ] 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.annotation | 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 [ db:refname [ "title" ] db:refpurpose [ "The text of the title of a section of a document or of a formal block-level element" ] ] 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* } } [ db:refname [ "titleabbrev" ] db:refpurpose [ "The abbreviation of a Title" ] ] 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* } } [ db:refname [ "subtitle" ] db:refpurpose [ "The subtitle of a document" ] ] 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* } } [ db:refname [ "info" ] db:refpurpose [ "A wrapper for information about a component or other block" ] ] 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* } } [ db:refname [ "info" ] db:refpurpose [ "A wrapper for information about a component or other block with a required title" ] ] 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* } } [ db:refname [ "info" ] db:refpurpose [ "A wrapper for information about a component or other block with only a 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* } } [ db:refname [ "info" ] db:refpurpose [ "A wrapper for information about a component or other block with only a required 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* } } [ db:refname [ "info" ] db:refpurpose [ "A wrapper for information about a component or other block without a 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* } } [ db:refname [ "subjectset" ] db:refpurpose [ "A set of terms describing the subject matter of a document" ] ] 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+ } } [ db:refname [ "subject" ] db:refpurpose [ "One of a group 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+ } } [ db:refname [ "subjectterm" ] db:refpurpose [ "A term in 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 } } [ db:refname [ "keywordset" ] db:refpurpose [ "A set of keywords describing the content 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+ } } [ db:refname [ "keyword" ] db:refpurpose [ "One of 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 } } 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 [ db:refname [ "procedure" ] db:refpurpose [ "A list of operations to be performed in a well-defined sequence" ] ] 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+ } } [ db:refname [ "step" ] db:refpurpose [ "A unit of action in a procedure" ] ] 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* } } [ db:refname [ "stepalternatives" ] db:refpurpose [ "Alternative steps 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+ } } [ db:refname [ "substeps" ] db:refpurpose [ "A wrapper for steps that occur within 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+ } } [ db:refname [ "sidebar" ] db:refpurpose [ "A portion of a document that is isolated from the main narrative flow" ] ctrl:exclude [ from = "db.sidebar" exclude = "db.sidebar" ] ] 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}" ~ " " ] ] element sidebar { db.sidebar.attlist, db.sidebar.info, db.all.blocks+ } } [ db:refname [ "abstract" ] db:refpurpose [ "A summary" ] ] 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+ } } [ db:refname [ "personblurb" ] db:refpurpose [ "A short description or note about a person" ] ] 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+ } } [ db:refname [ "blockquote" ] db:refpurpose [ "A quotation set off from the main text" ] ] 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+ } } [ db:refname [ "attribution" ] db:refpurpose [ "The source of a block quote or epigraph" ] ] 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)* } } [ db:refname [ "bridgehead" ] db:refpurpose [ "A free-floating heading" ] ] 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* } } [ db:refname [ "remark" ] db:refpurpose [ "A remark (or comment) intended for presentation in a draft manuscript" ] ] 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 } } [ db:refname [ "epigraph" ] db:refpurpose [ "A short inscription at the beginning of a document or component" ] ] 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)+ } } [ db:refname [ "footnote" ] db:refpurpose [ "A footnote" ] ctrl:exclude [ from = "db.footnote" exclude = "db.footnote" ] ctrl:exclude [ from = "db.footnote" exclude = "db.formal.blocks" ] ctrl:exclude [ from = "db.footnote" exclude = "db.admonition.blocks" ] ctrl:exclude [ from = "db.footnote" exclude = "db.indexterm" ] ctrl:exclude [ from = "db.footnote" exclude = "db.sidebar" ] ctrl:exclude [ from = "db.footnote" exclude = "db.task" ] ctrl:exclude [ from = "db.footnote" exclude = "db.epigraph" ] ] 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}" ~ " " ] ] element footnote { db.footnote.attlist, db.all.blocks+ } } [ db:refname [ "formalpara" ] db:refpurpose [ "A paragraph with a title" ] ] 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 } } [ db:refname [ "para" ] db:refpurpose [ "A paragraph" ] ] 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 = element para { db.para.attlist, db.para.info, (db.all.inlines | db.nopara.blocks)* } } [ db:refname [ "simpara" ] db:refpurpose [ "A paragraph that contains only text and inline markup, no block elements" ] ] 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* } } db.admonition.contentmodel = db._info.title.only, db.all.blocks+ [ db:refname [ "caution" ] db:refpurpose [ "A note of caution" ] ] 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}" ~ " " ] ] element caution { db.caution.attlist, db.admonition.contentmodel } } [ db:refname [ "important" ] db:refpurpose [ "An admonition set off from the text" ] ] 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}" ~ " " ] ] element important { db.important.attlist, db.admonition.contentmodel } } [ db:refname [ "note" ] db:refpurpose [ "A message 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}" ~ " " ] ] element note { db.note.attlist, db.admonition.contentmodel } } [ db:refname [ "tip" ] db:refpurpose [ "A suggestion to the user, 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}" ~ " " ] ] element tip { db.tip.attlist, db.admonition.contentmodel } } [ db:refname [ "warning" ] db:refpurpose [ "An admonition 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}" ~ " " ] ] element warning { db.warning.attlist, db.admonition.contentmodel } } [ db:refname [ "itemizedlist" ] db:refpurpose [ "A list in which each entry is marked with a bullet or other dingbat" ] ] 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+ } } [ db:refname [ "orderedlist" ] db:refpurpose [ "A list in which each entry is marked with a sequentially incremented label" ] ] 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+ } } [ db:refname [ "listitem" ] db:refpurpose [ "A wrapper for the elements of a list item" ] ] 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+ } } [ db:refname [ "segmentedlist" ] db:refpurpose [ "A segmented list, a list of sets of elements" ] ] 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+ } } [ db:refname [ "segtitle" ] db:refpurpose [ "The title of an element of a list item in a segmented list" ] ] 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* } } [ db:refname [ "seglistitem" ] db:refpurpose [ "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+ } } [ db:refname [ "seg" ] db:refpurpose [ "An element of 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* } } [ db:refname [ "simplelist" ] db:refpurpose [ "An undecorated list of single words or short phrases" ] ] 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+ } } [ db:refname [ "member" ] db:refpurpose [ "An element of a simple list" ] ] 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* } } [ db:refname [ "variablelist" ] db:refpurpose [ "A list in which each entry is composed of a set of one or more terms and an associated description" ] ] 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+ } } [ db:refname [ "varlistentry" ] db:refpurpose [ "A wrapper for a set of terms and the associated description in a variable list" ] ] 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 } } [ db:refname [ "term" ] db:refpurpose [ "The word or phrase being defined or described 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* } } [ db:refname [ "example" ] db:refpurpose [ "A formal example, with a title" ] ] 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}" ~ " " ] ] element example { db.example.attlist, db.example.info, db.all.blocks+, db.caption? } } [ db:refname [ "informalexample" ] db:refpurpose [ "A displayed example without 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? } } db.verbatim.inlines = (db.all.inlines | db.lineannotation) | db.co db.verbatim.contentmodel = db._info.title.forbidden, (db.textobject | db.verbatim.inlines*) [ db:refname [ "programlisting" ] db:refpurpose [ "A literal listing of all or part of a program" ] ] 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 } } [ db:refname [ "literallayout" ] db:refpurpose [ "A block of text in which line breaks and white space are to be reproduced faithfully" ] ] 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 } } [ db:refname [ "screen" ] db:refpurpose [ "Text that a user sees or might see on a computer screen" ] ] div { db.screen.role.attribute = attribute role { text } db.screen.width.attribute = [ db:refpurpose [ "Specifies the width (in characters) of the longest line (formatters may use this value to determine scaling or rotation)." ] ] 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 } } [ db:refname [ "screenshot" ] db:refpurpose [ "A representation of what the 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 } } [ db:refname [ "figure" ] db:refpurpose [ "A formal figure, generally an illustration, with a title" ] ] 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}" ~ " " ] ] element figure { db.figure.attlist, db.figure.info, db.all.blocks+, db.caption? } } [ db:refname [ "informalfigure" ] db:refpurpose [ "A untitled figure" ] ] 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? } } db.mediaobject.content = (db.videoobject | db.audioobject | db.imageobject | db.textobject) | db.imageobjectco [ db:refname [ "mediaobject" ] db:refpurpose [ "A displayed media object (video, audio, image, etc.)" ] ] 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? } } [ db:refname [ "inlinemediaobject" ] db:refpurpose [ "An inline media object (video, audio, image, and so on)" ] ] 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+ } } [ db:refname [ "videoobject" ] db:refpurpose [ "A wrapper for video data and its associated meta-information" ] ] 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 } } [ db:refname [ "audioobject" ] db:refpurpose [ "A wrapper for audio 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 } } db.imageobject.content = db.imagedata | db._any.svg [ db:refname [ "imageobject" ] db:refpurpose [ "A wrapper for image data and its associated meta-information" ] ] 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 } } [ db:refname [ "textobject" ] db:refpurpose [ "A wrapper for a text description of an object 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+) } } [ db:refname [ "videodata" ] db:refpurpose [ "Pointer to external video data" ] ] 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 } } [ db:refname [ "audiodata" ] db:refpurpose [ "Pointer to external audio 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 } } [ db:refname [ "imagedata" ] db:refpurpose [ "Pointer to external image 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 } } [ db:refname [ "textdata" ] db:refpurpose [ "Pointer to external text 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 } } [ db:refname [ "caption" ] db:refpurpose [ "A caption" ] ctrl:exclude [ from = "db.caption" exclude = "db.formal.blocks" ] ctrl:exclude [ from = "db.caption" exclude = "db.admonition.blocks" ] ctrl:exclude [ from = "db.caption" exclude = "db.sidebar" ] ctrl:exclude [ from = "db.caption" exclude = "db.task" ] ] 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}" ~ " " ] ] element caption { db.caption.attlist, db.caption.info, db.all.blocks+ } } [ db:refname [ "synopsis" ] db:refpurpose [ "A general-purpose element for representing the syntax of commands or functions" ] ] 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 } } [ db:refname [ "cmdsynopsis" ] db:refpurpose [ "A syntax summary for a software command" ] ] 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* } } 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 } [ db:refname [ "arg" ] db:refpurpose [ "An argument in a CmdSynopsis" ] ] 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)* } } [ db:refname [ "group" ] db:refpurpose [ "A group of elements 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)+ } } [ db:refname [ "sbr" ] db:refpurpose [ "An explicit line break in a command synopsis" ] ] 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 } } [ db:refname [ "synopfragment" ] db:refpurpose [ "A portion of a CmdSynopsis broken out from the main body of the 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)+ } } [ db:refname [ "synopfragmentref" ] db:refpurpose [ "A reference to a fragment of a command 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 } } [ db:refname [ "funcsynopsis" ] db:refpurpose [ "The syntax summary for a function definition" ] ] 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)+ } } [ db:refname [ "funcsynopsisinfo" ] db:refpurpose [ "Information supplementing the FuncDefs of a FuncSynopsis" ] ] 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 } } [ db:refname [ "funcprototype" ] db:refpurpose [ "The prototype of a function" ] ] 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* } } [ db:refname [ "funcdef" ] db:refpurpose [ "A function (subroutine) name and its return type" ] ] 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)* } } [ db:refname [ "void" ] db:refpurpose [ "An empty element in a function synopsis indicating that the function in question takes no arguments" ] ] 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 } } [ db:refname [ "varargs" ] db:refpurpose [ "An empty element in a function synopsis indicating a variable number of 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 } } [ db:refname [ "paramdef" ] db:refpurpose [ "Information about a function parameter in a programming language" ] ] 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)* } } [ db:refname [ "funcparams" ] db:refpurpose [ "Parameters for a function referenced through a function pointer in a synopsis" ] ] 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 } } [ db:refname [ "classsynopsis" ] db:refpurpose [ "The syntax summary for a class definition" ] ] 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)* } } [ db:refname [ "classsynopsisinfo" ] db:refpurpose [ "Information supplementing the contents of a ClassSynopsis" ] ] 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 } } [ db:refname [ "ooclass" ] db:refpurpose [ "A class in an object-oriented programming language" ] ] 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 } } [ db:refname [ "oointerface" ] db:refpurpose [ "An interface 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 } } [ db:refname [ "ooexception" ] db:refpurpose [ "An exception 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 } } [ db:refname [ "modifier" ] db:refpurpose [ "Modifiers in a synopsis" ] ] 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 } } [ db:refname [ "interfacename" ] db:refpurpose [ "The name of an interface" ] ] 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 } } [ db:refname [ "exceptionname" ] db:refpurpose [ "The name of an exception" ] ] 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 } } [ db:refname [ "fieldsynopsis" ] db:refpurpose [ "The name of a field in a class definition" ] ] 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? } } [ db:refname [ "initializer" ] db:refpurpose [ "The initializer for a FieldSynopsis" ] ] 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 } } [ db:refname [ "constructorsynopsis" ] db:refpurpose [ "A syntax summary for a constructor" ] ] 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* } } [ db:refname [ "destructorsynopsis" ] db:refpurpose [ "A syntax summary for a destructor" ] ] 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* } } [ db:refname [ "methodsynopsis" ] db:refpurpose [ "A syntax summary for a method" ] ] 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* } } [ db:refname [ "methodname" ] db:refpurpose [ "The name of 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 } } [ db:refname [ "methodparam" ] db:refpurpose [ "Parameters to 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* } } [ db:refname [ "address" ] db:refpurpose [ "A real-world address, generally a postal address" ] ] 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)* } } [ db:refname [ "street" ] db:refpurpose [ "A street address in an 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 } } [ db:refname [ "pob" ] db:refpurpose [ "A post office box 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 } } [ db:refname [ "postcode" ] db:refpurpose [ "A postal code 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 } } [ db:refname [ "city" ] db:refpurpose [ "The name of a city 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 } } [ db:refname [ "state" ] db:refpurpose [ "A state or province 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 } } [ db:refname [ "country" ] db:refpurpose [ "The name of a country" ] ] 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 } } [ db:refname [ "phone" ] db:refpurpose [ "A telephone number" ] ] 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 } } [ db:refname [ "fax" ] db:refpurpose [ "A fax 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 } } [ db:refname [ "otheraddr" ] db:refpurpose [ "Uncategorized information in address" ] ] 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 } } [ db:refname [ "affiliation" ] db:refpurpose [ "The institutional affiliation of an individual" ] ] 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* } } [ db:refname [ "shortaffil" ] db:refpurpose [ "A brief description of an affiliation" ] ] 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 } } [ db:refname [ "jobtitle" ] db:refpurpose [ "The title of an individual in an organization" ] ] 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 } } [ db:refname [ "orgname" ] db:refpurpose [ "The name of an organization other than a corporation " ] ctrl:other-attribute [ name = "db.orgname.class.attrib" enum-name = "db.orgname.class-enum.attribute" other-name = "db.orgname.class-other.attributes" ] ] 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 } } [ db:refname [ "orgdiv" ] db:refpurpose [ "A division of an organization" ] ] 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* } } [ db:refname [ "artpagenums" ] db:refpurpose [ "The page numbers of an article as published" ] ] 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 } } [ db:refname [ "personname" ] db:refpurpose [ "The personal name of an individual" ] ] 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)+) } } 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 [ db:refname [ "author" ] db:refpurpose [ "The name of an individual author" ] ] 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 } } [ db:refname [ "authorgroup" ] db:refpurpose [ "Wrapper for author information when a document has multiple authors or collabarators" ] ] 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)+ } } [ db:refname [ "collab" ] db:refpurpose [ "Identifies a collaborator" ] ] 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* } } [ db:refname [ "authorinitials" ] db:refpurpose [ "The initials or other short identifier for an author" ] ] 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 } } [ db:refname [ "confgroup" ] db:refpurpose [ "A wrapper for document meta-information about a conference" ] ] 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)* } } [ db:refname [ "confdates" ] db:refpurpose [ "The dates of a conference for which a document was written" ] ] 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 } } [ db:refname [ "conftitle" ] db:refpurpose [ "The title 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 } } [ db:refname [ "confnum" ] db:refpurpose [ "An identifier, frequently numerical, associated with 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 } } [ db:refname [ "confsponsor" ] db:refpurpose [ "The sponsor of 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 } } [ db:refname [ "contractnum" ] db:refpurpose [ "The contract number of a document" ] ] 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 } } [ db:refname [ "contractsponsor" ] db:refpurpose [ "The sponsor of a contract" ] ] 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 } } [ db:refname [ "copyright" ] db:refpurpose [ "Copyright information about a document" ] ] 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* } } [ db:refname [ "year" ] db:refpurpose [ "The year of publication of 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 } } [ db:refname [ "holder" ] db:refpurpose [ "The name of the individual or organization that holds a copyright" ] ] 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 } } db.date.contentmodel = xsd:date | xsd:dateTime | xsd:gYearMonth | xsd:gYear | text [ db:refname [ "date" ] db:refpurpose [ "The date of publication or revision of a document" ] ] 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 } } [ db:refname [ "edition" ] db:refpurpose [ "The name or number of an edition 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 } } [ db:refname [ "editor" ] db:refpurpose [ "The name of the editor 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 } } [ db:refname [ "biblioid" ] db:refpurpose [ "An identifier for 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 } } [ db:refname [ "citebiblioid" ] db:refpurpose [ "A citation of a bibliographic identifier" ] ] 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 } } [ db:refname [ "bibliosource" ] db:refpurpose [ "The source of a document" ] ] 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 } } [ db:refname [ "bibliorelation" ] db:refpurpose [ "The relationship of a document to another" ] ctrl:other-attribute [ name = "db.bibliorelation.type.attrib" enum-name = "db.bibliorelation.type-enum.attribute" other-name = "db.bibliorelation.type-other.attributes" ] ] 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 } } [ db:refname [ "bibliocoverage" ] db:refpurpose [ "The spatial or temporal coverage of a document" ] ctrl:other-attribute [ name = "db.bibliocoverage.spatial.attrib" enum-name = "db.bibliocoverage.spatial-enum.attribute" other-name = "db.bibliocoverage.spatial-other.attributes" ] ] 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 ctrl:other-attribute [ name = "db.bibliocoverage.temporal.attrib" enum-name = "db.bibliocoverage.temporal-enum.attribute" other-name = "db.bibliocoverage.temporal-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 } } [ db:refname [ "legalnotice" ] db:refpurpose [ "A statement of legal obligations or requirements" ] ] 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+ } } [ db:refname [ "othercredit" ] db:refpurpose [ "A person or entity, other than an author or editor, credited in a document" ] ] 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 } } [ db:refname [ "pagenums" ] db:refpurpose [ "The numbers of the pages in a book, for use in a bibliographic entry" ] ] 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 } } [ db:refname [ "contrib" ] db:refpurpose [ "A summary of the contributions made to a document by a credited source" ] ] 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 } } [ db:refname [ "honorific" ] db:refpurpose [ "The title of a person" ] ] 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 } } [ db:refname [ "firstname" ] db:refpurpose [ "The first name 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 } } [ db:refname [ "surname" ] db:refpurpose [ "A family name; in western cultures the last name" ] ] 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 } } [ db:refname [ "lineage" ] db:refpurpose [ "The portion of a person's name indicating a relationship to ancestors" ] ] 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 } } [ db:refname [ "othername" ] db:refpurpose [ "A component of a persons name that is not a first name, surname, or lineage" ] ] 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 } } [ db:refname [ "printhistory" ] db:refpurpose [ "The printing history of a document" ] ] 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+ } } [ db:refname [ "productname" ] db:refpurpose [ "The formal name of a product" ] ] 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 } } [ db:refname [ "productnumber" ] db:refpurpose [ "A number assigned to 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 } } [ db:refname [ "pubdate" ] db:refpurpose [ "The date of publication of a document" ] ] 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 } } [ db:refname [ "publisher" ] db:refpurpose [ "The publisher 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* } } [ db:refname [ "publishername" ] db:refpurpose [ "The name of 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 } } [ db:refname [ "releaseinfo" ] db:refpurpose [ "Information about a particular release 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 } } [ db:refname [ "revhistory" ] db:refpurpose [ "A history of the revisions to 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+ } } [ db:refname [ "revision" ] db:refpurpose [ "An entry describing a single revision in the 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)? } } [ db:refname [ "revnumber" ] db:refpurpose [ "A document revision number" ] ] 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 } } [ db:refname [ "revremark" ] db:refpurpose [ "A description of a revision to a document" ] ] 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 } } [ db:refname [ "revdescription" ] db:refpurpose [ "A extended 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* } } [ db:refname [ "seriesvolnums" ] db:refpurpose [ "Numbers of the volumes in a series of books" ] ] 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 } } [ db:refname [ "volumenum" ] db:refpurpose [ "The volume number of a document in a set (as of books in a set or articles in a journal)" ] ] 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 } } [ db:refname [ "issuenum" ] db:refpurpose [ "The number of an issue of 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 } } [ db:refname [ "accel" ] db:refpurpose [ "A graphical user interface (GUI) keyboard shortcut" ] ] 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 } } [ db:refname [ "application" ] db:refpurpose [ "The name of a software program" ] ] 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 } } [ db:refname [ "package" ] db:refpurpose [ "A software or application package" ] ] 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 } } [ db:refname [ "classname" ] db:refpurpose [ "The name of a class, in the object-oriented programming sense" ] ] 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 } } [ db:refname [ "command" ] db:refpurpose [ "The name of an executable program or other software command" ] ] 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 } } db.computeroutput.inlines = (text | db.ubiq.inlines | db.os.inlines | db.technical.inlines | db.markup.inlines) | db.co | db.co [ db:refname [ "computeroutput" ] db:refpurpose [ "Data, generally text, displayed or presented by a computer" ] ] 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* } } [ db:refname [ "database" ] db:refpurpose [ "The name of a database, or part of a database" ] ] 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 } } [ db:refname [ "email" ] db:refpurpose [ "An email address" ] ] 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 } } [ db:refname [ "envar" ] db:refpurpose [ "A software environment variable" ] ] 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 } } [ db:refname [ "errorcode" ] db:refpurpose [ "An error code" ] ] 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 } } [ db:refname [ "errorname" ] db:refpurpose [ "An error name" ] ] 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 } } [ db:refname [ "errortext" ] db:refpurpose [ "An error message." ] ] 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 } } [ db:refname [ "errortype" ] db:refpurpose [ "The classification of 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 } } [ db:refname [ "filename" ] db:refpurpose [ "The name of a file" ] ] 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 } } [ db:refname [ "function" ] db:refpurpose [ "The name of a function or subroutine, as in a programming language" ] ] 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 } } [ db:refname [ "guibutton" ] db:refpurpose [ "The text on a button in a GUI" ] ] 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)* } } [ db:refname [ "guiicon" ] db:refpurpose [ "Graphic and/or text appearing as a icon 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)* } } [ db:refname [ "guilabel" ] db:refpurpose [ "The text of a label 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)* } } [ db:refname [ "guimenu" ] db:refpurpose [ "The name of a menu 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)* } } [ db:refname [ "guimenuitem" ] db:refpurpose [ "The name of a terminal menu item 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)* } } [ db:refname [ "guisubmenu" ] db:refpurpose [ "The name of a submenu 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)* } } [ db:refname [ "hardware" ] db:refpurpose [ "A physical part of a computer system" ] ] 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 } } [ db:refname [ "keycap" ] db:refpurpose [ "The text printed on a key on a keyboard" ] ctrl:other-attribute [ name = "db.keycap.function.attrib" enum-name = "db.keycap.function-enum.attribute" other-name = "db.keycap.function-other.attributes" ] ] 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 } } [ db:refname [ "keycode" ] db:refpurpose [ "The internal, frequently numeric, identifier for 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 } } [ db:refname [ "keycombo" ] db:refpurpose [ "A combination of input actions" ] ctrl:other-attribute [ name = "db.keycombo.action.attrib" enum-name = "db.keycombo.action-enum.attribute" other-name = "db.keycombo.action-other.attributes" ] ] 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)+ } } [ db:refname [ "keysym" ] db:refpurpose [ "The symbolic name of a key on a keyboard" ] ] 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 } } [ db:refname [ "lineannotation" ] db:refpurpose [ "A comment on a line in a verbatim listing" ] ] 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 } } [ db:refname [ "literal" ] db:refpurpose [ "Inline text that is some literal value" ] ] 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 } } [ db:refname [ "code" ] db:refpurpose [ "An inline code fragment" ] ] 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 } } [ db:refname [ "constant" ] db:refpurpose [ "A programming or system constant" ] ] 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 } } [ db:refname [ "varname" ] db:refpurpose [ "The name of a variable" ] ] 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 } } [ db:refname [ "markup" ] db:refpurpose [ "A string of formatting markup in text that is to be represented literally" ] ] 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 } } [ db:refname [ "menuchoice" ] db:refpurpose [ "A selection or series of selections from a menu" ] ] 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)+ } } [ db:refname [ "shortcut" ] db:refpurpose [ "A key combination for an action that is also accessible through 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)+ } } [ db:refname [ "mousebutton" ] db:refpurpose [ "The conventional name of a mouse button" ] ] 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 } } [ db:refname [ "option" ] db:refpurpose [ "An option for a software command" ] ] 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 } } [ db:refname [ "optional" ] db:refpurpose [ "Optional information" ] ] 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 } } [ db:refname [ "property" ] db:refpurpose [ "A unit of data associated with some part of a computer system" ] ] 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 } } [ db:refname [ "parameter" ] db:refpurpose [ "A value or a symbolic reference to a value" ] ] 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 } } db.prompt.inlines = db._text | db.co [ db:refname [ "prompt" ] db:refpurpose [ "A character or string indicating the start of an input field in a computer display" ] ] 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* } } db.replaceable.inlines = db._text | db.co [ db:refname [ "replaceable" ] db:refpurpose [ "Content that may or must be replaced by the user" ] ] 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* } } [ db:refname [ "returnvalue" ] db:refpurpose [ "The value returned by a function" ] ] 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 } } [ db:refname [ "tag" ] db:refpurpose [ "A component of XML (or SGML) markup" ] ] 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 } } [ db:refname [ "symbol" ] db:refpurpose [ "A name that is replaced by a value before processing" ] ] 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 } } db.systemitem.inlines = db._text | db.co [ db:refname [ "systemitem" ] db:refpurpose [ "A system-related item or term" ] ] 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* } } [ db:refname [ "uri" ] db:refpurpose [ "A Uniform Resource Identifier" ] ] 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 } } [ db:refname [ "token" ] db:refpurpose [ "A unit of information" ] ] 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 } } [ db:refname [ "type" ] db:refpurpose [ "The classification of a value" ] ] 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 } } db.userinput.inlines = (text | db.ubiq.inlines | db.os.inlines | db.technical.inlines | db.markup.inlines) | db.co [ db:refname [ "userinput" ] db:refpurpose [ "Data entered by the user" ] ] 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* } } [ db:refname [ "abbrev" ] db:refpurpose [ "An abbreviation, especially one followed by a period" ] ] 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)* } } [ db:refname [ "acronym" ] db:refpurpose [ "An often pronounceable word made from the initial (or selected) letters of a name or phrase" ] ] 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)* } } [ db:refname [ "citation" ] db:refpurpose [ "An inline bibliographic reference to another published work" ] ] 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* } } [ db:refname [ "citerefentry" ] db:refpurpose [ "A citation to a reference page" ] ] 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? } } [ db:refname [ "refentrytitle" ] db:refpurpose [ "The title of 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* } } [ db:refname [ "manvolnum" ] db:refpurpose [ "A reference volume number" ] ] 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 } } [ db:refname [ "citetitle" ] db:refpurpose [ "The title of a cited work" ] ] 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* } } [ db:refname [ "emphasis" ] db:refpurpose [ "Emphasized text" ] ] 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* } } [ db:refname [ "emphasis" ] db:refpurpose [ "A limited span of emphasized text" ] ] div { db._emphasis = element emphasis { db.emphasis.attlist, (db._text | db._emphasis)* } } [ db:refname [ "foreignphrase" ] db:refpurpose [ "A word or phrase in a language other than the primary language of the document" ] ] 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)* } } [ db:refname [ "phrase" ] db:refpurpose [ "A span of text" ] ] 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* } } [ db:refname [ "phrase" ] db:refpurpose [ "A limited span of text" ] ] div { db._phrase = element phrase { db.phrase.attlist, db._text } } [ db:refname [ "quote" ] db:refpurpose [ "An inline quotation" ] ] 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* } } [ db:refname [ "subscript" ] db:refpurpose [ "A subscript (as in H2O, the molecular formula for water)" ] ] 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 } } [ db:refname [ "superscript" ] db:refpurpose [ "A superscript (as in x^2, the mathematical notation for x multiplied by itself)" ] ] 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 } } [ db:refname [ "trademark" ] db:refpurpose [ "A trademark" ] ] 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 } } [ db:refname [ "wordasword" ] db:refpurpose [ "A word meant specifically as a word and not representing anything else" ] ] 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 } } [ db:refname [ "footnoteref" ] db:refpurpose [ "A cross reference to a footnote (a footnote mark)" ] ] 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 } } [ db:refname [ "xref" ] db:refpurpose [ "A cross reference to another part of the document" ] ] 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 } } [ db:refname [ "link" ] db:refpurpose [ "A hypertext link" ] dbx:description [ "\x{a}" ~ " " db:para [ "The " db:tag [ "link" ] "\x{a}" ~ " element is a general purpose hypertext element. Usually, " db:tag [ "link" ] "\x{a}" ~ " surrounds the text that should be made “hot” (unlike " db:tag [ "xref" ] "\x{a}" ~ " which must generate the text) but the " db:tag [ class = "attribute" "endterm" ] "\x{a}" ~ " attribute can be used to copy text from another element." ] "\x{a}" ~ " " ] dbx:expectations [ "\x{a}" ~ " " db:para [ "\x{a}" ~ " " dbx:format [ class = "inline" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:para [ "If the " db:tag [ "link" ] "\x{a}" ~ " element has content, then that content is processed for output as the “hot” text. If the " db:tag [ "link" ] "\x{a}" ~ " element has content and an " db:tag [ class = "attribute" "endterm" ] "\x{a}" ~ " attribute, then the content is used and the " db:tag [ class = "attribute" "endterm" ] "\x{a}" ~ " is ignored. If the " db:tag [ "link" ] "\x{a}" ~ " element has an " db:tag [ class = "attribute" "endterm" ] "\x{a}" ~ " attribute and no content, then the content of the element pointed to by " db:tag [ class = "attribute" "endterm" ] "\x{a}" ~ "should be repeated at the location of the " db:tag [ "link" ] "\x{a}" ~ " and used as the “hot” text." ] "\x{a}" ~ " " ] ] 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* } } [ db:refname [ "olink" ] db:refpurpose [ "A link that addresses its target indirectly" ] dbx:description [ "\x{a}" ~ " " db:para [ "The " db:tag [ "olink" ] "\x{a}" ~ " element provides a mechanism for establishing links across documents where ID/IDREF linking is not possible and " db:tag [ "link" ] "\x{a}" ~ " is inadequate." ] "\x{a}" ~ " " ] dbx:expectations [ "\x{a}" ~ " " db:para [ "\x{a}" ~ " " dbx:format [ class = "inline" ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] ] 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* } } [ db:refname [ "anchor" ] db:refpurpose [ "A spot in the document" ] ] 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 } } [ db:refname [ "alt" ] db:refpurpose [ "A text-only annotation, often used for accessibility" ] ] 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)* } } db.annotations.attribute = attribute annotations { text } [ db:refname [ "annotation" ] db:refpurpose [ "An annotation" ] ctrl:exclude [ from = "db.annotation" exclude = "db.annotation" ] ] 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}" ~ " " ] ] element annotation { db.annotation.attlist, db.annotation.info, db.all.blocks+ } } [ db:refname [ "extendedlink" ] db:refpurpose [ "An XLink extended link" ] ] 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)+ } } [ db:refname [ "locator" ] db:refpurpose [ "An XLink locator in an " db:tag [ "extendedlink" ] "\x{a}" ~ " " ] ] 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 } } [ db:refname [ "arc" ] db:refpurpose [ "An XLink arc in an " db:tag [ "extendedlink" ] "\x{a}" ~ " " ] ] 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 } } db.status.attribute = [ db:refpurpose [ "Identifies the editorial or publication status of the element on which it occurs" ] dbx:description [ "\x{a}" ~ " " db:para [ ] "\x{a}" ~ " " ] ] attribute status { text } db.label.attribute = [ db:refpurpose [ "Specifies an identifying string for presentation purposes" ] dbx:description [ "\x{a}" ~ " " db:para [ "Generally, an explicit Label attribute is used only if the processing system is incapable of generating the label automatically. Under such circumstances, the third " db:tag [ "book" ] "\x{a}" ~ " in a " db:tag [ "set" ] "\x{a}" ~ " might be labeled “Volume III”, for example." ] "\x{a}" ~ " " db:para [ "If present, the " db:tag [ class = "attribute" "label" ] "\x{a}" ~ " is normative; it will used even if the processing system is capable of automatic labelling." ] "\x{a}" ~ " " ] ] attribute label { text } db.navigation.components = notAllowed | db.glossary | db.bibliography | db.index | db.toc db.glossary.inlines = db.firstterm | db.glossterm db.baseform.attribute = attribute baseform { text }? [ db:refname [ "glosslist" ] db:refpurpose [ "A wrapper for a list of glossary entries" ] ] 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+ } } [ db:refname [ "glossentry" ] db:refpurpose [ "An entry in a Glossary or GlossList" ] ] 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+) } } [ db:refname [ "glossdef" ] db:refpurpose [ "A definition in a GlossEntry" ] ] 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* } } [ db:refname [ "glosssee" ] db:refpurpose [ "A cross-reference from one GlossEntry to another" ] ] 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* } } [ db:refname [ "glossseealso" ] db:refpurpose [ "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* } } [ db:refname [ "firstterm" ] db:refpurpose [ "The first occurrence of a term" ] ] 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* } } [ db:refname [ "glossterm" ] db:refpurpose [ "A glossary 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* } } [ db:refname [ "glossary" ] db:refpurpose [ "A glossary" ] ] 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 = element glossary { db.glossary.attlist, db.glossary.info, db.all.blocks*, (db.glossdiv+ | db.glossentry+), db.bibliography? } } [ db:refname [ "glossdiv" ] db:refpurpose [ "A division in 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+ } } [ db:refname [ "termdef" ] db:refpurpose [ "An inline definition of a term" ] ] 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* } } db.relation.attribute = attribute relation { text } [ db:refname [ "biblioentry" ] db:refpurpose [ "An entry in a Bibliography" ] ] 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+ } } [ db:refname [ "bibliomixed" ] db:refpurpose [ "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)* } } [ db:refname [ "biblioset" ] db:refpurpose [ "A raw container for related bibliographic information" ] ] 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+ } } [ db:refname [ "bibliomset" ] db:refpurpose [ "A cooked 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)* } } [ db:refname [ "bibliomisc" ] db:refpurpose [ "Untyped 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 } } [ db:refname [ "bibliography" ] db:refpurpose [ "A bibliography" ] ] 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 = element bibliography { db.bibliography.attlist, db.bibliography.info, db.all.blocks*, (db.bibliodiv+ | (db.biblioentry | db.bibliomixed)+) } } [ db:refname [ "bibliodiv" ] db:refpurpose [ "A section of 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)+ } } [ db:refname [ "bibliolist" ] db:refpurpose [ "A wrapper for a list of bibliography entries" ] ] 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)+ } } [ db:refname [ "biblioref" ] db:refpurpose [ "A cross-reference to a bibliographic entry" ] ] 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 } } 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 } [ db:refname [ "itermset" ] db:refpurpose [ "A set of index terms in the meta-information of a document" ] ] 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+ } } db.indexterm.contentmodel = db.primary?, ((db.secondary, ((db.tertiary, (db.see | db.seealso+)?) | db.see | db.seealso+)?) | db.see | db.seealso+)? [ db:refname [ "indexterm" ] db:refpurpose [ "A wrapper for an indexed term" ] ] 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 } } [ db:refname [ "indexterm" ] db:refpurpose [ "A wrapper for an indexed term that covers a range" ] ] 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 } } [ db:refname [ "indexterm" ] db:refpurpose [ "Identifies the end of a range associated with an indexed term" ] ] 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 } } [ db:refname [ "indexterm" ] db:refpurpose [ "A wrapper for terms to be indexed" ] ] div { db.indexterm = db.indexterm.singular | db.indexterm.startofrange | db.indexterm.endofrange } [ db:refname [ "primary" ] db:refpurpose [ "The primary word or phrase under which an index term should be sorted" ] ] 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* } } [ db:refname [ "secondary" ] db:refpurpose [ "A secondary word or phrase in an index term" ] ] 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* } } [ db:refname [ "tertiary" ] db:refpurpose [ "A tertiary 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* } } [ db:refname [ "see" ] db:refpurpose [ "Part of an index term directing the reader instead to another entry in the index" ] ] 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* } } [ db:refname [ "seealso" ] db:refpurpose [ "Part of an index term directing the reader also 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* } } [ db:refname [ "index" ] db:refpurpose [ "An index to a book or part of a book" ] ] 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 = element index { db.index.attlist, db.index.info, db.all.blocks*, (db.indexdiv* | db.indexentry* | db.segmentedlist) } } [ db:refname [ "indexdiv" ] db:refpurpose [ "A division in an index" ] ] 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) } } [ db:refname [ "indexentry" ] db:refpurpose [ "An entry 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)*)* } } [ db:refname [ "primaryie" ] db:refpurpose [ "A primary term in an index entry, not in the text" ] ] 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* } } [ db:refname [ "secondaryie" ] db:refpurpose [ "A secondary term in an index entry, rather than 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* } } [ db:refname [ "tertiaryie" ] db:refpurpose [ "A tertiary 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* } } [ db:refname [ "seeie" ] db:refpurpose [ "A " db:quote [ "See" ] "\x{a}" ~ "entry in an index, 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* } } [ db:refname [ "seealsoie" ] db:refpurpose [ "A " db:quote [ "See also" ] "\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* } } [ db:refname [ "toc" ] db:refpurpose [ "A table of contents" ] ] 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 = element toc { db.toc.attlist, db.toc.info, db.all.blocks*, (db.tocdiv | db.tocentry)* } } [ db:refname [ "tocdiv" ] db:refpurpose [ "A division in 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)+ } } [ db:refname [ "tocentry" ] db:refpurpose [ "A component title in a table of contents" ] ] 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* } } db.task.info = db._info.title.only [ db:refname [ "task" ] db:refpurpose [ "A task to be completed" ] ] 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? } } [ db:refname [ "tasksummary" ] db:refpurpose [ "A summary of a task" ] ] 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+ } } [ db:refname [ "taskprerequisites" ] db:refpurpose [ "The prerequisites for 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+ } } [ db:refname [ "taskrelated" ] db:refpurpose [ "Information related to 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+ } } ctrl:other-attribute [ name = "area.units.attrib" enum-name = "area.units-enum.attribute" other-name = "area.units-other.attributes" ] 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 [ db:refname [ "calloutlist" ] db:refpurpose [ "A list of " db:tag [ "callout" ] "\x{a}" ~ "s" ] ] 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+ } } [ db:refname [ "callout" ] db:refpurpose [ "A " db:quote [ "called out" ] "\x{a}" ~ " description of a marked Area" ] ] 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+ } } [ db:refname [ "programlistingco" ] db:refpurpose [ "A program listing with associated areas used in callouts" ] ] 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* } } [ db:refname [ "areaspec" ] db:refpurpose [ "A collection of regions in a graphic or code example" ] ] 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)+ } } [ db:refname [ "area" ] db:refpurpose [ "A region defined for a Callout 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 } } [ db:refname [ "areaset" ] db:refpurpose [ "A set of related areas 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+ } } [ db:refname [ "screenco" ] db:refpurpose [ "A screen with associated areas used in callouts" ] ] 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* } } [ db:refname [ "imageobjectco" ] db:refpurpose [ "A wrapper for an image object with 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* } } [ db:refname [ "co" ] db:refpurpose [ "The location of a callout embedded in text" ] ] 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 } } [ db:refname [ "coref" ] db:refpurpose [ "A cross reference to a co" ] ] 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 } } [ db:refname [ "productionset" ] db:refpurpose [ "A set of EBNF productions" ] ] 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)+ } } [ db:refname [ "production" ] db:refpurpose [ "A production in 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* } } [ db:refname [ "lhs" ] db:refpurpose [ "The left-hand side of an EBNF production" ] ] 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 } } [ db:refname [ "rhs" ] db:refpurpose [ "The right-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)* } } [ db:refname [ "nonterminal" ] db:refpurpose [ "A non-terminal in 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 } } [ db:refname [ "constraint" ] db:refpurpose [ "A constraint 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 } } [ db:refname [ "productionrecap" ] db:refpurpose [ "A cross-reference to 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 } } [ db:refname [ "constraintdef" ] db:refpurpose [ "The definition of a constraint in 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+ } } db.char.attribute = attribute char { text } db.charoff.attribute = attribute charoff { text } db.frame.attribute = [ db:refpurpose [ "Specifies how the table is to be framed" ] dbx:description [ "\x{a}" ~ " " db:informaltable [ "\x{a}" ~ " " db:tgroup [ cols = "2" "\x{a}" ~ " " db:thead [ "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "Value" ] "\x{a}" ~ " " db:entry [ "Meaning" ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:tbody [ "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "all" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "Frame all four sides of the table. In some environments with limited control over table border formatting, such as HTML, this may imply additional borders." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "bottom" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "Frame only the bottom of the table." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "none" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "Place no border on the table. In some environments with limited control over table border formatting, such as HTML, this may disable other borders aswell." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "sides" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "Frame the left and right sides of the table." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "top" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "Frame the top of the table." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:row [ "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:tag [ class = "attvalue" "topbot" ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:entry [ "\x{a}" ~ " " db:para [ "Frame the top and bottom of the table." ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " ] "\x{a}" ~ " " db:para [ "There is no way to obtain a border on only the starting edge (left, in left-to-right writing systems) of the table." ] "\x{a}" ~ " " ] ] attribute frame { "all" | "bottom" | "none" | "sides" | "top" | "topbot" } db.colsep.attribute = [ db:refpurpose [ "Specifies the presence or absence of the column separator" ] dbx:description [ "\x{a}" ~ " " db:para [ "If " db:tag [ class = "attribute" "colsep" ] "\x{a}" ~ " has the value 1 (true), then a rule will be drawn to the right of all columns in this table. A value of 0 (false) suppresses the rule. The rule to the right of the last column in the table is controlled by the " db:tag [ class = "attribute" "frame" ] "\x{a}" ~ " attribute, not " db:tag [ class = "attribute" "colsep" ] "\x{a}" ~ "." ] "\x{a}" ~ " " ] ] attribute colsep { text } db.rowsep.attribute = [ db:refpurpose [ "Specifies the presence or absence of the row separator" ] dbx:description [ "\x{a}" ~ " " db:para [ "If " db:tag [ class = "attribute" "rowsep" ] "\x{a}" ~ " has the value 1 (true), then a rule will be drawn below all rows in this table. A value of 0 (false) suppresses the rule. The rule below the last row in the table is controlled by the " db:tag [ class = "attribute" "frame" ] "\x{a}" ~ " attribute, not " db:tag [ class = "attribute" "rowsep" ] "\x{a}" ~ "." ] "\x{a}" ~ " " ] ] attribute rowsep { text } db.orient.attribute = [ db:refpurpose [ "Specifies the orientation of the table" ] dbx:description [ "\x{a}" ~ " " db:para [ "The " db:tag [ class = "attribute" "orient" ] "\x{a}" ~ " attribute specifies the orientation of the table.. An orientation of " db:tag [ class = "attvalue" "port" ] "\x{a}" ~ " is " db:quote [ "upright" ] "\x{a}" ~ ", the same orientation as the rest of the text flow. An orientation of " db:tag [ class = "attvalue" "land" ] "\x{a}" ~ " is 90 degrees counter-clockwise from the upright orientation." ] "\x{a}" ~ " " ] ] attribute orient { "land" | "port" } db.tabstyle.attribute = [ db:refpurpose [ "Specifies the table style" ] dbx:description [ "\x{a}" ~ " " db:para [ "The " db:tag [ class = "attribute" "tabstyle" ] "\x{a}" ~ " attribute holds the name of a table style defined in a stylesheet that will be used to process this document." ] "\x{a}" ~ " " ] ] attribute tabstyle { text } db.rowheader.attribute = [ db:refpurpose [ "Indicates whether or not the entries in the first column should be considered row headers" ] dbx:description [ "\x{a}" ~ " " db:para [ "The " db:tag [ class = "attribute" "rowheader" ] "\x{a}" ~ " attribute indicates whether the entries in the first column of the table are functionally row headers (analagous to the way that a " db:tag [ "thead" ] "\x{a}" ~ " provides column headers). A value of " db:tag [ class = "attvalue" "firstcol" ] "\x{a}" ~ " indicates that they are, a value of " db:tag [ class = "attvalue" "norowheader" ] "\x{a}" ~ " indicates that they are not." ] "\x{a}" ~ " " ] ] attribute rowheader { "firstcol" | "norowheader" } 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 } [ db:refname [ "tgroup" ] db:refpurpose [ "A wrapper for the main content of a table, or part of a table" ] ] 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 } } [ db:refname [ "colspec" ] db:refpurpose [ "Specifications for a column in 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 } } [ db:refname [ "spanspec" ] db:refpurpose [ "Formatting information for a spanned 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 } } [ db:refname [ "thead" ] db:refpurpose [ "A table header consisting of one or more rows" ] ] 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+ } } [ db:refname [ "tfoot" ] db:refpurpose [ "A table footer 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+ } } [ db:refname [ "tbody" ] db:refpurpose [ "A wrapper for the rows of a table or informal table" ] ] 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+ } } [ db:refname [ "row" ] db:refpurpose [ "A row in a 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)+ } } [ db:refname [ "entry" ] db:refpurpose [ "A cell 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*) } } [ db:refname [ "entrytbl" ] db:refpurpose [ "A subtable appearing in place of an Entry 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 } } [ db:refname [ "thead" ] db:refpurpose [ "A table header consisting of one or more rows" ] ] 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+ } } [ db:refname [ "tbody" ] db:refpurpose [ "A wrapper for the rows of a table or informal table" ] ] 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+ } } [ db:refname [ "row" ] db:refpurpose [ "A row in a 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+ } } [ db:refname [ "table" ] db:refpurpose [ "A formal table in a document" ] ctrl:exclude [ from = "db.cals.table" exclude = "db.cals.table" ] ctrl:exclude [ from = "db.cals.table" exclude = "db.cals.informaltable" ] ] 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? & [ db:refpurpose [ "Indicates if the short or long title should be used in a List of Tables" ] dbx:description [ "\x{a}" ~ " " db:para [ "If " db:tag [ class = "attribute" "shortentry" ] "\x{a}" ~ " has the value 1 (true), then the table's " db:tag [ "titleabbrev" ] "\x{a}" ~ " will be used in the list of titles, index, etc. A value of 0 (false) indicates that the full " db:tag [ "title" ] "\x{a}" ~ " title should be used in those places." ] "\x{a}" ~ " " ] ] attribute shortentry { "0" | "1" }? & [ db:refpurpose [ "Indicates if the table should appear in a List of Tables" ] dbx:description [ "\x{a}" ~ " " db:para [ "If " db:tag [ class = "attribute" "tocentry" ] "\x{a}" ~ " has the value 1 (true), then the table will appear in a generated list of tables. A value of 0 (false) indicates that it should not." ] "\x{a}" ~ " " ] ] attribute tocentry { "0" | "1" }? & 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}" ~ " " ] ] element table { db.cals.table.attlist, db.cals.table.info, (db.alt? & db.indexing.inlines* & db.textobject*), (db.mediaobject+ | db.tgroup+), db.caption? } } [ db:refname [ "informaltable" ] db:refpurpose [ "A table without a title" ] ] 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? } } 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+) [ db:refname [ "table" ] db:refpurpose [ "A formal table in a document" ] ] 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}" ~ " " ] ] element table { db.html.table.attlist, db.html.table.model } } [ db:refname [ "informaltable" ] db:refpurpose [ "A table without a title" ] ] 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 } } [ db:refname [ "caption" ] db:refpurpose [ "A caption" ] ] 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}" ~ " " ] ] element caption { db.html.caption.attlist, text } } [ db:refname [ "col" ] db:refpurpose [ "Specifications for a column in an HTML table" ] ] 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 } } [ db:refname [ "colgroup" ] db:refpurpose [ "A group of columns 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* } } [ db:refname [ "thead" ] db:refpurpose [ "A table header consisting of one or more rows" ] ] 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+ } } [ db:refname [ "tfoot" ] db:refpurpose [ "A table footer 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+ } } [ db:refname [ "tbody" ] db:refpurpose [ "A wrapper for the rows of a table or informal table" ] ] 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+ } } [ db:refname [ "tr" ] db:refpurpose [ "A row in an HTML 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)+ } } [ db:refname [ "th" ] db:refpurpose [ "A table header entry 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*) } } [ db:refname [ "td" ] db:refpurpose [ "A table 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*) } } [ db:refname [ "msgset" ] db:refpurpose [ "A detailed set of messages, usually error messages" ] ] 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+) } } [ db:refname [ "msgentry" ] db:refpurpose [ "A wrapper for an entry in a message set" ] ] 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* } } [ db:refname [ "simplemsgentry" ] db:refpurpose [ "A wrapper for a simpler 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+ } } [ db:refname [ "msg" ] db:refpurpose [ "A message 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)* } } [ db:refname [ "msgmain" ] db:refpurpose [ "The primary component of 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 } } [ db:refname [ "msgsub" ] db:refpurpose [ "A subcomponent 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 } } [ db:refname [ "msgrel" ] db:refpurpose [ "A related component 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 } } [ db:refname [ "msgtext" ] db:refpurpose [ "The actual text of a message component 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+ } } [ db:refname [ "msginfo" ] db:refpurpose [ "Information about a message 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)* } } [ db:refname [ "msglevel" ] db:refpurpose [ "The level of importance or severity of 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 } } [ db:refname [ "msgorig" ] db:refpurpose [ "The origin 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 } } [ db:refname [ "msgaud" ] db:refpurpose [ "The audience to which a message in a message set is relevant" ] ] 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 } } [ db:refname [ "msgexplan" ] db:refpurpose [ "Explanatory material relating to a message in a message set" ] ] 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+ } } [ db:refname [ "qandaset" ] db:refpurpose [ "A question-and-answer 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+) } } [ db:refname [ "qandadiv" ] db:refpurpose [ "A titled division in a QandASet" ] ] 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+) } } [ db:refname [ "qandaentry" ] db:refpurpose [ "A question/answer set within 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* } } [ db:refname [ "question" ] db:refpurpose [ "A question in 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+ } } [ db:refname [ "answer" ] db:refpurpose [ "An answer to a question posed 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+ } } [ db:refname [ "label" ] db:refpurpose [ "A label on a Question or Answer" ] ] 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 } } db.math.inlines = db.inlineequation db.math.blocks = db.equation | db.informalequation db.equation.content = db.alt? | (db.mediaobject+ | db.mathphrase+) | db._any.mml [ db:refname [ "equation" ] db:refpurpose [ "A displayed mathematical equation" ] ] 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? } } [ db:refname [ "informalequation" ] db:refpurpose [ "A displayed mathematical equation without a title" ] ] 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? } } [ db:refname [ "inlineequation" ] db:refpurpose [ "A mathematical equation or expression occurring inline" ] ] 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 } } [ db:refname [ "mathphrase" ] db:refpurpose [ "A mathematical phrase, an expression that can be represented with ordinary text and a small amount of markup" ] ] 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)* } } [ db:refname [ "mml:*" ] db:refpurpose [ "Any element from the MathML namespace" ] ] div { db._any.mml = element mml:* { db._any } } [ db:refname [ "svg:*" ] db:refpurpose [ "Any element from the SVG namespace" ] ] div { db._any.svg = element svg:* { db._any } } start = sl.slides [ db:refname [ "slides" ] db:refpurpose [ "A set of slides (or foils)" ] ] div { sl.slides.role.attribute = attribute role { text } sl.slides.attlist = sl.slides.role.attribute? & db.common.attributes sl.slides.info = db._info.title.req sl.slides = [ s:rule [ context = "/db:slides" "\x{a}" ~ " " s:assert [ test = "@version" "The root element must have a version attribute." ] "\x{a}" ~ " " ] ] element slides { sl.slides.attlist, sl.slides.info, db.all.blocks*, sl.foil*, sl.foilgroup* } } [ db:refname [ "foilgroup" ] db:refpurpose [ "A group of slides (or foils)" ] ] div { sl.foilgroup.role.attribute = attribute role { text } sl.foilgroup.attlist = sl.foilgroup.role.attribute? & db.status.attribute? & db.common.attributes sl.foilgroup.info = db._info.title.req sl.foilgroup = element foilgroup { sl.foilgroup.attlist, sl.foilgroup.info, (db.all.blocks | db.navigation.components)*, sl.foil+ } } [ db:refname [ "foil" ] db:refpurpose [ "A slide (or foil)" ] ] div { sl.foil.role.attribute = attribute role { text } sl.foil.attlist = sl.foil.role.attribute? & db.status.attribute? & db.common.attributes sl.foil.info = db._info.title.req sl.foil = element foil { sl.foil.attlist, sl.foil.info, (db.all.blocks | db.navigation.components)+ } } [ db:refname [ "speakernotes" ] db:refpurpose [ "Speaker notes" ] ] div { sl.speakernotes.role.attribute = attribute role { text } sl.speakernotes.attlist = sl.speakernotes.role.attribute? & db.status.attribute? & db.common.attributes sl.speakernotes = element speakernotes { sl.speakernotes.attlist, db.all.blocks+ } }