Harvey Bingham, Interleaf
Chair, Table Interchange Subcommittee
SGML Open
1995 October 19
© 1995 SGML Open
Permission to reproduce parts or all of this information in any form is granted to SGML Open members provided that this information by itself is not sold for profit and that SGML Open is credited as the author of this information.
This SGML Open 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
This SGML Open 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:
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 DECLARATION MODULE --> <!-- This set of declarations defines the CALS Table Model as of the date shown in the Formal Public Identifier (FPI) for this entity. This set of declarations may be referred to using a public external entity declaration and reference as shown in the following two lines: <!ENTITY % calstbls PUBLIC "-//USA-DOD//DTD Table Model 951010//EN"> %calstbls; If various parameter entities used within this set of declarations are to be given non-default values, the appropriate declarations should be given before calling in this package (i.e., before the "%calstbls;" reference). NOTE: This set of declarations assumes a NAMELEN of 32 as is used in the standard CALS defined SGML declaration. --> <!-- This entity includes a set of element and attribute declarations that 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, available as a separate entity, should be used in conjunction with this entity. --> <!-- In order to use the CALS table model, various parameter entity declarations are required. A brief description is as follows: ENTITY NAME WHERE USED WHAT IT IS %bodyatt In ATTLIST of: Additional (non-table related) table element(s) attributes on the overall (wrapper) table element(s) %secur In ATTLIST of: Additional (non-table related) table element(s) attributes on all the listed <tgroup> elements <tbody> table head and foot element(s) <row> <entrytbl> <entry> %yesorno In ATTLIST of: An attribute declared value almost all elements for a "boolean" attribute %titles In content model of: The "title" part of the model table element(s) group for the table element(s) %paracon In content model of: The "text" (data content) part <entry> of the model group for <entry> %tbl.table.name In declaration of: The name(s) of the "table" table element(s) element(s) %tbl.table-titles.mdl In content model of: The model group for the title table elements(s) part of the content model for table element(s) %tbl.table-main.mdl In content model of: The model group for the main part table elements(s) (not including titles) of the content model for table element(s) %tbl.table.mdl In content model of: The model group for the content table elements(s) model for table element(s), often (and by default) defined in terms of %tbl.table-titles.mdl and %tbl.table-main.mdl %tbl.table.excep In content model of: The exceptions for the content table element(s) model for table element(s) %tbl.table.att In ATTLIST of: Additional attributes on the table element(s) table element(s) %tbl.tgroup.mdl In content model of: The model group for the content <tgroup> model for <tgroup> %tbl.tgroup.att In ATTLIST of: Additional attributes on the <tgroup> <tgroup> and <entrytbl> elements <entrytbl> %tbl.hdft.name In declaration of: The name(s) of the table head/foot element(s) head and foot element(s) %tbl.hdft.mdl In content model of: The model group for the content head/foot element(s) model for head/foot element(s) %tbl.hdft.excep In content model of: The exceptions for the content head/foot element(s) model for head/foot element(s) %tbl.row.mdl In content model of: The model group for the content <row> model for <row> %tbl.row.excep In content model of: The exceptions for the content <row> model for <row> %tbl.entrytbl.mdl In content model of: The model group for the content <entrytbl> model for <entrytbl> %tbl.entrytbl.excep In content model of: The exceptions for the content <entrytbl> model for <entrytbl> %tbl.entry.mdl In content model of: The model group for the content <entry> model for <entry> %tbl.entry.excep In content model of: The exceptions for the content <entry> model for <entry> If any of these parameter entities are not declared before this set of declarations is referenced, this set of declarations will make the following default definitions for all of these have parameter entities. --> <!-- These definitions are not directly related to the table model, but are used in the default CALS table model and are usually defined elsewhere (and prior to the inclusion of this table module) in a CALS DTD. --> <!ENTITY % bodyatt ""> <!ENTITY % secur ""> <!ENTITY % yesorno 'NUMBER' -- no if zero(s), yes if any other digits value --> <!ENTITY % titles 'title?'> <!ENTITY % paracon '#PCDATA' -- default for use in entry content --> <!-- The parameter entities as defined below provide the CALS table model as published (as part of the Example DTD) in MIL-HDBK-28001. These following declarations provide the CALS-compliant default definitions for these entities. However, these entities can and should be redefined (by giving the appropriate parameter entity declaration(s) prior to the reference to this Table Model declaration set entity) to fit the needs of the current application. --> <!ENTITY % tbl.table.name "(table|chart)"> <!ENTITY % tbl.table-titles.mdl "%titles,"> <!ENTITY % tbl.table-main.mdl "(tgroup+|graphic+)"> <!ENTITY % tbl.table.mdl "%tbl.table-titles.mdl; %tbl.table-main.mdl;"> <!ENTITY % tbl.table.excep "-(table|chart|figure)"> <!ENTITY % tbl.table.att ' tabstyle NMTOKEN #IMPLIED tocentry %yesorno; #IMPLIED shortentry %yesorno; #IMPLIED orient (port|land) #IMPLIED pgwide %yesorno; #IMPLIED '> <!ENTITY % tbl.tgroup.mdl "colspec*,spanspec*,thead?,tfoot?,tbody"> <!ENTITY % tbl.tgroup.att ' tgroupstyle NMTOKEN #IMPLIED '> <!ENTITY % tbl.hdft.name "(thead|tfoot)"> <!ENTITY % tbl.hdft.mdl "colspec*,row+"> <!ENTITY % tbl.hdft.excep "-(entrytbl)"> <!ENTITY % tbl.row.mdl "(entry|entrytbl)+"> <!ENTITY % tbl.row.excep "-(pgbrk)"> <!ENTITY % tbl.entrytbl.mdl "colspec*,spanspec*,thead?,tbody"> <!ENTITY % tbl.entrytbl.excep "-(entrytbl|pgbrk)"> <!ENTITY % tbl.entry.mdl "(para|warning|caution|note|legend|%paracon;)*"> <!ENTITY % tbl.entry.excep "-(pgbrk)"> <!-- ===== Element and attribute declarations follow. ===== --> <!-- Default declarations previously defined in this entity and referenced below include: ENTITY % tbl.table.name "(table|chart)" ENTITY % tbl.table-titles.mdl "%titles," ENTITY % tbl.table-main.mdl "(tgroup+|graphic+)" ENTITY % tbl.table.mdl "%tbl.table-titles; %tbl.table-main.mdl;" ENTITY % tbl.table.excep "-(table|chart|figure)" ENTITY % tbl.table.att ' tabstyle NMTOKEN #IMPLIED tocentry %yesorno; #IMPLIED shortentry %yesorno; #IMPLIED orient (port|land) #IMPLIED pgwide %yesorno; #IMPLIED ' --> <!ELEMENT %tbl.table.name; - - (%tbl.table.mdl;) %tbl.table.excep; > <!ATTLIST table frame (top|bottom|topbot|all|sides|none) #IMPLIED colsep %yesorno; #IMPLIED rowsep %yesorno; #IMPLIED %tbl.table.att; %bodyatt; %secur; > <!-- Default declarations previously defined in this entity and referenced below include: ENTITY % tbl.tgroup.mdl "colspec*,spanspec*,thead?,tfoot?,tbody" ENTITY % tbl.tgroup.att ' tgroupstyle NMTOKEN #IMPLIED ' --> <!ELEMENT tgroup - O (%tbl.tgroup.mdl;) > <!ATTLIST tgroup cols NUMBER #REQUIRED %tbl.tgroup.att; colsep %yesorno; #IMPLIED rowsep %yesorno; #IMPLIED align (left|right|center|justify|char) #IMPLIED char CDATA #IMPLIED charoff NUTOKEN #IMPLIED %secur; > <!ELEMENT colspec - O EMPTY > <!ATTLIST colspec colnum NUMBER #IMPLIED colname NMTOKEN #IMPLIED colwidth CDATA #IMPLIED colsep %yesorno; #IMPLIED rowsep %yesorno; #IMPLIED align (left|right|center|justify|char) #IMPLIED char CDATA #IMPLIED charoff NUTOKEN #IMPLIED > <!ELEMENT spanspec - O EMPTY > <!ATTLIST spanspec namest NMTOKEN #REQUIRED nameend NMTOKEN #REQUIRED spanname NMTOKEN #REQUIRED colsep %yesorno; #IMPLIED rowsep %yesorno; #IMPLIED align (left|right|center|justify|char) #IMPLIED char CDATA #IMPLIED charoff NUTOKEN #IMPLIED > <!-- Default declarations previously defined in this entity and referenced below include: ENTITY % tbl.hdft.name "(thead|tfoot)" ENTITY % tbl.hdft.mdl "colspec*,row+" ENTITY % tbl.hdft.excep "-(entrytbl)" --> <!ELEMENT %tbl.hdft.name; - O (%tbl.hdft.mdl;) %tbl.hdft.excep;> <!ATTLIST %tbl.hdft.name; valign (top|middle|bottom) #IMPLIED %secur; > <!ELEMENT tbody - O (row+)> <!ATTLIST tbody valign (top|middle|bottom) #IMPLIED %secur; > <!-- Default declarations previously defined in this entity and referenced below include: ENTITY % tbl.row.mdl "(entry|entrytbl)+" ENTITY % tbl.row.excep "-(pgbrk)" --> <!ELEMENT row - O (%tbl.row.mdl;) %tbl.row.excep;> <!ATTLIST row rowsep %yesorno; #IMPLIED valign (top|middle|bottom) #IMPLIED %secur; > <!-- Default declarations previously defined in this entity and referenced below include: ENTITY % tbl.entrytbl.mdl "colspec*,spanspec*,thead?,tbody" ENTITY % tbl.entrytbl.excep "-(entrytbl|pgbrk)" ENTITY % tbl.tgroup.att ' tgroupstyle NMTOKEN #IMPLIED ' --> <!ELEMENT entrytbl - - (%tbl.entrytbl.mdl) %tbl.entrytbl.excep; > <!ATTLIST entrytbl cols NUMBER #REQUIRED %tbl.tgroup.att; colname NMTOKEN #IMPLIED spanname NMTOKEN #IMPLIED namest NMTOKEN #IMPLIED nameend NMTOKEN #IMPLIED colsep %yesorno; #IMPLIED rowsep %yesorno; #IMPLIED align (left|right|center|justify|char) #IMPLIED char CDATA #IMPLIED charoff NUTOKEN #IMPLIED %secur; > <!-- Default declarations previously defined in this entity and referenced below include: ENTITY % paracon "#PCDATA" ENTITY % tbl.entry.mdl "(para|warning|caution|note|legend|%paracon;)*" ENTITY % tbl.entry.excep "-(pgbrk)" --> <!ELEMENT entry - O (%tbl.entry.mdl;) %tbl.entry.excep; > <!ATTLIST entry colname NMTOKEN #IMPLIED namest NMTOKEN #IMPLIED nameend NMTOKEN #IMPLIED spanname NMTOKEN #IMPLIED morerows NUMBER #IMPLIED colsep %yesorno; #IMPLIED rowsep %yesorno; #IMPLIED align (left|right|center|justify|char) #IMPLIED char CDATA #IMPLIED charoff NUTOKEN #IMPLIED rotate %yesorno; #IMPLIED valign (top|middle|bottom) #IMPLIED %secur; >
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/Attribute | Full Name | Description |
---|---|---|
<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 | 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 =x | 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 =x | 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/Attribute | Full Name | Description |
---|---|---|
<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. | ||
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 =x | COLS: Number of columns in the <tgroup>.
Declared Value = NUMBER | |
Optional Attributes | ||
tgroupstyle =x | 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 =x | 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/Attribute | Full Name | Description |
---|---|---|
<colspec | 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> apply 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 =x | 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 =x | 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 =x | 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. |
|
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 =x | 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 =x | 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.
| |
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 <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 =x | 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 =x> | 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/Attribute | Full Name | Description |
---|---|---|
<spanspec | 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 spanning should be by namest and nameend. |
Required Attributes | ||
namest =x | 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 =x | 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>. | |
spanname =x | SPANNAME: Name of
the horizontal span. Source for <entrytbl> or <entry>. Declared value = NMTOKEN | |
Optional Attributes | ||
colsep =x | 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. | |
rowsep =x | 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 =x | 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/Attribute | Full Name | Description |
---|---|---|
<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/Attribute | Full Name | Description |
---|---|---|
<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/Attribute | Full Name | Description |
---|---|---|
<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/Attribute | Full Name | Description |
---|---|---|
<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/Attribute | Full Name | Description |
---|---|---|
<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. | ||
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 =x | COLS: Number of columns in the <entrytbl>.
Declared Value = NUMBER | |
Optional Attributes | ||
tgroupstyle =x | 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 =x | 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 =x | 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 =x | 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 =x | 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 =x | 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 =x | 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.
|
Element/Attribute | Full Name | Description |
---|---|---|
<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:
The implicit resolution places the <entry> (or <entrytbl>) in the next available column. | ||
It is an error if
| ||
If the content of an <entry> is too deep for the available depth of a page, the information to be presented is not specified. | ||
Optional Attributes | ||
colname =x | 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 =x | 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 =x | 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 =x | 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 =x | 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 =x | 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 =x | 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:
| |
align =x | 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 =x | 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 =x | 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 =x | 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 =x | 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:
| |
%secur;> | %SECUR;: Any of the
attributes in the associated Attribute Set may be used with this element.
|