14 May 2001 
 SPECS/DOCUMENTS/Technical Work

CALS Table Model Document Type Definition

OASIS Technical Memorandum TM 9502:1995

Harvey Bingham, Interleaf
Chair, Table Interchange Subcommittee
OASIS
1995 October 19

© 1995 OASIS. Permission to reproduce parts or all of this information in any form is granted to OASIS members provided that this information by itself is not sold for profit and that OASIS is credited as the author of this information.

Abstract

This OASIS Technical Memorandum consists of a recommendation for an update to the CALS table model DTD model that will be submitted to the appropriate CALS authority with the expectation that it will be accepted as the next revision of the official CALS table model and that a Formal Public Identifier will be assigned to facilitate referencing of this model.

Note that the set of element and attribute declarations in the markup declaration module section of this document partially defines the CALS table model. However, the model is not well-defined without the accompanying natural language description of the semantics (meanings) of these various elements, attributes, and attribute values. The semantic writeup, in the section following that containing the markup declaration module, must be used in conjunction with the element and attribute declarations.

Technical Memorandum 9502:1995
 Committee Draft: 1995 August 2
 Committee Draft: 1995 August 14
 Final Technical Memorandum: 1995 October 19

Introduction

This OASIS recommendation for an update to the CALS table model DTD model will be submitted to the appropriate CALS authority with the expectation that it will be accepted as the next revision of the official CALS table model and that a Formal Public Identifier will be assigned to facilitate referencing of this model.

Specific changes of substance from the table model contained in the Example DTD published in MIL-HDBK-28001 (30 June 95) include:

  • allow content model for table to include title on the graphic+ form of table content when there are no tgroups;
  • change most explicit attribute defaults from value to #IMPLIED to allow value inheritance, possibly from a style sheet (i.e., tocentry on <table>; align, char, and charoff on <tgroup>; valign on <tbody>, <thead>, and <tfoot>; and rotate and morerows on <entry>);
  • repair an error in <entrytbl> content model to eliminate the one or more repetitions of (colspec*,spanspec*,thead?,tbody)+.

Finally, a Formal Public Identifier is suggested.

Note that the set of element and attribute declarations in the next section of this document partially defines the CALS table model. However, the model is not well-defined without the accompanying natural language description of the semantics (meanings) of these various elements, attributes, and attribute values. The semantic writeup, in the section following that containing the markup declaration module, must be used in conjunction with the element and attribute declarations.

The following markup declaration module defines parameter entities for various parts of the model. This organization provides for more flexibility in using this module in different circumstances. However, it must be realized that overriding declarations of these parameter entities that enlarge the model (i.e., that define a superset of the model or a different model) may reduce practical interoperability. It is therefore recommended that the parameter entities be used primarily to define a subset of the default model. Any parameter entity redefinition other than to define a more constrained model than the default model must be done carefully with the knowledge of ones target toolset's capabilities and with the realization that interoperability may be reduced. The portion of the model where constraining changes only are reasonable is its geometric aspects, including some table attributes, and the elements and attributes of the table structure: tgroup through row, analogous structure of entrytbl, and some entry attributes. The table content model and its exceptions other than table self-exclusion and the entry content model and its exceptions are candidates for change.

CALS Table model DTD module

Semantic description for the CALS table model

Note that the above set of element and attribute declarations in the previous section only partially defines the CALS table model. The model is not well-defined without the accompanying natural language description of the semantics (meanings) of these various elements, attributes, and attribute values. This section containing that semantic writeup must be used in conjunction with the element and attribute declarations.

Element and attribute description for <table>Element/AttributeFull NameDescription

<table

Table

Identifies a table.

Optional Attributes

frame =x

FRAME: Describes position of outer rulings.
 Declared Value = sides (left and right), top (below title), bottom (after last <row> possibly of <tfoot> material), topbot (both top and bottom), all (all of above), or none (none of above). The outer rulings appear in place of and in the space that would otherwise be taken by horizontal and vertical rulings on the outsides of those entries or entry tables that appear at the edges of the table.
Default = IMPLIED (implies value from tabstyle, possibly in style specification if available, if not, implies "all").

colsep =x

COLSEP: Default for all <tgroup>s in this <table>. If a number other than zero, display the internal column rulings to the right of each <entry> or <entrytbl>; if zero, do not display them. Ignored for the rightmost column, where the frame setting applies.
Declared Values = %yesorno; (NUMBER)

Default = IMPLIED (implies value from tabstyle in style specification if available, if not, implies "1").

rowsep =x

ROWSEP: Default for all <tgroup>s in this <table>. If other than zero, display the internal horizontal row ruling below each <entrytbl> or <entry> ending in a <row>. If zero, do not display them. Ignored for the last <row> of the <table>, where the frame value applies.
Declared Value = %yesorno; (NUMBER)
 Default = IMPLIED (implies value from tabstyle if used, if not, implies "1").

tabstyle =x

tocentry =x

shortentry =x

