author | Patrick PIERRE <patrick.pierre@prismallia.fr> |
lun., 18 juil. 2011 19:10:28 +0200 | |
changeset 33 | c70de8fae29d |
parent 30 | c0f9e813c039 |
child 34 | c51d5097d065 |
permissions | -rw-r--r-- |
patrick@0 | 1 |
<?xml version="1.0" encoding="UTF-8"?> |
patrick@0 | 2 |
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> |
patrick@0 | 3 |
<!-- $Id$ --> |
patrick@0 | 4 |
<start> |
patrick@0 | 5 |
<ref name="publidoc"/> |
patrick@0 | 6 |
</start> |
patrick@0 | 7 |
<define name="publidoc"> |
patrick@0 | 8 |
<element name="publidoc"> |
patrick@0 | 9 |
<ref name="publidoc.attributes"/> |
patrick@0 | 10 |
<ref name="publidoc.content"/> |
patrick@0 | 11 |
</element> |
patrick@0 | 12 |
</define> |
patrick@0 | 13 |
<define name="publidoc.attributes"> |
patrick@0 | 14 |
<ref name="version.attribute"/> |
patrick@0 | 15 |
</define> |
patrick@0 | 16 |
<define name="version.attribute"> |
patrick@0 | 17 |
<attribute name="version"> |
patrick@0 | 18 |
<value>1.0</value> |
patrick@0 | 19 |
</attribute> |
patrick@0 | 20 |
</define> |
patrick@0 | 21 |
<define name="publidoc.content"> |
patrick@0 | 22 |
<choice> |
patrick@0 | 23 |
<ref name="document"/> |
patrick@0 | 24 |
<ref name="top.topic"/> |
patrick@0 | 25 |
</choice> |
patrick@0 | 26 |
</define> |
patrick@0 | 27 |
<!-- |
patrick@0 | 28 |
============================================================================= |
patrick@20 | 29 |
TOP LEVEL |
patrick@0 | 30 |
============================================================================= |
patrick@0 | 31 |
--> |
patrick@0 | 32 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ document ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 33 |
<define name="document"> |
patrick@0 | 34 |
<element name="document"> |
patrick@0 | 35 |
<ref name="document.attributes"/> |
patrick@0 | 36 |
<ref name="document.content"/> |
patrick@0 | 37 |
</element> |
patrick@0 | 38 |
</define> |
patrick@0 | 39 |
<define name="document.attributes"> |
patrick@0 | 40 |
<ref name="document.id.attribute"/> |
patrick@0 | 41 |
</define> |
patrick@0 | 42 |
<define name="document.id.attribute"> |
patrick@0 | 43 |
<attribute name="xml:id"> |
patrick@0 | 44 |
<data type="ID"/> |
patrick@0 | 45 |
</attribute> |
patrick@0 | 46 |
</define> |
patrick@0 | 47 |
<define name="document.content"> |
patrick@0 | 48 |
<optional> |
patrick@20 | 49 |
<ref name="top.head"/> |
patrick@0 | 50 |
</optional> |
patrick@0 | 51 |
<choice> |
patrick@0 | 52 |
<oneOrMore> |
patrick@0 | 53 |
<ref name="division"/> |
patrick@0 | 54 |
</oneOrMore> |
patrick@0 | 55 |
<oneOrMore> |
patrick@0 | 56 |
<ref name="topic"/> |
patrick@0 | 57 |
</oneOrMore> |
patrick@0 | 58 |
</choice> |
patrick@0 | 59 |
</define> |
patrick@0 | 60 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ topic ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 61 |
<define name="top.topic"> |
patrick@0 | 62 |
<element name="topic"> |
patrick@0 | 63 |
<ref name="top.topic.attributes"/> |
patrick@20 | 64 |
<ref name="top.topic.content"/> |
patrick@0 | 65 |
</element> |
patrick@0 | 66 |
</define> |
patrick@20 | 67 |
<define name="top.topic.attributes"> |
patrick@20 | 68 |
<interleave> |
patrick@20 | 69 |
<ref name="topic.id.attribute"/> |
patrick@20 | 70 |
<optional> |
patrick@20 | 71 |
<ref name="topic.type.attribute"/> |
patrick@20 | 72 |
</optional> |
patrick@20 | 73 |
</interleave> |
patrick@20 | 74 |
</define> |
patrick@20 | 75 |
<define name="topic.id.attribute"> |
patrick@20 | 76 |
<attribute name="xml:id"> |
patrick@20 | 77 |
<data type="ID"/> |
patrick@20 | 78 |
</attribute> |
patrick@20 | 79 |
</define> |
patrick@20 | 80 |
<define name="topic.type.attribute"> |
patrick@20 | 81 |
<attribute name="type"> |
patrick@20 | 82 |
<data type="NCName"/> |
patrick@20 | 83 |
</attribute> |
patrick@20 | 84 |
</define> |
patrick@20 | 85 |
<define name="top.topic.content"> |
patrick@20 | 86 |
<optional> |
patrick@20 | 87 |
<ref name="top.head"/> |
patrick@20 | 88 |
</optional> |
patrick@20 | 89 |
<oneOrMore> |
patrick@20 | 90 |
<ref name="section"/> |
patrick@20 | 91 |
</oneOrMore> |
patrick@20 | 92 |
</define> |
patrick@0 | 93 |
<!-- |
patrick@0 | 94 |
============================================================================= |
patrick@20 | 95 |
HEAD LEVEL |
patrick@0 | 96 |
============================================================================= |
patrick@0 | 97 |
--> |
patrick@20 | 98 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ head ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@20 | 99 |
<define name="top.head"> |
patrick@20 | 100 |
<element name="head"> |
patrick@20 | 101 |
<ref name="top.head.content"/> |
patrick@0 | 102 |
</element> |
patrick@0 | 103 |
</define> |
patrick@20 | 104 |
<define name="division.head"> |
patrick@20 | 105 |
<element name="head"> |
patrick@20 | 106 |
<ref name="division.head.content"/> |
patrick@20 | 107 |
</element> |
patrick@20 | 108 |
</define> |
patrick@20 | 109 |
<define name="component.head"> |
patrick@20 | 110 |
<element name="head"> |
patrick@20 | 111 |
<ref name="component.head.content"/> |
patrick@20 | 112 |
</element> |
patrick@20 | 113 |
</define> |
patrick@20 | 114 |
<define name="section.head"> |
patrick@20 | 115 |
<element name="head"> |
patrick@20 | 116 |
<ref name="section.head.content"/> |
patrick@20 | 117 |
</element> |
patrick@20 | 118 |
</define> |
patrick@20 | 119 |
<define name="block.head"> |
patrick@20 | 120 |
<element name="head"> |
patrick@20 | 121 |
<ref name="block.head.content"/> |
patrick@20 | 122 |
</element> |
patrick@20 | 123 |
</define> |
patrick@20 | 124 |
<define name="top.head.content"> |
patrick@0 | 125 |
<interleave> |
patrick@0 | 126 |
<optional> |
patrick@20 | 127 |
<ref name="title"/> |
patrick@20 | 128 |
<optional> |
patrick@20 | 129 |
<ref name="subtitle"/> |
patrick@20 | 130 |
</optional> |
patrick@20 | 131 |
</optional> |
patrick@20 | 132 |
<optional> |
patrick@20 | 133 |
<ref name="language"/> |
patrick@0 | 134 |
</optional> |
patrick@0 | 135 |
<zeroOrMore> |
patrick@0 | 136 |
<ref name="author"/> |
patrick@0 | 137 |
</zeroOrMore> |
patrick@0 | 138 |
<optional> |
patrick@0 | 139 |
<ref name="publisher"/> |
patrick@0 | 140 |
</optional> |
patrick@0 | 141 |
<optional> |
patrick@0 | 142 |
<ref name="date"/> |
patrick@0 | 143 |
</optional> |
patrick@0 | 144 |
<optional> |
patrick@0 | 145 |
<ref name="place"/> |
patrick@0 | 146 |
</optional> |
patrick@0 | 147 |
<zeroOrMore> |
patrick@0 | 148 |
<ref name="source"/> |
patrick@0 | 149 |
</zeroOrMore> |
patrick@0 | 150 |
<optional> |
patrick@0 | 151 |
<ref name="subjectset"/> |
patrick@0 | 152 |
</optional> |
patrick@0 | 153 |
<optional> |
patrick@0 | 154 |
<ref name="abstract"/> |
patrick@0 | 155 |
</optional> |
patrick@0 | 156 |
<zeroOrMore> |
patrick@0 | 157 |
<ref name="annotation"/> |
patrick@0 | 158 |
</zeroOrMore> |
patrick@0 | 159 |
</interleave> |
patrick@0 | 160 |
</define> |
patrick@20 | 161 |
<define name="division.head.content"> |
patrick@20 | 162 |
<interleave> |
patrick@20 | 163 |
<optional> |
patrick@20 | 164 |
<ref name="title"/> |
patrick@20 | 165 |
<optional> |
patrick@20 | 166 |
<ref name="subtitle"/> |
patrick@20 | 167 |
</optional> |
patrick@20 | 168 |
</optional> |
patrick@20 | 169 |
<optional> |
patrick@20 | 170 |
<ref name="language"/> |
patrick@20 | 171 |
</optional> |
patrick@20 | 172 |
<zeroOrMore> |
patrick@20 | 173 |
<ref name="annotation"/> |
patrick@20 | 174 |
</zeroOrMore> |
patrick@20 | 175 |
</interleave> |
patrick@20 | 176 |
</define> |
patrick@20 | 177 |
<define name="component.head.content"> |
patrick@20 | 178 |
<interleave> |
patrick@20 | 179 |
<optional> |
patrick@20 | 180 |
<ref name="title"/> |
patrick@20 | 181 |
<optional> |
patrick@20 | 182 |
<ref name="subtitle"/> |
patrick@20 | 183 |
</optional> |
patrick@20 | 184 |
</optional> |
patrick@20 | 185 |
<optional> |
patrick@20 | 186 |
<ref name="language"/> |
patrick@20 | 187 |
</optional> |
patrick@20 | 188 |
<zeroOrMore> |
patrick@20 | 189 |
<ref name="author"/> |
patrick@20 | 190 |
</zeroOrMore> |
patrick@20 | 191 |
<zeroOrMore> |
patrick@20 | 192 |
<ref name="annotation"/> |
patrick@20 | 193 |
</zeroOrMore> |
patrick@20 | 194 |
</interleave> |
patrick@20 | 195 |
</define> |
patrick@20 | 196 |
<define name="section.head.content"> |
patrick@20 | 197 |
<interleave> |
patrick@20 | 198 |
<optional> |
patrick@20 | 199 |
<ref name="title"/> |
patrick@20 | 200 |
<optional> |
patrick@20 | 201 |
<ref name="subtitle"/> |
patrick@20 | 202 |
</optional> |
patrick@20 | 203 |
</optional> |
patrick@20 | 204 |
<optional> |
patrick@20 | 205 |
<ref name="language"/> |
patrick@20 | 206 |
</optional> |
patrick@20 | 207 |
<zeroOrMore> |
patrick@20 | 208 |
<ref name="annotation"/> |
patrick@20 | 209 |
</zeroOrMore> |
patrick@20 | 210 |
</interleave> |
patrick@20 | 211 |
</define> |
patrick@20 | 212 |
<define name="block.head.content"> |
patrick@20 | 213 |
<optional> |
patrick@20 | 214 |
<ref name="title"/> |
patrick@20 | 215 |
<optional> |
patrick@20 | 216 |
<ref name="subtitle"/> |
patrick@20 | 217 |
</optional> |
patrick@20 | 218 |
</optional> |
patrick@20 | 219 |
</define> |
patrick@0 | 220 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ title, subtitle ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 221 |
<define name="title"> |
patrick@0 | 222 |
<element name="title"> |
patrick@0 | 223 |
<ref name="title.content"/> |
patrick@0 | 224 |
</element> |
patrick@0 | 225 |
</define> |
patrick@0 | 226 |
<define name="subtitle"> |
patrick@0 | 227 |
<element name="subtitle"> |
patrick@0 | 228 |
<ref name="title.content"/> |
patrick@0 | 229 |
</element> |
patrick@0 | 230 |
</define> |
patrick@20 | 231 |
<define name="title.content"> |
patrick@20 | 232 |
<ref name="inlines"/> |
patrick@20 | 233 |
</define> |
patrick@20 | 234 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ language ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@20 | 235 |
<define name="language"> |
patrick@20 | 236 |
<element name="language"> |
patrick@20 | 237 |
<ref name="language.attributes"/> |
patrick@20 | 238 |
</element> |
patrick@20 | 239 |
</define> |
patrick@20 | 240 |
<define name="language.attributes"> |
patrick@20 | 241 |
<ref name="lang.attribute"/> |
patrick@20 | 242 |
</define> |
patrick@20 | 243 |
<define name="lang.attribute"> |
patrick@20 | 244 |
<attribute name="xml:lang"> |
patrick@20 | 245 |
<data type="language"/> |
patrick@20 | 246 |
</attribute> |
patrick@20 | 247 |
</define> |
patrick@0 | 248 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ author, publisher ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@5 | 249 |
<!-- ~~~~~~ author --> |
patrick@0 | 250 |
<define name="author"> |
patrick@0 | 251 |
<element name="author"> |
patrick@0 | 252 |
<ref name="author.content"/> |
patrick@0 | 253 |
</element> |
patrick@0 | 254 |
</define> |
patrick@33 | 255 |
<define name="author.attributes"> |
patrick@33 | 256 |
<optional> |
patrick@33 | 257 |
<ref name="role.attribute"/> |
patrick@33 | 258 |
</optional> |
patrick@33 | 259 |
</define> |
patrick@33 | 260 |
<define name="role.attribute"> |
patrick@33 | 261 |
<attribute name="role"> |
patrick@33 | 262 |
<choice> |
patrick@33 | 263 |
<value>author</value> |
patrick@33 | 264 |
<value>illustrator</value> |
patrick@33 | 265 |
</choice> |
patrick@33 | 266 |
</attribute> |
patrick@33 | 267 |
</define> |
patrick@0 | 268 |
<define name="author.content"> |
patrick@0 | 269 |
<optional> |
patrick@0 | 270 |
<ref name="firstname"/> |
patrick@0 | 271 |
</optional> |
patrick@0 | 272 |
<ref name="lastname"/> |
patrick@33 | 273 |
<zeroOrMore> |
patrick@33 | 274 |
<ref name="role"/> |
patrick@33 | 275 |
</zeroOrMore> |
patrick@33 | 276 |
</define> |
patrick@33 | 277 |
<define name="role"> |
patrick@33 | 278 |
<element name="role"> |
patrick@33 | 279 |
<ref name="role.attributes"/> |
patrick@33 | 280 |
</element> |
patrick@33 | 281 |
</define> |
patrick@33 | 282 |
<define name="role.attributes"> |
patrick@33 | 283 |
<ref name="role.of.attribute"/> |
patrick@33 | 284 |
</define> |
patrick@33 | 285 |
<define name="role.of.attribute"> |
patrick@33 | 286 |
<attribute name="of"> |
patrick@33 | 287 |
<choice> |
patrick@33 | 288 |
<value>author</value> |
patrick@33 | 289 |
<value>illustrator</value> |
patrick@33 | 290 |
</choice> |
patrick@33 | 291 |
</attribute> |
patrick@0 | 292 |
</define> |
patrick@5 | 293 |
<!-- ~~~~~~ publisher --> |
patrick@0 | 294 |
<define name="publisher"> |
patrick@0 | 295 |
<element name="publisher"> |
patrick@0 | 296 |
<ref name="publisher.content"/> |
patrick@0 | 297 |
</element> |
patrick@0 | 298 |
</define> |
patrick@0 | 299 |
<define name="publisher.content"> |
patrick@0 | 300 |
<ref name="inlines"/> |
patrick@0 | 301 |
</define> |
patrick@5 | 302 |
<!-- ~~~~~~ firstname --> |
patrick@5 | 303 |
<define name="firstname"> |
patrick@5 | 304 |
<element name="firstname"> |
patrick@5 | 305 |
<ref name="firstname.content"/> |
patrick@5 | 306 |
</element> |
patrick@5 | 307 |
</define> |
patrick@5 | 308 |
<define name="firstname.content"> |
patrick@5 | 309 |
<ref name="inlines"/> |
patrick@5 | 310 |
</define> |
patrick@5 | 311 |
<!-- ~~~~~~ lastname --> |
patrick@5 | 312 |
<define name="lastname"> |
patrick@5 | 313 |
<element name="lastname"> |
patrick@5 | 314 |
<ref name="lastname.content"/> |
patrick@5 | 315 |
</element> |
patrick@5 | 316 |
</define> |
patrick@5 | 317 |
<define name="lastname.content"> |
patrick@5 | 318 |
<ref name="inlines"/> |
patrick@5 | 319 |
</define> |
patrick@2 | 320 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ place ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@2 | 321 |
<define name="place"> |
patrick@2 | 322 |
<element name="place"> |
patrick@2 | 323 |
<ref name="place.content"/> |
patrick@2 | 324 |
</element> |
patrick@2 | 325 |
</define> |
patrick@2 | 326 |
<define name="place.content"> |
patrick@2 | 327 |
<ref name="inlines"/> |
patrick@2 | 328 |
</define> |
patrick@0 | 329 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ source ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@2 | 330 |
<!-- ~~~~~~ source --> |
patrick@0 | 331 |
<define name="source"> |
patrick@0 | 332 |
<element name="source"> |
patrick@0 | 333 |
<ref name="source.attributes"/> |
patrick@0 | 334 |
<choice> |
patrick@0 | 335 |
<group> |
patrick@0 | 336 |
<attribute name="type"> |
patrick@0 | 337 |
<value>book</value> |
patrick@0 | 338 |
</attribute> |
patrick@0 | 339 |
<ref name="source.content.book"/> |
patrick@0 | 340 |
</group> |
patrick@0 | 341 |
<attribute name="type"> |
patrick@0 | 342 |
<value>file</value> |
patrick@0 | 343 |
</attribute> |
patrick@0 | 344 |
</choice> |
patrick@0 | 345 |
<ref name="source.content"/> |
patrick@0 | 346 |
</element> |
patrick@0 | 347 |
</define> |
patrick@0 | 348 |
<define name="source.attributes"> |
patrick@0 | 349 |
<ref name="source.id.attribute"/> |
patrick@0 | 350 |
</define> |
patrick@0 | 351 |
<define name="source.id.attribute"> |
patrick@0 | 352 |
<attribute name="id"> |
patrick@0 | 353 |
<data type="NMTOKEN"/> |
patrick@0 | 354 |
</attribute> |
patrick@0 | 355 |
</define> |
patrick@0 | 356 |
<define name="source.content.book"> |
patrick@0 | 357 |
<ref name="title"/> |
patrick@0 | 358 |
<zeroOrMore> |
patrick@0 | 359 |
<ref name="pagenumber"/> |
patrick@0 | 360 |
</zeroOrMore> |
patrick@0 | 361 |
</define> |
patrick@0 | 362 |
<define name="source.content"> |
patrick@0 | 363 |
<zeroOrMore> |
patrick@0 | 364 |
<ref name="annotation"/> |
patrick@0 | 365 |
</zeroOrMore> |
patrick@0 | 366 |
</define> |
patrick@2 | 367 |
<!-- ~~~~~~ pagenumber --> |
patrick@0 | 368 |
<define name="pagenumber"> |
patrick@0 | 369 |
<element name="pagenumber"> |
patrick@0 | 370 |
<ref name="pagenumber.attributes"/> |
patrick@0 | 371 |
</element> |
patrick@0 | 372 |
</define> |
patrick@0 | 373 |
<define name="pagenumber.attributes"> |
patrick@0 | 374 |
<ref name="pagenumber.value.attribute"/> |
patrick@0 | 375 |
</define> |
patrick@0 | 376 |
<define name="pagenumber.value.attribute"> |
patrick@0 | 377 |
<attribute name="value"> |
patrick@33 | 378 |
<data type="positiveInteger"/> |
patrick@0 | 379 |
</attribute> |
patrick@0 | 380 |
</define> |
patrick@0 | 381 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ subject ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@2 | 382 |
<!-- ~~~~~~ subjectset --> |
patrick@0 | 383 |
<define name="subjectset"> |
patrick@0 | 384 |
<element name="subjectset"> |
patrick@0 | 385 |
<ref name="subjectset.content"/> |
patrick@0 | 386 |
</element> |
patrick@0 | 387 |
</define> |
patrick@0 | 388 |
<define name="subjectset.content"> |
patrick@0 | 389 |
<oneOrMore> |
patrick@0 | 390 |
<ref name="subject"/> |
patrick@0 | 391 |
</oneOrMore> |
patrick@0 | 392 |
</define> |
patrick@2 | 393 |
<!-- ~~~~~~ subject --> |
patrick@0 | 394 |
<define name="subject"> |
patrick@0 | 395 |
<element name="subject"> |
patrick@0 | 396 |
<ref name="subject.attributes"/> |
patrick@0 | 397 |
</element> |
patrick@0 | 398 |
</define> |
patrick@0 | 399 |
<define name="subject.attributes"> |
patrick@0 | 400 |
<ref name="subject.id.attribute"/> |
patrick@0 | 401 |
</define> |
patrick@0 | 402 |
<define name="subject.id.attribute"> |
patrick@0 | 403 |
<attribute name="id"> |
patrick@0 | 404 |
<data type="NMTOKEN"/> |
patrick@0 | 405 |
</attribute> |
patrick@0 | 406 |
</define> |
patrick@5 | 407 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ abstract ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@2 | 408 |
<define name="abstract"> |
patrick@2 | 409 |
<element name="abstract"> |
patrick@2 | 410 |
<ref name="abstract.content"/> |
patrick@2 | 411 |
</element> |
patrick@2 | 412 |
</define> |
patrick@2 | 413 |
<define name="abstract.content"> |
patrick@2 | 414 |
<oneOrMore> |
patrick@20 | 415 |
<ref name="p"/> |
patrick@2 | 416 |
</oneOrMore> |
patrick@2 | 417 |
</define> |
patrick@0 | 418 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ annotation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 419 |
<define name="annotation"> |
patrick@0 | 420 |
<element name="annotation"> |
patrick@0 | 421 |
<ref name="annotation.content"/> |
patrick@0 | 422 |
</element> |
patrick@0 | 423 |
</define> |
patrick@0 | 424 |
<define name="annotation.content"> |
patrick@0 | 425 |
<ref name="inlines"/> |
patrick@0 | 426 |
</define> |
patrick@0 | 427 |
<!-- |
patrick@0 | 428 |
============================================================================= |
patrick@20 | 429 |
DIVISION LEVEL |
patrick@0 | 430 |
============================================================================= |
patrick@0 | 431 |
--> |
patrick@0 | 432 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ division ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 433 |
<define name="division"> |
patrick@0 | 434 |
<element name="division"> |
patrick@0 | 435 |
<ref name="division.content"/> |
patrick@0 | 436 |
</element> |
patrick@0 | 437 |
</define> |
patrick@0 | 438 |
<define name="division.content"> |
patrick@0 | 439 |
<optional> |
patrick@20 | 440 |
<ref name="division.head"/> |
patrick@0 | 441 |
</optional> |
patrick@0 | 442 |
<choice> |
patrick@0 | 443 |
<oneOrMore> |
patrick@0 | 444 |
<ref name="division"/> |
patrick@0 | 445 |
</oneOrMore> |
patrick@0 | 446 |
<oneOrMore> |
patrick@0 | 447 |
<ref name="topic"/> |
patrick@0 | 448 |
</oneOrMore> |
patrick@0 | 449 |
</choice> |
patrick@0 | 450 |
</define> |
patrick@0 | 451 |
<!-- |
patrick@0 | 452 |
============================================================================= |
patrick@20 | 453 |
COMPONENT LEVEL |
patrick@0 | 454 |
============================================================================= |
patrick@0 | 455 |
--> |
patrick@0 | 456 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ topic ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 457 |
<define name="topic"> |
patrick@0 | 458 |
<element name="topic"> |
patrick@0 | 459 |
<ref name="topic.attributes"/> |
patrick@0 | 460 |
<ref name="topic.content"/> |
patrick@0 | 461 |
</element> |
patrick@0 | 462 |
</define> |
patrick@0 | 463 |
<define name="topic.attributes"> |
patrick@0 | 464 |
<interleave> |
patrick@0 | 465 |
<optional> |
patrick@0 | 466 |
<ref name="topic.id.attribute"/> |
patrick@0 | 467 |
</optional> |
patrick@0 | 468 |
<optional> |
patrick@0 | 469 |
<ref name="topic.type.attribute"/> |
patrick@0 | 470 |
</optional> |
patrick@0 | 471 |
</interleave> |
patrick@0 | 472 |
</define> |
patrick@0 | 473 |
<define name="topic.content"> |
patrick@0 | 474 |
<optional> |
patrick@20 | 475 |
<ref name="component.head"/> |
patrick@0 | 476 |
</optional> |
patrick@0 | 477 |
<oneOrMore> |
patrick@0 | 478 |
<ref name="section"/> |
patrick@0 | 479 |
</oneOrMore> |
patrick@0 | 480 |
</define> |
patrick@0 | 481 |
<!-- |
patrick@0 | 482 |
============================================================================= |
patrick@20 | 483 |
SECTION LEVEL |
patrick@0 | 484 |
============================================================================= |
patrick@0 | 485 |
--> |
patrick@20 | 486 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ section ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 487 |
<define name="section"> |
patrick@0 | 488 |
<element name="section"> |
patrick@0 | 489 |
<ref name="section.content"/> |
patrick@0 | 490 |
<ref name="section.attributes"/> |
patrick@0 | 491 |
</element> |
patrick@0 | 492 |
</define> |
patrick@0 | 493 |
<define name="section.content"> |
patrick@0 | 494 |
<optional> |
patrick@20 | 495 |
<ref name="section.head"/> |
patrick@0 | 496 |
</optional> |
patrick@0 | 497 |
<choice> |
patrick@0 | 498 |
<oneOrMore> |
patrick@0 | 499 |
<ref name="section"/> |
patrick@0 | 500 |
</oneOrMore> |
patrick@0 | 501 |
<oneOrMore> |
patrick@10 | 502 |
<ref name="block"/> |
patrick@0 | 503 |
</oneOrMore> |
patrick@0 | 504 |
</choice> |
patrick@0 | 505 |
</define> |
patrick@0 | 506 |
<define name="section.attributes"> |
patrick@0 | 507 |
<optional> |
patrick@0 | 508 |
<ref name="status.attribute"/> |
patrick@0 | 509 |
</optional> |
patrick@0 | 510 |
</define> |
patrick@0 | 511 |
<define name="status.attribute"> |
patrick@0 | 512 |
<attribute name="status"> |
patrick@0 | 513 |
<data type="NCName"/> |
patrick@0 | 514 |
</attribute> |
patrick@0 | 515 |
</define> |
patrick@0 | 516 |
<!-- |
patrick@0 | 517 |
============================================================================= |
patrick@20 | 518 |
BLOCK LEVEL |
patrick@0 | 519 |
============================================================================= |
patrick@0 | 520 |
--> |
patrick@20 | 521 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ block ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@10 | 522 |
<define name="block"> |
patrick@10 | 523 |
<choice> |
patrick@20 | 524 |
<ref name="p"/> |
patrick@20 | 525 |
<ref name="speech"/> |
patrick@10 | 526 |
<ref name="list"/> |
patrick@17 | 527 |
<ref name="table"/> |
patrick@10 | 528 |
<ref name="media"/> |
patrick@10 | 529 |
</choice> |
patrick@10 | 530 |
</define> |
patrick@20 | 531 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ p ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@20 | 532 |
<define name="p"> |
patrick@20 | 533 |
<element name="p"> |
patrick@20 | 534 |
<ref name="p.content"/> |
patrick@0 | 535 |
</element> |
patrick@0 | 536 |
</define> |
patrick@20 | 537 |
<define name="p.content"> |
patrick@25 | 538 |
<ref name="inlines"/> |
patrick@0 | 539 |
</define> |
patrick@20 | 540 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ speech ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@20 | 541 |
<!-- ~~~~~~ speech --> |
patrick@20 | 542 |
<define name="speech"> |
patrick@20 | 543 |
<element name="speech"> |
patrick@20 | 544 |
<ref name="speech.content"/> |
patrick@20 | 545 |
</element> |
patrick@20 | 546 |
</define> |
patrick@20 | 547 |
<define name="speech.content"> |
patrick@20 | 548 |
<optional> |
patrick@20 | 549 |
<ref name="speaker"/> |
patrick@20 | 550 |
</optional> |
patrick@20 | 551 |
<optional> |
patrick@20 | 552 |
<ref name="stage"/> |
patrick@20 | 553 |
</optional> |
patrick@20 | 554 |
<oneOrMore> |
patrick@20 | 555 |
<ref name="p"/> |
patrick@20 | 556 |
</oneOrMore> |
patrick@20 | 557 |
</define> |
patrick@20 | 558 |
<!-- ~~~~~~ speaker --> |
patrick@20 | 559 |
<define name="speaker"> |
patrick@20 | 560 |
<element name="speaker"> |
patrick@20 | 561 |
<ref name="speaker.content"/> |
patrick@20 | 562 |
</element> |
patrick@20 | 563 |
</define> |
patrick@20 | 564 |
<define name="speaker.content"> |
patrick@20 | 565 |
<ref name="inlines"/> |
patrick@20 | 566 |
</define> |
patrick@20 | 567 |
<!-- ~~~~~~ stage --> |
patrick@20 | 568 |
<define name="stage"> |
patrick@20 | 569 |
<element name="stage"> |
patrick@20 | 570 |
<ref name="stage.content"/> |
patrick@20 | 571 |
</element> |
patrick@20 | 572 |
</define> |
patrick@20 | 573 |
<define name="stage.content"> |
patrick@20 | 574 |
<ref name="inlines"/> |
patrick@20 | 575 |
</define> |
patrick@17 | 576 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ list ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@10 | 577 |
<!-- ~~~~~~ list --> |
patrick@10 | 578 |
<define name="list"> |
patrick@10 | 579 |
<element name="list"> |
patrick@10 | 580 |
<ref name="list.content"/> |
patrick@10 | 581 |
</element> |
patrick@10 | 582 |
</define> |
patrick@10 | 583 |
<define name="list.content"> |
patrick@10 | 584 |
<optional> |
patrick@20 | 585 |
<ref name="block.head"/> |
patrick@10 | 586 |
</optional> |
patrick@10 | 587 |
<choice> |
patrick@10 | 588 |
<group> |
patrick@10 | 589 |
<optional> |
patrick@10 | 590 |
<attribute name="type"> |
patrick@12 | 591 |
<value>ordered</value> |
patrick@10 | 592 |
</attribute> |
patrick@10 | 593 |
</optional> |
patrick@10 | 594 |
<ref name="item"/> |
patrick@10 | 595 |
<oneOrMore> |
patrick@10 | 596 |
<ref name="item"/> |
patrick@10 | 597 |
</oneOrMore> |
patrick@10 | 598 |
</group> |
patrick@10 | 599 |
<group> |
patrick@10 | 600 |
<attribute name="type"> |
patrick@10 | 601 |
<value>glossary</value> |
patrick@10 | 602 |
</attribute> |
patrick@10 | 603 |
<oneOrMore> |
patrick@10 | 604 |
<ref name="glossary.item"/> |
patrick@10 | 605 |
</oneOrMore> |
patrick@10 | 606 |
</group> |
patrick@10 | 607 |
</choice> |
patrick@10 | 608 |
</define> |
patrick@10 | 609 |
<!-- ~~~~~~ item --> |
patrick@10 | 610 |
<define name="item"> |
patrick@10 | 611 |
<element name="item"> |
patrick@10 | 612 |
<ref name="item.content"/> |
patrick@10 | 613 |
</element> |
patrick@10 | 614 |
</define> |
patrick@10 | 615 |
<define name="item.content"> |
patrick@30 | 616 |
<choice> |
patrick@30 | 617 |
<ref name="inlines"/> |
patrick@30 | 618 |
<oneOrMore> |
patrick@30 | 619 |
<ref name="block"/> |
patrick@30 | 620 |
</oneOrMore> |
patrick@30 | 621 |
</choice> |
patrick@10 | 622 |
</define> |
patrick@10 | 623 |
<!-- ~~~~~~ glossary.item --> |
patrick@10 | 624 |
<define name="glossary.item"> |
patrick@10 | 625 |
<element name="item"> |
patrick@10 | 626 |
<ref name="glossary.item.content"/> |
patrick@10 | 627 |
</element> |
patrick@10 | 628 |
</define> |
patrick@10 | 629 |
<define name="glossary.item.content"> |
patrick@10 | 630 |
<ref name="label"/> |
patrick@10 | 631 |
<oneOrMore> |
patrick@10 | 632 |
<ref name="block"/> |
patrick@10 | 633 |
</oneOrMore> |
patrick@10 | 634 |
</define> |
patrick@10 | 635 |
<!-- ~~~~~~ label --> |
patrick@10 | 636 |
<define name="label"> |
patrick@10 | 637 |
<element name="label"> |
patrick@10 | 638 |
<ref name="label.content"/> |
patrick@10 | 639 |
</element> |
patrick@10 | 640 |
</define> |
patrick@10 | 641 |
<define name="label.content"> |
patrick@10 | 642 |
<ref name="inlines"/> |
patrick@10 | 643 |
</define> |
patrick@17 | 644 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ table ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@17 | 645 |
<define name="table"> |
patrick@17 | 646 |
<element name="table"> |
patrick@17 | 647 |
<ref name="table.content"/> |
patrick@17 | 648 |
</element> |
patrick@17 | 649 |
</define> |
patrick@17 | 650 |
<define name="table.content"> |
patrick@17 | 651 |
<optional> |
patrick@20 | 652 |
<ref name="block.head"/> |
patrick@17 | 653 |
</optional> |
patrick@17 | 654 |
<oneOrMore> |
patrick@17 | 655 |
<ref name="tgroup"/> |
patrick@17 | 656 |
</oneOrMore> |
patrick@17 | 657 |
<optional> |
patrick@17 | 658 |
<ref name="caption"/> |
patrick@17 | 659 |
</optional> |
patrick@17 | 660 |
</define> |
patrick@17 | 661 |
<!-- ~~~~~~ tgroup --> |
patrick@17 | 662 |
<define name="tgroup"> |
patrick@17 | 663 |
<element name="tgroup"> |
patrick@17 | 664 |
<ref name="tgroup.attributes"/> |
patrick@17 | 665 |
<ref name="tgroup.content"/> |
patrick@17 | 666 |
</element> |
patrick@17 | 667 |
</define> |
patrick@17 | 668 |
<define name="tgroup.content"> |
patrick@17 | 669 |
<optional> |
patrick@17 | 670 |
<ref name="thead"/> |
patrick@17 | 671 |
</optional> |
patrick@17 | 672 |
<optional> |
patrick@17 | 673 |
<ref name="tfoot"/> |
patrick@17 | 674 |
</optional> |
patrick@17 | 675 |
<ref name="tbody"/> |
patrick@17 | 676 |
</define> |
patrick@17 | 677 |
<define name="tgroup.attributes"> |
patrick@17 | 678 |
<interleave> |
patrick@17 | 679 |
<ref name="cols.attribute"/> |
patrick@17 | 680 |
<optional> |
patrick@17 | 681 |
<ref name="align.attribute"/> |
patrick@17 | 682 |
</optional> |
patrick@17 | 683 |
<optional> |
patrick@17 | 684 |
<ref name="colsep.attribute"/> |
patrick@17 | 685 |
</optional> |
patrick@17 | 686 |
<optional> |
patrick@17 | 687 |
<ref name="rowsep.attribute"/> |
patrick@17 | 688 |
</optional> |
patrick@17 | 689 |
</interleave> |
patrick@17 | 690 |
</define> |
patrick@17 | 691 |
<define name="cols.attribute"> |
patrick@17 | 692 |
<attribute name="cols"> |
patrick@17 | 693 |
<data type="positiveInteger"/> |
patrick@17 | 694 |
</attribute> |
patrick@17 | 695 |
</define> |
patrick@17 | 696 |
<define name="align.attribute"> |
patrick@17 | 697 |
<attribute name="align"> |
patrick@17 | 698 |
<choice> |
patrick@17 | 699 |
<value>left</value> |
patrick@17 | 700 |
<value>right</value> |
patrick@17 | 701 |
<value>center</value> |
patrick@17 | 702 |
<value>justify</value> |
patrick@17 | 703 |
</choice> |
patrick@17 | 704 |
</attribute> |
patrick@17 | 705 |
</define> |
patrick@17 | 706 |
<define name="colsep.attribute"> |
patrick@17 | 707 |
<attribute name="colsep"> |
patrick@17 | 708 |
<choice> |
patrick@17 | 709 |
<value>0</value> |
patrick@17 | 710 |
<value>1</value> |
patrick@17 | 711 |
</choice> |
patrick@17 | 712 |
</attribute> |
patrick@17 | 713 |
</define> |
patrick@17 | 714 |
<define name="rowsep.attribute"> |
patrick@17 | 715 |
<attribute name="rowsep"> |
patrick@17 | 716 |
<choice> |
patrick@17 | 717 |
<value>0</value> |
patrick@17 | 718 |
<value>1</value> |
patrick@17 | 719 |
</choice> |
patrick@17 | 720 |
</attribute> |
patrick@17 | 721 |
</define> |
patrick@17 | 722 |
<!-- ~~~~~~ thead, tfoot, tbody --> |
patrick@17 | 723 |
<define name="thead"> |
patrick@17 | 724 |
<element name="thead"> |
patrick@22 | 725 |
<ref name="thead.attributes"/> |
patrick@17 | 726 |
<ref name="thead.content"/> |
patrick@17 | 727 |
</element> |
patrick@17 | 728 |
</define> |
patrick@17 | 729 |
<define name="tfoot"> |
patrick@17 | 730 |
<element name="tfoot"> |
patrick@22 | 731 |
<ref name="tfoot.attributes"/> |
patrick@17 | 732 |
<ref name="tfoot.content"/> |
patrick@17 | 733 |
</element> |
patrick@17 | 734 |
</define> |
patrick@17 | 735 |
<define name="tbody"> |
patrick@17 | 736 |
<element name="tbody"> |
patrick@22 | 737 |
<ref name="tbody.attributes"/> |
patrick@17 | 738 |
<ref name="tbody.content"/> |
patrick@17 | 739 |
</element> |
patrick@17 | 740 |
</define> |
patrick@22 | 741 |
<define name="thead.attributes"> |
patrick@22 | 742 |
<optional> |
patrick@22 | 743 |
<ref name="valign.attribute"/> |
patrick@22 | 744 |
</optional> |
patrick@22 | 745 |
</define> |
patrick@22 | 746 |
<define name="tfoot.attributes"> |
patrick@22 | 747 |
<optional> |
patrick@22 | 748 |
<ref name="valign.attribute"/> |
patrick@22 | 749 |
</optional> |
patrick@22 | 750 |
</define> |
patrick@22 | 751 |
<define name="tbody.attributes"> |
patrick@22 | 752 |
<optional> |
patrick@22 | 753 |
<ref name="valign.attribute"/> |
patrick@22 | 754 |
</optional> |
patrick@22 | 755 |
</define> |
patrick@22 | 756 |
<define name="valign.attribute"> |
patrick@22 | 757 |
<attribute name="valign"> |
patrick@22 | 758 |
<choice> |
patrick@22 | 759 |
<value>top</value> |
patrick@22 | 760 |
<value>middle</value> |
patrick@22 | 761 |
<value>bottom</value> |
patrick@22 | 762 |
</choice> |
patrick@22 | 763 |
</attribute> |
patrick@22 | 764 |
</define> |
patrick@17 | 765 |
<define name="thead.content"> |
patrick@17 | 766 |
<oneOrMore> |
patrick@17 | 767 |
<ref name="row"/> |
patrick@17 | 768 |
</oneOrMore> |
patrick@17 | 769 |
</define> |
patrick@17 | 770 |
<define name="tfoot.content"> |
patrick@17 | 771 |
<oneOrMore> |
patrick@17 | 772 |
<ref name="row"/> |
patrick@17 | 773 |
</oneOrMore> |
patrick@17 | 774 |
</define> |
patrick@17 | 775 |
<define name="tbody.content"> |
patrick@17 | 776 |
<oneOrMore> |
patrick@17 | 777 |
<ref name="row"/> |
patrick@17 | 778 |
</oneOrMore> |
patrick@17 | 779 |
</define> |
patrick@17 | 780 |
<!-- ~~~~~~ row --> |
patrick@17 | 781 |
<define name="row"> |
patrick@17 | 782 |
<element name="row"> |
patrick@17 | 783 |
<ref name="row.attribute"/> |
patrick@17 | 784 |
<ref name="row.content"/> |
patrick@17 | 785 |
</element> |
patrick@17 | 786 |
</define> |
patrick@17 | 787 |
<define name="row.attribute"> |
patrick@17 | 788 |
<optional> |
patrick@17 | 789 |
<ref name="valign.attribute"/> |
patrick@17 | 790 |
</optional> |
patrick@17 | 791 |
</define> |
patrick@17 | 792 |
<define name="row.content"> |
patrick@17 | 793 |
<oneOrMore> |
patrick@17 | 794 |
<ref name="entry"/> |
patrick@17 | 795 |
</oneOrMore> |
patrick@17 | 796 |
</define> |
patrick@17 | 797 |
<!-- ~~~~~~ entry --> |
patrick@17 | 798 |
<define name="entry"> |
patrick@17 | 799 |
<element name="entry"> |
patrick@17 | 800 |
<ref name="entry.content"/> |
patrick@17 | 801 |
</element> |
patrick@17 | 802 |
</define> |
patrick@17 | 803 |
<define name="entry.content"> |
patrick@17 | 804 |
<choice> |
patrick@17 | 805 |
<ref name="inlines"/> |
patrick@17 | 806 |
<oneOrMore> |
patrick@20 | 807 |
<ref name="p"/> |
patrick@17 | 808 |
</oneOrMore> |
patrick@17 | 809 |
</choice> |
patrick@17 | 810 |
</define> |
patrick@17 | 811 |
<!-- ~~~~~~ caption --> |
patrick@17 | 812 |
<define name="caption"> |
patrick@17 | 813 |
<element name="caption"> |
patrick@17 | 814 |
<ref name="caption.content"/> |
patrick@17 | 815 |
</element> |
patrick@17 | 816 |
</define> |
patrick@17 | 817 |
<define name="caption.content"> |
patrick@20 | 818 |
<choice> |
patrick@20 | 819 |
<ref name="inlines"/> |
patrick@20 | 820 |
<oneOrMore> |
patrick@20 | 821 |
<ref name="p"/> |
patrick@20 | 822 |
</oneOrMore> |
patrick@20 | 823 |
</choice> |
patrick@11 | 824 |
</define> |
patrick@0 | 825 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ media ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@2 | 826 |
<!-- ~~~~~~ media --> |
patrick@0 | 827 |
<define name="media"> |
patrick@0 | 828 |
<element name="media"> |
patrick@0 | 829 |
<ref name="media.content"/> |
patrick@0 | 830 |
</element> |
patrick@0 | 831 |
</define> |
patrick@0 | 832 |
<define name="media.content"> |
patrick@24 | 833 |
<optional> |
patrick@24 | 834 |
<ref name="block.head"/> |
patrick@24 | 835 |
</optional> |
patrick@0 | 836 |
<oneOrMore> |
patrick@0 | 837 |
<ref name="image"/> |
patrick@0 | 838 |
</oneOrMore> |
patrick@0 | 839 |
<optional> |
patrick@17 | 840 |
<ref name="caption"/> |
patrick@0 | 841 |
</optional> |
patrick@0 | 842 |
</define> |
patrick@2 | 843 |
<!-- ~~~~~~ image --> |
patrick@0 | 844 |
<define name="image"> |
patrick@0 | 845 |
<element name="image"> |
patrick@0 | 846 |
<ref name="image.attributes"/> |
patrick@0 | 847 |
<ref name="image.content"/> |
patrick@0 | 848 |
</element> |
patrick@0 | 849 |
</define> |
patrick@0 | 850 |
<define name="image.attributes"> |
patrick@0 | 851 |
<ref name="media.id.attribute"/> |
patrick@0 | 852 |
</define> |
patrick@17 | 853 |
<define name="media.id.attribute"> |
patrick@17 | 854 |
<attribute name="id"> |
patrick@17 | 855 |
<data type="NMTOKEN"/> |
patrick@17 | 856 |
</attribute> |
patrick@17 | 857 |
</define> |
patrick@0 | 858 |
<define name="image.content"> |
patrick@0 | 859 |
<optional> |
patrick@0 | 860 |
<ref name="copyright"/> |
patrick@0 | 861 |
</optional> |
patrick@0 | 862 |
</define> |
patrick@2 | 863 |
<!-- ~~~~~~ copyright --> |
patrick@0 | 864 |
<define name="copyright"> |
patrick@0 | 865 |
<element name="copyright"> |
patrick@0 | 866 |
<ref name="copyright.content"/> |
patrick@0 | 867 |
</element> |
patrick@0 | 868 |
</define> |
patrick@0 | 869 |
<define name="copyright.content"> |
patrick@0 | 870 |
<ref name="inlines"/> |
patrick@0 | 871 |
</define> |
patrick@0 | 872 |
<!-- |
patrick@0 | 873 |
============================================================================= |
patrick@20 | 874 |
INLINE LEVEL |
patrick@0 | 875 |
============================================================================= |
patrick@0 | 876 |
--> |
patrick@0 | 877 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 878 |
<define name="inlines"> |
patrick@0 | 879 |
<mixed> |
patrick@0 | 880 |
<interleave> |
patrick@0 | 881 |
<zeroOrMore> |
patrick@0 | 882 |
<ref name="sup"/> |
patrick@0 | 883 |
</zeroOrMore> |
patrick@0 | 884 |
<zeroOrMore> |
patrick@0 | 885 |
<ref name="sub"/> |
patrick@0 | 886 |
</zeroOrMore> |
patrick@0 | 887 |
<zeroOrMore> |
patrick@12 | 888 |
<ref name="number"/> |
patrick@0 | 889 |
</zeroOrMore> |
patrick@0 | 890 |
<zeroOrMore> |
patrick@0 | 891 |
<ref name="date"/> |
patrick@0 | 892 |
</zeroOrMore> |
patrick@0 | 893 |
<zeroOrMore> |
patrick@0 | 894 |
<ref name="name"/> |
patrick@0 | 895 |
</zeroOrMore> |
patrick@0 | 896 |
<zeroOrMore> |
patrick@5 | 897 |
<ref name="note"/> |
patrick@0 | 898 |
</zeroOrMore> |
patrick@0 | 899 |
<zeroOrMore> |
patrick@0 | 900 |
<ref name="foreign"/> |
patrick@0 | 901 |
</zeroOrMore> |
patrick@0 | 902 |
<zeroOrMore> |
patrick@0 | 903 |
<ref name="highlight"/> |
patrick@0 | 904 |
</zeroOrMore> |
patrick@5 | 905 |
<zeroOrMore> |
patrick@5 | 906 |
<ref name="mentioned"/> |
patrick@5 | 907 |
</zeroOrMore> |
patrick@5 | 908 |
<zeroOrMore> |
patrick@5 | 909 |
<ref name="quote"/> |
patrick@5 | 910 |
</zeroOrMore> |
patrick@8 | 911 |
<zeroOrMore> |
patrick@8 | 912 |
<ref name="acronym"/> |
patrick@8 | 913 |
</zeroOrMore> |
patrick@10 | 914 |
<zeroOrMore> |
patrick@10 | 915 |
<ref name="term"/> |
patrick@10 | 916 |
</zeroOrMore> |
patrick@25 | 917 |
<zeroOrMore> |
patrick@25 | 918 |
<ref name="link"/> |
patrick@25 | 919 |
</zeroOrMore> |
patrick@0 | 920 |
</interleave> |
patrick@0 | 921 |
</mixed> |
patrick@0 | 922 |
</define> |
patrick@0 | 923 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub, sup ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 924 |
<define name="sup"> |
patrick@0 | 925 |
<element name="sup"> |
patrick@0 | 926 |
<ref name="inlines"/> |
patrick@0 | 927 |
</element> |
patrick@0 | 928 |
</define> |
patrick@0 | 929 |
<define name="sub"> |
patrick@0 | 930 |
<element name="sub"> |
patrick@0 | 931 |
<ref name="inlines"/> |
patrick@0 | 932 |
</element> |
patrick@0 | 933 |
</define> |
patrick@12 | 934 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ number ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@12 | 935 |
<define name="number"> |
patrick@12 | 936 |
<element name="number"> |
patrick@12 | 937 |
<choice> |
patrick@12 | 938 |
<group> |
patrick@12 | 939 |
<attribute name="type"> |
patrick@12 | 940 |
<value>roman</value> |
patrick@12 | 941 |
</attribute> |
patrick@12 | 942 |
<ref name="number.attributes"/> |
patrick@12 | 943 |
<ref name="number.roman.content"/> |
patrick@12 | 944 |
</group> |
patrick@12 | 945 |
<group> |
patrick@12 | 946 |
<ref name="number.attributes"/> |
patrick@12 | 947 |
<ref name="number.content"/> |
patrick@12 | 948 |
</group> |
patrick@12 | 949 |
</choice> |
patrick@0 | 950 |
</element> |
patrick@0 | 951 |
</define> |
patrick@12 | 952 |
<define name="number.attributes"> |
patrick@12 | 953 |
<optional> |
patrick@12 | 954 |
<ref name="number.value.attribute"/> |
patrick@12 | 955 |
</optional> |
patrick@12 | 956 |
</define> |
patrick@12 | 957 |
<define name="number.value.attribute"> |
patrick@12 | 958 |
<attribute name="value"> |
patrick@12 | 959 |
<choice> |
patrick@12 | 960 |
<data type="integer"/> |
patrick@12 | 961 |
<data type="decimal"/> |
patrick@12 | 962 |
</choice> |
patrick@12 | 963 |
</attribute> |
patrick@12 | 964 |
</define> |
patrick@12 | 965 |
<define name="number.content"> |
patrick@12 | 966 |
<mixed> |
patrick@12 | 967 |
<zeroOrMore> |
patrick@12 | 968 |
<ref name="sup"/> |
patrick@12 | 969 |
</zeroOrMore> |
patrick@12 | 970 |
</mixed> |
patrick@12 | 971 |
</define> |
patrick@12 | 972 |
<define name="number.roman.content"> |
patrick@12 | 973 |
<data type="token"> |
patrick@12 | 974 |
<param name="pattern">[dlxvi]+</param> |
patrick@12 | 975 |
</data> |
patrick@12 | 976 |
</define> |
patrick@0 | 977 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ date ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 978 |
<define name="date"> |
patrick@0 | 979 |
<element name="date"> |
patrick@0 | 980 |
<ref name="date.attributes"/> |
patrick@0 | 981 |
<ref name="date.content"/> |
patrick@0 | 982 |
</element> |
patrick@0 | 983 |
</define> |
patrick@0 | 984 |
<define name="date.attributes"> |
patrick@12 | 985 |
<interleave> |
patrick@12 | 986 |
<ref name="date.value.attribute"/> |
patrick@12 | 987 |
<optional> |
patrick@12 | 988 |
<ref name="date.of.attribute"/> |
patrick@12 | 989 |
</optional> |
patrick@12 | 990 |
</interleave> |
patrick@12 | 991 |
</define> |
patrick@12 | 992 |
<define name="date.value.attribute"> |
patrick@12 | 993 |
<attribute name="value"> |
patrick@12 | 994 |
<choice> |
patrick@12 | 995 |
<data type="date"/> |
patrick@12 | 996 |
<data type="gYearMonth"/> |
patrick@12 | 997 |
<data type="gYear"/> |
patrick@12 | 998 |
</choice> |
patrick@12 | 999 |
</attribute> |
patrick@0 | 1000 |
</define> |
patrick@0 | 1001 |
<define name="date.of.attribute"> |
patrick@0 | 1002 |
<attribute name="of"> |
patrick@33 | 1003 |
<choice> |
patrick@33 | 1004 |
<value>birth</value> |
patrick@33 | 1005 |
<value>death</value> |
patrick@33 | 1006 |
</choice> |
patrick@0 | 1007 |
</attribute> |
patrick@0 | 1008 |
</define> |
patrick@0 | 1009 |
<define name="date.content"> |
patrick@12 | 1010 |
<mixed> |
patrick@12 | 1011 |
<zeroOrMore> |
patrick@12 | 1012 |
<ref name="sup"/> |
patrick@12 | 1013 |
</zeroOrMore> |
patrick@12 | 1014 |
</mixed> |
patrick@0 | 1015 |
</define> |
patrick@2 | 1016 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 1017 |
<define name="name"> |
patrick@0 | 1018 |
<element name="name"> |
patrick@0 | 1019 |
<ref name="name.attributes"/> |
patrick@0 | 1020 |
<ref name="name.content"/> |
patrick@0 | 1021 |
</element> |
patrick@0 | 1022 |
</define> |
patrick@0 | 1023 |
<define name="name.attributes"> |
patrick@0 | 1024 |
<optional> |
patrick@0 | 1025 |
<ref name="name.of.attribute"/> |
patrick@0 | 1026 |
</optional> |
patrick@0 | 1027 |
</define> |
patrick@0 | 1028 |
<define name="name.of.attribute"> |
patrick@0 | 1029 |
<attribute name="of"> |
patrick@33 | 1030 |
<choice> |
patrick@33 | 1031 |
<value>person</value> |
patrick@33 | 1032 |
<value>company</value> |
patrick@33 | 1033 |
<value>book</value> |
patrick@33 | 1034 |
<value>newspaper</value> |
patrick@33 | 1035 |
<value>party</value> |
patrick@33 | 1036 |
</choice> |
patrick@0 | 1037 |
</attribute> |
patrick@0 | 1038 |
</define> |
patrick@2 | 1039 |
<define name="name.content"> |
patrick@2 | 1040 |
<ref name="inlines"/> |
patrick@2 | 1041 |
</define> |
patrick@5 | 1042 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ note ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@5 | 1043 |
<define name="note"> |
patrick@5 | 1044 |
<element name="note"> |
patrick@5 | 1045 |
<ref name="note.attributes"/> |
patrick@5 | 1046 |
<ref name="note.content"/> |
patrick@0 | 1047 |
</element> |
patrick@0 | 1048 |
</define> |
patrick@5 | 1049 |
<define name="note.attributes"> |
patrick@0 | 1050 |
<optional> |
patrick@5 | 1051 |
<ref name="note.label.attribute"/> |
patrick@0 | 1052 |
</optional> |
patrick@0 | 1053 |
</define> |
patrick@5 | 1054 |
<define name="note.label.attribute"> |
patrick@0 | 1055 |
<attribute name="label"/> |
patrick@0 | 1056 |
</define> |
patrick@5 | 1057 |
<define name="note.content"> |
patrick@17 | 1058 |
<choice> |
patrick@17 | 1059 |
<ref name="inlines"/> |
patrick@17 | 1060 |
<oneOrMore> |
patrick@20 | 1061 |
<ref name="p"/> |
patrick@17 | 1062 |
</oneOrMore> |
patrick@17 | 1063 |
</choice> |
patrick@0 | 1064 |
</define> |
patrick@12 | 1065 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 1066 |
<define name="foreign"> |
patrick@0 | 1067 |
<element name="foreign"> |
patrick@0 | 1068 |
<ref name="foreign.attributes"/> |
patrick@0 | 1069 |
<ref name="foreign.content"/> |
patrick@0 | 1070 |
</element> |
patrick@0 | 1071 |
</define> |
patrick@0 | 1072 |
<define name="foreign.attributes"> |
patrick@0 | 1073 |
<optional> |
patrick@0 | 1074 |
<ref name="lang.attribute"/> |
patrick@0 | 1075 |
</optional> |
patrick@0 | 1076 |
</define> |
patrick@0 | 1077 |
<define name="foreign.content"> |
patrick@0 | 1078 |
<ref name="inlines"/> |
patrick@0 | 1079 |
</define> |
patrick@0 | 1080 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ highlight ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 1081 |
<define name="highlight"> |
patrick@0 | 1082 |
<element name="highlight"> |
patrick@0 | 1083 |
<ref name="highlight.content"/> |
patrick@0 | 1084 |
</element> |
patrick@0 | 1085 |
</define> |
patrick@0 | 1086 |
<define name="highlight.content"> |
patrick@0 | 1087 |
<ref name="inlines"/> |
patrick@0 | 1088 |
</define> |
patrick@5 | 1089 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mentioned ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@5 | 1090 |
<define name="mentioned"> |
patrick@5 | 1091 |
<element name="mentioned"> |
patrick@5 | 1092 |
<ref name="mentioned.content"/> |
patrick@5 | 1093 |
</element> |
patrick@5 | 1094 |
</define> |
patrick@5 | 1095 |
<define name="mentioned.content"> |
patrick@5 | 1096 |
<ref name="inlines"/> |
patrick@5 | 1097 |
</define> |
patrick@5 | 1098 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ quote ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@5 | 1099 |
<define name="quote"> |
patrick@5 | 1100 |
<element name="quote"> |
patrick@5 | 1101 |
<ref name="quote.content"/> |
patrick@5 | 1102 |
</element> |
patrick@5 | 1103 |
</define> |
patrick@5 | 1104 |
<define name="quote.content"> |
patrick@5 | 1105 |
<ref name="inlines"/> |
patrick@5 | 1106 |
</define> |
patrick@8 | 1107 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ acronym ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@8 | 1108 |
<define name="acronym"> |
patrick@8 | 1109 |
<element name="acronym"> |
patrick@8 | 1110 |
<ref name="acronym.content"/> |
patrick@8 | 1111 |
</element> |
patrick@8 | 1112 |
</define> |
patrick@8 | 1113 |
<define name="acronym.content"> |
patrick@8 | 1114 |
<ref name="inlines"/> |
patrick@8 | 1115 |
</define> |
patrick@10 | 1116 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ term ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@10 | 1117 |
<define name="term"> |
patrick@10 | 1118 |
<element name="term"> |
patrick@10 | 1119 |
<ref name="term.content"/> |
patrick@10 | 1120 |
</element> |
patrick@10 | 1121 |
</define> |
patrick@10 | 1122 |
<define name="term.content"> |
patrick@10 | 1123 |
<ref name="inlines"/> |
patrick@10 | 1124 |
</define> |
patrick@0 | 1125 |
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> |
patrick@0 | 1126 |
<define name="link"> |
patrick@0 | 1127 |
<element name="link"> |
patrick@0 | 1128 |
<ref name="link.attributes"/> |
patrick@0 | 1129 |
<ref name="link.content"/> |
patrick@0 | 1130 |
</element> |
patrick@0 | 1131 |
</define> |
patrick@0 | 1132 |
<define name="link.attributes"> |
patrick@10 | 1133 |
<optional> |
patrick@10 | 1134 |
<choice> |
patrick@10 | 1135 |
<ref name="uri.attribute"/> |
patrick@10 | 1136 |
<ref name="idref.attribute"/> |
patrick@10 | 1137 |
</choice> |
patrick@10 | 1138 |
</optional> |
patrick@10 | 1139 |
</define> |
patrick@10 | 1140 |
<define name="uri.attribute"> |
patrick@10 | 1141 |
<attribute name="uri"> |
patrick@10 | 1142 |
<data type="anyURI"/> |
patrick@10 | 1143 |
</attribute> |
patrick@10 | 1144 |
</define> |
patrick@10 | 1145 |
<define name="idref.attribute"> |
patrick@10 | 1146 |
<attribute name="idref"> |
patrick@10 | 1147 |
<data type="IDREF"/> |
patrick@10 | 1148 |
</attribute> |
patrick@0 | 1149 |
</define> |
patrick@0 | 1150 |
<define name="link.content"> |
patrick@0 | 1151 |
<ref name="inlines"/> |
patrick@0 | 1152 |
</define> |
patrick@0 | 1153 |
</grammar> |