(codepage-setup): Fix typo in obsolescence declaration.
[emacs.git] / etc / schema / soextbl.rnc
blob2e69127b4a2870d3f3e4d152b296421efef1e9d5
1 # XML EXCHANGE TABLE MODEL DECLARATION MODULE
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).
20 # The motivation for this XML version of the Exchange Table Model
21 # is simply to create an XML version of the SGML Exchange Table
22 # Model. By design, no effort has been made to "improve" the model.
23
24 # This XML version incorporates the logical bare minimum changes
25 # necessary to make the Exchange Table Model a valid XML DTD.
27 # The XML version of the Exchange Table Model differs from
28 # the SGML version in the following ways:
29
30 # The following parameter entities have been removed:
31
32 #   - tbl.table.excep, tbl.hdft.excep, tbl.row.excep, tbl.entry.excep
33 #     There are no exceptions in XML. The following normative statement
34 #     is made in lieu of exceptions: the exchange table model explicitly
35 #     forbids a table from occurring within another table. If the
36 #     content model of an entry includes a table element, then this
37 #     cannot be enforced by the DTD, but it is a deviation from the
38 #     exchange table model to include a table within a table.
39
40 #   - tbl.hdft.name, tbl.hdft.mdl, tbl.hdft.excep, tbl.hdft.att
41 #     The motivation for these elements was to change the table
42 #     header/footer elements. Since XML does not allow element declarations
43 #     to contain name groups, and the exchange table model does not
44 #     allow a table to contain footers, the continued presence of these
45 #     attributes seems unnecessary.
46
47 # The following parameter entity has been added:
48
49 #   - tbl.thead.att
50 #     This entity parameterizes the attributes on thead. It replaces
51 #     the tbl.hdft.att parameter entity.
52
53 # Other miscellaneous changes:
54
55 #   - Tag ommission indicators have been removed
56 #   - Comments have been removed from declarations
57 #   - NUMBER attributes have been changed to NMTOKEN
58 #   - NUTOKEN attributes have been to changed to NMTOKEN
59 #   - Removed the grouping characters around the content model
60 #     parameter entry for the 'entry' element. This is necessary
61 #     so that an entry can contain #PCDATA and be defined as an
62 #     optional, repeatable OR group beginning with #PCDATA.
64 # This entity includes a set of element and attribute declarations
65 # that partially defines the Exchange table model.  However, the model
66 # is not well-defined without the accompanying natural language
67 # description of the semantics (meanings) of these various elements,
68 # attributes, and attribute values.  The semantic writeup, also available
69 # from SGML Open, should be used in conjunction with this entity.
71 # In order to use the Exchange table model, various parameter entity
72 # declarations are required.  A brief description is as follows:
73
74 # ENTITY NAME      WHERE USED              WHAT IT IS
75
76 # %yesorno         In ATTLIST of:          An attribute declared value
77 #                  almost all elements     for a "boolean" attribute
78
79 # %paracon         In content model of:    The "text" (logical content)
80 #                  <entry>                 of the model group for <entry>
81
82 # %titles          In content model of:    The "title" part of the model
83 #                  table element           group for the table element
84
85 # %tbl.table.name  In declaration of:      The name of the "table"
86 #                  table element           element
87
88 # %tbl.table-titles.mdl In content model of: The model group for the title
89 #                  table elements          part of the content model for
90 #                                          table element
91
92 # %tbl.table.mdl   In content model of:    The model group for the content
93 #                  table elements          model for table element,
94 #                                          often (and by default) defined
95 #                                          in terms of %tbl.table-titles.mdl
96 #                                          and tgroup
97
98 # %tbl.table.att   In ATTLIST of:          Additional attributes on the
99 #                  table element           table element
101 # %bodyatt         In ATTLIST of:          Additional attributes on the
102 #                  table element           table element (for backward
103 #                                          compatibility with the SGML
104 #                                          model)
106 # %tbl.tgroup.mdl  In content model of:    The model group for the content
107 #                  <tgroup>                model for <tgroup>
109 # %tbl.tgroup.att  In ATTLIST of:          Additional attributes on the
110 #                  <tgroup>                <tgroup> element
112 # %tbl.thead.att   In ATTLIST of:          Additional attributes on the
113 #                  <thead>                 <thead> element
115 # %tbl.tbody.att   In ATTLIST of:          Additional attributes on the
116 #                  <tbody>                 <tbody> element
118 # %tbl.colspec.att In ATTLIST of:          Additional attributes on the
119 #                  <colspec>               <colspec> element
121 # %tbl.row.mdl     In content model of:    The model group for the content
122 #                  <row>                   model for <row>
124 # %tbl.row.att     In ATTLIST of:          Additional attributes on the
125 #                  <row>                   <row> element
127 # %tbl.entry.mdl   In content model of:    The model group for the content
128 #                  <entry>                 model for <entry>
130 # %tbl.entry.att   In ATTLIST of:          Additional attributes on the
131 #                  <entry>                 <entry> element
133 # This set of declarations will use the default definitions shown below
134 # for any of these parameter entities that are not declared before this
135 # set of declarations is referenced.
137 # These definitions are not directly related to the table model, but are
138 # used in the default CALS table model and may be defined elsewhere (and
139 # prior to the inclusion of this table module) in the referencing DTD.
141 yesorno = xsd:NMTOKEN
142 # no if zero(s), yes if any other value
143 pcd = text
144 paracon = pcd
145 # default for use in entry content
147 # The parameter entities as defined below change and simplify the CALS table
148 # model as published (as part of the Example DTD) in MIL-HDBK-28001.  The
149 # resulting simplified DTD has support from the SGML Open vendors and is
150 # therefore more interoperable among different systems.
152 # These following declarations provide the Exchange default definitions
153 # for these entities.  However, these entities can be redefined (by giving
154 # the appropriate parameter entity declaration(s) prior to the reference
155 # to this Table Model declaration set entity) to fit the needs of the
156 # current application.
158 # Note, however, that changes may have significant effect on the ability to
159 # interchange table information.  These changes may manifest themselves
160 # in useability, presentation, and possible structure information degradation.
161 tbl.table-titles.mdl = title
162 tbl.table-main.mdl = tgroup+
163 tbl.table.mdl = tbl.table-titles.mdl | tbl.table-main.mdl
164 tbl.table.att = attribute pgwide { yesorno }?
165 bodyatt = empty
166 tbl.tgroup.mdl = colspec*, thead?, tbody
167 tbl.tgroup.att = empty
168 tbl.thead.att = empty
169 tbl.tbody.att = empty
170 tbl.colspec.att = empty
171 tbl.row.mdl = entry+
172 tbl.row.att = empty
173 tbl.entry.mdl = paracon*
174 tbl.entry.att = empty
175 # =====  Element and attribute declarations follow. =====
177 # Default declarations previously defined in this entity and
178 # referenced below include:
179 # ENTITY % tbl.table.name       "table"
180 # ENTITY % tbl.table-titles.mdl "%titles;,"
181 # ENTITY % tbl.table.mdl        "%tbl.table-titles; tgroup+"
182 # ENTITY % tbl.table.att        "
183 #                    pgwide          %yesorno;       #IMPLIED "
184 table = element table { table.attlist, tbl.table.mdl }
185 table.attlist &=
186   attribute frame {
187     "top" | "bottom" | "topbot" | "all" | "sides" | "none"
188   }?,
189   attribute colsep { yesorno }?,
190   attribute rowsep { yesorno }?,
191   tbl.table.att,
192   bodyatt
193 # Default declarations previously defined in this entity and
194 # referenced below include:
195 # ENTITY % tbl.tgroup.mdl    "colspec*,thead?,tbody"
196 # ENTITY % tbl.tgroup.att    ""
197 tgroup = element tgroup { tgroup.attlist, tbl.tgroup.mdl }
198 tgroup.attlist &=
199   attribute cols { xsd:NMTOKEN },
200   attribute colsep { yesorno }?,
201   attribute rowsep { yesorno }?,
202   attribute align { "left" | "right" | "center" | "justify" | "char" }?,
203   tbl.tgroup.att
204 # Default declarations previously defined in this entity and
205 # referenced below include:
206 # ENTITY % tbl.colspec.att   ""
207 colspec = element colspec { colspec.attlist, empty }
208 colspec.attlist &=
209   attribute colnum { xsd:NMTOKEN }?,
210   attribute colname { xsd:NMTOKEN }?,
211   attribute colwidth { text }?,
212   attribute colsep { yesorno }?,
213   attribute rowsep { yesorno }?,
214   attribute align { "left" | "right" | "center" | "justify" | "char" }?,
215   attribute char { text }?,
216   attribute charoff { xsd:NMTOKEN }?,
217   tbl.colspec.att
218 # Default declarations previously defined in this entity and
219 # referenced below include:
220 # ENTITY % tbl.thead.att      ""
221 thead = element thead { thead.attlist, row+ }
222 thead.attlist &=
223   attribute valign { "top" | "middle" | "bottom" }?,
224   tbl.thead.att
225 # Default declarations previously defined in this entity and
226 # referenced below include:
227 # ENTITY % tbl.tbody.att     ""
228 tbody = element tbody { tbody.attlist, row+ }
229 tbody.attlist &=
230   attribute valign { "top" | "middle" | "bottom" }?,
231   tbl.tbody.att
232 # Default declarations previously defined in this entity and
233 # referenced below include:
234 # ENTITY % tbl.row.mdl       "entry+"
235 # ENTITY % tbl.row.att       ""
236 row = element row { row.attlist, tbl.row.mdl }
237 row.attlist &=
238   attribute rowsep { yesorno }?,
239   attribute valign { "top" | "middle" | "bottom" }?,
240   tbl.row.att
241 # Default declarations previously defined in this entity and
242 # referenced below include:
243 # ENTITY % paracon           "#PCDATA"
244 # ENTITY % tbl.entry.mdl     "(%paracon;)*"
245 # ENTITY % tbl.entry.att     ""
246 entry = element entry { entry.attlist, tbl.entry.mdl }
247 entry.attlist &=
248   attribute colname { xsd:NMTOKEN }?,
249   attribute namest { xsd:NMTOKEN }?,
250   attribute nameend { xsd:NMTOKEN }?,
251   attribute morerows { xsd:NMTOKEN }?,
252   attribute colsep { yesorno }?,
253   attribute rowsep { yesorno }?,
254   attribute align { "left" | "right" | "center" | "justify" | "char" }?,
255   attribute char { text }?,
256   attribute charoff { xsd:NMTOKEN }?,
257   attribute valign { "top" | "middle" | "bottom" }?,
258   tbl.entry.att
259 title |= notAllowed
260 start = table