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 % paracon '#PCDATA'> <!-- default for use in entry content --> 149 150<!-- 151The parameter entities as defined below change and simplify the CALS table 152model as published (as part of the Example DTD) in MIL-HDBK-28001. The 153resulting simplified DTD has support from the SGML Open vendors and is 154therefore more interoperable among different systems. 155 156These following declarations provide the Exchange default definitions 157for these entities. However, these entities can be redefined (by giving 158the appropriate parameter entity declaration(s) prior to the reference 159to this Table Model declaration set entity) to fit the needs of the 160current application. 161 162Note, however, that changes may have significant effect on the ability to 163interchange table information. These changes may manifest themselves 164in useability, presentation, and possible structure information degradation. 165--> 166 167<!ENTITY % tbl.table.name "table"> 168<!ENTITY % tbl.table-titles.mdl "%titles;,"> 169<!ENTITY % tbl.table-main.mdl "tgroup+"> 170<!ENTITY % tbl.table.mdl "%tbl.table-titles.mdl; %tbl.table-main.mdl;"> 171<!ENTITY % tbl.table.att " 172 pgwide %yesorno; #IMPLIED "> 173<!ENTITY % bodyatt ""> 174<!ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody"> 175<!ENTITY % tbl.tgroup.att ""> 176<!ENTITY % tbl.thead.att ""> 177<!ENTITY % tbl.tbody.att ""> 178<!ENTITY % tbl.colspec.att ""> 179<!ENTITY % tbl.row.mdl "entry+"> 180<!ENTITY % tbl.row.att ""> 181<!ENTITY % tbl.entry.mdl "(%paracon;)*"> 182<!ENTITY % tbl.entry.att ""> 183 184<!-- ===== Element and attribute declarations follow. ===== --> 185 186<!-- 187 Default declarations previously defined in this entity and 188 referenced below include: 189 ENTITY % tbl.table.name "table" 190 ENTITY % tbl.table-titles.mdl "%titles;," 191 ENTITY % tbl.table.mdl "%tbl.table-titles; tgroup+" 192 ENTITY % tbl.table.att " 193 pgwide %yesorno; #IMPLIED " 194--> 195 196<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)> 197 198<!ATTLIST %tbl.table.name; 199 frame (top|bottom|topbot|all|sides|none) #IMPLIED 200 colsep %yesorno; #IMPLIED 201 rowsep %yesorno; #IMPLIED 202 %tbl.table.att; 203 %bodyatt; 204> 205 206<!-- 207 Default declarations previously defined in this entity and 208 referenced below include: 209 ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody" 210 ENTITY % tbl.tgroup.att "" 211--> 212 213<!ELEMENT tgroup (%tbl.tgroup.mdl;) > 214 215<!ATTLIST tgroup 216 cols NMTOKEN #REQUIRED 217 colsep %yesorno; #IMPLIED 218 rowsep %yesorno; #IMPLIED 219 align (left|right|center|justify|char) #IMPLIED 220 %tbl.tgroup.att; 221> 222 223<!-- 224 Default declarations previously defined in this entity and 225 referenced below include: 226 ENTITY % tbl.colspec.att "" 227--> 228 229<!ELEMENT colspec EMPTY > 230 231<!ATTLIST colspec 232 colnum NMTOKEN #IMPLIED 233 colname NMTOKEN #IMPLIED 234 colwidth CDATA #IMPLIED 235 colsep %yesorno; #IMPLIED 236 rowsep %yesorno; #IMPLIED 237 align (left|right|center|justify|char) #IMPLIED 238 char CDATA #IMPLIED 239 charoff NMTOKEN #IMPLIED 240 %tbl.colspec.att; 241> 242 243<!-- 244 Default declarations previously defined in this entity and 245 referenced below include: 246 ENTITY % tbl.thead.att "" 247--> 248 249<!ELEMENT thead (row+)> 250 251<!ATTLIST thead 252 valign (top|middle|bottom) #IMPLIED 253 %tbl.thead.att; 254> 255 256<!-- 257 Default declarations previously defined in this entity and 258 referenced below include: 259 ENTITY % tbl.tbody.att "" 260--> 261 262<!ELEMENT tbody (row+)> 263 264<!ATTLIST tbody 265 valign (top|middle|bottom) #IMPLIED 266 %tbl.tbody.att; 267> 268 269<!-- 270 Default declarations previously defined in this entity and 271 referenced below include: 272 ENTITY % tbl.row.mdl "entry+" 273 ENTITY % tbl.row.att "" 274--> 275 276<!ELEMENT row (%tbl.row.mdl;)> 277 278<!ATTLIST row 279 rowsep %yesorno; #IMPLIED 280 valign (top|middle|bottom) #IMPLIED 281 %tbl.row.att; 282> 283 284 285<!-- 286 Default declarations previously defined in this entity and 287 referenced below include: 288 ENTITY % paracon "#PCDATA" 289 ENTITY % tbl.entry.mdl "(%paracon;)*" 290 ENTITY % tbl.entry.att "" 291--> 292 293<!ELEMENT entry %tbl.entry.mdl;> 294 295<!ATTLIST entry 296 colname NMTOKEN #IMPLIED 297 namest NMTOKEN #IMPLIED 298 nameend NMTOKEN #IMPLIED 299 morerows NMTOKEN #IMPLIED 300 colsep %yesorno; #IMPLIED 301 rowsep %yesorno; #IMPLIED 302 align (left|right|center|justify|char) #IMPLIED 303 char CDATA #IMPLIED 304 charoff NMTOKEN #IMPLIED 305 valign (top|middle|bottom) #IMPLIED 306 %tbl.entry.att; 307> 308