World Library  
Flag as Inappropriate
Email this Article


Filename extension .dbk, .xml
Internet media type application/docbook+xml
Developed by OASIS
Type of format markup language
Extended from SGML, XML

4.5 (June 2006),

5.0 (November 2009)
Open format? Yes

DocBook is a semantic markup language for technical documentation. It was originally intended for writing technical documents related to computer hardware and software but it can be used for any other sort of documentation.[1]

As a semantic language, DocBook enables its users to create document content in a presentation-neutral form that captures the logical structure of the content; that content can then be published in a variety of formats, including HTML, XHTML, EPUB, PDF, man pages, Web help[2] and HTML Help, without requiring users to make any changes to the source. In other words, when a document is written in DocBook format it becomes easily portable into other formats. It solves the problem of reformatting by writing it once using XML tags.


  • Overview 1
    • Sample document 1.1
    • Schemas and validation 1.2
    • DocBook authoring 1.3
    • DocBook processing 1.4
      • Web help 1.4.1
  • History 2
    • Pre DocBook v5.0 2.1
  • Simplified DocBook 3
  • See also 4
  • References 5
  • Further reading 6
  • External links 7


DocBook is an XML language. In its current version (5.x), DocBook's language is formally defined by a RELAX NG schema with integrated Schematron rules. (There are also W3C XML Schema+Schematron and Document Type Definition (DTD) versions of the schema available, but these are considered non-standard.)

As a semantic language, DocBook documents do not describe what their contents "look like", but rather the meaning of those contents. For example, rather than explaining how the abstract for an article might be visually formatted, DocBook simply says that a particular section is an abstract. It is up to an external processing tool or application to decide where on a page the abstract should go and what it should look like or whether or not it should be included in the final output at all.

DocBook provides a vast number of semantic element tags. They are divided into three broad categories: structural, block-level, and inline.

Structural tags specify broad characteristics of their contents. The book element, for example, specifies that its child elements represent the parts of a book. This includes a title, chapters, glossaries, appendices, and so on. DocBook's structural tags include, but are not limited to:

  • set: Titled collection of one or more books, can be nested with other sets
  • book: Titled collection of chapters, articles, and/or parts, with optional glossaries, appendices, etc.
  • part: Titled collection of one or more chapters—can be nested with other parts, and may have special introductory text
  • article: Titled, unnumbered collection of block-level elements
  • chapter: Titled, numbered collection of block-level elements—chapters don't require explicit numbers, a chapter number is the number of previous chapter elements in the XML document plus 1
  • appendix: Contained text that represents an appendix
  • dedication:Text represents the dedication of the contained structural element

Structural elements can contain other structural elements. Structural elements are the only permitted top-level elements in a DocBook document.

Block-level tags are elements like paragraph, lists, etc. Not all these elements can directly contain text. Sequential block-level elements render one "after" another. After, in this case, can differ depending on the language. In most Western languages, "after" means below: text paragraphs are printed down the page. Other languages' writing systems can have different directionality; for example, in Japanese, paragraphs are often printed in downward columns, with the columns running from right to left, so "after" in that case would be to the left. DocBook semantics are entirely neutral to these kinds of language-based concepts.

Inline-level tags are elements like emphasis, hyperlinks, etc. They wrap text within a block-level element. These elements do not cause the text to break when rendered in a paragraph format, but typically they cause the document processor to apply some kind of distinct typographical treatment to the enclosed text, by changing the font, size, or similar attributes. (The DocBook specification does say that it expects different typographical treatment, but it does not offer specific requirements as to what this treatment may be.) That is, a DocBook processor doesn't have to transform an emphasis tag into italics. A reader-based DocBook processor could increase the size of the words, or, a text-based processor could use bold instead of italics.

Sample document

   Very simple book
     Chapter 1
     Hello world!
     I hope that your day is proceeding splendidly!
     Chapter 2
     Hello again, world!

Semantically, this document is a "book", with a "title", that contains two "chapters" each with their own "titles". Those "chapters" contain "paragraphs" that have text in them. The markup is fairly readable in English.

In more detail, the root element of the document is book. All DocBook elements are in an XML Namespace, so the root element has an xmlns attribute to set the current namespace. Also, the root element of a DocBook document must have a version that specifies the version of the format that the document is built on.

(XML documents can include elements from multiple namespaces at once. For simplicity, the example does not illustrate this.)

A book element must contain a title, or an info element containing a title. This must be before any child structural elements. Following the title are the structural children, in this case, two chapter elements. Each of these must have a title. They contain para block elements, which can contain free text and other inline elements like the emphasis in the second paragraph of the first chapter.

Schemas and validation

Rules such as the ones alluded to in the preceding paragraph ("a book element must contain a title, or an info element containing a title," etc.) are formally defined in the DocBook schema. Appropriate programming tools can validate an XML document (DocBook or otherwise), against its corresponding schema, to determine if (and where) the document fails to conform to that schema. XML editing tools can also use schema information to avoid creating non-conforming documents in the first place.

DocBook authoring

Because DocBook is XML, documents can be created and edited with any text editor. A dedicated XML editor is likewise a functional DocBook editor. DocBook provides schema files for popular XML schema languages, so any XML editor that can provide content completion based on a schema can do so for DocBook. Many graphical or WYSIWYG XML editors come with the ability to edit DocBook like a word processor.

DocBook processing

Because DocBook is an XML format, conforming to a well-defined schema, documents can be validated and processed using any tool or programming language that includes XML support.

