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 21<!-- The motivation for this XML version of the Exchange Table Model 22 is simply to create an XML version of the SGML Exchange Table 23 Model. By design, no effort has been made to "improve" the model. 24 25 This XML version incorporates the logical bare minimum changes 26 necessary to make the Exchange Table Model a valid XML DTD. 27 28 It has been modified slightly for use in the combined HTML/CALS models 29 supported by DocBook V4.3 and later. 30--> 31 32<!-- The XML version of the Exchange Table Model differs from 33 the SGML version in the following ways: 34 35 The following parameter entities have been removed: 36 37 - tbl.table.excep, tbl.hdft.excep, tbl.row.excep, tbl.entry.excep 38 There are no exceptions in XML. The following normative statement 39 is made in lieu of exceptions: the exchange table model explicitly 40 forbids a table from occurring within another table. If the 41 content model of an entry includes a table element, then this 42 cannot be enforced by the DTD, but it is a deviation from the 43 exchange table model to include a table within a table. 44 45 - tbl.hdft.name, tbl.hdft.mdl, tbl.hdft.excep, tbl.hdft.att 46 The motivation for these elements was to change the table 47 header/footer elements. Since XML does not allow element declarations 48 to contain name groups, and the exchange table model does not 49 allow a table to contain footers, the continued presence of these 50 attributes seems unnecessary. 51 52 The following parameter entity has been added: 53 54 - tbl.thead.att 55 This entity parameterizes the attributes on thead. It replaces 56 the tbl.hdft.att parameter entity. 57 58 Other miscellaneous changes: 59 60 - Tag ommission indicators have been removed 61 - Comments have been removed from declarations 62 - NUMBER attributes have been changed to NMTOKEN 63 - NUTOKEN attributes have been to changed to NMTOKEN 64 - Removed the grouping characters around the content model 65 parameter entry for the 'entry' element. This is necessary 66 so that an entry can contain #PCDATA and be defined as an 67 optional, repeatable OR group beginning with #PCDATA. 68--> 69 70<!-- This entity includes a set of element and attribute declarations 71 that partially defines the Exchange table model. However, the model 72 is not well-defined without the accompanying natural language 73 description of the semantics (meanings) of these various elements, 74 attributes, and attribute values. The semantic writeup, also available 75 from SGML Open, should be used in conjunction with this entity. 76--> 77 78<!-- In order to use the Exchange table model, various parameter entity 79 declarations are required. A brief description is as follows: 80 81 ENTITY NAME WHERE USED WHAT IT IS 82 83 %yesorno In ATTLIST of: An attribute declared value 84 almost all elements for a "boolean" attribute 85 86 %paracon In content model of: The "text" (logical content) 87 <entry> of the model group for <entry> 88 89 %titles In content model of: The "title" part of the model 90 table element group for the table element 91 92 %tbl.table.name In declaration of: The name of the "table" 93 table element element 94 95 %tbl.table-titles.mdl In content model of: The model group for the title 96 table elements part of the content model for 97 table element 98 99 %tbl.table.mdl In content model of: The model group for the content 100 table elements model for table element, 101 often (and by default) defined 102 in terms of %tbl.table-titles.mdl 103 and tgroup 104 105 %tbl.table.att In ATTLIST of: Additional attributes on the 106 table element table element 107 108 %bodyatt In ATTLIST of: Additional attributes on the 109 table element table element (for backward 110 compatibility with the SGML 111 model) 112 113 %tbl.tgroup.mdl In content model of: The model group for the content 114 <tgroup> model for <tgroup> 115 116 %tbl.tgroup.att In ATTLIST of: Additional attributes on the 117 <tgroup> <tgroup> element 118 119 %tbl.thead.att In ATTLIST of: Additional attributes on the 120 <thead> <thead> element 121 122 %tbl.tbody.att In ATTLIST of: Additional attributes on the 123 <tbody> <tbody> element 124 125 %tbl.colspec.att In ATTLIST of: Additional attributes on the 126 <colspec> <colspec> element 127 128 %tbl.row.mdl In content model of: The model group for the content 129 <row> model for <row> 130 131 %tbl.row.att In ATTLIST of: Additional attributes on the 132 <row> <row> element 133 134 %tbl.entry.mdl In content model of: The model group for the content 135 <entry> model for <entry> 136 137 %tbl.entry.att In ATTLIST of: Additional attributes on the 138 <entry> <entry> element 139 140 This set of declarations will use the default definitions shown below 141 for any of these parameter entities that are not declared before this 142 set of declarations is referenced. 143--> 144 145<!-- These definitions are not directly related to the table model, but are 146 used in the default CALS table model and may be defined elsewhere (and 147 prior to the inclusion of this table module) in the referencing DTD. --> 148 149<!ENTITY % yesorno 'NMTOKEN'> <!-- no if zero(s), yes if any other value --> 150<!ENTITY % titles 'title?'> 151<!ENTITY % pcd "#PCDATA"> 152<!ENTITY % paracon '%pcd;'> <!-- default for use in entry content --> 153 154<!-- 155The parameter entities as defined below change and simplify the CALS table 156model as published (as part of the Example DTD) in MIL-HDBK-28001. The 157resulting simplified DTD has support from the SGML Open vendors and is 158therefore more interoperable among different systems. 159 160These following declarations provide the Exchange default definitions 161for these entities. However, these entities can be redefined (by giving 162the appropriate parameter entity declaration(s) prior to the reference 163to this Table Model declaration set entity) to fit the needs of the 164current application. 165 166Note, however, that changes may have significant effect on the ability to 167interchange table information. These changes may manifest themselves 168in useability, presentation, and possible structure information degradation. 169--> 170 171<!ENTITY % tbl.table.name "table"> 172<!ENTITY % tbl.table-titles.mdl "%titles;,"> 173<!ENTITY % tbl.table-main.mdl "tgroup+"> 174<!ENTITY % tbl.table.mdl "%tbl.table-titles.mdl; %tbl.table-main.mdl;"> 175<!ENTITY % tbl.table.att " 176 pgwide %yesorno; #IMPLIED "> 177<!ENTITY % bodyatt ""> 178<!ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody"> 179<!ENTITY % tbl.tgroup.att ""> 180<!ENTITY % tbl.thead.att ""> 181<!ENTITY % tbl.tbody.att ""> 182<!ENTITY % tbl.colspec.att ""> 183<!ENTITY % tbl.row.mdl "entry+"> 184<!ENTITY % tbl.row.att ""> 185<!ENTITY % tbl.entry.mdl "(%paracon;)*"> 186<!ENTITY % tbl.entry.att ""> 187 188<!ENTITY % tbl.frame.attval "top|bottom|topbot|all|sides|none"> 189<!ENTITY % tbl.tbody.mdl "row+"> 190 191<!-- ===== Element and attribute declarations follow. ===== --> 192 193<!-- 194 Default declarations previously defined in this entity and 195 referenced below include: 196 ENTITY % tbl.table.name "table" 197 ENTITY % tbl.table-titles.mdl "%titles;," 198 ENTITY % tbl.table.mdl "%tbl.table-titles; tgroup+" 199 ENTITY % tbl.table.att " 200 pgwide %yesorno; #IMPLIED " 201--> 202 203<!--doc:???--> 204<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)> 205 206<!ATTLIST %tbl.table.name; 207 frame (%tbl.frame.attval;) #IMPLIED 208 colsep %yesorno; #IMPLIED 209 rowsep %yesorno; #IMPLIED 210 %tbl.table.att; 211 %bodyatt; 212> 213 214<!-- 215 Default declarations previously defined in this entity and 216 referenced below include: 217 ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody" 218 ENTITY % tbl.tgroup.att "" 219--> 220 221<!--doc:A wrapper for the main content of a table, or part of a table.--> 222<!ELEMENT tgroup (%tbl.tgroup.mdl;) > 223 224<!ATTLIST tgroup 225 cols NMTOKEN #REQUIRED 226 colsep %yesorno; #IMPLIED 227 rowsep %yesorno; #IMPLIED 228 align (left|right|center|justify|char) #IMPLIED 229 %tbl.tgroup.att; 230> 231 232<!-- 233 Default declarations previously defined in this entity and 234 referenced below include: 235 ENTITY % tbl.colspec.att "" 236--> 237 238<!--doc:Specifications for a column in a table.--> 239<!ELEMENT colspec EMPTY > 240 241<!ATTLIST colspec 242 colnum NMTOKEN #IMPLIED 243 colname NMTOKEN #IMPLIED 244 colwidth CDATA #IMPLIED 245 colsep %yesorno; #IMPLIED 246 rowsep %yesorno; #IMPLIED 247 align (left|right|center|justify|char) #IMPLIED 248 char CDATA #IMPLIED 249 charoff NMTOKEN #IMPLIED 250 %tbl.colspec.att; 251> 252 253<!-- 254 Default declarations previously defined in this entity and 255 referenced below include: 256 ENTITY % tbl.thead.att "" 257--> 258 259<!--doc:A table header consisting of one or more rows.--> 260<!ELEMENT thead (row+)> 261 262<!ATTLIST thead 263 valign (top|middle|bottom) #IMPLIED 264 %tbl.thead.att; 265> 266 267<!-- 268 Default declarations previously defined in this entity and 269 referenced below include: 270 ENTITY % tbl.tbody.att "" 271--> 272 273<!--doc:A wrapper for the rows of a table or informal table.--> 274<!ELEMENT tbody (%tbl.tbody.mdl;)> 275 276<!ATTLIST tbody 277 valign (top|middle|bottom) #IMPLIED 278 %tbl.tbody.att; 279> 280 281<!-- 282 Default declarations previously defined in this entity and 283 referenced below include: 284 ENTITY % tbl.row.mdl "entry+" 285 ENTITY % tbl.row.att "" 286--> 287 288<!--doc:A row in a table.--> 289<!ELEMENT row (%tbl.row.mdl;)> 290 291<!ATTLIST row 292 rowsep %yesorno; #IMPLIED 293 valign (top|middle|bottom) #IMPLIED 294 %tbl.row.att; 295> 296 297 298<!-- 299 Default declarations previously defined in this entity and 300 referenced below include: 301 ENTITY % paracon "#PCDATA" 302 ENTITY % tbl.entry.mdl "(%paracon;)*" 303 ENTITY % tbl.entry.att "" 304--> 305 306<!--doc:A cell in a table.--> 307<!ELEMENT entry (%tbl.entry.mdl;)*> 308 309<!ATTLIST entry 310 colname NMTOKEN #IMPLIED 311 namest NMTOKEN #IMPLIED 312 nameend NMTOKEN #IMPLIED 313 morerows NMTOKEN #IMPLIED 314 colsep %yesorno; #IMPLIED 315 rowsep %yesorno; #IMPLIED 316 align (left|right|center|justify|char) #IMPLIED 317 char CDATA #IMPLIED 318 charoff NMTOKEN #IMPLIED 319 valign (top|middle|bottom) #IMPLIED 320 %tbl.entry.att; 321> 322