This document describes the purpose and content of the various fields and parts of the BookDefinition document type.
Defines a hierarchical path (separated by slashes) for display of the book on overview pages.
The BookDefinitionDescription part defines the structure of the book.
<book xmlns="http://outerx.org/daisy/1.0#bookdef">
<content>
<section documentId="...">
[... optionally nested sections ...]
</section>
[... more sections ...]
<section documentId="..." type="appendix"/>
<query q="select name where InCollection('book1')
and documentType='SimpleDocument'"
sectionType="..."
filterVariants="true|false"/>
<importNavigationTree id="..." branch="..." language="..." path="..."/>
</content>
</book>
The <section> element can function in two ways:
If it has a documentId attribute, it can also have the optional attributes branch, language and version.
In both cases, the section can also have an optional "type" attribute. By default two additional types are supported:
Instead of listing documents explicitly, they can also be included using a query. The query element can also have an optional 'sectionType' attribute to specify the type of sections generated, and a filterVariants attribute (default true) to specify whether branch and language conditions should be added automatically.
Using the importNavigationTree element, it is possible to import (part of) a navigation tree and convert it to book sections. Group nodes in the navigation tree become section nodes with a title attribute, and document nodes become section nodes with a documentId attribute. The branch, language and path attributes on the importNavigationTree element are optional. Using the path attribute, it is possible to import only a part of a navigationtree. Its value should be a list of node IDs separated by slashes. If the path points to a group node, only the children of the group node are imported, if it points to a document node, the document node and its children are imported.
<metadata> <entry key="title">Content Management</entry> <entry key="locale">en</entry> </metadata>
The BookMetadata part contains general book metadata in the form of name-value couples. The metadata fields are accessible during the book publication.
Currently the following metadata fields are explicitly defined:
|
Name |
Purpose |
|---|---|
|
title |
the title of the book |
|
locale |
the locale to be used for publishing the book. This determines the language used to display items such as "Table Of Contents" |
These properties configure the variable resolving for the book. This are book metadata properties, rather than publication properties, since the documents are retrieved only once from the Publisher and re-used for all publications.
|
Name |
Purpose |
|---|---|
|
variables.source.X |
where X is 1, 2, etc. These properties define the variable documents to be used |
|
variables.resolve-attributes |
Enables or disables substitution of variables in attributes. Should be true or false, true by default |
You can add any other metadata fields of your own choice. These will be accessible during the book publishing, e.g. for use in stylesheets. If the properties are specific to one type of publication, you should publication properties instead.
The BookPublicationsDefault part defines the publications, with their properties, that should be selected by default when publishing a book.
<publicationSpecs xmlns="http://outerx.org/daisy/1.0#bookpubspecs">
<publicationSpec type="pdf" name="pdf">
<properties>
<entry key="toc.depth">2</entry>
[... more entries ...]
</properties>
</publicationSpec>
[... more publicationSpec elements ...]
</publicationSpecs>
The BookAclDefault part defines the default ACL to be used for the book instance created when publishing this book.
<bookAcl xmlns="http://outerx.org/daisy/1.0#bookstoremeta"> <bookAclEntry subjectType="everyone" subjectValue="-1" permRead="grant" permManage="grant"/> [... more bookAclEntry elements ...] </bookAcl>
The subjectType attribute can have the values "user", "role" or "everyone". The subjectValue attribute should contain the ID of a user or role (corresponding to the value of the subjectType attribute), or -1 if the subjectType is everyone.
The permGrand and permManage attributes can contain "grant", "deny" or "nothing".