86361
|
1 # This is an alternative to dbsoextbl.rnc and dbcalstbl.rnc that
|
|
2 # allows the table model to be selected dynamically based on the
|
|
3 # definitions of cals.table.module and exchange.table.module.
|
|
4 #
|
87292
|
5 # To use this, copy docbook.rnc to docbook-dyntbl.rnc replacing
|
86361
|
6 # "dbcalstbl.rnc" by "dbdyntbl.rnc". Then, you can override the
|
|
7 # choice of table model by doing
|
|
8 #
|
|
9 # include "docbook-dyntbl.rnc" {
|
|
10 # cals.table.model = IGNORE
|
|
11 # exchange.table.model = INCLUDE
|
|
12 # }
|
|
13
|
|
14 INCLUDE = empty
|
|
15 IGNORE = notAllowed
|
|
16 cals.table.module = INCLUDE
|
|
17 exchange.table.module = IGNORE
|
|
18
|
|
19 # Add common attributes and the Label attribute to Table and
|
|
20 # InformalTable.
|
|
21 bodyatt = common.attrib, label.attrib, tables.role.attrib
|
|
22
|
|
23 # Content model for Table.
|
|
24 tbl.table.mdl =
|
|
25 blockinfo?,
|
|
26 formalobject.title.content,
|
|
27 ndxterm.class*,
|
|
28 textobject*,
|
|
29 (graphic+ | mediaobject+ | tgroup+)
|
|
30
|
|
31 table = cals.table | exchange.table
|
|
32
|
|
33 cals.table =
|
|
34 cals.table.module,
|
|
35 grammar {
|
|
36 # Reference CALS Table Model
|
|
37 include "calstbl.rnc" {
|
|
38 # Add label and role attributes to table and informaltable
|
|
39 bodyatt = parent label.attrib
|
|
40 # Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
|
|
41 # EntryTbl, and Entry (and InformalTable element).
|
|
42 secur = parent common.attrib, parent tables.role.attrib
|
|
43 tbl.table.mdl = parent tbl.table.mdl
|
|
44 }
|
|
45 }
|
|
46
|
|
47 exchange.table =
|
|
48 exchange.table.module,
|
|
49 grammar {
|
|
50 # Reference OASIS Exchange Table Model
|
|
51 include "soextbl.rnc" {
|
|
52 # Add common attributes and the Label attribute to Table and
|
|
53 # InformalTable.
|
|
54 bodyatt = parent bodyatt
|
|
55 tbl.table.mdl = parent tbl.table.mdl
|
|
56 }
|
|
57 }
|
|
58
|
|
59 tgroup = cals.tgroup | exchange.tgroup
|
|
60
|
|
61 cals.tgroup =
|
|
62 cals.table.module,
|
|
63 grammar {
|
|
64 # Reference CALS Table Model
|
|
65 include "calstbl.rnc" {
|
|
66 start = tgroup
|
|
67 # Add label and role attributes to table and informaltable
|
|
68 bodyatt = parent label.attrib
|
|
69 # Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
|
|
70 # EntryTbl, and Entry (and InformalTable element).
|
|
71 secur = parent common.attrib, parent tables.role.attrib
|
|
72 # Allow either objects or inlines; beware of REs between elements.
|
|
73 tbl.entry.mdl = parent para.char.mix | parent tabentry.mix
|
|
74 }
|
|
75 }
|
|
76
|
|
77 exchange.tgroup =
|
|
78 exchange.table.module,
|
|
79 grammar {
|
|
80 # Reference OASIS Exchange Table Model
|
|
81 include "soextbl.rnc" {
|
|
82 start = tgroup
|
|
83 bodyatt = parent bodyatt
|
|
84 # Add common attributes to TGroup, ColSpec, TBody, THead, Row, Entry
|
|
85 tbl.tgroup.att = parent common.attrib
|
|
86 tbl.colspec.att = parent common.attrib
|
|
87 tbl.tbody.att = parent common.attrib
|
|
88 tbl.thead.att = parent common.attrib
|
|
89 tbl.row.att = parent common.attrib
|
|
90 tbl.entry.att = parent common.attrib
|
|
91 # Allow either objects or inlines; beware of REs between elements.
|
|
92 tbl.entry.mdl = (parent para.char.mix | parent tabentry.mix)*
|
|
93 }
|
|
94 }
|
|
95
|
|
96 tbl.table.att = cals.tbl.table.att | exchange.tbl.table.att
|
|
97
|
|
98 cals.tbl.table.att =
|
|
99 cals.table.module,
|
|
100 grammar {
|
|
101 include "calstbl.rnc" {
|
|
102 start = tbl.table.att
|
|
103 }
|
|
104 }
|
|
105
|
|
106 exchange.tbl.table.att =
|
|
107 exchange.table.module,
|
|
108 grammar {
|
|
109 include "soextbl.rnc" {
|
|
110 start = tbl.table.att
|
|
111 }
|
|
112 }
|
|
113
|
|
114 common.table.attribs = bodyatt
|
|
115
|
|
116 # end of table.module
|