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<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)> 204 205<!ATTLIST %tbl.table.name; 206 frame (%tbl.frame.attval;) #IMPLIED 207 colsep %yesorno; #IMPLIED 208 rowsep %yesorno; #IMPLIED 209 %tbl.table.att; 210 %bodyatt; 211> 212 213<!-- 214 Default declarations previously defined in this entity and 215 referenced below include: 216 ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody" 217 ENTITY % tbl.tgroup.att "" 218--> 219 220<!ELEMENT tgroup (%tbl.tgroup.mdl;) > 221 222<!ATTLIST tgroup 223 cols NMTOKEN #REQUIRED 224 colsep %yesorno; #IMPLIED 225 rowsep %yesorno; #IMPLIED 226 align (left|right|center|justify|char) #IMPLIED 227 %tbl.tgroup.att; 228> 229 230<!-- 231 Default declarations previously defined in this entity and 232 referenced below include: 233 ENTITY % tbl.colspec.att "" 234--> 235 236<!ELEMENT colspec EMPTY > 237 238<!ATTLIST colspec 239 colnum NMTOKEN #IMPLIED 240 colname NMTOKEN #IMPLIED 241 colwidth CDATA #IMPLIED 242 colsep %yesorno; #IMPLIED 243 rowsep %yesorno; #IMPLIED 244 align (left|right|center|justify|char) #IMPLIED 245 char CDATA #IMPLIED 246 charoff NMTOKEN #IMPLIED 247 %tbl.colspec.att; 248> 249 250<!-- 251 Default declarations previously defined in this entity and 252 referenced below include: 253 ENTITY % tbl.thead.att "" 254--> 255 256<!ELEMENT thead (row+)> 257 258<!ATTLIST thead 259 valign (top|middle|bottom) #IMPLIED 260 %tbl.thead.att; 261> 262 263<!-- 264 Default declarations previously defined in this entity and 265 referenced below include: 266 ENTITY % tbl.tbody.att "" 267--> 268 269<!ELEMENT tbody (%tbl.tbody.mdl;)> 270 271<!ATTLIST tbody 272 valign (top|middle|bottom) #IMPLIED 273 %tbl.tbody.att; 274> 275 276<!-- 277 Default declarations previously defined in this entity and 278 referenced below include: 279 ENTITY % tbl.row.mdl "entry+" 280 ENTITY % tbl.row.att "" 281--> 282 283<!ELEMENT row (%tbl.row.mdl;)> 284 285<!ATTLIST row 286 rowsep %yesorno; #IMPLIED 287 valign (top|middle|bottom) #IMPLIED 288 %tbl.row.att; 289> 290 291 292<!-- 293 Default declarations previously defined in this entity and 294 referenced below include: 295 ENTITY % paracon "#PCDATA" 296 ENTITY % tbl.entry.mdl "(%paracon;)*" 297 ENTITY % tbl.entry.att "" 298--> 299 300<!ELEMENT entry (%tbl.entry.mdl;)*> 301 302<!ATTLIST entry 303 colname NMTOKEN #IMPLIED 304 namest NMTOKEN #IMPLIED 305 nameend NMTOKEN #IMPLIED 306 morerows NMTOKEN #IMPLIED 307 colsep %yesorno; #IMPLIED 308 rowsep %yesorno; #IMPLIED 309 align (left|right|center|justify|char) #IMPLIED 310 char CDATA #IMPLIED 311 charoff NMTOKEN #IMPLIED 312 valign (top|middle|bottom) #IMPLIED 313 %tbl.entry.att; 314> 315