This reference describes every element in DocBook V5.0.
The description of each element in this reference is divided into the following sections:
Provides a quick synopsis of the element. The content of the synopsis varies according to the nature of the element described, but may include any or all of the following sections:
Describes the content model of the element, the mixture of things that it can contain. See Understanding Content Models.
Provides a synopsis of the attributes on the element. For brevity, common attributes are described only once, in this introduction. Likewise, common linking attributes are described once.
Provides a synopsis of any additional constraints on the element. These constraints are expressed using Schematron in the RELAX NG grammar.
Describes the semantics of the element.
Summarizes specific formatting expectations of the element. Many processing expectations are influenced by attribute values. Be sure to consult the description of element attributes as well.
Identifies changes that are scheduled for future versions of the schema. These changes are highlighted because they involve some backward incompatibility that may make currently valid DocBook documents no longer valid under the new version.
Provides examples of proper usage for the element. Generally, the smallest example required to reasonably demonstrate the element is used. In many cases, a formatted version of the example is also shown.
All of the examples in the book are valid according to the RELAX NG grammar.
Formatted examples are indicated using a vertical bar.
Each element synopsis begins with a description of its content model. Content models are the way that grammars describe the name, number, and order of other elements that may be used inside an element.
Presenting the content models is an editorial challenge. Presenting the RELAX NG patterns would be easy and absolutely correct, but would only be valuable to readers who understand both RELAX NG and the patterns in the schema. Presenting the RELAX NG patterns “fully expanded” to just element and attribute names would remove the requirement to understand the patterns, but the result is so verbose that it completely obscures the actual meaning.
On the Web and in other interactive media, it’s possible to format the content models in a “natural language” list format with names that can be expanded to show more detail. That format is useful even without the ability to expand patterns interactively. Unfortunately, that presentation occupies significant vertical space and, were it used, this book would run to more than a thousand pages. That’s not really practical.
Instead, we compromise with a compact syntax reminiscent of DTD syntax. It’s not any sort of standard, but it has the dual advantages of being reasonably concise and reasonably easy to understand:
A name
is the name of a DocBook
element.
Parentheses delimit groups.
Symbols appear after names and groups to indicate how
many occurrences are allowed. If a
“*
” is present, zero or more
occurrences are allowed; if a
“+
” is present, one or more
occurrences are allowed; if a
“?
” is present, the symbol may
occur zero or one time; if no symbol is present, exactly one
occurrence is allowed.
A vertical bar indicates a choice. Either the item that precedes or the item that follows the bar is allowed.
An ampersand indicates an “interleave.”
Both the item that precedes and the item that follows the
&
are allowed, but they may occur in
any order.
A comma separates items in a sequence. Both the item
that precedes and the item that follows the
“,
” are allowed, and they must
occur in that order.
A
Exactly one “A” element is allowed.
A | B | C
Exactly one “A”, or exactly one “B”, or exactly one “C” is allowed.
A,B,C
Exactly one “A”, followed by exactly one “B”, followed by exactly one “C” is allowed.
A & B & C
Exactly one “A” and exactly one
“B” and exactly one “C” is allowed
in any order. This pattern allows
<A/><B/><C/>
,
<B/><C/><A/>
,
<C/><A/><B/>
, etc. but
does not allow
<A/><A/><C/>
or
<A/><B/>
.
A+,B*,C?
At least one, but possibly more than one “A”, followed by zero or more “B”s, followed by an optional (zero or one) “C” is allowed.
A,(B|C)+,D
Exactly one “A”, followed by one or more
“B” or “C” elements, followed by
exactly one “D” is allowed. Because the group can
be repeated, this pattern matches <A/><B/><D/>
,
<A/><C/><D/>
,
<A/><B/><C/><D/>
,
<A/><B/><C/><C/><C/><D/>
,
etc.
Some element names are defined by more than one pattern. When this is the case, the name of the pattern is explicitly shown in a superscript following the name.
In order to avoid long, repetitive lists of element names,
similar items are grouped together and only the name of the group is
given. For example, a para
may contain the
“Bibliography inlines,” the “Error
inlines,” etc. The author has the choice of using any of the
elements belonging to the group. Here is a summary of the elements
included in each group:
A choice of one of the following:
citation
, citerefentry
,
citetitle
, citebiblioid
,
author
, person
,
personname
, org
,
orgname
, editor
, or
jobtitle
A choice of one of the following:
inlinemediaobject
,
remark
, superscript
,
subscript
,
xref
, link
,
olink
, anchor
,
biblioref
, alt
,
annotation
, indexterm
,
prompt
, envar
,
filename
, command
,
computeroutput
,
userinput
, replaceable
,
package
, parameter
,
termdef
, nonterminal
,
systemitem
, option
,
optional
, property
,
co
, tag
, markup
,
token
, symbol
,
literal
, code
,
constant
, email
, or
uri
A choice of one of the following:
errorcode
, errortext
,
errorname
, or
errortype
inlinemediaobject
A choice of one of the following:
guiicon
, guibutton
,
guimenuitem
, guimenu
,
guisubmenu
,
guilabel
, menuchoice
, or
mousebutton
indexterm
A choice of one of the following:
keycombo
, keycap
,
keycode
, keysym
,
shortcut
, or
accel
A choice of one of the following:
xref
, link
,
olink
, anchor
, or
biblioref
A choice of one of the following:
tag
, markup
,
token
, symbol
,
literal
, code
, constant
,
email
, or uri
inlineequation
A choice of one of the following:
ooclass
, ooexception
, or
oointerface
A choice of one of the following:
prompt
, envar
,
filename
, command
,
computeroutput
, or
userinput
A choice of one of the following:
trademark
,
productnumber
,
productname
, database
,
application
, or
hardware
A choice of one of the following:
function
, parameter
,
varname
, returnvalue
,
type
, classname
,
exceptionname
,
interfacename
,
methodname
, modifier
,
initializer
, ooclass
,
ooexception
, or
oointerface
A choice of one of the following:
abbrev
, acronym
,
date
, emphasis
,
footnote
, footnoteref
,
foreignphrase
, phrase
,
quote
, subscript
,
superscript
, wordasword
,
firstterm
, glossterm
, or
coref
A choice of one of the following:
replaceable
, package
,
parameter
, termdef
,
nonterminal
, systemitem
,
option
, optional
, or
property
A choice of one of the following:
inlinemediaobject
,
remark
, superscript
,
subscript
,
xref
, link
,
olink
, anchor
,
biblioref
, alt
,
annotation
, or
indexterm
A choice of one of the following:
inlinemediaobject
,
remark
, superscript
,
subscript
,
xref
, link
,
olink
, anchor
,
biblioref
, alt
,
annotation
, indexterm
,
prompt
, envar
,
filename
, command
,
computeroutput
,
userinput
, replaceable
,
package
, parameter
,
termdef
, nonterminal
,
systemitem
, option
,
optional
, property
,
co
, tag
, markup
,
token
, symbol
,
literal
, code
,
constant
, email
,
uri
, guiicon
,
guibutton
, guimenuitem
,
guimenu
, guisubmenu
,
guilabel
, menuchoice
,
mousebutton
, keycombo
,
keycap
, keycode
,
keysym
, shortcut
, or
accel
A choice of one of the following:
caution
, important
,
note
, tip
, or
warning
A choice of one of the following:
example
, figure
,
table
, or
equation
A choice of one of the following:
mediaobject
or
screenshot
A choice of one of the following:
abstract
, address
,
artpagenums
, author
,
authorgroup
,
authorinitials
,
bibliocoverage
,
biblioid
, bibliosource
,
collab
, confgroup
,
contractsponsor
,
contractnum
, copyright
,
cover
, date
,
edition
, editor
,
issuenum
, keywordset
,
legalnotice
,
mediaobject
, org
,
orgname
, othercredit
,
pagenums
, printhistory
,
pubdate
, publisher
,
publishername
,
releaseinfo
, revhistory
,
seriesvolnums
,
subjectset
, volumenum
,
annotation
,
extendedlink
,
bibliomisc
, bibliomset
,
bibliorelation
,
biblioset
, itermset
,
productname
, or
productnumber
A choice of one of the following:
informalexample
,
informalfigure
,
informaltable
, or
informalequation
A choice of one of the following:
itemizedlist
,
orderedlist
, procedure
,
simplelist
,
variablelist
,
segmentedlist
,
glosslist
, bibliolist
,
calloutlist
, or qandaset
A choice of one of the following:
anchor
, para
,
formalpara
, or
simpara
A choice of one of the following:
sidebar
, blockquote
,
address
, or
epigraph
A choice of one of the following:
funcsynopsis
,
classsynopsis
,
methodsynopsis
,
constructorsynopsis
,
destructorsynopsis
,
fieldsynopsis
, or
cmdsynopsis
A choice of one of the following:
procedure
, task
,
productionset
,
constraintdef
, or
msgset
A choice of one of the following:
screen
, literallayout
,
programlistingco
,
screenco
,
programlisting
, or
synopsis
A validator uses the content models to determine if a given document is valid. In order for a document to be valid, the content of every element in the document must “match” the content model for that element.
In practical terms, “match” means that it must be possible to expand the content model until it exactly matches the sequence of elements in the document.
For example, consider the content model of the
epigraph
:
epigraph
::=
(info
?db.titleforbidden.info,
attribution
?,(literallayout
|
Paragraph elements)+)
Does the following example “match” that content model?
<epigraph> <para>Some text</para> </epigraph>
Yes, it is valid because the following expansion of the
content model exactly matches the actual content: choose zero
occurrences of info
, choose zero occurrences of
attribution
, choose the
alternative para
from the
“Paragraph elements” choice, and
choose to let the “one or more” match once.
By the same token, this example is not valid because there is no expansion of the content model that can match it:
<epigraph> <para>Some text</para> <attribution>John Doe</attribution> </epigraph>
18.216.197.92