# DocBook Version 5.1

$Id$
Standards Track Work Product
&name;-&version; &version;
&this-loc;/&name;-&version;.html
&this-loc;/&name;-&version;.pdf
&this-loc;/&name;-&version;.xml
&previous-loc;/&name;-&pversion;.html
&previous-loc;/&name;-&pversion;.pdf
&previous-loc;/&name;-&pversion;.xml
&latest-loc;/&name;.html
&latest-loc;/&name;.pdf
&latest-loc;/&name;.xml
OASIS DocBook Technical Committee
Norman Walsh norman.walsh@marklogic.com
Individual
Robert Stayton bobs@sagehill.net
Individual
&pubdate;
2016 OASIS Open, Inc. All Rights Reserved.

Additional Artifacts

This prose specification is one component of a Work Product that also includes:

- Schemas: http://docs.oasis-open.org/docbook/docbook/v5.1/os/schemas/

- DocBook V4.x conversion tools: http://docs.oasis-open.org/docbook/docbook/v5.1/os/tools/

Related Work

This specification replaces or supersedes:

- The DocBook Schema Version 5.0. 1 November 2009. OASIS Standard. http://docs.oasis-open.org/docbook/specs/docbook-5.0-spec.html

Declared XML Namespaces

http://docbook.org/ns/docbook

DocBook is a general purpose schema particularly well suited to books and papers about computer hardware and software (though it is by no means limited to these applications).

The Version 5.1 release introduces assemblies for topic-oriented authoring. It also addresses a selection of bugs and feature requests.

The Technical Committee provides the DocBook 5.1 schema in other schema languages, including W3C XML Schema and an XML DTD, but the RELAX NG Schema is the normative schema.

Status

This document was last revised or approved by the membership of OASIS on the above date. The level of approval is also listed above. Check the "Latest version" location noted above for possible later revisions of this document. Any other numbered Versions and other technical work produced by the Technical Committee (TC) are listed at https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=docbook#technical.

Technical Committee members should send comments on this specification to the Technical Committee's email list. Others should send comments to the Technical Committee by using the "Send A Comment" button on the Technical Committee's web page at https://www.oasis-open.org/committees/docbook/.

