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