TABSTYLE: The identifier for a table style defined for the application, possibly in the style specification.
 Declared Value = NMTOKEN
Default = IMPLIED (no external style attribute definitions specified)

TOCENTRY: If other than zero, and the <title> is present, this table <title> should be included in the list of tables. (Ignore that table title in forming the list of tables if the optional <title> is omitted.)
Declared Value = %yesorno; (NUMBER)
Default = IMPLIED (implies value from style specification if any, else "1").

SHORTENTRY: If the value is zero, the element's <shorttitle> (or <title>, if no short title is given) is not used in the <coverindex> or any other type of compiled listing. Any other numeric value triggers the use of the <shorttitle>, or <title> in its absence. It is an error if neither <shorttitle> nor <title> occur and shortentry is non-zero.
Declared Value = %yesorno; (NUMBER)
Default = IMPLIED (implies value from style specification if any, else "0").

orient =x

ORIENT: Orientation of the entire <table>.
Declared Value = port (table writing direction, along rows, is parallel to the marginal page header and footer text), or land (table writing direction is 90 degrees counterclockwise to header/footer text). The land value means 90 degrees counterclockwise from the current page orientation. The land value only rotates the table content, not the page header/footer. No non-table material need go in the presentation area of a page with a land table.
Default = IMPLIED (implies value from tabstyle in style specification if available, if not, implies "port").

pgwide =x

PGWIDE: If zero, the maximum available width for the <table> is the (galley) width (possibly respecting current indents in force as specified by the style sheet) of the current column of the orient="port" page. If a specified value other than zero, the <table> spans the width of the entire page (possibly causing any previous multicolumn text on the page to be balanced and any extra processing associated with column balancing and page spanning to be performed). This attribute is ignored when orient="land" where all tables are treated as if pgwide="1".
Declared Value = %yesorno; (NUMBER)
Default = IMPLIED (implies value from the style specification if available, if not, the default is determined by the presentation system).

%bodyatt;

%BODYATT;: Any of the attributes in the associated Attribute Set may be used with this element.
 Default = As appropriate for each attribute in the set.

%secur;>

%SECUR;: Any of the attributes in the associated Attribute Set may be used with this element.
 Default = As appropriate for each attribute in the set.

Element and attribute description for <tgroup>Element/AttributeFull NameDescription

<tgroup

Table Group

Each <tgroup> effectively identifies a new portion of a <table>. The <colspec>s and <spanspec>s and the colnames and spannames in each <tgroup> are independent of any other <tgroup>. The <colspec>s in a <tgroup> apply to its <tbody>. The <colspec>s in a <tgroup> shall be in left-to-right column order. Explicit colnums in the different <colspec>s of a <tgroup> shall be unique, in ascending order left-to-right, in the range 1 to the number of <colspec>s, which is not to exceed the value of the cols attribute of <tgroup>.

The colnames in the different <colspec>s of a <tgroup> shall be unique. (A colname may have the same value as the colnum of the same <colspec> if restricted to digits.) The <colspec>s of <tbody> also apply to <thead> and <tfoot>, unless replaced by <colspec>s in a <thead> or <tfoot>. Such replacement <colspec>s are confined to affecting the <thead> or <tfoot> in which they occur. They do not replace any like-named or numbered <colspec>s in the <tgroup> for use in <tbody>.

All <tgroup>s of a <table> shall have the same width, so the <table> frame can surround them uniformly. Each <thead>, <tfoot>, and <tbody> has that total width as well. Let the minimum table width by the sum of the fixed portions of the set of <colspec> colwidths in any of <tgroup>, <thead>, and <tfoot> which should not exceed the indicated total width, determined from the <table> pgwide attribute. If pgwide="0", the target total width is the galley column width, possibly reduced by the current indents in force; if pgwide is non-zero, the target total width is the full page width.

cols =x

tgroupstyle =x

colsep =x

The total width may be specified with colwidths having some fixed parts and some proportional parts. When any proportional parts are specified, the unit proportion is determined by starting with the target table width determined from the <table> pgwide value non-zero for full width, "0" for galley column width (possibly affected by current indents). Reduce that by sum of border widths and column ruling widths and the fixed parts of the various <colspec> colwidths to get the available proportional width. Sum the proportional factors N over all columns with proportional parts "N*" and including "1*" for each implicit colwidth when the value of the <tgroup> cols exceeds the number of <colspec>s in that <tgroup>. Then the unit proportion is the available proportional width divided by the sum of the proportionality factors. Note that the fixed widths for frame and colsep rulings are deemed to be small and system dependent, not essentially included as fixed parts of each colwidth in <colspec>.
If the table fixed widths take up too much of the indicated table width, then it is up to the output system to resolve the conflict.

Required Attribute

COLS: Number of columns in the <tgroup>.
 Declared Value = NUMBER

Optional Attributes

TGROUPSTYLE: A name for a unique <tgroup> style, possibly defined in a style specification. The tgroupstyle needn't be unique across all <table>s tagged to the DTD.
 Declared Value = NMTOKEN
