| [da28cc3] | 1 | # ......................................................................
 | 
|---|
 | 2 | 
 | 
|---|
 | 3 | # DocBook XML HTML Table Module V4.5 ...................................
 | 
|---|
 | 4 | 
 | 
|---|
 | 5 | # File htmltblx.mod ....................................................
 | 
|---|
 | 6 | 
 | 
|---|
 | 7 | # Copyright 2003-2006 ArborText, Inc., Norman Walsh, Sun Microsystems,
 | 
|---|
 | 8 | # Inc., and the Organization for the Advancement of Structured Information
 | 
|---|
 | 9 | # Standards (OASIS).
 | 
|---|
 | 10 | # 
 | 
|---|
 | 11 | # $Id: htmltblx.mod 6340 2006-10-03 13:23:24Z nwalsh $
 | 
|---|
 | 12 | # 
 | 
|---|
 | 13 | # Permission to use, copy, modify and distribute the DocBook XML DTD
 | 
|---|
 | 14 | # and its accompanying documentation for any purpose and without fee
 | 
|---|
 | 15 | # is hereby granted in perpetuity, provided that the above copyright
 | 
|---|
 | 16 | # notice and this paragraph appear in all copies.  The copyright
 | 
|---|
 | 17 | # holders make no representation about the suitability of the DTD for
 | 
|---|
 | 18 | # any purpose.  It is provided "as is" without expressed or implied
 | 
|---|
 | 19 | # warranty.
 | 
|---|
 | 20 | # 
 | 
|---|
 | 21 | # If you modify the DocBook XML DTD in any way, except for declaring and
 | 
|---|
 | 22 | # referencing additional sets of general entities and declaring
 | 
|---|
 | 23 | # additional notations, label your DTD as a variant of DocBook.  See
 | 
|---|
 | 24 | # the maintenance documentation for more information.
 | 
|---|
 | 25 | # 
 | 
|---|
 | 26 | # Please direct all questions, bug reports, or suggestions for
 | 
|---|
 | 27 | # changes to the docbook@lists.oasis-open.org mailing list. For more
 | 
|---|
 | 28 | # information, see http://www.oasis-open.org/docbook/.
 | 
|---|
 | 29 | 
 | 
|---|
 | 30 | # ......................................................................
 | 
|---|
 | 31 | 
 | 
|---|
 | 32 | # This module contains the definitions for elements that are
 | 
|---|
 | 33 | # isomorphic to the HTML elements. One could argue we should
 | 
|---|
 | 34 | # instead have based ourselves on the XHTML Table Module, but the
 | 
|---|
 | 35 | # HTML one is more like what browsers are likely to accept today
 | 
|---|
 | 36 | # and users are likely to use.
 | 
|---|
 | 37 | # 
 | 
|---|
 | 38 | # This module has been developed for use with the DocBook V4.5
 | 
|---|
 | 39 | # "union table model" in which elements and attlists common to both
 | 
|---|
 | 40 | # models are defined (as the union) in the CALS table module by
 | 
|---|
 | 41 | # setting various parameter entities appropriately in this file.
 | 
|---|
 | 42 | # 
 | 
|---|
 | 43 | # In DTD driver files referring to this module, please use an entity
 | 
|---|
 | 44 | # declaration that uses the public identifier shown below:
 | 
|---|
 | 45 | # 
 | 
|---|
 | 46 | # <!ENTITY % htmltbl PUBLIC
 | 
|---|
 | 47 | # "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN"
 | 
|---|
 | 48 | # "htmltblx.mod">
 | 
|---|
 | 49 | # %htmltbl;
 | 
|---|
 | 50 | # 
 | 
|---|
 | 51 | # See the documentation for detailed information on the parameter
 | 
|---|
 | 52 | # entity and module scheme used in DocBook, customizing DocBook and
 | 
|---|
 | 53 | # planning for interchange, and changes made since the last release
 | 
|---|
 | 54 | # of DocBook.
 | 
