XML Exchange Table Model Document Type DefinitionOrganization for the Advancement of Structured Information Standards
(OASIS) Technical Memorandum TR 9901:1999NormanWalshChair, Tables Technical CommitteeArbortext,
Inc.1999 Sep 291999Organization
for the Advancement of Structured Information Standards (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. AbstractThis OASIS Technical Memorandum is an XML expression of the Exchange
subset of the full CALS table model DTD described in OASIS
Technical Memorandum 9502:1995, CALS Table Model Document Type
Definition. It is an XML version of OASIS
Technical Resolution 9503:1995, Exchange Table Model Document Type
Definition. The 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 OASIS Technical Research Paper
TRP 9501:1995, Table Interoperability: Issues for the CALS Table
Model. Technical Memorandum 9901:1999XML
Exchange Table Model1.01999 Sep 30nwalshFirst publication.0.951999 Aug 29nwalshRevised draft. TR has become TM, %tbl.table.att documented, default
declaration for %bodyatt added to DTD.0.91999 Apr 15nwalshCommittee draft0.51999 Apr 10nwalshEditorial draftIntroductionThis OASIS Technical Memorandum is an XML expression of the Exchange
subset of the full CALS table model DTD described in OASIS
Technical Memorandum 9502:1995, CALS Table Model Document Type
Definition. It is an XML version of OASIS
Technical Resolution 9503:1995, Exchange Table Model Document Type
Definition. The 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 OASIS Technical Research Paper
TRP 9501:1995, Table Interoperability: Issues for the CALS Table
Model. Note that the set of element and attribute declarations in the Exchange Table Model DTD Module 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 sections
following 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. In particular, for maximum interoperability, the geometric aspects,
including some table attributes, and the elements and attributes of the table
structure: tgroup through row
and some entry attributes should only be
constrained. The table content model and
the entry content model are the primary
candidates for change other than constraint. Changes from OASIS Technical Resolution TR 9503:1995Specific changes of substance between this Exchange Model and the SGML
Exchange Model described in OASIS Technical Resolution TR 9503:1995 include:Removed the tbl.table.excep,
tbl.hdft.excep, tbl.row.excep,
and tbl.entry.excep parameter entities.There are no exceptions in XML. The following normative statement is
made in lieu of exceptions: the exchange table model explicitly forbids a
table from occurring within another table. If the content model of an entry
includes a table element, then this cannot be enforced by the DTD, but it
is a deviation from the exchange table model to include a table within a table. Removed the tbl.hdft.name,
tbl.hdft.mdl, tbl.hdft.excep,
and tbl.hdft.att parameter entities.The motivation for these elements was to change the table header/footer
elements. Since XML does not allow element declarations to contain name groups,
and the exchange table model does not allow a table to contain footers, the
continued presence of these attributes is unnecessary.Added the tbl.thead.att
parameter entity.This entity parameterizes the attributes on thead.
It replaces the tbl.hdft.att parameter
entity.Tag ommission indicators have been removed. Comments have been removed from declarations. NUMBER attributes have been changed to NMTOKEN.NUTOKEN attributes have been to changed to NMTOKEN.Removed the grouping characters around the content model parameter
entry for the entry element. This is necessary
so that an entry can contain #PCDATA and be defined as an optional, repeatable
OR group beginning with #PCDATA, as required by XML.Changes from MIL-HDBK-28001 (30 June 95)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:change most explicit attribute defaults from a 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.Exchange Table model DTD moduleSemantic description for the Exchange table modelNote 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 tableGeneralThe table element markup identifies
a table.Elements inside a table may at times
inherit default values from the attributes on the containing table.
Furthermore, a table element may have some
stylesheet 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 the stylesheet value shall
be used as the value that is inherited from this element. Optional attributesframe — outer table rulingDescribes position of outer rulings.Declared valueThe enumerated values are:ValueRulessidesleft and right sidestopabove first rowbottomafter last rowtopbottop and bottomallall of the abovenonenone of the aboveThe 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. DefaultIMPLIED (implies value from stylesheet if available, if not, implies
“all”).colsep — column separators
(vertical ruling)Specifies the presence or absence of column separator rules. Provides
the default value for all tgroups in this
table. If colsep is non-zero, display internal
column rules to the right of each entry;
if zero, do not display the rules. This value is ignored for the rightmost
column, where the frame setting applies. Declared value%yesorno; (NMTOKEN)DefaultIMPLIED (implies value from stylesheet if available, if not, implies
“1”).rowsep — row separators (horizontal
ruling)Specifies the presence or absence of row separator rules. Provides the
default value for all tgroups in this table. If rowsep is non-zero, display the
internal row rules below each entry; if
zero, do not display the rules. 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; (NMTOKEN)DefaultIMPLIED (implies value from stylesheet if available, if not, implies
“1”).pgwide — make table span
full page widthDescribes the desired width of the table.If zero, the maximum available width for the table
is the (galley) width (possibly respecting current indents in force as specified
by the stylesheet) of the current column of page. If non-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). Unlike most table attributes, this one is parameterized by %tbl.table.att;and may be removed by a customization
layer.Declared value%yesorno; (NMTOKEN)DefaultIMPLIED (implies value from the stylesheet if available). In the absence
of an explicit value (or one implied from the stylesheet), the system should
attempt to format the table into a galley column if reasonable, based on explicit
colspeccolwidth
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 preceding 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 character alignment,
the content on 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 attributesAny of the attributes in the associated attribute set may be used with
this element.DefaultAs appropriate for each attribute in the set. This parameter entity
is included for backward compatibility with the SGML exchange table model.
The XML table model also defines %tbl.table.att;
for this purpose, parallel to the other parameter entities added for defining
attributes on table elements.%tbl.table.att; — general
body element attributesAny of the attributes in the associated attribute set may be used with
this element.DefaultAs appropriate for each attribute in the set.Element and attribute description for tgroupGeneralEach tgroup effectively identifies
a new portion of a table. The colspecs and the colnames
in each tgroup are independent of any other tgroup. The colspecs
in a tgroup apply to its tbody.
The colspecs in a
tgroup shall be in left-to-right column order. Explicit colnums in the different colspecs
of a tgroup shall be unique, in ascending
order left-to-right, in the range 1 to the number of colspecs,
which is not to exceed the value of the cols attribute of tgroup.The colnames in the different colspecs 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 colspecs
of tbody also apply to thead.All tgroups 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 tablepgwide attribute. If pgwide
is "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 tablepgwide
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 colspecs 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. If there are multiple
tgroups 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.Elements inside a tgroup may at times
inherit default values from the attributes on the containing tgroup.
Furthermore, a tgroup element may have
some stylesheet 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 the stylesheet value shall
be used as the value that is inherited from this element. Required attributecols — number of columns Number of columns in the tgroup.
The value of this attribute must be an integer greater than zero. Declared valueNMTOKENOptional attributescolsep — column separators
(vertical ruling)Provides default for all colspecs
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; (NMTOKEN)DefaultIMPLIED (implies value from stylesheet 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; (NMTOKEN)DefaultIMPLIED (implies value from stylesheet if any, else from table)align — horizontal alignment
of table entry contentText 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 valueThe enumerated values are: ValueAlignmentleftFlush leftcenterCenteredrightFlush rightjustifyFlush left and rightcharAlign text to the leftmost occurrence of the value of the non-null
attribute char value. DefaultIMPLIED (means use value from stylesheet if any, else “left”.)Element and attribute description for colspecGeneralSpecifies 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 entrys within the thead
to colname, namest,
or nameend refer to values defined by
the set of colspecs in the containing tgroup. Colspecs
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
colspecs actually defined. If the number
in cols is larger than the number of colspecs,
then additional colspecs of colwidth “1*”
should be inferred. Colspecs can be numbered
or unnumbered, and if numbered should be increasing in sequential order starting
with 1 at the left. Unnumbered colspecs
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 colspecs 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 Memorandum 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.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
Memorandum. If a table contains one or more entrys
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 Memorandum 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 attributescolnum — column numberNumber 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 colspecs. Declared valueNMTOKENDefaultIMPLIED (colspec is the next one in order)colname — column nameName 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 valueNMTOKENDefaultIMPLIED (colspec cannot be referenced without colname)colwidth — column width specificationEither 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 valueCDATADefaultIMPLIED (means assume a proportional measure of “1*”) colsep — column separators
(vertical ruling)Default for column ruling to the right of entrys
starting in this column (within the tgroup).Declared value%yesorno; (NMTOKEN)DefaultIMPLIED, 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; (NMTOKEN)DefaultIMPLIED, from tgroup. align — horizontal alignment
of table entry contentText horizontal position within the column or spanning columns. Possible
default source for entry.Declared valueThe enumerated values are: ValueAlignmentleftFlush leftcenterCenteredrightFlush rightjustifyFlush left and rightcharAlign text to the leftmost occurrence of the value of the non-null
attribute char value. DefaultIMPLIED (means use value from tgroup)char — alignment characterDefault source for entrys starting
in this column. If character alignment is specified, the value is the single
alignment character source for any implied char values for entry
immediately in this column. A value of "" (the null string) means there is
no aligning character. Declared valueCDATADefaultIMPLIED, means "" (i.e., there is no aligning character). charoff — horizontal offset
of alignment character when align=charDefault source for entrys starting
in this column. For character alignment 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. This value should be number, greater than 0 and less than or equal to
100. Declared valueNMTOKENDefaultIMPLIED, means "50" (i.e., 50%)Element and attribute description for theadGeneralIdentifies the heading rows 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 colspecs
of the containing tgroup .Optional attributesvalign — vertical alignmentDefault text vertical positioning within the entrys.
Provides default value for rows and entrys in thead.Declared valueThe enumerated values are: ValueAlignmenttoptopmiddleapproximately vertically centeredbottombottomDefaultIMPLIED (implies “bottom”).Element and attribute description for tbodyGeneralIdentifies the body of a tgroup.Optional attributesvalign — vertical alignment Default Text vertical positioning within the entrys.
Provides default value for row and entrys in tbody. Declared valueThe enumerated values are: ValueAlignmenttoptopmiddleapproximately vertically centeredbottombottomDefaultIMPLIED (implies “top”)Element and attribute description for rowGeneralIdentifies 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 entrys
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 spanning or straddling.
It is recommended that an authoring or editing implementation or any implementation
that verifies the compliance of the table markup to this Memorandum 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's cols
attribute, then the missing entrys (without
spanning or straddling) are implicitly present, and their colsep and rowsep
rulings are inherited.Optional attributesrowsep — row separators (horizontal
ruling)Default for all entrys 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; (NMTOKEN)DefaultIMPLIED, from the closest element in the inheritance path: tgroup thentable.valign — vertical alignmentText vertical positioning default for entrys
in a row.Declared valueThe enumerated values are: ValueAlignmenttoptopmiddleapproximately vertically centeredbottombottomDefaultIMPLIED, from the closest element in the inheritance path: either thead or tbody,
whichever is the parent of this row. Element and attribute description for entryGeneralIdentifies an entry in a row.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 Memorandum. A table with one or more entrys
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 Memorandum. 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 Memorandum 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 attribute on an entry
from a prior row. A spanning entry has no
explicit repeated entrys in the columns
to the right of the column identified by namest.
An entry without specific starting column
(a namest attribute) 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 through nameendindividual column: namestcolname if no namestimplicit if neither namest
or colnameThe implicit Memorandum places the entry
in the next available column.There are various markup combinations which this Memorandum 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 colspecs of that tgroup;any portions of different entrys
overlap each other;morerows vertical straddling extends beyond the rows appropriate
to that thead or tbody;too many entrys 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 Memorandum
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 attributescolname — column nameColumn 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 valueNMTOKENDefaultIMPLIED (column(s) determined by namest
or implicitly the next.)namest — name of starting
column for this entryName 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 valueNMTOKENDefaultIMPLIED (implies this attribute has no effect on spanning) nameend — name of ending
column for this entryName 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.
A nameend attribute without a namest is ignored.Declared valueNMTOKENDefaultIMPLIED (implies this attribute has no effect on spanning) morerows — number of additional
rows in a vertical spanThere 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 valueNUMBERDefaultIMPLIED (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; (NMTOKEN)DefaultIMPLIED, from the closest element in the inheritance path: colspec thentgroup thentable.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; (NMTOKEN)DefaultIMPLIED, from the closest element in the inheritance path: row thencolspec thentgroup thentable.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 contentText 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 valueThe enumerated values are: ValueAlignmentleftFlush leftcenterCenteredrightFlush rightjustifyFlush left and rightcharAlign text to the leftmost occurrence of the value of the non-null
attribute char value. DefaultIMPLIED (means use value from nearest applicable colspec
of the nearest ancestral tgroup. If none,
then “left”.) char — alignment characterIf character alignment is specified, 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.Declared valueCDATADefaultIMPLIED, from colspec else there is
no aligning character.charoff — horizontal offset
of alignment characterWhen character alignment is specified 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.This value should be number, greater than 0 and less than or equal to
100. Declared valueNMTOKENDefaultIMPLIED, from colspec else "50" (i.e.,
50%).valign — vertical alignmentText vertical positioning within the entry.Declared valueThe enumerated values are: ValueAlignmenttoptopmiddleapproximately vertically centeredbottombottomDefaultIMPLIED from the closest ancestor with explicit specification of valign:row thenthead or tbody.GlossaryspanA spanning table cell is one that occupies more than one column. In
this DTD, the only way a table cell (entry)
can span is by specifying both namest
and nameend attributes. Spanning and straddling are independent; a spanning cell can also straddle.straddleA straddling table cell is one that occupies more than one row. In this
DTD, the only way a table cell (entry)
can straddle multiple rows is by specifying a morerows
attribute. Spanning and straddling are independent; a spanning cell can also straddle.AcknowledgementsThe following contributed to the development of this Memorandum:Harvey BinghamCarla Corkern (ISOGEN)Tony Graham (Mulberry Technologies)Paul Grosso (Arbortext)Eduardo Gutentag (Sun Microsystems)Ken Hollman (Crane Softwrights)Eve Maler (Arbortext)Norbert Mikula (DataChannel)Nam Jin Son (ISOGEN)Marcy Thompson (ISOGEN)B. Tommie Usdin (Mulberry Technologies)Norman Walsh, Chair (Arbortext)