Default = IMPLIED (no external style attribute definitions specified)

COLSEP: Default for all <colspec>s in this <tgroup>. If other than zero, display the internal column rulings to the right of <entry> or <entrytbl>; if zero, do not display them. Ignored for the last column, where the frame setting applies. Possible default source for <spanspec>, <entrytbl>, or <entry>.
 Declared Value = %yesorno; (NUMBER)
Default = IMPLIED, value from tgroupstyle if any, else from <table> if any, else "1"

rowsep =x

ROWSEP: Default for <colspec>s in this <tgroup>. If other than zero, display the internal horizontal row ruling below each <entry> or <entrytbl> . If zero, do not display them. Ignored for the last <row> of the <table>, where the frame value applies. Possible default source for <spanspec>, <row>, <entrytbl>, or <entry>.
Declared Value = %yesorno; (NUMBER)
 Default = IMPLIED, (means use value from tgroupstyle if any, else from <table> if any, else "1").

align =x

ALIGN: Text horizontal position within the column. Applies to text that is #PCDATA or other in-line elements, not further contained in another element with its own formatting style, such as paragraph, list, or annotation.
Declared Value = left, (quad flush left), center (centered), right (quad flush right), justify (both quad left and right), or char (align text to the leftmost occurrence of the value of the non-null attribute char value.)
Default source for <colspec> align. Possible default source or <spanspec>, <entrytbl>, or <entry>.
 Default = IMPLIED (means use value from tgroupstyle if any, else "left".)

char =x