|---|
 | 55 | 
 | 
|---|
 | 56 | # ======================= XHTML Tables =======================================
 | 
|---|
 | 57 | 
 | 
|---|
 | 58 | namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
 | 
|---|
 | 59 | 
 | 
|---|
 | 60 | html.coreattrs =
 | 
|---|
 | 61 |   common.attrib,
 | 
|---|
 | 62 |   attribute class { text }?,
 | 
|---|
 | 63 |   attribute style { text }?,
 | 
|---|
 | 64 |   attribute title { text }?
 | 
|---|
 | 65 | # Does not contain lang or dir because they are in %common.attribs
 | 
|---|
 | 66 | i18n = attribute xml:lang { xsd:NMTOKEN }?
 | 
|---|
 | 67 | events =
 | 
|---|
 | 68 |   attribute onclick { text }?,
 | 
|---|
 | 69 |   attribute ondblclick { text }?,
 | 
|---|
 | 70 |   attribute onmousedown { text }?,
 | 
|---|
 | 71 |   attribute onmouseup { text }?,
 | 
|---|
 | 72 |   attribute onmouseover { text }?,
 | 
|---|
 | 73 |   attribute onmousemove { text }?,
 | 
|---|
 | 74 |   attribute onmouseout { text }?,
 | 
|---|
 | 75 |   attribute onkeypress { text }?,
 | 
|---|
 | 76 |   attribute onkeydown { text }?,
 | 
|---|
 | 77 |   attribute onkeyup { text }?
 | 
|---|
 | 78 | attrs = html.coreattrs, i18n, events
 | 
|---|
 | 79 | cellhalign =
 | 
|---|
 | 80 |   attribute align { "left" | "center" | "right" | "justify" | "char" }?,
 | 
|---|
 | 81 |   attribute char { text }?,
 | 
|---|
 | 82 |   attribute charoff { text }?
 | 
|---|
 | 83 | cellvalign =
 | 
|---|
 | 84 |   attribute valign { "top" | "middle" | "bottom" | "baseline" }?
 | 
|---|
 | 85 | # doc:A group of columns in an HTML table.
 | 
|---|
 | 86 | colgroup = element colgroup { colgroup.attlist, col* }
 | 
|---|
 | 87 | # doc:Specifications for a column in an HTML table.
 | 
|---|
 | 88 | col = element col { col.attlist, empty }
 | 
|---|
 | 89 | # doc:A row in an HTML table.
 | 
|---|
 | 90 | tr = element tr { tr.attlist, (th | td)+ }
 | 
|---|
 | 91 | # doc:A table header entry in an HTML table.
 | 
|---|
 | 92 | th =
 | 
|---|
 | 93 |   element th {
 | 
|---|
 | 94 |     th.attlist, (para.char.mix | tabentry.mix | table | informaltable)*
 | 
|---|
 | 95 |   }
 | 
|---|
 | 96 | # doc:A table ntry in an HTML table.
 | 
|---|
 | 97 | td =
 | 
|---|
 | 98 |   element td {
 | 
|---|
 | 99 |     td.attlist, (para.char.mix | tabentry.mix | table | informaltable)*
 | 
|---|
 | 100 |   }
 | 
|---|
 | 101 | colgroup.attlist &=
 | 
|---|
 | 102 |   attrs,
 | 
|---|
 | 103 |   [ a:defaultValue = "1" ] attribute span { text }?,
 | 
|---|
 | 104 |   attribute width { text }?,
 | 
|---|
 | 105 |   cellhalign,
 | 
|---|
 | 106 |   cellvalign
 | 
|---|
 | 107 | col.attlist &=
 | 
|---|
 | 108 |   attrs,
 | 
|---|
 | 109 |   [ a:defaultValue = "1" ] attribute span { text }?,
 | 
|---|
 | 110 |   attribute width { text }?,
 | 
|---|
 | 111 |   cellhalign,
 | 
|---|
 | 112 |   cellvalign
 | 