For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights section of the Technical Committee web page (https://www.oasis-open.org/committees/docbook/ipr.php).

Any other numbered Versions and other technical work produced by the Technical Committee (TC) are listed at https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=docbook#technical.

Citation format

When referencing this specification, the following citation format should be used:

[DocBook-5.1]DocBook Version 5.1. Edited by Norman Walsh. 22 November 2016. OASIS Standard. http://docs.oasis-open.org/docbook/docbook/v5.1/os/docbook-v5.1-os.html Latest version: http://docs.oasis-open.org/docbook/docbook/v5.1/docbook-v5.1.html.

Notices

Copyright © OASIS Open 2016. All Rights Reserved.

All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

OASIS requests that any OASIS Party or any other party that believes it has patent claims that would necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard, to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification.

OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any patent claims that would necessarily be infringed by implementations of this specification by a patent holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS may include such claims on its website, but disclaims any obligation to do so.

OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found on the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential Claims.

The name "OASIS" is a trademark of OASIS, the owner and developer of this specification, and should be used only to refer to the organization and its official outputs. OASIS welcomes reference to, and implementation and use of, specifications, while reserving the right to enforce its marks against misleading uses. Please see https://www.oasis-open.org/policies-guidelines/trademark for above guidance.

## Introduction

### Background

DocBook is general purpose schema particularly well suited to books and papers about computer hardware and software (though it is by no means limited to these applications).

The DocBook Technical Committee maintains the DocBook schema. Starting with V5.0, DocBook is normatively available as a Schema (with some additional assertions). A non-normative version will be published when it is available. DocBook builds on existing XML technologies: it uses for linking, for atomic data types, and anticipates the use of for transclusion.

DocBook has been under active maintenance for more than 20 years, it began life as an document type definition.

The Version 5.1 introduces assemblies for topic-oriented authoring and addresses a selection of bugs and feature requests.

The DocBook Technical Committee welcomes bug reports and requests for enhancement (RFEs) from the user community. Please send comments and requests for enhancement to the DocBook comments list, docbook-comment@lists.oasis-open.org mailing list. Outstanding requests can be seen in the archives as well as in the issues tracker on Github Issues interface.

### Terminology

The key words must, must not, required, shall, shall not, should, should not, recommended, may, and optional in this OASIS Standard are to be interpreted as described in .

### Normative References

XMLT. Bray, J. Paoli, M., E. Maler, F. Yergeau, Editors, Extensible Markup (XML) 1.0 (Fifth Edition), W3C Recommendation, 26 November 2008.
XLinkSteven DeRose, Eve Maler, David Orchard, Norman Walsh, editors. XML Linking Language (XLink) Version 1.1. World Wide Web Consortium, 2005.
XIncludeJonathan Marsh, David Orchard, Daniel Veillard, Norman Walsh, editors. XML Inclusions (XInclude) Version 1.0 (Second Edition). World Wide Web Consortium, 2006.
W3C XML DatatypesPaul V. Biron and Ashok Malhotra, editors. XML Schema Part 2: Datatypes Second Edition. World Wide Web Consortium, 2004.
ITSDavid Filip, Shaun McCance, Dave Lewis, et. al., editors. International Tag Set (ITS) 2.0. World Wide Web Consortium, 2013.
RELAX NG ISO/IEC 19757-2:2008 Information Technology—Document Schema Definition Language (DSDL)—Part 2: Regular-grammar-based validation—RELAX NG. Publicly available at: .
Schematron ISO/IEC 19757-3:2006 Information Technology—Document Schema Definition Language (DSDL)—Part 3: Rule-based validation—Schematron Publicly available at: . .
RFC 2119Bradner, S. “Key words for use in RFCs to Indicate Requirement Levels”, BCP 14, RFC 2119, March 1997, .
RFC 7303Thompson, H. and C. Lilley, "XML Media Types", RFC 7303, July 2014, .
DocBook 5.1: TDG Norman Walsh. DocBook 5.1: The Definitive Guide.

### Non-Normative References

DocBook 5: TDG Norman Walsh. DocBook 5.0: The Definitive Guide. O'Reilly Media. April 2010.
SGMLJTC 1, SC 34. ISO 8879:1986 Information processing -- Text and office systems -- Standard Generalized Markup Language (SGML). 1986.
W3C XML SchemaHenry S. Thompson, David Beech, Murray Maloney, et. al., editors. XML Schema Part 1: Structures Second Edition. World Wide Web Consortium, 2004.

## The DocBook RELAX NG Schema

### Distribution

The DocBook RELAX NG Schema (and associated non-normative schemas and tools) are distributed with this specification. DocBook is also available from the mirror on .

This prose specification is one component of a Work Product that also includes:

- RELAX NG DocBook Schema accessible from &this-loc;/schemas/rng/docbook.rnc

- RELAX NG DocBook Assembly Schema accessible from &this-loc;/schemas/rng/assembly.rnc

- RELAX NG DocBook+ITS Schema accessible from &this-loc;/schemas/rng/dbits.rnc

- RELAX NG DocBook+XInclude Schema accessible from &this-loc;/schemas/rng/docbookxi.rnc

- RELAX NG DocBook Schematron accessible from &this-loc;/schemas/sch/docbook.sch

- RELAX NG DocBook Assembly Schematron Schema accessible from &this-loc;/schemas/sch/assembly.sch

- RELAX NG DocBook+ITS Schematron accessible from &this-loc;/schemas/sch/docbookxi.sch

- RELAX NG DocBook+XInclude Schematron accessible from &this-loc;/schemas/sch/docbookxi.sch

- An XML Catalog accessible from &this-loc;/schemas/catalog.xml

- An NVDL Schema accessible from &this-loc;/schemas/docbook.nvdl

- DocBook V4.x conversion tools accessible from &this-loc;/tools/

## Identifying DocBook Documents and Schemas

For systems that can make use of public identifiers, e.g., systems where the informative DTD is being used, the following public identifier should be used for DocBook V5.1: “`-//OASIS//DTD DocBook V5.1//EN//XML`”.

Historically, when DocBook was defined by a DTD, DocBook documents could be identified by the presence of standard public and/or system identifiers in the document type declaration. RELAX NG, the normative schema language for DocBook V5.0, does not provide any equivalent mechanism.

## Conformance

This specification normatively defines DocBook V5.1 with a RELAX NG grammar and a set of Schematron assertions. A conformant DocBook V5.1 document must be valid according to both the grammar and the assertions.

DocBook documents are described by a set of schemas:

- “Plain” DocBook documents and DocBook Assembly documents. The schema for assembly documents is separate as a convenience for authors, it is conceptually part of the whole set of DocBook documents.

- DocBook + International Tag Set (ITS) Version 2.0; this schema allows authors to write valid DocBook documents that satisfy ITS Conformance Type 1 as defined in .

- DocBook + XInclude markup; this schema is not normative. It allows authors to write documents which mix DocBook markup and XInclude in many (but perhaps not all) reasonable places.

The schemas in question are those listed in .

The reference documentation (see ) describes general processing expectations for each element and some of the circumstances in which they may or may not apply. Understanding and conforming to these processing expectations where practical is likely to improve interoperability.

, the reference documentation for DocBook V5.0, much of which still applies to DocBook V5.1, is also available in published form from O'Reilly Media.

## Release Notes

See for a list of tools that can validate an XML document using RELAX NG. Note that not all products are capable of evaluating the Schematron assertions in the schema.

## Acknowledgements

The following individuals have participated in the creation of this specification and are gratefully acknowledged:

- Steve Cogorno
- Gary Cornelius
- Adam Di Carlo
- Paul Grosso
- Dick Hamilton (Secretary)
- Nancy Harrison
- Scott Hudson
- Mark Johnson
- Gershon Joseph
- Jirka Kosek
- Larry Rowland
- Michael Smith
- Robert Stayton (Chair)
- Norman Walsh (Editor)

.

## Revision History

### Changes in DocBook V5.1

DocBook V5.1 fixes a number of bugs, summarized below, and adds a significant new feature designed for the purpose of topic-based authoring: assemblies.

#### Assemblies

One modern school of thought on technical documentation stresses the development of independent units of documentation, often called topics, rather than a single narrative. Instead of writing something that DocBook users would easily recognize as a book consisting of a preface, several consecutive chapters, and a few appendixes, the author (or authors) write a set of discrete topics covering different aspects of the system as if they were wholly independent.

In a typical online presentation system, for example the world wide web or online help, each topic is a page that stands alone. Except, of course, that just as no man is an island, no topic is completely unrelated to the other topics that are available.

From any given topic, there may be topics of obviously related interest. The nature of the relationships may vary. Some topics are related by physical proximity (if you're interested in the ink cartridges in a printer, you may also be interested in the print head), others by their procedural nature (adding or replacing memory, adding or replacing a hard drive, or even changing the CPU are all topics that might logically follow a topic that describes how to open the computer case).

In a single narrative, it is the responsibility of the author to manage these relationships. He or she can reasonably assume that anyone reading chapter 4 has read chapters 1, 2, and 3. If the reader needs to be directed elsewhere, a cross reference can be used (for example, “for more information on paper jams, see Section 3.5, The Paper Path”).

In a topic-oriented system, authors are explicitly instructed to write independent units. No linear order can be assumed and many forms of explicit cross-reference are discouraged.

Documentation managers treat the library of available topics very much as programmers treat libraries of available functions. Just as any given program can pick and choose from the available libraries, the documentation for any given system can pick and choose from the available topics.

If you imagine a large documentation group managing the documentation for several related systems (different models of printer, different configurations of a software system, computers assembled from different components, etc.) it's easy to see the appeal of topic-oriented authoring.

In a successful deployment, you might find a library of say 1,000 topics which, taken together, document five or six related systems, each of which uses 700-800 topics. Some topics are used in every system, many are used in several systems, and a small number of topics are unique to a specific system.

In order to make such a documentation platform functional, you need not only the individual topics, but also some sort of “map” or “assembly” file that describes which topics from the library are used, what relationships exist between them and, at least for print presentation, what linear order is to be imposed upon them.

DocBook uses assemblies for this purpose, see DocBook 5.1: The Definitive Guide, Chapter 6.

### Changes in DocBook V5.1CR3

This release contains a bug fix.

1. Fixed issue #305; made navigational components optional in sect1.

### Changes in DocBook V5.1CR2

This release contains bug fixes and improvements over V5.1CR1.

1. Use final ITS 2.0 schemas.

2. Fixed issue #303; moved multimediaparam into the *data elements and allow the *data elements to be repeated.

3. Added RDFa Lite attributes to DocBook; removed the separate customization layer.

4. Added source for catalog.xml.

### Changes in DocBook V5.1CR1

This release contains bug fixes and improvements over V5.0.

1. Updated the `db4-upgrade.` script.

2. Added an RDFa Lite extension schema.

3. Merged ITS changes.

4. Fixed issue #300; added a class to see/seealso to handle the 'under' case.

5. Fixed issue #277; added a result element.

6. Added @its:version, improved better handling of extensibility.

7. Merged pull request #5 from kosek/master.

8. Updated ITS to support ITS 2.0

9. Fixed issue #298; don't allow secondary without primary in indexterm.

10. Fixed issue #295; allow navigation components at the beginnings of sections.

11. Fixed issue #293; removed spurious, duplicate 'other' value.

12. Attempt to implement the whole proposal for accessability attributes in CALS tables.

13. Fixed issue #293; allow admonitions in formal objects.

14. Fixed: issue #299; allow articles in sets.

15. Added scope attribute to CALS tables.

16. Removed format attribute from output element; the standard effectivity attribute outputformat can be used instead.

17. Added outputformat as an effectivity attribute.

18. Added: AltGr and Return to keycap class values.

19. Renamed fileref attribute to href in on resources in assemblies.

20. Fixed bug in Schematron assertions about XLink, thanks to Hussein Shafie

21. Fixed issue #292; added pgwide to informalexample and informalequation.

22. Made info on structure and module optional in assemblies.

23. Implemented recent TC decisions about assemblies.

24. Adopted the recent proposals to add attributes/parameters to audio and video objects.

25. Fixed reference to broken pattern; make sure linking attributes are on areas.

26. Fixed issue #285; made content optional in components and sections.

27. Allow link in extendedlink, in preparation for arc and locator being removed in V6.0.

28. Added extendedlink changes to the V6.0 future use comments.

29. Fixed issue #289; allow multiple procedure elements in task.

30. Fixed issue #288; allow tag elements to nest

31. Reworked XLink attributes to support simple/extended links.

32. Added pattern for imagedata, SVG, and MathML content (so that it can be extended by the XInclude schema).

33. Added XInclude to images and equations; allow foreign, namespace-qualified attributes on the xi:include element.

34. Fixed issue #276; broaden content model of contrib.

35. Fixed issue #282; update HTML informaltable attributes.

36. Fixed issue #283; allow production to contain rhs+.

37. Fixed issue #284; support ISTC as a biblioid class.

38. Attempt to implement Larry's latest suggestions about assemblies.

39. Fixed issue #281; allow xi:include in set.

40. Fixed issue #280; added securitycontext and other to systemitem.

41. Fixed issue #279; allow dedication in article.

42. Changed Schematron namespace to official ISO Schematron URI.

43. Allow topic in chapter and appendix (as an alternative to narrative content) per May 2010 TC meeting.

44. Fixed content model of book and part to make topic an alternative, not part of the component mixture.

45. Allow the other major components of an assembly to be top level elements (so they can be stored in separate files, for example).

46. Allow an assembly without any structure elements.

47. Tweak assembly schemas.

48. Allow override element in assemblies.

49. Generalized toc/index to db.navigation.components in assembly structure and module for consistency

50. Updated: in assembly, if at least one resource is required, then at least one structure should be required as well.

51. Removed description attribute from assemblies (no content in attributes!); added some refpurpose documentation for attributes and attribute values.

52. Added refpurpose for type attribute.