1 # XML EXCHANGE TABLE MODEL DECLARATION MODULE
3 # This set of declarations defines the XML version of the Exchange
4 # Table Model as of the date shown in the Formal Public Identifier
5 # (FPI) for this entity.
7 # This set of declarations may be referred to using a public external
8 # entity declaration and reference as shown in the following three
12 # PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN">
15 # If various parameter entities used within this set of declarations
16 # are to be given non-default values, the appropriate declarations
17 # should be given before calling in this package (i.e., before the
18 # "%calstblx;" reference).
20 # The motivation for this XML version of the Exchange Table Model
21 # is simply to create an XML version of the SGML Exchange Table
22 # Model. By design, no effort has been made to "improve" the model.
24 # This XML version incorporates the logical bare minimum changes
25 # necessary to make the Exchange Table Model a valid XML DTD.
27 # The XML version of the Exchange Table Model differs from
28 # the SGML version in the following ways:
30 # The following parameter entities have been removed:
32 # - tbl.table.excep, tbl.hdft.excep, tbl.row.excep, tbl.entry.excep
33 # There are no exceptions in XML. The following normative statement
34 # is made in lieu of exceptions: the exchange table model explicitly
35 # forbids a table from occurring within another table. If the
36 # content model of an entry includes a table element, then this
37 # cannot be enforced by the DTD, but it is a deviation from the
38 # exchange table model to include a table within a table.
40 # - tbl.hdft.name, tbl.hdft.mdl, tbl.hdft.excep, tbl.hdft.att
41 # The motivation for these elements was to change the table
42 # header/footer elements. Since XML does not allow element declarations
43 # to contain name groups, and the exchange table model does not
44 # allow a table to contain footers, the continued presence of these
45 # attributes seems unnecessary.
47 # The following parameter entity has been added:
50 # This entity parameterizes the attributes on thead. It replaces
51 # the tbl.hdft.att parameter entity.
53 # Other miscellaneous changes:
55 # - Tag ommission indicators have been removed
56 # - Comments have been removed from declarations
57 # - NUMBER attributes have been changed to NMTOKEN
58 # - NUTOKEN attributes have been to changed to NMTOKEN
59 # - Removed the grouping characters around the content model
60 # parameter entry for the 'entry' element. This is necessary
61 # so that an entry can contain #PCDATA and be defined as an
62 # optional, repeatable OR group beginning with #PCDATA.
64 # This entity includes a set of element and attribute declarations
65 # that partially defines the Exchange table model. However, the model
66 # is not well-defined without the accompanying natural language
67 # description of the semantics (meanings) of these various elements,
68 # attributes, and attribute values. The semantic writeup, also available
69 # from SGML Open, should be used in conjunction with this entity.
71 # In order to use the Exchange table model, various parameter entity
72 # declarations are required. A brief description is as follows:
74 # ENTITY NAME WHERE USED WHAT IT IS
76 # %yesorno In ATTLIST of: An attribute declared value
77 # almost all elements for a "boolean" attribute
79 # %paracon In content model of: The "text" (logical content)
80 # <entry> of the model group for <entry>
82 # %titles In content model of: The "title" part of the model
83 # table element group for the table element
85 # %tbl.table.name In declaration of: The name of the "table"
86 # table element element
88 # %tbl.table-titles.mdl In content model of: The model group for the title
89 # table elements part of the content model for
92 # %tbl.table.mdl In content model of: The model group for the content
93 # table elements model for table element,
94 # often (and by default) defined
95 # in terms of %tbl.table-titles.mdl
98 # %tbl.table.att In ATTLIST of: Additional attributes on the
99 # table element table element
101 # %bodyatt In ATTLIST of: Additional attributes on the
102 # table element table element (for backward
103 # compatibility with the SGML
106 # %tbl.tgroup.mdl In content model of: The model group for the content
107 # <tgroup> model for <tgroup>
109 # %tbl.tgroup.att In ATTLIST of: Additional attributes on the
110 # <tgroup> <tgroup> element
112 # %tbl.thead.att In ATTLIST of: Additional attributes on the
113 # <thead> <thead> element
115 # %tbl.tbody.att In ATTLIST of: Additional attributes on the
116 # <tbody> <tbody> element
118 # %tbl.colspec.att In ATTLIST of: Additional attributes on the
119 # <colspec> <colspec> element
121 # %tbl.row.mdl In content model of: The model group for the content
122 # <row> model for <row>
124 # %tbl.row.att In ATTLIST of: Additional attributes on the
125 # <row> <row> element
127 # %tbl.entry.mdl In content model of: The model group for the content
128 # <entry> model for <entry>
130 # %tbl.entry.att In ATTLIST of: Additional attributes on the
131 # <entry> <entry> element
133 # This set of declarations will use the default definitions shown below
134 # for any of these parameter entities that are not declared before this
135 # set of declarations is referenced.
137 # These definitions are not directly related to the table model, but are
138 # used in the default CALS table model and may be defined elsewhere (and
139 # prior to the inclusion of this table module) in the referencing DTD.
141 yesorno
= xsd:NMTOKEN
142 # no if zero(s), yes if any other value
145 # default for use in entry content
147 # The parameter entities as defined below change and simplify the CALS table
148 # model as published (as part of the Example DTD) in MIL-HDBK-28001. The
149 # resulting simplified DTD has support from the SGML Open vendors and is
150 # therefore more interoperable among different systems.
152 # These following declarations provide the Exchange default definitions
153 # for these entities. However, these entities can be redefined (by giving
154 # the appropriate parameter entity declaration(s) prior to the reference
155 # to this Table Model declaration set entity) to fit the needs of the
156 # current application.
158 # Note, however, that changes may have significant effect on the ability to
159 # interchange table information. These changes may manifest themselves
160 # in useability, presentation, and possible structure information degradation.
161 tbl
.table-titles
.mdl
= title
162 tbl
.table-main
.mdl
= tgroup
+
163 tbl
.table
.mdl
= tbl
.table-titles
.mdl | tbl
.table-main
.mdl
164 tbl
.table
.att
= attribute pgwide
{ yesorno
}?
166 tbl
.tgroup
.mdl
= colspec*, thead?, tbody
167 tbl
.tgroup
.att
= empty
168 tbl
.thead
.att
= empty
169 tbl
.tbody
.att
= empty
170 tbl
.colspec
.att
= empty
173 tbl
.entry
.mdl
= paracon*
174 tbl
.entry
.att
= empty
175 # ===== Element and attribute declarations follow. =====
177 # Default declarations previously defined in this entity and
178 # referenced below include:
179 # ENTITY % tbl.table.name "table"
180 # ENTITY % tbl.table-titles.mdl "%titles;,"
181 # ENTITY % tbl.table.mdl "%tbl.table-titles; tgroup+"
182 # ENTITY % tbl.table.att "
183 # pgwide %yesorno; #IMPLIED "
184 table
= element table
{ table
.attlist, tbl
.table
.mdl
}
187 "top" |
"bottom" |
"topbot" |
"all" |
"sides" |
"none"
189 attribute colsep
{ yesorno
}?,
190 attribute rowsep
{ yesorno
}?,
193 # Default declarations previously defined in this entity and
194 # referenced below include:
195 # ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody"
196 # ENTITY % tbl.tgroup.att ""
197 tgroup
= element tgroup
{ tgroup
.attlist, tbl
.tgroup
.mdl
}
199 attribute cols
{ xsd:NMTOKEN
},
200 attribute colsep
{ yesorno
}?,
201 attribute rowsep
{ yesorno
}?,
202 attribute align
{ "left" |
"right" |
"center" |
"justify" |
"char" }?,
204 # Default declarations previously defined in this entity and
205 # referenced below include:
206 # ENTITY % tbl.colspec.att ""
207 colspec
= element colspec
{ colspec
.attlist,
empty }
209 attribute colnum
{ xsd:NMTOKEN
}?,
210 attribute colname
{ xsd:NMTOKEN
}?,
211 attribute colwidth
{ text
}?,
212 attribute colsep
{ yesorno
}?,
213 attribute rowsep
{ yesorno
}?,
214 attribute align
{ "left" |
"right" |
"center" |
"justify" |
"char" }?,
215 attribute char
{ text
}?,
216 attribute charoff
{ xsd:NMTOKEN
}?,
218 # Default declarations previously defined in this entity and
219 # referenced below include:
220 # ENTITY % tbl.thead.att ""
221 thead
= element thead
{ thead
.attlist, row
+ }
223 attribute valign
{ "top" |
"middle" |
"bottom" }?,
225 # Default declarations previously defined in this entity and
226 # referenced below include:
227 # ENTITY % tbl.tbody.att ""
228 tbody
= element tbody
{ tbody
.attlist, row
+ }
230 attribute valign
{ "top" |
"middle" |
"bottom" }?,
232 # Default declarations previously defined in this entity and
233 # referenced below include:
234 # ENTITY % tbl.row.mdl "entry+"
235 # ENTITY % tbl.row.att ""
236 row
= element row
{ row
.attlist, tbl
.row
.mdl
}
238 attribute rowsep
{ yesorno
}?,
239 attribute valign
{ "top" |
"middle" |
"bottom" }?,
241 # Default declarations previously defined in this entity and
242 # referenced below include:
243 # ENTITY % paracon "#PCDATA"
244 # ENTITY % tbl.entry.mdl "(%paracon;)*"
245 # ENTITY % tbl.entry.att ""
246 entry
= element entry
{ entry
.attlist, tbl
.entry
.mdl
}
248 attribute colname
{ xsd:NMTOKEN
}?,
249 attribute namest
{ xsd:NMTOKEN
}?,
250 attribute nameend
{ xsd:NMTOKEN
}?,
251 attribute morerows
{ xsd:NMTOKEN
}?,
252 attribute colsep
{ yesorno
}?,
253 attribute rowsep
{ yesorno
}?,
254 attribute align
{ "left" |
"right" |
"center" |
"justify" |
"char" }?,
255 attribute char
{ text
}?,
256 attribute charoff
{ xsd:NMTOKEN
}?,
257 attribute valign
{ "top" |
"middle" |
"bottom" }?,