|---|
 | 113 | tr.attlist &=
 | 
|---|
 | 114 |   attrs,
 | 
|---|
 | 115 |   cellhalign,
 | 
|---|
 | 116 |   cellvalign,
 | 
|---|
 | 117 |   attribute bgcolor { text }?
 | 
|---|
 | 118 | th.attlist &=
 | 
|---|
 | 119 |   attrs,
 | 
|---|
 | 120 |   attribute abbr { text }?,
 | 
|---|
 | 121 |   attribute axis { text }?,
 | 
|---|
 | 122 |   attribute headers { xsd:IDREFS }?,
 | 
|---|
 | 123 |   attribute scope { "row" | "col" | "rowgroup" | "colgroup" }?,
 | 
|---|
 | 124 |   [ a:defaultValue = "1" ] attribute rowspan { text }?,
 | 
|---|
 | 125 |   [ a:defaultValue = "1" ] attribute colspan { text }?,
 | 
|---|
 | 126 |   cellhalign,
 | 
|---|
 | 127 |   cellvalign,
 | 
|---|
 | 128 |   attribute nowrap { "nowrap" }?,
 | 
|---|
 | 129 |   attribute bgcolor { text }?,
 | 
|---|
 | 130 |   attribute width { text }?,
 | 
|---|
 | 131 |   attribute height { text }?
 | 
|---|
 | 132 | td.attlist &=
 | 
|---|
 | 133 |   attrs,
 | 
|---|
 | 134 |   attribute abbr { text }?,
 | 
|---|
 | 135 |   attribute axis { text }?,
 | 
|---|
 | 136 |   attribute headers { xsd:IDREFS }?,
 | 
|---|
 | 137 |   attribute scope { "row" | "col" | "rowgroup" | "colgroup" }?,
 | 
|---|
 | 138 |   [ a:defaultValue = "1" ] attribute rowspan { text }?,
 | 
|---|
 | 139 |   [ a:defaultValue = "1" ] attribute colspan { text }?,
 | 
|---|
 | 140 |   cellhalign,
 | 
|---|
 | 141 |   cellvalign,
 | 
|---|
 | 142 |   attribute nowrap { "nowrap" }?,
 | 
|---|
 | 143 |   attribute bgcolor { text }?,
 | 
|---|
 | 144 |   attribute width { text }?,
 | 
|---|
 | 145 |   attribute height { text }?
 | 
|---|
 | 146 | # ======================================================
 | 
|---|
 | 147 | 
 | 
|---|
 | 148 | # Set up to read in the CALS model configured to
 | 
|---|
 | 149 | # merge with the XHTML table model
 | 
|---|
 | 150 | 
 | 
|---|
 | 151 | # ======================================================
 | 
|---|
 | 152 | tables.role.attrib = role.attrib
 | 
|---|
 | 153 | # Add label and role attributes to table and informaltable
 | 
|---|
 | 154 | bodyatt =
 | 
|---|
 | 155 |   attribute floatstyle { text }?,
 | 
|---|
 | 156 |   attribute rowheader { "firstcol" | "norowheader" }?,
 | 
|---|
 | 157 |   label.attrib
 | 
|---|
 | 158 | # Add common attributes to Table, TGroup, TBody, THead, TFoot, Row, 
 | 
|---|
 | 159 | # EntryTbl, and Entry (and InformalTable element).
 | 
|---|
 | 160 | secur =
 | 
|---|
 | 161 |   common.attrib,
 | 
|---|
 | 162 |   attribute class { text }?,
 | 
|---|
 | 163 |   attribute style { text }?,
 | 
|---|
 | 164 |   attribute title { text }?,
 | 
|---|
 | 165 |   i18n,
 | 
|---|
 | 166 |   events,
 | 
|---|
 | 167 |   tables.role.attrib
 | 
|---|
 | 168 | common.table.attribs = bodyatt, secur
 | 
|---|
 | 169 | # Content model for Table (that also allows HTML tables)
 | 
