86361
|
1 # XML EXCHANGE TABLE MODEL DECLARATION MODULE
|
|
2
|
|
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.
|
|
6 #
|
|
7 # This set of declarations may be referred to using a public external
|
|
8 # entity declaration and reference as shown in the following three
|
|
9 # lines:
|
|
10 #
|
|
11 # <!ENTITY % calstblx
|
|
12 # PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN">
|
|
13 # %calstblx;
|
|
14 #
|
|
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).
|
|
19
|
|
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.
|
|
23 #
|
|
24 # This XML version incorporates the logical bare minimum changes
|
|
25 # necessary to make the Exchange Table Model a valid XML DTD.
|
|
26
|
|
27 # The XML version of the Exchange Table Model differs from
|
|
28 # the SGML version in the following ways:
|
|
29 #
|
|
30 # The following parameter entities have been removed:
|
|
31 #
|
|
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.
|
|
39 #
|
|
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.
|
|
46 #
|
|
47 # The following parameter entity has been added:
|
|
48 #
|
|
49 # - tbl.thead.att
|
|
50 # This entity parameterizes the attributes on thead. It replaces
|
|
51 # the tbl.hdft.att parameter entity.
|
|
52 #
|
|
53 # Other miscellaneous changes:
|
|
54 #
|
|
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.
|
|
63
|
|
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.
|
|
70
|
|
71 # In order to use the Exchange table model, various parameter entity
|
|
72 # declarations are required. A brief description is as follows:
|
|
73 #
|
|
74 # ENTITY NAME WHERE USED WHAT IT IS
|
|
75 #
|
|
76 # %yesorno In ATTLIST of: An attribute declared value
|
|
77 # almost all elements for a "boolean" attribute
|
|
78 #
|
|
79 # %paracon In content model of: The "text" (logical content)
|
|
80 # <entry> of the model group for <entry>
|
|
81 #
|
|
82 # %titles In content model of: The "title" part of the model
|
|
83 # table element group for the table element
|
|
84 #
|
|
85 # %tbl.table.name In declaration of: The name of the "table"
|
|
86 # table element element
|
|
87 #
|
|
88 # %tbl.table-titles.mdl In content model of: The model group for the title
|
|
89 # table elements part of the content model for
|
|
90 # table element
|
|
91 #
|
|
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
|
|
96 # and tgroup
|
|
97 #
|
|
98 # %tbl.table.att In ATTLIST of: Additional attributes on the
|
|
99 # table element table element
|
|
100 #
|
|
101 # %bodyatt In ATTLIST of: Additional attributes on the
|
|
102 # table element table element (for backward
|
|
103 # compatibility with the SGML
|
|
104 # model)
|
|
105 #
|
|
106 # %tbl.tgroup.mdl In content model of: The model group for the content
|
|
107 # <tgroup> model for <tgroup>
|
|
108 #
|
|
109 # %tbl.tgroup.att In ATTLIST of: Additional attributes on the
|
|
110 # <tgroup> <tgroup> element
|
|
111 #
|
|
112 # %tbl.thead.att In ATTLIST of: Additional attributes on the
|
|
113 # <thead> <thead> element
|
|
114 #
|
|
115 # %tbl.tbody.att In ATTLIST of: Additional attributes on the
|
|
116 # <tbody> <tbody> element
|
|
117 #
|
|
118 # %tbl.colspec.att In ATTLIST of: Additional attributes on the
|
|
119 # <colspec> <colspec> element
|
|
120 #
|
|
121 # %tbl.row.mdl In content model of: The model group for the content
|
|
122 # <row> model for <row>
|
|
123 #
|
|
124 # %tbl.row.att In ATTLIST of: Additional attributes on the
|
|
125 # <row> <row> element
|
|
126 #
|
|
127 # %tbl.entry.mdl In content model of: The model group for the content
|
|
128 # <entry> model for <entry>
|
|
129 #
|
|
130 # %tbl.entry.att In ATTLIST of: Additional attributes on the
|
|
131 # <entry> <entry> element
|
|
132 #
|
|
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.
|
|
136
|
|
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.
|
|
140
|
|
141 yesorno = xsd:NMTOKEN
|
|
142 # no if zero(s), yes if any other value
|
|
143 pcd = text
|
|
144 paracon = pcd
|
|
145 # default for use in entry content
|
|
146
|
|
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.
|
|
151 #
|
|
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.
|
|
157 #
|
|
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 }?
|
|
165 bodyatt = empty
|
|
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
|
|
171 tbl.row.mdl = entry+
|
|
172 tbl.row.att = empty
|
|
173 tbl.entry.mdl = paracon*
|
|
174 tbl.entry.att = empty
|
|
175 # ===== Element and attribute declarations follow. =====
|
|
176
|
|
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 }
|
|
185 table.attlist &=
|
|
186 attribute frame {
|
|
187 "top" | "bottom" | "topbot" | "all" | "sides" | "none"
|
|
188 }?,
|
|
189 attribute colsep { yesorno }?,
|
|
190 attribute rowsep { yesorno }?,
|
|
191 tbl.table.att,
|
|
192 bodyatt
|
|
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 }
|
|
198 tgroup.attlist &=
|
|
199 attribute cols { xsd:NMTOKEN },
|
|
200 attribute colsep { yesorno }?,
|
|
201 attribute rowsep { yesorno }?,
|
|
202 attribute align { "left" | "right" | "center" | "justify" | "char" }?,
|
|
203 tbl.tgroup.att
|
|
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 }
|
|
208 colspec.attlist &=
|
|
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 }?,
|
|
217 tbl.colspec.att
|
|
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+ }
|
|
222 thead.attlist &=
|
|
223 attribute valign { "top" | "middle" | "bottom" }?,
|
|
224 tbl.thead.att
|
|
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+ }
|
|
229 tbody.attlist &=
|
|
230 attribute valign { "top" | "middle" | "bottom" }?,
|
|
231 tbl.tbody.att
|
|
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 }
|
|
237 row.attlist &=
|
|
238 attribute rowsep { yesorno }?,
|
|
239 attribute valign { "top" | "middle" | "bottom" }?,
|
|
240 tbl.row.att
|
|
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 }
|
|
247 entry.attlist &=
|
|
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" }?,
|
|
258 tbl.entry.att
|
|
259 title |= notAllowed
|
|
260 start = table
|