OASIS Technical Resolution TR 9503:1995
Harvey Bingham, Interleaf
Chair, Table Interchange Subcommittee
OASIS
1996 May 8
© 1995, 1996 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 Resolution defines an Exchange
subset of the full CALS table model DTD described in
SGML Open Technical Memorandum TM 9502:1995. This
Exchange subset has been chosen as being a useful subset
of the complete CALS table model such that, if an application's
tables are tagged according to this subset, there is
a high probability that the table will be interoperable
among the great majority of OASIS vendor products. See
also the OASIS Technical Research
Paper TRP 9501:1995 on Table Interoperability: Issues
for the CALS table model.
Note that the set of element and attribute declarations
in the markup declaration module section of this document
partially defines the Exchange 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 Resolution 9503:1995
Committee Draft: 1995 November 21
Final Draft Technical Resolution: 1996 January
12
Final Technical Resolution: 1996 May 8
Introduction
This OASIS Technical Resolution defines an Exchange
subset of the full CALS table model DTD described in
OASIS Technical Memorandum TM 9502:1995. This Exchange
subset has been chosen as being a useful subset of the
complete CALS table model such that, if an application's
tables are tagged according to this subset, there is
a high probability that the table will be interoperable
among the great majority of OASIS vendor products. See
also the OASIS Technical Research Paper TRP 9501:1995
on Table Interoperability.
Specific changes of substance between this Exchange
Model and the CALS 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;
- eliminate <entrytbl>;
- eliminate <tfoot>;
- eliminate <spanspec>;
- eliminate the char and charoff attributes from
<tgroup>;
- eliminate the rotate attribute from <entry>;
- eliminate references to security attributes.
Finally, this declaration set is assigned a Formal
Public Identifier.
Note that the set of element and attribute declarations
in the next section of this document partially defines
the Exchange 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 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.
Exchange Table model DTD module
|
|
|
<!-- EXCHANGE TABLE MODEL DECLARATION MODULE
-->
<!-- This set of declarations defines the Exchange
Table Model as of thedate shown in the Formal Public
Identifier (FPI) for this entity.This set of declarations
may be referred to using a public externalentity
declaration and reference as shown in the following
two lines:
<!ENTITY % calstbls PUBLIC "-//OASIS//DTD
Exchange Table Model 19960430//EN">
%calstbls;
If various parameter entities used within this set
of declarationsare to be given non-default values,
the appropriate declarationsshould 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 inthe standard
CALS defined SGML declaration.--><!-- This
entity includes a set of element and attribute declarationsthat
partially defines the Exchange table model.
However, the modelis not well-defined without the
accompanying natural languagedescription of the
semantics (meanings) of these various elements,attributes,
and attribute values. The semantic writeup,
also availablefrom OASIS, should be used in conjunction
with this entity.--><!-- In order to use the
Exchange table model, various parameter entitydeclarations
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)%yesorno
In ATTLIST of:
An attribute declared valuealmost all elements
for a "boolean" attribute%titles
In content model of: The "title"
part of the modeltable element(s)
group for the table element(s)%paracon
In content model of: The "text"
(logical content)<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 titletable 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
parttable elements(s)
(not including titles) of thecontent model for table
element(s)%tbl.table.mdl In content
model of: The model group for
the contenttable elements(s)
model for table element(s),often (and by default)
definedin terms of %tbl.table-titles.mdland %tbl.table-main.mdl%tbl.table.excep
In content model of: The exceptions
for the contenttable element(s)
model for table element(s)%tbl.table.att
In ATTLIST of:
Additional attributes on thetable 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> element%tbl.tbody.att
In ATTLIST of:
Additional attributes on the<tbody>
<tbody> element%tbl.colspec.att In ATTLIST
of:
Additional attributes on the<colspec>
<colspec> element%tbl.hdft.name
In declaration of:
The name(s) of the tablehead/foot element(s)
head and foot element(s)%tbl.hdft.mdl
In content model of: The model
group for the contenthead/foot element(s)
model for head/foot element(s)%tbl.hdft.excep
In content model of: The exceptions
for the contenthead/foot element(s)
model for head/foot element(s)%tbl.hdft.att
In ATTLIST of:
Additional attributes on thehead/foot element(s)
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.row.att
In ATTLIST of:
Additional attributes on the<row>
<row> element%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>%tbl.entry.att
In ATTLIST of:
Additional attributes on the<entry>
<entry> elementThis set of declarations will
use the default definitions shown belowfor any of
these parameter entities that are not declared before
this set of declarations is referenced.--><!--
These definitions are not directly related to the
table model, but are used in the default CALS table
model and may be defined elsewhere (and prior to
the inclusion of this table module) in the referencing
DTD. -->
<!ENTITY % bodyatt "">
<!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
change and simplify the CALS table model as published
(as part of the Example DTD) in MIL-HDBK-28001.
Theresulting simplified DTD has support from the
OASIS vendors and istherefore more interoperable
among different systems.These following declarations
provide the Exchange default definitionsfor these
entities. However, these entities can 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.Note, however,
that changes may have significant effect on the
ability tointerchange table information.
These changes may manifest themselvesin useability,
presentation, and possible structure information
degradation.-->
<!ENTITY % tbl.table.name
"table">
<!ENTITY % tbl.table-titles.mdl "%titles;,">
<!ENTITY % tbl.table-main.mdl "tgroup+">
<!ENTITY % tbl.table.mdl
"%tbl.table-titles.mdl; %tbl.table-main.mdl;">
<!ENTITY % tbl.table.excep
"-(%tbl.table.name)">
<!ENTITY % tbl.table.att
"pgwide %yesorno;
#IMPLIED ">
<!ENTITY % tbl.tgroup.mdl
"colspec*,thead?,tbody">
<!ENTITY % tbl.tgroup.att
"">
<!ENTITY % tbl.tbody.att
"">
<!ENTITY % tbl.colspec.att
"">
<!ENTITY % tbl.hdft.name
"thead">
<!ENTITY % tbl.hdft.mdl
"row+">
<!ENTITY % tbl.hdft.excep
"">
<!ENTITY % tbl.hdft.att
"">
<!ENTITY % tbl.row.mdl
"entry+"><!ENTITY % tbl.row.excep
"">
<!ENTITY % tbl.row.att
"">
<!ENTITY % tbl.entry.mdl
"(%paracon;)*">
<!ENTITY % tbl.entry.excep
"">
<!ENTITY % tbl.entry.att
"">
<!-- ===== Element and attribute declarations
follow. ===== -->
<!--Default declarations previously defined
in this entity andreferenced below include:
ENTITY % tbl.table.name
"table"
ENTITY % tbl.table-titles.mdl "%titles;,"
ENTITY % tbl.table-main.mdl "tgroup+"
ENTITY % tbl.table.mdl
"%tbl.table-titles; %tbl.table-main.mdl;"
ENTITY % tbl.table.excep
"-(%tbl.table.name)"
ENTITY % tbl.table.att
"pgwide
%yesorno;
#IMPLIED "-->
<!ELEMENT %tbl.table.name; - - (%tbl.table.mdl;)
%tbl.table.excep; >
<!ATTLIST %tbl.table.nameframe
(top|bottom|topbot|all|sides|none)
#IMPLIEDcolsep
%yesorno;
#IMPLIEDrowsep
%yesorno;
#IMPLIED%tbl.table.att;%bodyatt;>
<!--Default declarations previously defined
in this entity andreferenced below include:ENTITY
% tbl.tgroup.mdl "colspec*,thead?,tbody"ENTITY
% tbl.tgroup.att ""-->
<!ELEMENT tgroup - O (%tbl.tgroup.mdl;) >
<!ATTLIST tgroupcols
NUMBER
#REQUIREDcolsep
%yesorno;
#IMPLIEDrowsep
%yesorno;
#IMPLIEDalign
(left|right|center|justify|char)
#IMPLIED%tbl.tgroup.att;>
<!--Default declarations previously defined
in this entity andreferenced below include:ENTITY
% tbl.colspec.att ""--><!ELEMENT
colspec - O EMPTY >
<!ATTLIST colspeccolnum
NUMBER
#IMPLIEDcolname
NMTOKEN
#IMPLIEDcolwidth
CDATA
#IMPLIEDcolsep
%yesorno;
#IMPLIEDrowsep
%yesorno;
#IMPLIEDalign
(left|right|center|justify|char)
#IMPLIEDchar
CDATA
#IMPLIEDcharoff
NUTOKEN
#IMPLIED%tbl.colspec.att;>
<!--Default declarations previously defined
in this entity andreferenced below include:ENTITY
% tbl.hdft.name "thead"ENTITY
% tbl.hdft.mdl "row+"ENTITY
% tbl.hdft.excep ""ENTITY
% tbl.hdft.att ""-->
<!ELEMENT %tbl.hdft.name; - O (%tbl.hdft.mdl;)
%tbl.hdft.excep;>
<!ATTLIST %tbl.hdft.name; valign
(top|middle|bottom)
#IMPLIED%tbl.hdft.att;>
<!--Default declarations previously defined
in this entity andreferenced below include:ENTITY
% tbl.tbody.att ""-->
<!ELEMENT tbody - O (row+)>
<!ATTLIST tbodyvalign
(top|middle|bottom)
#IMPLIED%tbl.tbody.att;>
<!--Default declarations previously defined
in this entity andreferenced below include:ENTITY
% tbl.row.mdl
"entry+"ENTITY % tbl.row.excep
""ENTITY % tbl.row.att
""-->
<!ELEMENT row - O (%tbl.row.mdl;) %tbl.row.excep;>
<!ATTLIST rowrowsep
%yesorno;
#IMPLIEDvalign
(top|middle|bottom)
#IMPLIED%tbl.row.att;>
<!--Default declarations previously defined
in this entity andreferenced below include:ENTITY
% paracon
"#PCDATA"ENTITY % tbl.entry.mdl
"(%paracon;)*"ENTITY % tbl.entry.excep
""ENTITY % tbl.entry.att
""-->
<!ELEMENT entry - O (%tbl.entry.mdl;) %tbl.entry.excep;
>
<!ATTLIST entrycolname
NMTOKEN
#IMPLIEDnamest
NMTOKEN
#IMPLIEDnameend
NMTOKEN
#IMPLIEDmorerows
NUMBER
#IMPLIEDcolsep
%yesorno;
#IMPLIEDrowsep
%yesorno;
#IMPLIEDalign
(left|right|center|justify|char)
#IMPLIEDchar
CDATA
#IMPLIEDcharoff
NUTOKEN
#IMPLIEDvalign
(top|middle|bottom)
#IMPLIED%tbl.entry.att;-->
|
Semantic Description for the Exchange Table Model
Note that the above set of element and attribute declarations
in the previous section only partially defines the Exchange
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>
General
The <table> element markup identifies a table.
Values of attributes on the <table> element may
at times be inherited to be used as defaults for its
contained elements. Furthermore, a <table> element
may have some style specification associated with it
that may provide default values for some or all of its
attributes. If a <table> element has no explicit
specification for an attribute but does have an associated
style sheet that gives a specification for this attribute,
then this value shall be used as the value that is inherited
from this element.
Optional attributes
frame
outer table ruling
Describes position of outer rulings.
Declared value
sides (left and right), top (below title), bottom (after
last <row>), 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 that appear at the edges of the table.
Default
IMPLIED (implies value from style specification if
available, if not, implies "all").
colsep
column separators (vertical ruling)
Provides 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>; if zero,
do not display them. Ignored for the rightmost column,
where the frame setting applies.
Declared value
%yesorno; (NUMBER)
Default
IMPLIED (implies value from style specification if
available, if not, implies "1").
rowsep
row separators (horizontal ruling)
Provides default for all <tgroup>s in this <table>.
If other than zero, display the internal horizontal
row ruling below each <entry> ending in a <row>.
If zero, do not display them. Ignored for the last <row>
of the <table> (i.e., the last <row> of
the last <tgroup> in this <table>), where
the frame value applies.
Declared value
%yesorno; (NUMBER)
Default
IMPLIED (implies value from style specification if
available, if not, implies "1").
pgwide
make table span full page width
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). In the absence of an explicit value (or
one implied from the style specification), the system
should attempt to format the table into a galley column
if reasonable, based on explicit <colspec> colwidth
values, galley column width, and possible table indentation
implied by context. If any relative width specifications
exist, they should continue to apply, but the unit proportion
should be first based on the width uncommitted from
the galley column.
In the above paragraph, "if reasonable" is
intended to preclude a system generating columns so
narrow that the entry content is obscured by awkward
line folding, or clipping. For align=char, the content
either side of the alignment character should also be
considered. No explicit algorithm for determining when
a table will fit is provided. Because of the uncertainty
in meaning, interchange of a table should include an
explicit value for pgwide.
%bodyatt;
general body element attributes
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>
General
Each <tgroup> effectively identifies a new portion
of a <table>. The <colspec>s and the colnames
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>.
All <tgroup>s of a <table> shall have the
same width, so the <table> frame can surround
them uniformly. Each <thead> and <tbody>
has that total width as well. For each <tgroup>,
let the minimum <tgroup> width be the sum of the
fixed portions of the set of <colspec> colwidths
in that <tgroup> 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 minimum
<table> width shall be the maximum of all the
minimum <tgroup> widths.
The total width for any <tgroup> may be specified
with some columns having fixed colwidths and others
having proportional widths. When no proportional width
are specified for a given <tgroup>, the width
of that <tgroup> shall be the sum of the fixed
widths of the columns. When any proportional widths
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 the sum of border
widths and column ruling widths and the fixed 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 fid 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. If there are multiple <tgroup>s
in a single table with fixed widths (i.e., no proportional
parts) such that these fixed widths differ from one
another, then it is up to the output system to determine
the interpretation.
Values of attributes on the <tgroup> element
may at times be inherited to be used as defaults for
its contained elements. Furthermore, a <tgroup>
element may have some style specification associated
with it that may provide default values for some or
all of its attributes. If a <tgroup> element has
no explicit specification for an attribute but does
have an associated style sheet that gives a specification
for this attribute, then this value shall be used as
the value that is inherited from this element.
Required attribute
cols
number of columns
Number of columns in the <tgroup>.
Declared value
NUMBER
Optional attributes
colsep
column separators (vertical ruling)
Provides default for all <colspec>s in this
<tgroup>. If other than zero, display the internal
column rulings to the right of <entry>; if zero,
do not display them. Ignored for the last (rightmost)
column, where the frame setting applies. Possible default
source for <colspec> or <entry>.
Declared value
%yesorno; (NUMBER)
Default
IMPLIED (implies value from style specification if
any, else from <table>)
rowsep
row separators (horizontal ruling)
Provides default for <colspec>s in this <tgroup>.
If other than zero, display the internal horizontal
row ruling below each <entry>. If zero, do not
display them. Ignored for the last (bottom) <row>
of the <table> where the frame value applies.
In the last <row> in any <tgroup> other
than the last (or only) in the table, the regular <row>
or <entry> rowsep specifications apply. Possible
default source for <row> or <entry>.
Declared value
%yesorno; (NUMBER)
Default
IMPLIED (implies value from style specification if
any, else from <table>)
align
horizontal alignment of table entry content
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. Default
source for <colspec> align. Possible default source
for <entry>.
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
IMPLIED (means use value from style specification if
any, else "left".)
Element and attribute description for <colspec>
General
Specifies a column, a vertical portion of a <table>.
The default values come from the <tgroup> or <thead>
starting the current (enclosing) group. Each <colspec>
is for a single column in left-to-right order, so it
properly has a column number, colnum, implicitly in
order starting from 1, and an optional column name (colname)
by which it is known when referenced by any <entry>.
Any references from <entry>s within the <thead>
to colname, namest, or nameend refer to values defined
by the set of <colspec>s in the containing <tgroup>.
<Colspec>s from the containing <tgroup>
apply to <thead> and <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 with 1 at the left. Unnumbered <colspec>s
are interpreted as being numbered incrementally (one
more than the previous column number), with the first
<colspec> starting at 1. It is left up to the
implementation how to handle any mismatch in <colspec>
numbering, or a number of <colspec>s greater than
cols. It is recommended that an authoring or editing
implementation or any implementation that verifies the
compliance of the table markup to this Resolution offer
the option of producing a warning message when it encounters
such markup. It is an error for an authoring or editing
implementation to produce a table with such conflicting
mkup.
The char and charoff attributes are allowed on <colspec>
as well as on <entry>. While an implementation
should accept these attributes on either of these elements
upon input, it may produce logically equivalent output
that nevertheless differs with respect to these attributes
and still be considered in compliance with the semantics
of this resolution. If a table contains one or more
<entry>s with values of either char or charoff
that differ from the value for the same attribute on
a <colspec> that logically contains the <entry>(s),
it is left up to the implementation how this should
be handled (i.e., the interpretation of such markup
is beyond the scope of this model). It is recommended
that an authoring or editing implementation or any implementation
that verifies the compliance of the table markup to
this Resolution offer the option of producing a warning
message when it encounters such markup. It is an error
for an authoring or editing implementation to produce
a table with such conflicting markup.
Optional attributes
colnum
column number
Number of column, counting from 1 at left of the table.
The value of colnum is not useful to identify a column
in an <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
column name
Name of column, used to specify the position or horizontal
span of columns in a row by reference in <entry>
using colname, namest, and/or nameend.
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>.
Declared value
NMTOKEN
Default
IMPLIED (colspec cannot be referenced without colname)
colwidth
column width specification
Either proportional measure of the form number*, e.g.,
"5*" for 5 times the proportion, or "*"
(which is equivalent to "1*"); fixed measure,
e.g., 2pt for 2 point, 3pi for 3 pica. (Mixed measure,
e.g., 2*+3pt, while allowed in the full CALS table model,
is not supported in this Exchange model.) Coefficients
are positive integers or fixed point numbers; for fixed
point numbers, a leading (possibly 0) integer part is
required, and implementations should support at least
2 decimal places. A value of "" [the null
string] is treated as a proportional measure 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.
Declared value
CDATA
Default
IMPLIED (means assume a proportional measure of "1*")
colsep
column separators (vertical ruling)
Default for column ruling to the right of <entry>s
starting in this column (within the <tgroup>).
Declared value
%yesorno; (NUMBER)
Default
IMPLIED, from <tgroup>.
rowsep
row separators (horizontal ruling)
Default for row ruling below an <entry> starting
in this column when there is neither a rowsep value
on the <entry> nor on the <row> in which
the <entry> occurs. Note that with a non-zero
value for morerows on the entry, that ruling will be
several rows lower.
Declared value
%yesorno; (NUMBER)
Default
IMPLIED, from <tgroup>.
align
horizontal alignment of table entry content
Text horizontal position within the column or spanning
columns. Possible default source for <entry>
Declared value
left, (quad flush left), center (centered), right (quad
flush right), justify (both quad left and right), or
char (positioned by charoff).
Default
IMPLIED (means use value from <tgroup>)
char
alignment character
Default source for <entry>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. A value of ""
(the null string) means there is no aligning character.
Declared value
CDATA
Default
IMPLIED, means "" (i.e., there is no aligning
character).
charoff
horizontal offset of alignment character when align=char
Default source for <entry>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, means "50" (i.e., 50%)
Element and attribute description for <thead>
General
Identifies the heading <row>s of a <tgroup>,
displayed as the first rows, and again at the top of
any continuation after a physical break between <rows>
in <tbody>.
The attributes apply from the set of <colspec>s
of the containing <tgroup>.
Optional attributes
valign
vertical alignment
Default text vertical positioning within the <entry>s.
Provides default value for <row>s and <entry>s
in <thead>.
Declared value
top, middle (approximately vertically centered), or
bottom.
Default
IMPLIED (implies "bottom").
Element and attribute description for <tbody>
General
Identifies the body of a <tgroup>.
Optional attributes
valign
vertical alignment
Default Text vertical positioning within the <entry>s.
Provides default value for <row> and <entry>s
in <tbody>.
Declared value
top, middle (approximately vertically centered), or
bottom.
Default
IMPLIED (implies "top")
Element and attribute description for <row>
General
Identifies the row information in a <thead> or
<tbody> element. Default values come from the
enclosing <thead>, <tbody>, or <tgroup>
attribute values for like-named attributes.
The number of columns consumed by the <entry>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 in effect for this <tgroup>. It is left
up to the implementation how to handle the situation
when more than one <entry> would fill any column
of a <row>, including by horizontal spanning or
morerows vertical spanning. It is recommended that an
authoring or editing implementation or any implementation
that verifies the compliance of the table markup to
this Resolution offer the option of producing a warning
message when it encounters such markup. It is an error
for an authoring or editing implementation to produce
a table with such conflicting markup.
If the number of columns consumed is less than the
number of columns specified in the <tgroup cols=N>,
then missing <entry>s without straddling are implicitly
present, and their colsep and rowsep rulings are inherited.
Optional attributes
rowsep
Default for all <entry>s starting in this <row>
that do not specify rowsep. If other than zero, display
the internal horizontal row ruling below an <entry>
in the <row>. If zero, do not display it. Rowsep
is ignored for the last <row> of the table where
the frame specification determines the ruling.
Declared value
%yesorno; (NUMBER)
Default
IMPLIED, from the closest element in the inheritance
path:
valign
vertical alignment
Text vertical positioning default for <entry>s
in a <row>.
Declared value
top, middle (approximately vertically centered), or
bottom.
Default
IMPLIED, from the closest element in the inheritance
path:
- either <thead> or <tgroup>, whichever
is the parent of this <row> then
- <tgroup>.
Element and attribute description for <entry>
General
Identifies an <entry> in a <row> of a
<thead> or <tbody> in a <tgroup>.
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>, <tgroup>,
<colspec> (defining namest or colname), <tbody>,
or <row>. Note that <colspec> is not strictly
in the element lineage.
The char and charoff attributes are allowed on <colspec>
as well as on <entry>. While an implementation
should accept these attributes on either of these elements
upon input, it may produce logically equivalent output
that nevertheless differs with respect to these attributes
and still be considered in compliance with the semantics
of this resolution. A table with one or more <entry>s
with values of either char or charoff that differ from
the value for the same attribute on any other entry
in that logical column or from a <colspec> that
logically contains the <entry>(s) does not conform
to the model defined in this Resolution. It is left
up to the implementation receiving such a table to determine
how it should be handled. It is recommended that an
authoring or editing implementation or any implementation
that verifies the compliance of the table markup to
this Resolution offer the option of producing a warning
message when it encounters such markup.
An <entry> gets its defaults from its starting
column. A row has no explicit <entry> in any column
into which a vertical straddle occurs because of a morerows=N
in an <entry> from a prior row. A spanning <entry>
has no explicit repeated <entry>s in the columns
to the right of the column identified by namest. An
<entry> without specific starting column cannot
span, and falls in the next non-straddled and non-spanned
column.
The precedence for determining the column(s) for any
<entry> is:
- span before individual column:
- namest
- colname if no namest
- implicit if neither namest or colname
The implicit resolution places the <entry> in
the next available column.
There are various markup combinations which this Resolution
defines as "erroneous" and referred to as
"errors" in some of the following attribute
descriptions. It is left up to the implementation how
to handle each of these situations:
- any column referenced by name (either colname, namest
or nameend) is not a colname of a <colspec>
in that <tgroup>;
- any of those names are multiply defined in different
<colspec>s of that <tgroup>;
- any portions of different <entry>s overlap
each other;
- morerows vertical straddling extends beyond the
rows appropriate to that <thead> or <tbody>;
- too many <entry>s occur in any <row>,
exceeding the cols on the <tgroup>;
- any colnames used in namest and nameend to define
a span in an <entry> 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 or colname that is to the left of the column
where the <entry> would be placed by default.
It is recommended that an authoring or editing implementation
or any implementation that verifies the compliance of
the table markup to this Resolution offer the option
of producing a warning message when it encounters such
markup. It is an error for an authoring or editing implementation
to produce a table with such markup.
If the content of an <entry> is too deep for
the available depth of a page, what information is presented
and how it is presented is left to be determined by
the implementation.
Optional attributes
colname
column name
Column name of <entry>. Ignore if namest is present.
It is an error if colname is not defined in a <colspec>
of the current <tgroup>.
Declared value
NMTOKEN
Default
IMPLIED (column(s) determined by namest or implicitly
the next.)
namest
name of starting column for this entry
Name of leftmost column of span. The value must be
some colname in a <colspec> of the current <tgroup>.
A namest on an entry with no nameend specification indicates
the single column so named, though colname is usually
used for such a specification. If neither namest nor
colname occur, the <entry> goes in the next column
in sequence to the right, skipping over any encroachment
from a prior row via <entry morerows=N>. It is
an error if the namest value is not defined in a <colspec>
for the current <tgroup>.
Declared value
NMTOKEN
Default
IMPLIED (implies this attribute has no effect on spanning)
nameend
name of ending column for this entry
Name of rightmost column of span. The value must be
some colname in a <colspec> of the current <tgroup>.
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)
morerows
number of additional rows in a vertical span
There shall be at least that many more rows in the
appropriate <thead> 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
column separators (vertical ruling)
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 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 the closest element in the inheritance
path:
- <colspec>
then
- <tgroup>
then
- <table>.
Note that if a <tgroup> or <table> element
has no explicit specification for this attribute but
does have an associated style sheet that gives a specification
for this attribute, then this value shall be used as
the value that is inherited from this element.
rowsep
row separators (horizontal ruling)
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. 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 element in the inheritance
path:
- <row> then
- <colspec > then
- <tgroup> then
- <table>.
Note that if a <tgroup> or <table> element
has no explicit specification for this attribute but
does have an associated style sheet that gives a specification
for this attribute, then this value shall be used as
the value that is inherited from this element.
align
horizontal alignment of table entry content
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 <colspec>
of the nearest ancestral <tgroup>. If none, then
"left".)
char
alignment character
If align="char", the value of the char
attribute is the single alignment character on which
the first to occur of this character in the <entry>
is aligned. A value of "" (the null string)
means there is no alignment character. If there is no
alignment character or the alignment character does
not occur in the <entry>, the <entry> right
aligns to the left of the charoff position. The value
of the char attribute shall not be an SDATA entity.
Declared value
CDATA
Default
IMPLIED, from <colspec> else there is no aligning
character.
charoff
horizontal offset of alignment character when align=char
When align="char" for this <entry>,
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 <colspec> else "50" (i.e.,
50%).
valign
vertical alignment
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 <tbody>.
|