blob: 0ba1e32f91f63b1fbc509eae781925de840b7ee2 [file] [log] [blame]
# =============================================================
# HEADER
# =============================================================
# MODULE: XML EXCHANGE TABLE MODEL DECLARATION MODULE
# VERSION: 1.1
# DATE: June 2006
#
# =============================================================
# (C) Copyright OASIS Open 2005, 2006.
# (C) Copyright IBM Corporation 2001, 2004.
# All Rights Reserved.
#
# UPDATES:
# 2005.11.15 RDA: Corrected the "Delivered as" system ID
# 2006.06.07 RDA: Make universal attributes universal
# (DITA 1.1 proposal #12)
# =============================================================
# Delivered as file "tblDecl.mod"
# =============================================================
# XML EXCHANGE TABLE MODEL DECLARATION MODULE
# OASIS DITA 1.0 notes:
# The Exchange Table Model replaces the original CALS-based model
# used in development versions of the DITA definition.
# This set of declarations defines the XML version of the Exchange
# Table Model as adapted for OASIS DITA version 1.0.
# The base for the DITA version of the Exchange Table Model is
# defined at http://www.oasis-open.org/specs/tm9901.htm .
# The DITA version specifically extends this model with these DITA-
# specific content and attribute adaptations to the DITA processing
# requirements:
#
# STRUCTURE:
#
# Introduce the DITA-unique <desc> element (optional after <title>); this element
# enables more consistent presentation of both figures and tables.
#
#
# ATTRIBUTES:
#
# For the <table> element, add:
# %univ-atts; which consists of:
# %select-atts; [for selection, conditional processing]
# %id-atts; [for conref and linking]
# %localization-atts (@translate + @xml:lang) [for NLS processing support]
# %global-atts; (@xtrf + @xtrc) [for tracing and messaging support in processors]
# @class [for specialization support]
# @outputclass [for role designation (ie, styles, future migrations)]
# @rowheader [for accessibility support in processing]
# %display-atts; which consists of:
# @scale [for presentational equivalence with other scaled exhibits: fig, pre, lines, simpletable]
# @frame (already part of table)
# @pgwide (already part of table, same intent as original @expanse)
#
# For <tgroup>, <thead>, <tbody>, and <row>, add:
# %univ-atts;
# %global-atts;
# @class
# @outputclass [for role designation (ie, styles, future migrations)]
#
# For <entry>, add:
# %id-atts;
# %global-atts
# @class
# @outputclass [for role designation (ie, styles, future migrations)]
# @rev [for indication of revised content for flag-based processing]
#
# DITA specialization support: element redefinition for expansion
# The Formal Public Identifier (FPI) for this DITA adaptation of
# the Exchange Table Model shall be:
#
# "-//OASIS//ELEMENTS DITA Exchange Table Model//EN"
#
# This set of declarations may be referred to using a public external
# entity declaration and reference as shown in the following three
# lines:
#
# <!ENTITY % tableXML
# PUBLIC "-//OASIS//ELEMENTS DITA Exchange Table Model//EN">
# %tableXML;
# In order to use the Exchange table model, various parameter entity
# declarations are required. A brief description is as follows:
#
# ENTITY NAME WHERE USED WHAT IT IS
#
# %yesorno In ATTLIST of: An attribute declared value
# almost all elements for a "boolean" attribute
#
# %paracon In content model of: The "text" (logical content)
# <entry> of the model group for <entry>
#
# %titles In content model of: The "title" part of the model
# table element group for the table element
#
# %tbl.table.name In declaration of: The name of the "table"
# table element element
#
# %tbl.table-titles.mdl In content model of: The model group for the title
# table elements part of the content model for
# table element
#
# %tbl.table.mdl In content model of: The model group for the content
# table elements model for table element,
# often (and by default) defined
# in terms of %tbl.table-titles.mdl
# and tgroup
#
# %tbl.table.att In ATTLIST of: Additional attributes on the
# table element table element
#
# %bodyatt In ATTLIST of: Additional attributes on the
# table element table element (for backward
# compatibility with the SGML
# model)
#
# %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.thead.att In ATTLIST of: Additional attributes on the
# <thead> <thead> 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.row.mdl In content model of: The model group 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.att In ATTLIST of: Additional attributes on the
# <entry> <entry> element
#
# This set of declarations will use the default definitions shown below
# for any of these parameter entities that are not declared before this
# set of declarations is referenced.
#
# Note that DITA properties are added in cumulative declarations at the end.
# 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.
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
yesorno = xsd:NMTOKEN
# no if zero(s), yes if any other value
paracon = tblcell.cnt
# 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. The
# resulting simplified DTD has support from the SGML Open vendors and is
# therefore more interoperable among different systems.
#
# These following declarations provide the Exchange default definitions
# for 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 to
# interchange table information. These changes may manifest themselves
# in useability, presentation, and possible structure information degradation.
tbl.table-titles.mdl = (title?, desc?)?
tbl.table-main.mdl = tgroup+
tbl.table.mdl = tbl.table-titles.mdl | tbl.table-main.mdl
tbl.table.att = attribute pgwide { yesorno }?
bodyatt = empty
tbl.tgroup.mdl = colspec*, thead?, tbody
tbl.tgroup.att = empty
tbl.thead.att = empty
tbl.tbody.att = empty
tbl.colspec.att = empty
tbl.row.mdl = entry+
tbl.row.att = empty
tbl.entry.mdl = paracon*
tbl.entry.att = empty
# ===== Element and attribute declarations follow. =====
# Default declarations previously defined in this entity and
# referenced below include:
# ENTITY % tbl.table.name "table"
# ENTITY % tbl.table-titles.mdl "%titles;,"
# ENTITY % tbl.table.mdl "%tbl.table-titles; tgroup+"
# ENTITY % tbl.table.att "
# pgwide %yesorno; #IMPLIED "
table.element = element table { table.attlist, tbl.table.mdl }
table.attlist &=
attribute frame {
"top" | "bottom" | "topbot" | "all" | "sides" | "none"
}?,
attribute colsep { yesorno }?,
attribute rowsep { yesorno }?,
tbl.table.att,
bodyatt
# Default declarations previously defined in this entity and
# referenced below include:
# ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody"
# ENTITY % tbl.tgroup.att ""
tgroup.element = element tgroup { tgroup.attlist, tbl.tgroup.mdl }
tgroup.attlist &=
attribute cols { xsd:NMTOKEN },
attribute colsep { yesorno }?,
attribute rowsep { yesorno }?,
attribute align { "left" | "right" | "center" | "justify" | "char" }?,
tbl.tgroup.att
# Default declarations previously defined in this entity and
# referenced below include:
# ENTITY % tbl.colspec.att ""
colspec.element = element colspec { colspec.attlist, empty }
colspec.attlist &=
attribute colnum { xsd:NMTOKEN }?,
attribute colname { xsd:NMTOKEN }?,
attribute colwidth { text }?,
attribute colsep { yesorno }?,
attribute rowsep { yesorno }?,
attribute align { "left" | "right" | "center" | "justify" | "char" }?,
attribute char { text }?,
attribute charoff { xsd:NMTOKEN }?,
tbl.colspec.att
# Default declarations previously defined in this entity and
# referenced below include:
# ENTITY % tbl.thead.att ""
thead.element = element thead { thead.attlist, row+ }
thead.attlist &=
attribute valign { "top" | "middle" | "bottom" }?,
tbl.thead.att
# Default declarations previously defined in this entity and
# referenced below include:
# ENTITY % tbl.tbody.att ""
tbody.element = element tbody { tbody.attlist, row+ }
tbody.attlist &=
attribute valign { "top" | "middle" | "bottom" }?,
tbl.tbody.att
# Default declarations previously defined in this entity and
# referenced below include:
# ENTITY % tbl.row.mdl "entry+"
# ENTITY % tbl.row.att ""
row.element = element row { row.attlist, tbl.row.mdl }
row.attlist &=
attribute rowsep { yesorno }?,
attribute valign { "top" | "middle" | "bottom" }?,
tbl.row.att
# Default declarations previously defined in this entity and
# referenced below include:
# ENTITY % paracon "#PCDATA"
# ENTITY % tbl.entry.mdl "(%paracon;)*"
# ENTITY % tbl.entry.att ""
entry.element = element entry { entry.attlist, tbl.entry.mdl }
entry.attlist &=
attribute colname { xsd:NMTOKEN }?,
attribute namest { xsd:NMTOKEN }?,
attribute nameend { xsd:NMTOKEN }?,
attribute morerows { xsd:NMTOKEN }?,
attribute colsep { yesorno }?,
attribute rowsep { yesorno }?,
attribute align { "left" | "right" | "center" | "justify" | "char" }?,
attribute char { text }?,
attribute charoff { xsd:NMTOKEN }?,
attribute valign { "top" | "middle" | "bottom" }?,
tbl.entry.att
# =============================================================
# DITA BEHAVIOR ATTRIBUTES
# =============================================================
table.attlist &=
attribute rowheader { "firstcol" | "norowheader" }?,
attribute scale {
"50"
| "60"
| "70"
| "80"
| "90"
| "100"
| "110"
| "120"
| "140"
| "160"
| "180"
| "200"
}?,
univ-atts,
attribute outputclass { text }?
tgroup.attlist &=
univ-atts,
attribute outputclass { text }?
thead.attlist &=
univ-atts,
attribute outputclass { text }?
tbody.attlist &=
univ-atts,
attribute outputclass { text }?
row.attlist &=
univ-atts,
attribute outputclass { text }?
entry.attlist &=
id-atts,
localization-atts,
attribute rev { text }?,
attribute outputclass { text }?
colspec.attlist &= id-atts, localization-atts
# =============================================================
# DITA SPECIALIZATION ATTRIBUTE DECLARATIONS
# =============================================================
table.attlist &=
global-atts,
[ a:defaultValue = "- topic/table " ] attribute class { text }?
tgroup.attlist &=
global-atts,
[ a:defaultValue = "- topic/tgroup " ] attribute class { text }?
colspec.attlist &=
global-atts,
[ a:defaultValue = "- topic/colspec " ] attribute class { text }?
thead.attlist &=
global-atts,
[ a:defaultValue = "- topic/thead " ] attribute class { text }?
tbody.attlist &=
global-atts,
[ a:defaultValue = "- topic/tbody " ] attribute class { text }?
row.attlist &=
global-atts,
[ a:defaultValue = "- topic/row " ] attribute class { text }?
entry.attlist &=
global-atts,
[ a:defaultValue = "- topic/entry " ] attribute class { text }?
# ================== End XML Exchange Table Model =============