<?xml version="1.0" encoding="UTF-8"?> <!-- This file is part of DocBook V5.0 Copyright 1992-2008 HaL Computer Systems, Inc., O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software Corporation, Norman Walsh, Sun Microsystems, Inc., and the Organization for the Advancement of Structured Information Standards (OASIS). Release: $Id: calstbl.rnc 8931 2010-10-20 13:29:20Z nwalsh $ Permission to use, copy, modify and distribute the DocBook schema and its accompanying documentation for any purpose and without fee is hereby granted in perpetuity, provided that the above copyright notice and this paragraph appear in all copies. The copyright holders make no representation about the suitability of the schema for any purpose. It is provided "as is" without expressed or implied warranty. If you modify the DocBook schema in any way, label your schema as a variant of DocBook. See the reference documentation (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook) for more information. Please direct all questions, bug reports, or suggestions for changes to the docbook@lists.oasis-open.org mailing list. For more information, see http://www.oasis-open.org/docbook/. ====================================================================== --> <grammar ns="http://docbook.org/ns/docbook" xmlns:db="http://docbook.org/ns/docbook" xmlns:s="http://purl.oclc.org/dsdl/schematron" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:ctrl="http://nwalsh.com/xmlns/schema-control/" xmlns:dbx="http://sourceforge.net/projects/docbook/defguide/schema/extra-markup" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <define name="db.table.choice" combine="choice"> <ref name="db.cals.table"/> </define> <define name="db.informaltable.choice" combine="choice"> <ref name="db.cals.informaltable"/> </define> <define name="db.char.attribute"> <attribute name="char"> <db:refpurpose>Specifies the alignment character when <db:tag class="attribute">align</db:tag> is set to <db:quote>char</db:quote> .</db:refpurpose> </attribute> </define> <define name="db.charoff.attribute"> <attribute name="charoff"> <db:refpurpose>Specifies the percentage of the column's total width that should appear to the left of the first occurance of the character identified in <db:tag class="attribute">char</db:tag> when <db:tag class="attribute">align</db:tag> is set to <db:quote>char</db:quote> .</db:refpurpose> <data type="decimal"> <param name="minExclusive">0</param> <param name="maxExclusive">100</param> </data> </attribute> </define> <define name="db.frame.attribute"> <attribute name="frame"> <db:refpurpose>Specifies how the table is to be framed. Note that there is no way to obtain a border on only the starting edge (left, in left-to-right writing systems) of the table.</db:refpurpose> <choice> <value>all</value> <a:documentation>Frame all four sides of the table. In some environments with limited control over table border formatting, such as HTML, this may imply additional borders.</a:documentation> <value>bottom</value> <a:documentation>Frame only the bottom of the table.</a:documentation> <value>none</value> <a:documentation>Place no border on the table. In some environments with limited control over table border formatting, such as HTML, this may disable other borders as well.</a:documentation> <value>sides</value> <a:documentation>Frame the left and right sides of the table.</a:documentation> <value>top</value> <a:documentation>Frame the top of the table.</a:documentation> <value>topbot</value> <a:documentation>Frame the top and bottom of the table.</a:documentation> </choice> </attribute> </define> <define name="db.colsep.attribute"> <attribute name="colsep"> <db:refpurpose>Specifies the presence or absence of the column separator</db:refpurpose> <dbx:description> <db:para>A rule will be drawn to the right of all cells for which<db:tag class="attribute">colsep</db:tag> has the value 1 (true). Note, however, that the rule to the right of the last column in the table is controlled by the <db:tag class="attribute">frame</db:tag> attribute, not <db:tag class="attribute">colsep</db:tag> .</db:para> </dbx:description> <choice> <value>0</value> <a:documentation>No column separator rule.</a:documentation> <value>1</value> <a:documentation>Provide a column separator rule on the right</a:documentation> </choice> </attribute> </define> <define name="db.rowsep.attribute"> <attribute name="rowsep"> <db:refpurpose>Specifies the presence or absence of the row separator</db:refpurpose> <dbx:description> <db:para>A rule will be drawn below all cells for which<db:tag class="attribute">rowsep</db:tag> has the value 1 (true). Note, however, that the rule below the last row in the table is controlled by the <db:tag class="attribute">frame</db:tag> attribute, not <db:tag class="attribute">rowsep</db:tag> .</db:para> </dbx:description> <choice> <value>0</value> <a:documentation>No row separator rule.</a:documentation> <value>1</value> <a:documentation>Provide a row separator rule below</a:documentation> </choice> </attribute> </define> <define name="db.orient.attribute"> <attribute name="orient"> <db:refpurpose>Specifies the orientation of the table</db:refpurpose> <choice> <value>land</value> <a:documentation>90 degrees counter-clockwise from the rest of the text flow.</a:documentation> <value>port</value> <a:documentation>The same orientation as the rest of the text flow.</a:documentation> </choice> </attribute> </define> <define name="db.tabstyle.attribute"> <attribute name="tabstyle"> <db:refpurpose>Specifies the table style</db:refpurpose> <dbx:description> <db:para>The <db:tag class="attribute">tabstyle</db:tag> attribute holds the name of a table style defined in a stylesheet that will be used to process this document.</db:para> </dbx:description> </attribute> </define> <define name="db.rowheader.attribute"> <attribute name="rowheader"> <db:refpurpose>Indicates whether or not the entries in the first column should be considered row headers</db:refpurpose> <choice> <value>firstcol</value> <a:documentation>Indicates that entries in the first column of the table are functionally row headers (analogous to the way that a thead provides column headers).</a:documentation> <value>norowheader</value> <a:documentation>Indicates that entries in the first column have no special significance with respect to column headers.</a:documentation> </choice> </attribute> </define> <define name="db.align.attribute"> <attribute name="align"> <db:refpurpose>Specifies the horizontal alignment of text in an entry.</db:refpurpose> <choice> <value>center</value> <a:documentation>Centered.</a:documentation> <value>char</value> <a:documentation>Aligned on a particular character.</a:documentation> <value>justify</value> <a:documentation>Left and right justified.</a:documentation> <value>left</value> <a:documentation>Left justified.</a:documentation> <value>right</value> <a:documentation>Right justified.</a:documentation> </choice> </attribute> </define> <define name="db.valign.attribute"> <attribute name="valign"> <db:refpurpose>Specifies the vertical alignment of text in an entry.</db:refpurpose> <choice> <value>bottom</value> <a:documentation>Aligned on the bottom of the entry.</a:documentation> <value>middle</value> <a:documentation>Aligned in the middle.</a:documentation> <value>top</value> <a:documentation>Aligned at the top of the entry.</a:documentation> </choice> </attribute> </define> <define name="db.specify-col-by-colname.attributes"> <attribute name="colname"> <db:refpurpose>Specifies a column specification by name.</db:refpurpose> </attribute> </define> <define name="db.specify-col-by-namest.attributes"> <attribute name="namest"> <db:refpurpose>Specifies a starting column by name.</db:refpurpose> </attribute> </define> <define name="db.specify-span-by-spanspec.attributes"> <attribute name="spanname"> <db:refpurpose>Specifies a span by name.</db:refpurpose> </attribute> </define> <define name="db.specify-span-directly.attributes"> <interleave> <attribute name="namest"> <db:refpurpose>Specifies a starting column by name.</db:refpurpose> </attribute> <attribute name="nameend"> <db:refpurpose>Specifies an ending column by name.</db:refpurpose> </attribute> </interleave> </define> <define name="db.column-spec.attributes"> <choice> <ref name="db.specify-col-by-colname.attributes"/> <ref name="db.specify-col-by-namest.attributes"/> <ref name="db.specify-span-by-spanspec.attributes"/> <ref name="db.specify-span-directly.attributes"/> </choice> </define> <define name="db.colname.attribute"> <attribute name="colname"> <db:refpurpose>Provides a name for a column specification.</db:refpurpose> </attribute> </define> <define name="db.spanname.attribute"> <attribute name="spanname"> <db:refpurpose>Provides a name for a span specification.</db:refpurpose> </attribute> </define> <!-- ====================================================================== --> <div> <db:refname>tgroup</db:refname> <db:refpurpose>A wrapper for the main content of a table, or part of a table</db:refpurpose> <define name="db.tgroup.role.attribute"> <attribute name="role"/> </define> <define name="db.tgroup.tgroupstyle.attribute"> <attribute name="tgroupstyle"> <db:refpurpose>Additional style information for downstream processing; typically the name of a style.</db:refpurpose> </attribute> </define> <define name="db.tgroup.cols.attribute"> <attribute name="cols"> <db:refpurpose>The number of columns in the table. Must be an integer greater than zero.</db:refpurpose> <data type="positiveInteger"/> </attribute> </define> <define name="db.tgroup.attlist"> <interleave> <optional> <ref name="db.tgroup.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.char.attribute"/> </optional> <optional> <ref name="db.charoff.attribute"/> </optional> <optional> <ref name="db.tgroup.tgroupstyle.attribute"/> </optional> <ref name="db.tgroup.cols.attribute"/> <optional> <ref name="db.colsep.attribute"/> </optional> <optional> <ref name="db.rowsep.attribute"/> </optional> <optional> <ref name="db.align.attribute"/> </optional> </interleave> </define> <define name="db.tgroup"> <element name="tgroup"> <ref name="db.tgroup.attlist"/> <zeroOrMore> <ref name="db.colspec"/> </zeroOrMore> <zeroOrMore> <ref name="db.spanspec"/> </zeroOrMore> <optional> <ref name="db.cals.thead"/> </optional> <optional> <ref name="db.cals.tfoot"/> </optional> <ref name="db.cals.tbody"/> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>colspec</db:refname> <db:refpurpose>Specifications for a column in a table</db:refpurpose> <define name="db.colspec.role.attribute"> <attribute name="role"/> </define> <define name="db.colspec.colnum.attribute"> <attribute name="colnum"> <db:refpurpose>The number of the column to which this specification applies. Must be greater than any preceding column number. Defaults to one more than the number of the preceding column, if there is one, or one.</db:refpurpose> <data type="positiveInteger"/> </attribute> </define> <define name="db.colspec.colwidth.attribute"> <attribute name="colwidth"> <db:refpurpose>Specifies the width of the column.</db:refpurpose> </attribute> </define> <define name="db.colspec.attlist"> <interleave> <optional> <ref name="db.colspec.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.colspec.colnum.attribute"/> </optional> <optional> <ref name="db.char.attribute"/> </optional> <optional> <ref name="db.colsep.attribute"/> </optional> <optional> <ref name="db.colspec.colwidth.attribute"/> </optional> <optional> <ref name="db.charoff.attribute"/> </optional> <optional> <ref name="db.colname.attribute"/> </optional> <optional> <ref name="db.rowsep.attribute"/> </optional> <optional> <ref name="db.align.attribute"/> </optional> </interleave> </define> <define name="db.colspec"> <element name="colspec"> <ref name="db.colspec.attlist"/> <empty/> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>spanspec</db:refname> <db:refpurpose>Formatting information for a spanned column in a table</db:refpurpose> <define name="db.spanspec.role.attribute"> <attribute name="role"/> </define> <define name="db.spanspec.namest.attribute"> <attribute name="namest"> <db:refpurpose>Specifies a starting column by name.</db:refpurpose> </attribute> </define> <define name="db.spanspec.nameend.attribute"> <attribute name="nameend"> <db:refpurpose>Specifies an ending column by name.</db:refpurpose> </attribute> </define> <define name="db.spanspec.attlist"> <interleave> <optional> <ref name="db.spanspec.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <ref name="db.spanname.attribute"/> <ref name="db.spanspec.namest.attribute"/> <ref name="db.spanspec.nameend.attribute"/> <optional> <ref name="db.char.attribute"/> </optional> <optional> <ref name="db.colsep.attribute"/> </optional> <optional> <ref name="db.charoff.attribute"/> </optional> <optional> <ref name="db.rowsep.attribute"/> </optional> <optional> <ref name="db.align.attribute"/> </optional> </interleave> </define> <define name="db.spanspec"> <element name="spanspec"> <ref name="db.spanspec.attlist"/> <empty/> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>thead</db:refname> <db:refpurpose>A table header consisting of one or more rows</db:refpurpose> <define name="db.cals.thead.role.attribute"> <attribute name="role"/> </define> <define name="db.cals.thead.attlist"> <interleave> <optional> <ref name="db.cals.thead.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.valign.attribute"/> </optional> </interleave> </define> <define name="db.cals.thead"> <element name="thead"> <ref name="db.cals.thead.attlist"/> <zeroOrMore> <ref name="db.colspec"/> </zeroOrMore> <oneOrMore> <ref name="db.row"/> </oneOrMore> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>tfoot</db:refname> <db:refpurpose>A table footer consisting of one or more rows</db:refpurpose> <define name="db.cals.tfoot.role.attribute"> <attribute name="role"/> </define> <define name="db.cals.tfoot.attlist"> <interleave> <optional> <ref name="db.cals.tfoot.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.valign.attribute"/> </optional> </interleave> </define> <define name="db.cals.tfoot"> <element name="tfoot"> <ref name="db.cals.tfoot.attlist"/> <zeroOrMore> <ref name="db.colspec"/> </zeroOrMore> <oneOrMore> <ref name="db.row"/> </oneOrMore> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>tbody</db:refname> <db:refpurpose>A wrapper for the rows of a table or informal table</db:refpurpose> <define name="db.cals.tbody.role.attribute"> <attribute name="role"/> </define> <define name="db.cals.tbody.attlist"> <interleave> <optional> <ref name="db.cals.tbody.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.valign.attribute"/> </optional> </interleave> </define> <define name="db.cals.tbody"> <element name="tbody"> <ref name="db.cals.tbody.attlist"/> <oneOrMore> <ref name="db.row"/> </oneOrMore> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>row</db:refname> <db:refpurpose>A row in a table</db:refpurpose> <define name="db.row.role.attribute"> <attribute name="role"/> </define> <define name="db.row.attlist"> <interleave> <optional> <ref name="db.row.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.rowsep.attribute"/> </optional> <optional> <ref name="db.valign.attribute"/> </optional> </interleave> </define> <define name="db.row"> <element name="row"> <ref name="db.row.attlist"/> <oneOrMore> <choice> <ref name="db.entry"/> <ref name="db.entrytbl"/> </choice> </oneOrMore> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>entry</db:refname> <db:refpurpose>A cell in a table</db:refpurpose> <ctrl:exclude from="db.entry" exclude="db.cals.table"/> <ctrl:exclude from="db.entry" exclude="db.cals.informaltable"/> <define name="db.entry.role.attribute"> <attribute name="role"/> </define> <define name="db.entry.morerows.attribute"> <attribute name="morerows"> <db:refpurpose>Specifies the number of additional rows which this entry occupies. Defaults to zero.</db:refpurpose> <data type="integer"/> </attribute> </define> <define name="db.entry.rotate.attribute"> <attribute name="rotate"> <db:refpurpose>Specifies the rotation of this entry. A value of 1 (true) rotates the cell 90 degrees counter-clockwise. A value of 0 (false) leaves the cell unrotated.</db:refpurpose> <choice> <value>0</value> <a:documentation>Do not rotate the cell.</a:documentation> <value>1</value> <a:documentation>Rotate the cell 90 degrees counter-clockwise.</a:documentation> </choice> </attribute> </define> <define name="db.entry.attlist"> <interleave> <optional> <ref name="db.entry.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.valign.attribute"/> </optional> <optional> <ref name="db.char.attribute"/> </optional> <optional> <ref name="db.colsep.attribute"/> </optional> <optional> <ref name="db.charoff.attribute"/> </optional> <optional> <ref name="db.entry.morerows.attribute"/> </optional> <optional> <ref name="db.column-spec.attributes"/> </optional> <optional> <ref name="db.rowsep.attribute"/> </optional> <optional> <ref name="db.entry.rotate.attribute"/> </optional> <optional> <ref name="db.align.attribute"/> </optional> </interleave> </define> <define name="db.entry"> <element name="entry"> <ref name="db.entry.attlist"/> <choice> <zeroOrMore> <ref name="db.all.inlines"/> </zeroOrMore> <zeroOrMore> <ref name="db.all.blocks"/> </zeroOrMore> </choice> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>entrytbl</db:refname> <db:refpurpose>A subtable appearing in place of an entry in a table</db:refpurpose> <define name="db.entrytbl.role.attribute"> <attribute name="role"/> </define> <define name="db.entrytbl.tgroupstyle.attribute"> <attribute name="tgroupstyle"> <db:refpurpose>Additional style information for downstream processing; typically the name of a style.</db:refpurpose> </attribute> </define> <define name="db.entrytbl.cols.attribute"> <attribute name="cols"> <db:refpurpose>The number of columns in the entry table. Must be an integer greater than zero.</db:refpurpose> <data type="positiveInteger"/> </attribute> </define> <define name="db.entrytbl.attlist"> <interleave> <optional> <ref name="db.entrytbl.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.char.attribute"/> </optional> <optional> <ref name="db.charoff.attribute"/> </optional> <optional> <ref name="db.column-spec.attributes"/> </optional> <optional> <ref name="db.entrytbl.tgroupstyle.attribute"/> </optional> <optional> <ref name="db.entrytbl.cols.attribute"/> </optional> <optional> <ref name="db.colsep.attribute"/> </optional> <optional> <ref name="db.rowsep.attribute"/> </optional> <optional> <ref name="db.align.attribute"/> </optional> </interleave> </define> <define name="db.entrytbl"> <element name="entrytbl"> <ref name="db.entrytbl.attlist"/> <zeroOrMore> <ref name="db.colspec"/> </zeroOrMore> <zeroOrMore> <ref name="db.spanspec"/> </zeroOrMore> <optional> <ref name="db.cals.entrytbl.thead"/> </optional> <ref name="db.cals.entrytbl.tbody"/> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>thead</db:refname> <db:refpurpose>A table header consisting of one or more rows</db:refpurpose> <define name="db.cals.entrytbl.thead.role.attribute"> <attribute name="role"/> </define> <define name="db.cals.entrytbl.thead.attlist"> <interleave> <optional> <ref name="db.cals.entrytbl.thead.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.valign.attribute"/> </optional> </interleave> </define> <define name="db.cals.entrytbl.thead"> <element name="thead"> <ref name="db.cals.entrytbl.thead.attlist"/> <zeroOrMore> <ref name="db.colspec"/> </zeroOrMore> <oneOrMore> <ref name="db.entrytbl.row"/> </oneOrMore> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>tbody</db:refname> <db:refpurpose>A wrapper for the rows of a table or informal table</db:refpurpose> <define name="db.cals.entrytbl.tbody.role.attribute"> <attribute name="role"/> </define> <define name="db.cals.entrytbl.tbody.attlist"> <interleave> <optional> <ref name="db.cals.entrytbl.tbody.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.valign.attribute"/> </optional> </interleave> </define> <define name="db.cals.entrytbl.tbody"> <element name="tbody"> <ref name="db.cals.entrytbl.tbody.attlist"/> <oneOrMore> <ref name="db.entrytbl.row"/> </oneOrMore> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>row</db:refname> <db:refpurpose>A row in a table</db:refpurpose> <define name="db.entrytbl.row.role.attribute"> <attribute name="role"/> </define> <define name="db.entrytbl.row.attlist"> <interleave> <optional> <ref name="db.entrytbl.row.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.rowsep.attribute"/> </optional> <optional> <ref name="db.valign.attribute"/> </optional> </interleave> </define> <define name="db.entrytbl.row"> <element name="row"> <ref name="db.entrytbl.row.attlist"/> <oneOrMore> <ref name="db.entry"/> </oneOrMore> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>table</db:refname> <db:refpurpose>A formal table in a document</db:refpurpose> <define name="db.cals.table.role.attribute"> <attribute name="role"/> </define> <define name="db.cals.table.label.attribute"> <ref name="db.label.attribute"/> </define> <define name="db.cals.table.attlist"> <interleave> <optional> <ref name="db.cals.table.role.attribute"/> </optional> <optional> <ref name="db.cals.table.label.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.tabstyle.attribute"/> </optional> <optional> <ref name="db.floatstyle.attribute"/> </optional> <optional> <ref name="db.orient.attribute"/> </optional> <optional> <ref name="db.colsep.attribute"/> </optional> <optional> <ref name="db.rowsep.attribute"/> </optional> <optional> <ref name="db.frame.attribute"/> </optional> <optional> <ref name="db.pgwide.attribute"/> </optional> <optional> <attribute name="shortentry"> <db:refpurpose>Indicates if the short or long title should be used in a List of Tables</db:refpurpose> <choice> <value>0</value> <a:documentation>Indicates that the full title should be used.</a:documentation> <value>1</value> <a:documentation>Indicates that the short short title (titleabbrev) should be used.</a:documentation> </choice> </attribute> </optional> <optional> <attribute name="tocentry"> <db:refpurpose>Indicates if the table should appear in a List of Tables</db:refpurpose> <choice> <value>0</value> <a:documentation>Indicates that the table should not occur in the List of Tables.</a:documentation> <value>1</value> <a:documentation>Indicates that the table should appear in the List of Tables.</a:documentation> </choice> </attribute> </optional> <optional> <ref name="db.rowheader.attribute"/> </optional> </interleave> </define> <define name="db.cals.table.info"> <ref name="db._info.title.onlyreq"/> </define> <define name="db.cals.table"> <element name="table"> <ref name="db.cals.table.attlist"/> <ref name="db.cals.table.info"/> <interleave> <optional> <ref name="db.alt"/> </optional> <zeroOrMore> <ref name="db.indexing.inlines"/> </zeroOrMore> <zeroOrMore> <ref name="db.textobject"/> </zeroOrMore> </interleave> <choice> <oneOrMore> <ref name="db.mediaobject"/> </oneOrMore> <oneOrMore> <ref name="db.tgroup"/> </oneOrMore> </choice> <optional> <ref name="db.caption"/> </optional> </element> </define> </div> <!-- ====================================================================== --> <div> <db:refname>informaltable</db:refname> <db:refpurpose>A table without a title</db:refpurpose> <define name="db.cals.informaltable.role.attribute"> <attribute name="role"/> </define> <define name="db.cals.informaltable.attlist"> <interleave> <optional> <ref name="db.cals.informaltable.role.attribute"/> </optional> <ref name="db.common.attributes"/> <ref name="db.common.linking.attributes"/> <optional> <ref name="db.tabstyle.attribute"/> </optional> <optional> <ref name="db.floatstyle.attribute"/> </optional> <optional> <ref name="db.orient.attribute"/> </optional> <optional> <ref name="db.colsep.attribute"/> </optional> <optional> <ref name="db.rowsep.attribute"/> </optional> <optional> <ref name="db.frame.attribute"/> </optional> <optional> <ref name="db.pgwide.attribute"/> </optional> <optional> <ref name="db.rowheader.attribute"/> </optional> </interleave> </define> <define name="db.cals.informaltable.info"> <ref name="db._info.title.forbidden"/> </define> <define name="db.cals.informaltable"> <element name="informaltable"> <ref name="db.cals.informaltable.attlist"/> <ref name="db.cals.informaltable.info"/> <interleave> <optional> <ref name="db.alt"/> </optional> <zeroOrMore> <ref name="db.indexing.inlines"/> </zeroOrMore> <zeroOrMore> <ref name="db.textobject"/> </zeroOrMore> </interleave> <choice> <oneOrMore> <ref name="db.mediaobject"/> </oneOrMore> <oneOrMore> <ref name="db.tgroup"/> </oneOrMore> </choice> <optional> <ref name="db.caption"/> </optional> </element> </define> </div> </grammar>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 12728 | eedwards |
Upgrade ANT doc build infrastructure to assemble PDFs: - remove non-namespaced DocBook source and add namespaced DocBook source. - add Apache FOP 1.1 - copy fonts, images, XSL into _build, establishing new asset structure. The original structure remains until all guides using it can be upgraded, and several other issues can be resolved. - updated build.xml to allow for per-target build properties. - upgraded the P4SAG to use the new infrastructure. - tweaked admonition presentation in PDFs to remove admonition graphics, and resemble closely the presentation used in the new HTML layout, including the same colors. With these changes, building PDFs involves using a shell, navigating into the guide's directory (just P4SAG for now), and executing "ant pdf". Issues still to be resolved: - PDF generation encounters several warnings about missing fonts (bold versions of Symbol and ZapfDingbats), and a couple of locations where the page content exceeds the defined content area. - Due to issues within Apache FOP, PDF generation emits a substantial amount of output that is not easily suppressed without losing important warning information. - Apache FOP's interface to ANT does not expose a way to set the font base directory. The current configuration does work under Mac OSX, but further testing on Windows will need to be done to determine if the relative paths defined continue to work. The workaround is for Windows users to customize the fop-config.xml to provide absolute system paths to the required fonts. - HTML generation needs further browser testing, and exhibits broken navigation on iOS browsers within the TOC sidebar. - A number of PDF and HTML presentation tweaks still need to be made, for example: sidebars, gui* DocBook tags, whitespace, section separation, etc. |