summaryrefslogtreecommitdiff
path: root/etc/schema/xhtml-table.rnc
diff options
context:
space:
mode:
Diffstat (limited to 'etc/schema/xhtml-table.rnc')
-rw-r--r--etc/schema/xhtml-table.rnc67
1 files changed, 67 insertions, 0 deletions
diff --git a/etc/schema/xhtml-table.rnc b/etc/schema/xhtml-table.rnc
new file mode 100644
index 00000000000..70055b1598f
--- /dev/null
+++ b/etc/schema/xhtml-table.rnc
@@ -0,0 +1,67 @@
+# Tables Module
+
+# This builds on the basic tables module, unlike with the DTD
+# implementation.
+
+include "xhtml-basic-table.rnc" {
+ table =
+ element table {
+ table.attlist,
+ caption?,
+ (col* | colgroup*),
+ ((thead?, tfoot?, tbody+) | tr+)
+ }
+ th = element th { th.attlist, Flow.model }
+ td = element td { td.attlist, Flow.model }
+ CellHAlign.attrib =
+ attribute align {
+ "left" | "center" | "right" | "justify" | "char"
+ }?,
+ attribute char { Character.datatype }?,
+ attribute charoff { Length.datatype }?
+ CellVAlign.attrib =
+ attribute valign { "top" | "middle" | "bottom" | "baseline" }?
+ scope.attrib =
+ attribute scope { "row" | "col" | "rowgroup" | "colgroup" }?
+}
+table.attlist &=
+ attribute width { Length.datatype }?,
+ attribute border { Pixels.datatype }?,
+ frame.attrib,
+ rules.attrib,
+ attribute cellspacing { Length.datatype }?,
+ attribute cellpadding { Length.datatype }?
+col = element col { col.attlist }
+col.attlist =
+ Common.attrib,
+ attribute span { Number.datatype }?,
+ attribute width { MultiLength.datatype }?,
+ CellHAlign.attrib,
+ CellVAlign.attrib
+colgroup = element colgroup { colgroup.attlist, col* }
+colgroup.attlist =
+ Common.attrib,
+ attribute span { Number.datatype }?,
+ attribute width { MultiLength.datatype }?,
+ CellHAlign.attrib,
+ CellVAlign.attrib
+tbody = element tbody { tbody.attlist, tr+ }
+tbody.attlist = Common.attrib, CellHAlign.attrib, CellVAlign.attrib
+thead = element thead { thead.attlist, tr+ }
+thead.attlist = Common.attrib, CellHAlign.attrib, CellVAlign.attrib
+tfoot = element tfoot { tfoot.attlist, tr+ }
+tfoot.attlist = Common.attrib, CellHAlign.attrib, CellVAlign.attrib
+frame.attrib =
+ attribute frame {
+ "void"
+ | "above"
+ | "below"
+ | "hsides"
+ | "lhs"
+ | "rhs"
+ | "vsides"
+ | "box"
+ | "border"
+ }?
+rules.attrib =
+ attribute rules { "none" | "groups" | "rows" | "cols" | "all" }?