CHAR: If align="char", the value is the single alignment character source for any implied char values for <colspec> in this <tgroup> The char shall not be an SDATA entity.
Default source for <colspec> char. Possible default source for <spanspec>, <entrytbl>, or <entry>.
Declared Value = CDATA
Default = IMPLIED (means use value from tgroupstyle if any, else "" meaning right-alignment of content that is #PCDATA or other inline text to the left of charoff).

charoff =x

CHAROFF: For align ="char", percent of the current column width to the left of the (left edge of) the alignment character specified in char value.
Default source for <colspec> charoff. Possible default source for <spanspec>, <entrytbl>, or <entry>.
Declared Value = NUTOKEN
Default = IMPLIED (means use value from tgroupstyle if any, else "50").

%secur;>

%SECUR;: Any of the attributes in the associated Attribute Set may be used with this element.
 Default = As appropriate for each attribute in the set.

Element and attribute description for <colspec>Element/AttributeFull NameDescription

<colspec

colnum =x

colname =x

colwidth =x

colsep =x

rowsep =x

align =x

char =x

charoff =x>

Column Specification

Specifies a column, a vertical portion of a <table>, or <entrytbl>. The default values come from the <tgroup>, <thead>, or <tfoot> starting the current (enclosing) group. Each <colspec> is for a single column, so it properly has a column number, colnum, implicitly in order starting from 1, and an optional colname by which it is known when used in any <spanspec> or in <entrytbl> or <entry>. A set of <colspec>s on <thead> or <tfoot> should be complete for all columns (and if any <colspec> is explicitly provided in a <thead> or <tfoot>, any missing <colspec>s are implicitly supplied). This set overrides those on the containing <tgroup> and applies to just the <thead> or <tfoot>. Any references from <entry>s within the <thead> or <tfoot> to colname, namest, or nameend refer to values defined by the set of <colspec>s in the <thead> or <tfoot>. If there is no <colspec> used within a <thead> or <tfoot>, then the <colspec>s of the containing <tgroup> or <entrytbl> are used. <Colspec>s from the containing <tgroup> apy to <tbody>.

The number of columns should be determined by the cols attribute on the <tgroup> element, not by the number of <colspec>s actually defined. If the number in cols is larger than the number of <colspec>s, then additional <colspec>s of colwidth "1*" should be inferred. <colspec>s can be numbered or unnumbered, and if numbered should be increasing in sequential order starting at 1. Unnumbered <colspec>s are interpreted as being numbered incrementally (one more than the previous column number), with the first <colspec> starting at 1. Any mismatch in <colspec> numbering, or a number of <colspec>s greater than cols, is an error.

Optional Attributes

COLNUM: Number of column, counting from 1 at left of the table. The value of colnum is not useful to identify a column in either a <spanspec>, <entrytbl>, or <entry>, so serves no functional purpose other than a consistency check on the order of the <colspec>s.
 Declared Value = NUMBER
Default = IMPLIED (colspec is the next one in order)

COLNAME: Name of column, used to specify the position or horizontal span of columns in a row, by reference in <entry> or <entrytbl> using colname, or namest with nameend. Also used by reference with namest and nameend in <spanspec>.
 The colname value could be the same as colnum, as its declared value is NMTOKEN, though there is no such requirement. The name space for colnames is different for each <tgroup> and <entrytbl>.
Declared Value = NMTOKEN
Default = IMPLIED (colspec cannot be referenced without colname)

COLWIDTH: Either proportional measure of the form number*, i.e., "5*" for 5 times the proportion, or "*" (which is equivalent to "1*"); fixed measure, i.e., 2pt for 2 point, 3pi for 3 pica; or mixed measure, i.e., 2*+3pt. Coefficients are positive integers or fixed point numbers.
 Declared Value = CDATA
Default = IMPLIED (means obtain value from a named style specification if any. If there is no such value, or if the value is "" [the null string] then assume a proportion of "1*".)

The fixed unit values are case insensitive. The standard list of allowed unit values is "pt" (points), "cm" (centimeters), "mm" (millimeters), "pi" (picas), and "in" (inches). The default fixed unit should be interpreted as "pt" if neither a proportion nor a fixed unit is specified.

COLSEP: Default for <entry>s or <entrytbl> starting in this column (within the <tgroup> or <entrytbl>).
Default for <spanspec> whose namest matches this colname.
Declared Value = %yesorno; (NUMBER)
Default = IMPLIED, from closest ancestor <entrytbl> if any or <tgroup>.

ROWSEP: Default for <spanspec> with namest matching this colname. Default for <entry>s or <entrytbl>s starting in this column and not determined by spanname, if no rowsep value is provided in the top <row> where their content is provided.
 Declared Value = %yesorno; (NUMBER)
Default = IMPLIED, from closest ancestor <entrytbl> if any or <tgroup>.

ALIGN: Text horizontal position within the column or spanning columns.
Declared Value = left, (quad flush left), center (centered), right (quad flush right), justify (both quad left and right), or char (positioned by charoff).
Possible default source for <spanspec> using this column as its namest, or for <entrytbl> or <entry>
Default = IMPLIED (means use value from <tgroup> if any, or its tgroupstyle, else "left".)

CHAR: Default source for <spanspec>, and <entry>s or <entrytbl>s starting in this column. If align ="char", the value is the single alignment character source for any implied char values for <entry> immediately in this column The char shall not be an SDATA entity.
 Declared Value = CDATA
Default = IMPLIED, from closest ancestor: <entrytbl> if any or <tgroup>.

CHAROFF: Default source for <entry>s or <entrytbl>s starting in this column. For align="char" on an <entry> in the column, horizontal character offset is the percent of the current column width to the left of the (left edge of the) alignment character.
Declared Value = NUTOKEN
Default = IMPLIED, from closest ancestor: <entrytbl> if any or <tgroup>.

Element and attribute description for <spanspec>Element/AttributeFull NameDescription

<spanspec

namest =x

nameend =x

spanname =x

colsep =x

rowsep =x

align =x

Spanned Column Specification

Identifies a horizontal span of columns and associated attributes that can subsequently be referenced by its spanname for repeated use in <entry>s or <entrytbl>s in different <row>s. A <spanspec> is defined in its context: <tgroup> or <entrytbl>. (The <spanspec>s from the containing <tgroup> apply to <tbody>.) A <spanspec> uses column names from <colspec>s defined in that context. It gets default values from the <colspec> that provides the namest. Namest and nameend identify the first and last columns in increasing left-to-right order that identify the span. The reason colname is used rather than colnum in identifying <spanspec> is that the names are independent of revisions that may change the number of inserted/deleted columns, as long as namest remains to the left of (has a smaller colnum than) nameend. In a <thead> or <tfoot>, if any <colspec>s are redefined, the <tgroup> <spanspec>s are ignored in references to spanname from <entry>s within this <thead> or <tfoot>. When such redefinition occurs, any spaing should be by namest and nameend.

Required Attributes

NAMEST: Name of leftmost column of span. Name must refer to some colname in a <colspec> of the nearest ancestor <entrytbl> if any or <tgroup>.
Declared value = NMTOKEN

NAMEEND: Name of rightmost column of span. Name must refer to some colname in a <colspec> of the nearest ancestor <entrytbl> if any or <tgroup>.
Declared value = NMTOKEN

SPANNAME: Name of the horizontal span. Source for <entrytbl> or <entry>.
Declared value = NMTOKEN

Optional Attributes

COLSEP: Default for all <entry>s (or <entrytbl>s) that refer to this spanname in this context <tgroup> or <entrytbl>. If other than zero, default is to display the internal column ruling to the right of any affected <entry> (or <entrytbl>); if zero, default to not display it. Ignored for the last column, where the table frame setting applies.
Declared Value = %yesorno; (NUMBER)
Default = IMPLIED, from namest column's <colspec>.

ROWSEP: Default for top <row> of <entry>s (or <entrytbl>s) that refer to this spanname in this context <tgroup> or <entrytbl>. If other than zero, display the internal horizontal row ruling below each <entry> or <entrytbl>. If zero, do not display it. Ignored for the last row of the table, where the frame specification determines the ruling.
Declared Value = %yesorno; (NUMBER)
Default = IMPLIED, from namest column's <colspec>.

ALIGN: Text horizontal position within the spanning columns.
Declared Value = left, (quad flush left), center (centered), right (quad flush right), justify (both quad left and right), or char (positioned by charoff).
Possible default source for <entry> or <entrytbl> referring to this spanname.
Default = IMPLIED (means use value from tgroupstyle if any, else "center".)

char =x

CHAR: Default for all <entry>s (or <entrytbl>s) that refer to this spanname in this <tgroup>; or within an <entrytbl> for all <entry>s that refer to the spanname local to that <entrytbl>. If align="char", the value is the single alignment character on which the first to occur of this character in any <entry> that uses this spanname with implied charoff and align="char" is aligned. Entries not containing this character are right-aligned to the left of the charoff position. The char shall not be an SDATA entity.
Declared Value = CDATA
 Default = IMPLIED, from namest column's <colspec>.

charoff =x>

CHAROFF: Default for all <entry>s (or <entrytbl>s) that refer to this spanname in this <tgroup>; or within an <entrytbl> for all <entry>s that refer to the local spanname from a <spanspec> in that <entrytbl>. For align="char", provides the percent of the width of the current span of columns to the left of the (left edge of) the alignment character for <entry>s that use this spanname with implied charoff and align="char".
Declared Value = NUTOKEN
 Default = IMPLIED, from namest column's <colspec>.

Element and attribute description for <thead>Element/AttributeFull NameDescription

<thead

Table Head

Identifies the heading <row>s of a <tgroup> or <entrytbl>, displayed as the first rows, and again at the top of any continuation after a physical break between <rows> in <tbody>.

Any occurrence of <colspec> to redefine a column redefines the full set with its own name space and using the same total width as the enclosing <tgroup> or <entrytbl>. (An implicit default <colspec> with a width of "1*" is assumed for any <colspec> not explicitly redefined.) These redefined <colspec>s apply only to the contained <entry>s. References to spanname in such <entry>s are not supported; if spanning is required, use namest and nameend. If no <colspec>s occur in this <thead>, the <colspec> and <spanspec> sets of the containing <tgroup> apply.

Optional Attributes

valign =x

VALIGN: Default text vertical positioning within the <entry>s.
Declared Value = top, middle (approximately vertically centered), or bottom. Provides default value for <row>s and <entry>s in <thead>.
Default = IMPLIED (implies "bottom").

%secur;>

%SECUR;: Any of the attributes in the associated Attribute Set may be used with this element.
 Default = As appropriate for each attribute in the set.

Element and attribute description for <tfoot>Element/AttributeFull NameDescription

<tfoot

Table Foot

Identifies the <row>s of footer information that are displayed after the <tbody> and also at the bottom of any <tbody> rows before a physical break in the <tgroup> in which the <tfoot> is defined.
Any occurrence of <colspec> to redefine a column redefines the full set with its own name space and using the same total width as the enclosing <tgroup> or <entrytbl>. (An implicit default <colspec> with a width of "1*" is assumed for any <colspec> not explicitly redefined.) These redefined <colspec>s apply only to the contained <entry>s. References to spanname in such <entry>s are not supported; if spanning is required, use namest and nameend. If no <colspec>s occur in this <tfoot>, the <colspec> and <spanspec> sets of the containing <tgroup> apply.

Optional Attributes

valign =x

VALIGN: Default Text vertical positioning within the <entry>s.
Declared Value = top, middle (approximately vertically centered), or bottom. Provides default value for <row>s and <entry>s in <tfoot>.
Default = IMPLIED (implies "top").

%secur;>

%SECUR;: Any of the attributes in the associated Attribute Set may be used with this element.
 Default = As appropriate for each attribute in the set.

Element and attribute description for <tbody>Element/AttributeFull NameDescription

<tbody

Table Body

Identifies the body of a <tgroup> or <entrytbl>.

Optional Attributes

valign =x

VALIGN: Default Text vertical positioning within the <entry>s.
Declared Value = top, middle (approximately vertically centered), or bottom. Provides default value for <row> and <entry>s in <tbody>.
Default = IMPLIED (implies "top")

%secur;>

%SECUR;: Any of the attributes in the associated Attribute Set may be used with this element.
 Default = As appropriate for each attribute in the set.

Element and attribute description for <row>Element/AttributeFull NameDescription

<row

Row in Table or Entry Table

Identifies the row information in a <thead>, <tbody>, or <tfoot> element. Default values come from the enclosing <tgroup> or <entrytbl> attlist values for like-named attributes. Within an <entrytbl>, <row> defaults are from that <entrytbl> rather than the <tgroup>.
The number of columns consumed by the <entry>s and <entrytbl>s in a row including their spans, and by columns encroached by an <entry> with morerows from a prior row of a <tgroup>, shall not exceed the cols attribute value of the context for either <tgroup> or <entrytbl>. It is an error if more than one <entry> or <entrytbl> would fill any column of a <row>, including by horizontal spanning, or morerows vertical spanning.

Optional Attributes

rowsep =x

ROWSEP: Default for all <entry>s or <entrytbl>s starting in this <row> that do not specify rowsep. If other than zero, display the internal horizontal row ruling below an <entry> or <entrytbl> in the <row>. If zero, do not display it. Rowsep is ignored for the last <row> of the <tgroup> where the frame specification determines the ruling. It is also ignored for the last row of an <entrytbl> where the rowsep for that <entrytbl> determines the ruling.
Declared Value = %yesorno; (NUMBER)
Default = IMPLIED, from enclosing <row>, the <colspec> or <spanspec> with that namest, <entrytbl>, <tgroup>, or <table>.

valign =x

VALIGN: Text vertical positioning default for <entry>s and <entrytbl>s in a <row>.
 Declared Value = top, middle (approximately vertically centered), or bottom.
 Default = IMPLIED, inheriting from <thead>, <tbody>, or <tfoot> of current context: <entrytbl> else <tgroup>.

%secur;>

%SECUR;: Any of the attributes in the associated Attribute Set may be used with this element.
 Default = As appropriate for each attribute in the set.

Element and attribute description for <entrytbl>Element/AttributeFull NameDescription

<entrytbl

Entry Table

An <entrytbl> takes the place of an <entry>, but fits into a single <row> of <tbody> in a <tgroup>. The content model for an <entrytbl> is the same as that of a <tgroup> except that <tfoot> is omitted and <entrytbl> is self-excluding.
 The name space for defining colnames and spannames and referencing them by <entry>s therein is local to the <entrytbl>. The different name space of the ancestral <tgroup> only affects the colname, namest, nameend, or spanname used to position the <entrytbl> itself. An <entrytbl> permits subdivisions in place of an <entry> or horizontal span of <entry>s into additional (sub)columns and (sub)rows.

Note: Several <entrytbl>s may occur in the same <tbody> <row>, and these could have a different number of (sub)rows. There is no implication of alignment of (sub)rows in different <entrytbl>s in the same <row> of the <tgroup> in <tbody>, or of (sub)columns in different <entrytbl>s in the same column of the <tgroup> in <tbody>.
Default values for like-named attributes come from the nearest element identified as influencing this <entrytbl>, in the same manner as for an <entry>. The values may come from explicit attributes with values from <table>, <tgroup>, <spanspec> (for spanname), or <colspec> (defining namest, nameend, or colname), <tbody>, or <row>. Note that <colspec> and <spanspec> are not strictly in the ancestral lineage.

cols =x

tgroupstyle =x

colname =x

namest =x

nameend =x

spanname =x

colsep =x

rowsep =x

The number of columns should be determined by the cols attribute on the <entrytbl>, not by the number of <colspec>s actually defined. If the number in cols is larger than the number of <colspec>s, then additional <colspec>s of length "1*" should be inferred. <colspec>s can be numbered or unnumbered, and if numbered should be in increasing sequential order starting at 1. Unnumbered <colspec>s are interpreted as being numbered incrementally (one more than the previous column number), with the first <colspec> starting at 1. Any mismatch or duplication in <colspec> numbering, or the number of <colspec>s greater than cols, is an error.

Required Attribute

COLS: Number of columns in the <entrytbl>.
 Declared Value = NUMBER

Optional Attributes

TGROUPSTYLE: A unique table group style defined by a style specification. The tgroupstyle attribute for <entrytbl> is interpreted exactly as at the <tgroup> level.
 Declared Value = NMTOKEN
Default = IMPLIED (no external style attribute definitions specified)

COLNAME: Column of <entrytbl> referencing a colname of some <colspec> in the containing <tgroup>.
Declared Value = NMTOKEN
Default = IMPLIED (implies next column unless a span is specified by spanname, or the pair namest and nameend, or just namest appears.)

NAMEST: Name of leftmost column of span. Name must reference some colname of a <colspec> defined in the ancestral <tgroup>, not in a <colspec> of the <entrytbl> itself. Colsep and rowsep are determined from the left side of a span.
Declared value = NMTOKEN
Default = IMPLIED (implies this attribute has no effect on spanning or on determining the current column)

NAMEEND: Name of rightmost column of span. Names must reference some colname of a <colspec> of the current <tgroup>, not the <entrytbl>.
Declared value = NMTOKEN
Default = IMPLIED (implies this attribute has no effect on spanning)

SPANNAME: Name of a horizontal span referencing a spanname in a <spanspec> in the enclosing <tgroup> that determines the columns spanned by that <entrytbl>. Spanname takes precedence over a span identified by namest and nameend, which in turn takes precedence over just a namest or just a colname.
Declared Value = NMTOKEN
Default = IMPLIED (implies this attribute has no effect on spanning)

COLSEP: if other than zero, display the internal vertical column ruling at the right of the <entrytbl>, (but not for the last <tgroup> column, where the table frame setting applies). If zero, do not display. The <entrytbl> colsep overrides possibly different colseps on entries in its last column. Default source for <entry>s in <entrytbl>.
Declared Value = %yesorno; (NUMBER)
 Default = IMPLIED, from enclosing <tgroup>.

ROWSEP: If other than zero, display the internal horizontal rulings below <entrytbl> (but not for the last row of the table, where the table frame setting applies). If zero, do not display ruling. The <entrytbl> rowsep overrides possible different rowseps on <entry>s in the last row of the <entrytbl>. Default source for <row>s and possibly <entry>s in <entrytbl>.
Declared Value = %yesorno; (NUMBER)
Default = IMPLIED, from enclosing <row> if any, else either <spanspec> or <colspec> else <tgroup> else <table>.

align =x

ALIGN: Text horizontal position within the column or spanning columns.
Declared Value = left, (quad flush left), center (centered), right (quad flush right), justify (both quad left and right), or char (positioned by charoff).
Possible default source for contained <colspec>, <spanspec>, or <entry>
Default = IMPLIED (means use value from tgroupstyle if any, else from the containing nearest applicable <spanspec>, <colspec>, or <tgroup> or its tgroupstyle. If none, then "left".)

char =x

CHAR: Default alignment character for <entry>s in <entrytbl>. If align="char", the value is the single alignment character on which the first to occur of this character in the <entry> is aligned. If that character does not occur in the <entry>, the <entry> right aligns to the left of the charoff position. The char shall not be an SDATA entity. Only applies for <entry> with #PCDATA text content (not structured content such as random list items).
Declared Value = CDATA
Default = IMPLIED (explicit "" means there is no aligning character).

charoff =x

CHAROFF: Default offset for <entry>s in <entrytbl>. For align="char", percent of the current width to the left of the (left edge of the) alignment character.
 Declared Value = NUTOKEN
Default = IMPLIED, from the <spanspec> or <colspec> from the containing <tgroup> corresponding to spanname if any, else namest if any, else colname. The implied values do not refer to any <colspec> or <spanspec> in the <entrytbl> or in <thead> of the <entrytbl>.

%secur;>

%SECUR;: Any of the attributes in the associated Attribute Set may be used with this element.
 Default = As appropriate for each attribute in the set.

Element and attribute description for <entry>Element/AttributeFull NameDescription

<entry

Entry in Table

Identifies an <entry> in a <row> of a <thead>, <tfoot>, or <tbody> in a <tgroup> or <entrytbl>.
Default values for colsep, rowsep, valign, align, char, and charoff may come from like-named attributes from the nearest element identified as influencing this <entry>. The values may come from <table> (or a tabstyle therein), <tgroup> (or a tgroupstyle therein), <spanspec> (defining the spanname), <colspec> (defining namest or colname), <tbody>, <row>, or when within an <entrytbl> those elements so contained, or its tgroupstyle. Note that <colspec> and <spanspec> are not strictly in the element lineage.

An <entry> not specified by a spanname gets its defaults from its starting column. An <entry> specified by a spanname gets its defaults first from the corresponding <spanspec> which in turn gets its defaults from the <colspec> that defines the namest of that <spanspec>. In <thead> or <tfoot>, when there are any occurrences of <colspec> to redefine a column, a reference to a colname, namest, or nameend in an <entry> refers to those defined by the <colspec>s of the corresponding <thead> or <tfoot> and not those defined by the enclosing <tgroup> or <entrytbl>. A row into which a vertical straddle occurs because of a morerows=N in an <entry> from a prior row has no <entry> in that column, so an <entry> without specific starting column falls in the next non-straddled column. Within an <entrytbl>, inheritance for an <entry> is from <entrytbl> (or its <thead> if the <entry> is also in it) instead of <tgroup>, and cannot be from <thead> or <tfoot> of that <tgroup>.

The precedence for determining the column(s) for any <entry> or <entrytbl> is:

  • span before individual column:
    • spanname
    • namest through nameend if no spanname
  • individual column:
    • namest
    • colname if no namest
    • implicit if neither namest or colname

 The implicit resolution places the <entry> (or <entrytbl>) in the next available column.

It is an error if

  • columns are referenced whose names are neither defined as spanname in a <spanspec>, nor both namest and nameend, nor colname in a <colspec> for that <tgroup> or <entrytbl>;
  • any of those names are multiply defined in different <colspec>s or <spanspec>s of that <tgroup> or that <entrytbl>;
  • any portions of different <entry>s overlap each other or other <entrytbls>;
  • morerows vertical straddling extends beyond the rows appropriate to that <thead>, <tfoot>, or <tbody>;
  • too many <entry>s or <entrytbl>s occur in any <row>, exceeding the cols on the <tgroup> (or cols on a <entrytbl>);
  • any colnames used in namest and nameend to define a span in an <entry> or <entrytbl> refers to the namest column that is not to the left of the nameend column.
  • An <entry> specifies a start column via <entry>'s namest, colname, or spanname that is to the left of the column where the <entry> would be placed by default.

 If the content of an <entry> is too deep for the available depth of a page, the information to be presented is not specified.

colname =x

namest =x

nameend =x

spanname =x

morerows =x

colsep =x

rowsep =x

align =x

char =x

charoff =x

rotate =x

valign =x

%secur;>

Optional Attributes

COLNAME: Column name of <entry>. Ignore if spanname or namest are present. It is an error if colname is not defined in a <colspec> of the current context: <tgroup>, <thead> or <tfoot>, or <entrytbl>.
Declared Value = NMTOKEN
Default = IMPLIED (column(s) determined by namest, spanname, or implicitly the next.)

NAMEST: Name of leftmost column of span. The value must be some colname in a <colspec> of the current context: <tgroup>, <thead>, <tfoot>, or <entrytbl>. If no span is indicated, either by value for spanname, or both namest and nameend, or just namest alone, then use the next column: after the end of the prior <entry> or <entrytbl> also skipping any encroachment from a prior row via morerows.
 Declared value = NMTOKEN
Default = IMPLIED (implies this attribute has no effect on spanning)

NAMEEND: Name of rightmost column of span. The value must be some colname in a <colspec> of the current context: <tgroup>, <thead>, <tfoot>, or <entrytbl>. The column must be to the right of the column identified by namest. Nameend without namest is ignored.
Declared value = NMTOKEN
Default = IMPLIED (implies this attribute has no effect on spanning)

SPANNAME: Name of a horizontal span in the current context: <tgroup> or <entrytbl> that determines the columns spanned by that <entry>. Spanname takes precedence over a span identified by namest and nameend, which in turn takes precedence over just a namest or just a colname. It is an error if the spanname doesn't match that in a <spanspec> defined in the current context: <tgroup> or <entrytbl>.
Declared Value = NMTOKEN
Default = IMPLIED (implies this attribute has no effect on spanning)

MOREROWS: Number of additional rows in a vertical straddle. There shall be at least that many more rows in the appropriate <thead>, <tfoot>, or <tbody>. Any entries with morerows that would attempt to extend further downward is an error.
 The rowsep is determined when the entry is processed, in the top row if morerows is positive.
Declared Value = NUMBER
Default = IMPLIED (interpret as "0")

COLSEP: If other than zero, display the internal vertical column ruling at the right of the <entry>; if zero, do not display it. Ignored for the last column of a <row>, where the frame setting (or <entrytbl> right ruling) applies. The COLSEP value is determined by the leftmost column of a spanning entry, even though its effect is on the last column of such spanning entry.Declared Value = %yesorno; (NUMBER)Default = IMPLIED, from <colspec> or <spanspec>

ROWSEP: If other than zero, display the internal horizontal row ruling below the <entry>; if zero, do not display it. Ignored for the last <row> of <tgroup> where the table frame applies. Also ignored for the last row of an <entrytbl> that is not also the last row of the <tgroup> where the rowsep for the <entrytbl> applies. Rowsep for the entry is determined in the topmost row in which the entry occurs, even though its effect may be morerows below.
 Declared Value = %yesorno; (NUMBER)
Default = IMPLIED, from the closest ancestor with explicit specification of rowsep:

  • <row> then
  • <spanspec> or <colspec> then
  • <tgroup> or <entrytbl> then
  • <table>.

ALIGN: Text horizontal position within the column or spanning columns. Applies to text that is #PCDATA or other inline elements not further contained in another element with its own formatting style, such as paragraph, list, or annotation though such elements could inherit their alignment from this value.
Declared Value = left, (quad flush left), center (centered), right (quad flush right), justify (both quad left and right), or char (align on leftmost of char, positioned by charoff).
 Default = IMPLIED (means use value from nearest applicable <spanspec> or <colspec> of the nearest ancestral <entrytbl> or <tgroup> or their tgroupstyle. If none, then "left".)

CHAR: If align="char", the value is the single alignment character on which the first to occur of this character in the <entry> is aligned. If that character does not occur in the <entry>, the <entry> aligns right justified to the left of the charoff position. The char shall not be an SDATA entity.
Declared Value = CDATA
 Default = IMPLIED (explicit "" implies there is no aligning character). A missing char inherits from closest ancestor with explicit char value: <colspec> or <spanspec> then <entrytbl> or <tgroup>.

CHAROFF: For align="char", percent of the current column width to the left of the (left edge of) the alignment character specified in the char value.
Declared Value = NUTOKEN
 Default = IMPLIED (inherit from <colspec> or <spanspec> then <tgroup> or <entrytbl>).

ROTATE: Content is either in the orientation of the table (if the value is zero) or 90 degrees counterclockwise to table orientation (if the value is other than zero).
 If the table orient="land", rotate="1" achieves text "upside-down" relative to the normally oriented page heads and feet.
Declared Value = %yesorno; (NUMBER)
Default = IMPLIED (interpret as "0")

VALIGN: Text vertical positioning within the <entry>.
Declared Value = top, middle (approximately vertically centered), or bottom.
Default = #IMPLIED from the closest ancestor with explicit specification of valign:

  • <row> then
  • <thead> or <tfoot> or <tbody>.

%SECUR;: Any of the attributes in the associated Attribute Set may be used with this element.
 Default = As appropriate for each attribute in the set.