diff options
Diffstat (limited to 'etc/schema/soextbl.rnc')
-rw-r--r-- | etc/schema/soextbl.rnc | 260 |
1 files changed, 260 insertions, 0 deletions
diff --git a/etc/schema/soextbl.rnc b/etc/schema/soextbl.rnc new file mode 100644 index 00000000000..2e69127b4a2 --- /dev/null +++ b/etc/schema/soextbl.rnc @@ -0,0 +1,260 @@ +# XML EXCHANGE TABLE MODEL DECLARATION MODULE + +# This set of declarations defines the XML version of the Exchange +# 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 three +# lines: +# +# <!ENTITY % calstblx +# PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN"> +# %calstblx; +# +# 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 +# "%calstblx;" reference). + +# The motivation for this XML version of the Exchange Table Model +# is simply to create an XML version of the SGML Exchange Table +# Model. By design, no effort has been made to "improve" the model. +# +# This XML version incorporates the logical bare minimum changes +# necessary to make the Exchange Table Model a valid XML DTD. + +# The XML version of the Exchange Table Model differs from +# the SGML version in the following ways: +# +# The following parameter entities have been removed: +# +# - tbl.table.excep, tbl.hdft.excep, tbl.row.excep, tbl.entry.excep +# 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. +# +# - tbl.hdft.name, tbl.hdft.mdl, tbl.hdft.excep, tbl.hdft.att +# 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 seems unnecessary. +# +# The following parameter entity has been added: +# +# - tbl.thead.att +# This entity parameterizes the attributes on thead. It replaces +# the tbl.hdft.att parameter entity. +# +# Other miscellaneous changes: +# +# - 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. + +# This entity includes a set of element and attribute declarations +# that 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, also available +# from SGML Open, should be used in conjunction with this entity. + +# 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. + +# 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. + +yesorno = xsd:NMTOKEN +# no if zero(s), yes if any other value +pcd = text +paracon = pcd +# 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 +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 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 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 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 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 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 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 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 +title |= notAllowed +start = table |