DocBook files are used to prepare output files in a wide variety of formats. Nearly always, this is accomplished using DocBook XSL stylesheets. These are XSLT stylesheets that transform DocBook documents into a number of formats (HTML, XSL-FO for later conversion into PDF, etc.). These stylesheets can be sophisticated enough to generate tables of contents, glossaries, and indexes. They can oversee the selection of particular designated portions of a master document to produce different versions of the same document (such as a "tutorial" or a "quick-reference guide", where each of these consist of a subset of the material).

Because the standard DocBook XSL stylesheets are well-formed XSL stylesheets, and DocBook is well-formed XML, users can write their own customized stylesheets or even a full-fledged program to process the DocBook into an appropriate output format as their needs dictate.

Web help

Web help[2] is a chunked HTML output format in the DocBook XSL stylesheets that was introduced in version 1.76.1. The documentation for web help[3] also provides an example of web help and is part of the DocBook XSL distribution. Its major features include CSS-based page layout without frameset, multilingual full content search, table of contents (TOC) pane with collapsible TOC tree, auto-synchronization of content pane and TOC. This web help format was originally implemented by Kasun Gajasinghe as part of the Google Summer of Code 2010 program.[4]


DocBook began in 1991 in discussion groups on OASIS. DocBook is currently maintained by the DocBook Technical Committee at OASIS.[5]

DocBook is available in both SGML and XML forms, as a DTD. RELAX NG and W3C XML Schema forms of the XML version are available. Starting with DocBook 5, the RELAX NG version is the "normative" form from which the other formats are generated.

DocBook originally started out as an SGML application, but an equivalent XML application was developed and has now replaced the SGML one for most uses. (Starting with version 4 of the SGML DTD, the XML DTD continued with this version numbering scheme.) Initially, a key group of software companies used DocBook since their representatives were involved in its initial design. Eventually, however, DocBook was adopted by the open source community where it has become a standard for creating documentation for many projects, including FreeBSD, KDE, GNOME desktop documentation, the GTK+ API references, the Linux kernel documentation, and the work of the Linux Documentation Project.

Norman Walsh and the DocBook Project development team maintain the key application for producing output from DocBook source documents: A set of XSL stylesheets (as well as a legacy set of DSSSL stylesheets) that can generate high-quality HTML and print (FO/PDF) output, as well as output in other formats, including RTF, man pages and HTML Help.

Walsh is also the principal author of the book DocBook: The Definitive Guide, the official documentation of DocBook. This book is available online under the GFDL, and also as a print publication.

Pre DocBook v5.0

The current version of DocBook, 5.1, is fairly recent. Prior versions have been and still are in widespread use, so this section provides an overview of the changes to the older 4.x formats.

Until DocBook 5, DocBook was defined normatively by a Document Type Definition (DTD). Because DocBook was built originally as an application of SGML, the DTD was the only available schema language. DocBook 4.x formats can be SGML or XML, but the XML version does not have its own namespace.

DocBook 4.x formats had to live within the restrictions of being defined by a DTD. The most significant restriction was that an element name uniquely defines its possible contents. That is, an element named info must contain the same information no matter where it is in the DocBook file. As such, there are many kinds of info elements in DocBook 4.x: bookinfo, chapterinfo, etc. Each has a slightly different content model, but they do share some of their content model. Additionally, they repeat context information. The book's info element is that, because it is a direct child of the book; it does not need to be named specially for a human reader. However, because the format was defined by a DTD, it did have to be named as such. The root element does not have or need a version, as the version is built into the DTD declaration at the top of a pre-DocBook 5 document.

DocBook 4.x documents are not compatible with DocBook 5, but can be converted into DocBook 5 documents via an XSLT stylesheet. One (db4-upgrade.xsl) is provided as part of the distribution of the DocBook 5 schema and specification package.[6]

Simplified DocBook

DocBook offers a large number of features that may be overwhelming to a new user. For those who want the convenience of DocBook without a steep learning curve, Simplified DocBook was designed. It is a small subset of DocBook designed for single documents such as articles or white papers (i.e., "books" are not supported). The Simplified DocBook DTD is currently at version 1.1.[7]

See also


  1. ^ What is DocBook?
  2. ^ a b DocBook WebHelp Project
  3. ^ Web help documentation
  4. ^ Web help DocBook wiki page
  5. ^ Getting Started with DocBook
  6. ^ Jirka Kosek, Norman Walsh, Dick Hamilton, and Michael Smith, DocBook V5.0: The Transition Guide, 16 June 2009, Converting DocBook V4.x documents to DocBook V5.0
  7. ^ Simplified DocBook

Further reading

  • Norman Walsh (June 2010). DocBook 5: The Definitive Guide (2nd edition ed.). O'Reilly Associates.  
  • Bob Stayton (2005). DocBook XSL: The Complete Guide (3rd edition ed.). Sagehill Enterprises.  
  • Joe Brockmeier (2001). DocBook Publishing - A Better Way to Create Professional Documents. Prima Tech's Linux Series.  

External links

  • - Collection of DocBook information, including a 4.x and 5.0 version of DocBook: The Definitive Guide and all versions of the DocBook schemas/DTDs.
  • DocBook Repository at OASIS - Normative home of DocBook schema/DTD.
  • DocBook XSL Project page at
  • DocBook Demystification HOWTO
  • DocBook: The Definitive Guide, 1st edition, v. 2.0.6 - Fully bookmarked PDF of the Guide for DocBook 3.x and 4.x.
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from World Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.