emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to etc/schema/dbdyntbl.rnc


From: Mark A. Hershberger
Subject: [Emacs-diffs] Changes to etc/schema/dbdyntbl.rnc
Date: Fri, 23 Nov 2007 06:58:04 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Mark A. Hershberger <hexmode>   07/11/23 06:58:00

Index: etc/schema/dbdyntbl.rnc
===================================================================
RCS file: etc/schema/dbdyntbl.rnc
diff -N etc/schema/dbdyntbl.rnc
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ etc/schema/dbdyntbl.rnc     23 Nov 2007 06:57:44 -0000      1.1
@@ -0,0 +1,116 @@
+# This is an alternative to dbsoextbl.rnc and dbcalstbl.rnc that
+# allows the table model to be selected dynamically based on the
+# definitions of cals.table.module and exchange.table.module.
+#
+# To use this copy, docbook.rnc to docbook-dyntbl.rnc replacing
+# "dbcalstbl.rnc" by "dbdyntbl.rnc".  Then, you can override the
+# choice of table model by doing
+#
+# include "docbook-dyntbl.rnc" {
+#   cals.table.model = IGNORE
+#   exchange.table.model = INCLUDE
+# }
+
+INCLUDE = empty
+IGNORE = notAllowed
+cals.table.module = INCLUDE
+exchange.table.module = IGNORE
+
+# Add common attributes and the Label attribute to Table and
+# InformalTable.
+bodyatt = common.attrib, label.attrib, tables.role.attrib
+
+# Content model for Table.
+tbl.table.mdl =
+  blockinfo?,
+  formalobject.title.content,
+  ndxterm.class*,
+  textobject*,
+  (graphic+ | mediaobject+ | tgroup+)
+
+table = cals.table | exchange.table
+
+cals.table =
+  cals.table.module,
+  grammar {
+    # Reference CALS Table Model
+    include "calstbl.rnc" {
+      # Add label and role attributes to table and informaltable
+      bodyatt = parent label.attrib
+      # Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
+      # EntryTbl, and Entry (and InformalTable element).
+      secur = parent common.attrib, parent tables.role.attrib
+      tbl.table.mdl = parent tbl.table.mdl
+    }
+  }
+
+exchange.table =
+  exchange.table.module,
+  grammar {
+    # Reference OASIS Exchange Table Model
+    include "soextbl.rnc" {
+      # Add common attributes and the Label attribute to Table and
+      # InformalTable.
+      bodyatt = parent bodyatt
+      tbl.table.mdl = parent tbl.table.mdl
+    }
+  }
+
+tgroup = cals.tgroup | exchange.tgroup
+
+cals.tgroup =
+  cals.table.module,
+  grammar {
+    # Reference CALS Table Model
+    include "calstbl.rnc" {
+      start = tgroup
+      # Add label and role attributes to table and informaltable
+      bodyatt = parent label.attrib
+      # Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
+      # EntryTbl, and Entry (and InformalTable element).
+      secur = parent common.attrib, parent tables.role.attrib
+      # Allow either objects or inlines; beware of REs between elements.
+      tbl.entry.mdl = parent para.char.mix | parent tabentry.mix
+    }
+  }
+
+exchange.tgroup =
+  exchange.table.module,
+  grammar {
+    # Reference OASIS Exchange Table Model
+    include "soextbl.rnc" {
+      start = tgroup
+      bodyatt = parent bodyatt
+      # Add common attributes to TGroup, ColSpec, TBody, THead, Row, Entry
+      tbl.tgroup.att = parent common.attrib
+      tbl.colspec.att = parent common.attrib
+      tbl.tbody.att = parent common.attrib
+      tbl.thead.att = parent common.attrib
+      tbl.row.att = parent common.attrib
+      tbl.entry.att = parent common.attrib
+      # Allow either objects or inlines; beware of REs between elements.
+      tbl.entry.mdl = (parent para.char.mix | parent tabentry.mix)*
+    }
+  }
+
+tbl.table.att = cals.tbl.table.att | exchange.tbl.table.att
+
+cals.tbl.table.att =
+  cals.table.module,
+  grammar {
+    include "calstbl.rnc" {
+      start = tbl.table.att
+    }
+  }
+
+exchange.tbl.table.att =
+  exchange.table.module,
+  grammar {
+    include "soextbl.rnc" {
+      start = tbl.table.att
+    }
+  }
+
+common.table.attribs = bodyatt
+
+# end of table.module




reply via email to

[Prev in Thread] Current Thread [Next in Thread]