Book Definition
This document describes the purpose and content of the various fields and parts of the BookDefinition document type.
Fields
BookPath
Defines a hierarchical path (separated by slashes) for display of the book on overview pages.
Parts
BookDefinitionDescription
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:
- either it has a documentId attribute
- or it has a title attribute
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:
- appendix
- anonymous (for sections that shouldn't be numbered)
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.
BookMetadata
<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:
General metadata properties
|
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" |
|
publisherRequestSet |
name of the publisher request set to use when launching requests to the Publisher. |
Metadata properties for configuring variables
These properties configure the variable resolving for the book. They 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 |
Your own
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.
BookPublicationsDefault
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>
BookAclDefault
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".



In Metadata properties for configuring variables >> For anybody trying to make this work, it would be better to have a more explicit definition of the variables.source property:
variables.source.n (where n is 1, 2, etc., and 1, 2, etc., correspond to the sequence of variable definitions documents; the value for this property is the link the variable definition document, eg, daisy:10-DSY)
In a framework that works with document IDs, it is very easy to read that the document ID is sufficient (why wouldn't it be ). However, it is not.