|---|
 | 170 | tbl.table.mdl =
 | 
|---|
 | 171 |   (blockinfo?,
 | 
|---|
 | 172 |    formalobject.title.content,
 | 
|---|
 | 173 |    ndxterm.class*,
 | 
|---|
 | 174 |    textobject*,
 | 
|---|
 | 175 |    (graphic+ | mediaobject+ | tgroup+))
 | 
|---|
 | 176 |   | (caption, (col* | colgroup*), thead?, tfoot?, (tbody+ | tr+))
 | 
|---|
 | 177 | informal.tbl.table.mdl =
 | 
|---|
 | 178 |   (textobject*, (graphic+ | mediaobject+ | tgroup+))
 | 
|---|
 | 179 |   | ((col* | colgroup*), thead?, tfoot?, (tbody+ | tr+))
 | 
|---|
 | 180 | # Attributes for Table (including HTML ones)
 | 
|---|
 | 181 | 
 | 
|---|
 | 182 | # N.B. rules = (none | groups | rows | cols | all) but it can't be spec'd
 | 
|---|
 | 183 | 
 | 
|---|
 | 184 | # that way because 'all' already occurs in a different enumeration in
 | 
|---|
 | 185 | 
 | 
|---|
 | 186 | # CALS tables (frame).
 | 
|---|
 | 187 | tbl.table.att =
 | 
|---|
 | 188 |   attribute tabstyle { text }?,
 | 
|---|
 | 189 |   attribute tocentry { yesorno.attvals }?,
 | 
|---|
 | 190 |   attribute shortentry { yesorno.attvals }?,
 | 
|---|
 | 191 |   attribute orient { "port" | "land" }?,
 | 
|---|
 | 192 |   attribute pgwide { yesorno.attvals }?,
 | 
|---|
 | 193 |   attribute summary { text }?,
 | 
|---|
 | 194 |   attribute width { text }?,
 | 
|---|
 | 195 |   attribute border { text }?,
 | 
|---|
 | 196 |   attribute rules { text }?,
 | 
|---|
 | 197 |   attribute cellspacing { text }?,
 | 
|---|
 | 198 |   attribute cellpadding { text }?,
 | 
|---|
 | 199 |   attribute align { "left" | "center" | "right" }?,
 | 
|---|
 | 200 |   attribute bgcolor { text }?
 | 
|---|
 | 201 | tbl.frame.attval =
 | 
|---|
 | 202 |   "void"
 | 
|---|
 | 203 |   | "above"
 | 
|---|
 | 204 |   | "below"
 | 
|---|
 | 205 |   | "hsides"
 | 
|---|
 | 206 |   | "lhs"
 | 
|---|
 | 207 |   | "rhs"
 | 
|---|
 | 208 |   | "vsides"
 | 
|---|
 | 209 |   | "box"
 | 
|---|
 | 210 |   | "border"
 | 
|---|
 | 211 |   | "top"
 | 
|---|
 | 212 |   | "bottom"
 | 
|---|
 | 213 |   | "topbot"
 | 
|---|
 | 214 |   | "all"
 | 
|---|
 | 215 |   | "sides"
 | 
|---|
 | 216 |   | "none"
 | 
|---|
 | 217 | # Allow either objects or inlines; beware of REs between elements.
 | 
|---|
 | 218 | tbl.entry.mdl = para.char.mix | tabentry.mix
 | 
|---|
 | 219 | # thead, tfoot, and tbody are defined in both table models,
 | 
|---|
 | 220 | # so we set up parameter entities to define union models for them
 | 
|---|
 | 221 | tbl.hdft.mdl = tr+ | (colspec*, row+)
 | 
|---|
 | 222 | tbl.tbody.mdl = tr+ | row+
 | 
|---|
 | 223 | # End of DocBook XML HTML Table Module V4.5 ............................
 | 
|---|
 | 224 | 
 | 
|---|
 | 225 | # ......................................................................
 | 
|---|