1namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" 2namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" 3default namespace db = "http://docbook.org/ns/docbook" 4namespace html = "http://www.w3.org/1999/xhtml" 5namespace mml = "http://www.w3.org/1998/Math/MathML" 6namespace rng = "http://relaxng.org/ns/structure/1.0" 7namespace s = "http://www.ascc.net/xml/schematron" 8namespace svg = "http://www.w3.org/2000/svg" 9namespace xlink = "http://www.w3.org/1999/xlink" 10 11s:ns [ 12 prefix = "a" 13 uri = "http://relaxng.org/ns/compatibility/annotations/1.0" 14] 15s:ns [ prefix = "ctrl" uri = "http://nwalsh.com/xmlns/schema-control/" ] 16s:ns [ prefix = "db" uri = "http://docbook.org/ns/docbook" ] 17s:ns [ 18 prefix = "dbx" 19 uri = 20 "http://sourceforge.net/projects/docbook/defguide/schema/extra-markup" 21] 22s:ns [ prefix = "html" uri = "http://www.w3.org/1999/xhtml" ] 23s:ns [ prefix = "mml" uri = "http://www.w3.org/1998/Math/MathML" ] 24s:ns [ prefix = "rng" uri = "http://relaxng.org/ns/structure/1.0" ] 25s:ns [ prefix = "s" uri = "http://www.ascc.net/xml/schematron" ] 26s:ns [ prefix = "svg" uri = "http://www.w3.org/2000/svg" ] 27s:ns [ prefix = "xlink" uri = "http://www.w3.org/1999/xlink" ] 28# DocBook V5.0b7 29 30# See http://docbook.org/ns/docbook 31 32# This file is part of DocBook V5.0b8 33# 34# Copyright 1992-2005 HaL Computer Systems, Inc., 35# O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software 36# Corporation, Norman Walsh, Sun Microsystems, Inc., and the 37# Organization for the Advancement of Structured Information 38# Standards (OASIS). 39# 40# Release: $Id: docbook.rnc 6325 2006-09-26 22:57:52Z nwalsh $ 41# 42# Permission to use, copy, modify and distribute the DocBook schema 43# and its accompanying documentation for any purpose and without fee 44# is hereby granted in perpetuity, provided that the above copyright 45# notice and this paragraph appear in all copies. The copyright 46# holders make no representation about the suitability of the schema 47# for any purpose. It is provided "as is" without expressed or implied 48# warranty. 49# 50# If you modify the DocBook schema in any way, label your schema as a 51# variant of DocBook. See the reference documentation 52# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook) 53# for more information. 54# 55# Please direct all questions, bug reports, or suggestions for changes 56# to the docbook@lists.oasis-open.org mailing list. For more 57# information, see http://www.oasis-open.org/docbook/. 58# 59# ====================================================================== 60start = 61 (db.set 62 | db.book 63 | db.divisions 64 | db.components 65 | db.navigation.components 66 | db.section 67 | db.para) 68 | (db.sect1 | db.sect2 | db.sect3 | db.sect4 | db.sect5) 69 | (db.refentry | db.refsection) 70 | (db.refsect1 | db.refsect2 | db.refsect3) 71 | db.setindex 72div { 73 db._any.attribute = 74 75 ## Any attribute including in any attribute in any namespace. 76 attribute * { text } 77 db._any = 78 79 ## Any element from almost any namespace 80 element * - (db:* | html:*) { 81 (db._any.attribute | text | db._any)* 82 } 83} 84db.arch.attribute = 85 86 ## Designates the computer or chip architecture to which the element applies 87 attribute arch { text } 88db.audience.attribute = 89 90 ## Designates the intended audience to which the element applies 91 attribute audience { text } 92db.condition.attribute = 93 94 ## provides a standard place for application-specific effectivity 95 attribute condition { text } 96db.conformance.attribute = 97 98 ## Indicates standards conformance characteristics of the element 99 attribute conformance { text } 100db.os.attribute = 101 102 ## Indicates the operating system to which the element is applicable 103 attribute os { text } 104db.revision.attribute = 105 106 ## Indicates the editorial revision to which the element belongs 107 attribute revision { text } 108db.security.attribute = 109 110 ## Indicates something about the security level associated with the element to which it applies 111 attribute security { text } 112db.userlevel.attribute = 113 114 ## Indicates the level of user experience for which the element applies 115 attribute userlevel { text } 116db.vendor.attribute = 117 118 ## Indicates the computer vendor to which the element applies. 119 attribute vendor { text } 120db.wordsize.attribute = 121 122 ## Indicates the word size (width in bits) of the computer architecture to which the element applies 123 attribute wordsize { text } 124db.effectivity.attributes = 125 db.arch.attribute? 126 & db.audience.attribute? 127 & db.condition.attribute? 128 & db.conformance.attribute? 129 & db.os.attribute? 130 & db.revision.attribute? 131 & db.security.attribute? 132 & db.userlevel.attribute? 133 & db.vendor.attribute? 134 & db.wordsize.attribute? 135db.endterm.attribute = 136 137 ## Points to the element whose content is to be used as the text of the link 138 attribute endterm { xsd:IDREF } 139db.linkend.attribute = 140 141 ## Points to an internal link target by identifying the value of its xml:id attribute 142 attribute linkend { xsd:IDREF } 143db.linkends.attribute = 144 145 ## Points to one or more internal link targets by identifying the value of their xml:id attributes 146 attribute linkends { xsd:IDREFS } 147db.xlink.href.attribute = 148 149 ## Identifies a link target with a URI 150 attribute xlink:href { xsd:anyURI } 151db.xlink.type.attribute = 152 153 ## Identifies the XLink link type 154 attribute xlink:type { 155 156 ## An XLink simple link 157 "simple" 158 } 159db.xlink.role.attribute = 160 161 ## Identifies the XLink role of the link 162 attribute xlink:role { xsd:anyURI } 163db.xlink.arcrole.attribute = 164 165 ## Identifies the XLink arcrole of the link 166 attribute xlink:arcrole { xsd:anyURI } 167db.xlink.title.attribute = 168 169 ## Identifies the XLink title of the link 170 attribute xlink:title { text }? 171db.xlink.show.enumeration = 172 173 ## An application traversing to the ending resource should load it in a new window, frame, pane, or other relevant presentation context. 174 "new" 175 | 176 ## An application traversing to the ending resource should load the resource in the same window, frame, pane, or other relevant presentation context in which the starting resource was loaded. 177 "replace" 178 | 179 ## An application traversing to the ending resource should load its presentation in place of the presentation of the starting resource. 180 "embed" 181 | 182 ## The behavior of an application traversing to the ending resource is unconstrained by XLink. The application should look for other markup present in the link to determine the appropriate behavior. 183 "other" 184 | 185 ## The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior. 186 "none" 187db.xlink.show.attribute = 188 189 ## Identifies the XLink show behavior of the link 190 attribute xlink:show { db.xlink.show.enumeration } 191db.xlink.actuate.enumeration = 192 193 ## An application should traverse to the ending resource immediately on loading the starting resource. 194 "onLoad" 195 | 196 ## An application should traverse from the starting resource to the ending resource only on a post-loading event triggered for the purpose of traversal. 197 "onRequest" 198 | 199 ## The behavior of an application traversing to the ending resource is unconstrained by this specification. The application should look for other markup present in the link to determine the appropriate behavior. 200 "other" 201 | 202 ## The behavior of an application traversing to the ending resource is unconstrained by this specification. No other markup is present to help the application determine the appropriate behavior. 203 "none" 204db.xlink.actuate.attribute = 205 206 ## Identifies the XLink actuate behavior of the link 207 attribute xlink:actuate { db.xlink.actuate.enumeration } 208db.href.attribute = 209 db.xlink.href.attribute 210 & db.xlink.type.attribute? 211 & db.xlink.role.attribute? 212 & db.xlink.arcrole.attribute? 213 & db.xlink.title.attribute? 214 & db.xlink.show.attribute? 215 & db.xlink.actuate.attribute? 216db.xml.id.attribute = 217 218 ## Identifies the unique ID value of the element 219 attribute xml:id { xsd:ID } 220db.version.attribute = 221 222 ## Specifies the DocBook version of the element and its descendants 223 attribute version { text } 224db.xml.lang.attribute = 225 226 ## Specifies the natural language of the element and its descendants 227 attribute xml:lang { text } 228db.xml.base.attribute = 229 230 ## Specifies the base URI of the element and its descendants 231 attribute xml:base { xsd:anyURI } 232db.remap.attribute = 233 234 ## Provides the name or similar semantic identifier assigned to the content in some previous markup scheme 235 attribute remap { text } 236db.xreflabel.attribute = 237 238 ## Provides the text that is to be generated for a cross reference to the element 239 attribute xreflabel { text } 240db.xrefstyle.attribute = 241 242 ## Specifies a keyword or keywords identifying additional style information 243 attribute xrefstyle { text } 244db.revisionflag.enumeration = 245 246 ## The element has been changed. 247 "changed" 248 | 249 ## The element is new (has been added to the document). 250 "added" 251 | 252 ## The element has been deleted. 253 "deleted" 254 | 255 ## Explicitly turns off revision markup for this element. 256 "off" 257db.revisionflag.attribute = 258 259 ## Identifies the revision status of the element 260 attribute revisionflag { db.revisionflag.enumeration } 261db.dir.enumeration = 262 263 ## Left-to-right text 264 "ltr" 265 | 266 ## Right-to-left text 267 "rtl" 268 | 269 ## Left-to-right override 270 "lro" 271 | 272 ## Right-to-left override 273 "rlo" 274db.dir.attribute = 275 276 ## Identifies the direction of text in an element 277 attribute dir { db.dir.enumeration } 278db.common.attributes = 279 db.xml.id.attribute? 280 & db.version.attribute? 281 & db.xml.lang.attribute? 282 & db.xml.base.attribute? 283 & db.remap.attribute? 284 & db.xreflabel.attribute? 285 & db.revisionflag.attribute? 286 & db.dir.attribute? 287 & db.effectivity.attributes 288 & db.annotations.attribute? 289db.common.idreq.attributes = 290 db.xml.id.attribute 291 & db.version.attribute? 292 & db.xml.lang.attribute? 293 & db.xml.base.attribute? 294 & db.remap.attribute? 295 & db.xreflabel.attribute? 296 & db.revisionflag.attribute? 297 & db.dir.attribute? 298 & db.effectivity.attributes 299 & db.annotations.attribute? 300db.common.linking.attributes = 301 (db.linkend.attribute | db.href.attribute)? 302db.common.req.linking.attributes = 303 db.linkend.attribute | db.href.attribute 304db.common.data.attributes = 305 306 ## Specifies the format of the data 307 attribute format { text }?, 308 ( 309 ## Indentifies the location of the data by URI 310 attribute fileref { xsd:anyURI } 311 | 312 ## Identifies the location of the data by external identifier (entity name) 313 attribute entityref { xsd:ENTITY }) 314db.verbatim.continuation.enumeration = 315 316 ## Line numbering continues from the immediately preceding element with the same name. 317 "continues" 318 | 319 ## Line numbering restarts (begins at 1, usually). 320 "restarts" 321db.verbatim.continuation.attribute = 322 323 ## Determines whether line numbering continues from the previous element or restarts. 324 attribute continuation { db.verbatim.continuation.enumeration } 325db.verbatim.linenumbering.enumeration = 326 327 ## Lines are numbered. 328 "numbered" 329 | 330 ## Lines are not numbered. 331 "unnumbered" 332db.verbatim.linenumbering.attribute = 333 334 ## Determines whether lines are numbered. 335 attribute linenumbering { db.verbatim.linenumbering.enumeration } 336db.verbatim.startinglinenumber.attribute = 337 338 ## Specifies the initial line number. 339 attribute startinglinenumber { xsd:integer } 340db.verbatim.language.attribute = 341 342 ## Identifies the language (i.e. programming language) of the verbatim content. 343 attribute language { text } 344db.verbatim.xml.space.attribute = 345 346 ## Can be used to indicate explicitly that whitespace in the verbatim environment is preserved. Whitespace must always be preserved in verbatim environments whether this attribute is specified or not. 347 attribute xml:space { 348 349 ## Whitespace must be preserved. 350 "preserve" 351 } 352db.verbatim.attributes = 353 db.verbatim.continuation.attribute? 354 & db.verbatim.linenumbering.attribute? 355 & db.verbatim.startinglinenumber.attribute? 356 & db.verbatim.language.attribute? 357 & db.verbatim.xml.space.attribute? 358db.label.attribute = 359 360 ## Specifies an identifying string for presentation purposes 361 attribute label { text } 362db.width.characters.attribute = 363 364 ## Specifies the width (in characters) of the element 365 attribute width { xsd:nonNegativeInteger } 366db.spacing.enumeration = 367 368 ## The spacing should be "compact". 369 "compact" 370 | 371 ## The spacing should be "normal". 372 "normal" 373db.spacing.attribute = 374 375 ## Specifies (a hint about) the spacing of the content 376 attribute spacing { db.spacing.enumeration } 377db.pgwide.enumeration = 378 379 ## The element should be rendered in the current text flow (with the flow column width). 380 "0" 381 | 382 ## The element should be rendered across the full text page. 383 "1" 384db.pgwide.attribute = 385 386 ## Indicates if the element is rendered across the column or the page 387 attribute pgwide { db.pgwide.enumeration } 388db.language.attribute = 389 390 ## Identifies the language (i.e. programming language) of the content. 391 attribute language { text } 392db.performance.enumeration = 393 394 ## The content describes an optional step or steps. 395 "optional" 396 | 397 ## The content describes a required step or steps. 398 "required" 399db.performance.attribute = 400 401 ## Specifies if the content is required or optional. 402 attribute performance { db.performance.enumeration } 403db.floatstyle.attribute = 404 405 ## Specifies style information to be used when rendering the float 406 attribute floatstyle { text } 407db.width.attribute = 408 409 ## Specifies the width of the element 410 attribute width { text } 411db.depth.attribute = 412 413 ## Specifies the depth of the element 414 attribute depth { text } 415db.contentwidth.attribute = 416 417 ## Specifies the width of the content rectangle 418 attribute contentwidth { text } 419db.contentdepth.attribute = 420 421 ## Specifies the depth of the content rectangle 422 attribute contentdepth { text } 423db.scalefit.enumeration = 424 425 ## False (do not scale-to-fit; anamorphic scaling may occur) 426 "0" 427 | 428 ## True (scale-to-fit; anamorphic scaling is forbidden) 429 "1" 430db.scale.attribute = 431 432 ## Specifies the scaling factor 433 attribute scale { xsd:positiveInteger } 434db.halign.enumeration = 435 436 ## Centered horizontally 437 "center" 438 | 439 ## Aligned horizontally on the specified character 440 "char" 441 | 442 ## Fully justified (left and right margins or edges) 443 "justify" 444 | 445 ## Left aligned 446 "left" 447 | 448 ## Right aligned 449 "right" 450db.valign.enumeration = 451 452 ## Aligned on the bottom of the region 453 "bottom" 454 | 455 ## Centered vertically 456 "middle" 457 | 458 ## Aligned on the top of the region 459 "top" 460db.biblio.class.enumeration = 461 462 ## A document object identifier. 463 "doi" 464 | 465 ## An international standard book number. 466 "isbn" 467 | 468 ## An international standard technical report number (ISO 10444). 469 "isrn" 470 | 471 ## An international standard serial number. 472 "issn" 473 | 474 ## A Library of Congress reference number. 475 "libraryofcongress" 476 | 477 ## A publication number (an internal number or possibly organizational standard). 478 "pubsnumber" 479 | 480 ## A Uniform Resource Identifier 481 "uri" 482db.biblio.class-enum.attribute = 483 484 ## Identifies the kind of bibliographic identifier 485 attribute class { db.biblio.class.enumeration }? 486db.biblio.class-other.attribute = 487 488 ## Identifies the nature of the non-standard bibliographic identifier 489 attribute otherclass { xsd:NMTOKEN } 490db.biblio.class-other.attributes = 491 492 ## Identifies the kind of bibliographic identifier 493 attribute class { 494 495 ## Indicates that the identifier is some 'other' kind. 496 "other" 497 } 498 & db.biblio.class-other.attribute 499db.biblio.class.attribute = 500 db.biblio.class-enum.attribute | db.biblio.class-other.attributes 501db.ubiq.inlines = 502 (db.inlinemediaobject 503 | db.remark 504 | db.superscript 505 | db.subscript 506 | db.link.inlines 507 | db.alt) 508 | db.annotation 509 | db.indexterm 510db._text = (text | db.ubiq.inlines | db._phrase | db.replaceable)* 511db._title = db.title? & db.titleabbrev? & db.subtitle? 512db._title.req = db.title & db.titleabbrev? & db.subtitle? 513db._title.only = db.title? & db.titleabbrev? 514db._title.onlyreq = db.title & db.titleabbrev? 515db._info = (db._title.req?, db.titleforbidden.info?) | db.info? 516db._info.title.req = 517 (db._title.req, db.titleforbidden.info?) | db.titlereq.info 518db._info.title.only = 519 (db._title.only, db.titleforbidden.info?) | db.titleonly.info 520db._info.title.onlyreq = 521 (db._title.onlyreq, db.titleforbidden.info?) | db.titleonlyreq.info 522db._info.title.forbidden = db.titleforbidden.info? 523db.all.inlines = 524 text 525 | db.ubiq.inlines 526 | db.general.inlines 527 | db.domain.inlines 528 | db.extension.inlines 529db.general.inlines = 530 db.publishing.inlines 531 | db.product.inlines 532 | db.bibliography.inlines 533 | db.graphic.inlines 534 | db.indexing.inlines 535 | db.link.inlines 536db.domain.inlines = 537 (db.technical.inlines 538 | db.error.inlines 539 | db.os.inlines 540 | db.programming.inlines 541 | db.markup.inlines 542 | db.gui.inlines 543 | db.keyboard.inlines) 544 | db.math.inlines 545db.technical.inlines = 546 (db.replaceable 547 | db.systemitem 548 | db.option 549 | db.optional 550 | db.package 551 | db.parameter 552 | db.property 553 | db.termdef) 554 | db.nonterminal 555db.error.inlines = 556 db.errorcode | db.errortext | db.errorname | db.errortype 557db.oo.inlines = db.ooclass | db.ooexception | db.oointerface 558db.programming.inlines = 559 db.function 560 | db.parameter 561 | db.varname 562 | db.returnvalue 563 | db.type 564 | db.classname 565 | db.exceptionname 566 | db.interfacename 567 | db.methodname 568 | db.modifier 569 | db.initializer 570 | db.oo.inlines 571db.product.inlines = 572 db.productnumber 573 | db.productname 574 | db.database 575 | db.application 576 | db.hardware 577 | db.trademark 578db.os.inlines = 579 db.prompt 580 | db.envar 581 | db.filename 582 | db.command 583 | db.computeroutput 584 | db.userinput 585db.markup.inlines = 586 db.tag 587 | db.markup 588 | db.token 589 | db.symbol 590 | db.literal 591 | db.code 592 | db.constant 593 | db.email 594 | db.uri 595db.bibliography.inlines = 596 db.citation 597 | db.citerefentry 598 | db.citetitle 599 | db.citebiblioid 600 | db.author 601 | db.person 602 | db.personname 603 | db.org 604 | db.orgname 605 | db.editor 606db.publishing.inlines = 607 (db.abbrev 608 | db.acronym 609 | db.date 610 | db.emphasis 611 | db.footnote 612 | db.footnoteref 613 | db.foreignphrase 614 | db.phrase 615 | db.quote 616 | db.subscript 617 | db.superscript 618 | db.wordasword) 619 | db.glossary.inlines 620 | db.coref 621db.graphic.inlines = db.inlinemediaobject 622db.indexing.inlines = notAllowed | db.indexterm 623db.gui.inlines = 624 db.guiicon 625 | db.guibutton 626 | db.guimenuitem 627 | db.guimenu 628 | db.guisubmenu 629 | db.guilabel 630 | db.menuchoice 631 | db.mousebutton 632db.keyboard.inlines = 633 db.keycombo 634 | db.keycap 635 | db.keycode 636 | db.keysym 637 | db.shortcut 638 | db.accel 639db.link.inlines = 640 (db.xref | db.link | db.olink | db.anchor) | db.biblioref 641db.extension.inlines = notAllowed 642db.nopara.blocks = 643 (db.list.blocks 644 | db.admonition.blocks 645 | db.formal.blocks 646 | db.informal.blocks 647 | db.publishing.blocks 648 | db.graphic.blocks 649 | db.technical.blocks 650 | db.verbatim.blocks 651 | db.synopsis.blocks 652 | db.bridgehead 653 | db.remark 654 | db.revhistory) 655 | db.indexterm 656 | db.math.blocks 657db.para.blocks = db.anchor | db.para | db.formalpara | db.simpara 658db.all.blocks = 659 (db.nopara.blocks | db.para.blocks | db.extension.blocks) 660 | db.annotation 661db.formal.blocks = db.example | db.figure | db.table 662db.informal.blocks = 663 db.informalexample | db.informalfigure | db.informaltable 664db.publishing.blocks = 665 db.sidebar | db.blockquote | db.address | db.epigraph 666db.graphic.blocks = db.mediaobject | db.screenshot 667db.technical.blocks = 668 db.procedure 669 | db.task 670 | (db.productionset | db.constraintdef) 671 | db.msgset 672db.admonition.blocks = 673 db.caution | db.important | db.note | db.tip | db.warning 674db.list.blocks = 675 (db.itemizedlist 676 | db.orderedlist 677 | db.procedure 678 | db.simplelist 679 | db.variablelist 680 | db.segmentedlist) 681 | db.glosslist 682 | db.bibliolist 683 | db.calloutlist 684 | db.qandaset 685db.verbatim.blocks = 686 (db.programlisting | db.screen | db.literallayout | db.synopsis) 687 | (db.programlistingco | db.screenco) 688db.synopsis.blocks = 689 db.cmdsynopsis 690 | db.funcsynopsis 691 | db.classsynopsis 692 | db.methodsynopsis 693 | db.constructorsynopsis 694 | db.destructorsynopsis 695 | db.fieldsynopsis 696db.extension.blocks = notAllowed 697db.info.elements = 698 (db.abstract 699 | db.address 700 | db.artpagenums 701 | db.author 702 | db.authorgroup 703 | db.authorinitials 704 | db.bibliocoverage 705 | db.biblioid 706 | db.bibliosource 707 | db.collab 708 | db.confgroup 709 | db.contractsponsor 710 | db.contractnum 711 | db.copyright 712 | db.cover 713 | db.date 714 | db.edition 715 | db.editor 716 | db.issuenum 717 | db.keywordset 718 | db.legalnotice 719 | db.mediaobject 720 | db.org 721 | db.orgname 722 | db.othercredit 723 | db.pagenums 724 | db.printhistory 725 | db.productname 726 | db.productnumber 727 | db.pubdate 728 | db.publisher 729 | db.publishername 730 | db.releaseinfo 731 | db.revhistory 732 | db.seriesvolnums 733 | db.subjectset 734 | db.volumenum) 735 | db.annotation 736 | db.extendedlink 737 | (db.bibliomisc | db.bibliomset | db.bibliorelation | db.biblioset) 738 | db.itermset 739db.bibliographic.elements = 740 db.info.elements 741 | db.publishing.inlines 742 | db.citerefentry 743 | db.citetitle 744 | db.citebiblioid 745 | db.person 746 | db.personname 747 | db.subtitle 748 | db.title 749div { 750 db.title.role.attribute = attribute role { text } 751 db.title.attlist = 752 db.title.role.attribute? 753 & db.common.attributes 754 & db.common.linking.attributes 755 db.title = 756 757 ## The text of the title of a section of a document or of a formal block-level element 758 element title { db.title.attlist, db.all.inlines* } 759} 760div { 761 db.titleabbrev.role.attribute = attribute role { text } 762 db.titleabbrev.attlist = 763 db.titleabbrev.role.attribute? 764 & db.common.attributes 765 & db.common.linking.attributes 766 db.titleabbrev = 767 768 ## The abbreviation of a title 769 element titleabbrev { db.titleabbrev.attlist, db.all.inlines* } 770} 771div { 772 db.subtitle.role.attribute = attribute role { text } 773 db.subtitle.attlist = 774 db.subtitle.role.attribute? 775 & db.common.attributes 776 & db.common.linking.attributes 777 db.subtitle = 778 779 ## The subtitle of a document 780 element subtitle { db.subtitle.attlist, db.all.inlines* } 781} 782div { 783 db.info.role.attribute = attribute role { text } 784 db.info.attlist = db.info.role.attribute? & db.common.attributes 785 db.info = 786 787 ## A wrapper for information about a component or other block 788 element info { db.info.attlist, (db._title & db.info.elements*) } 789} 790div { 791 db.titlereq.info.role.attribute = attribute role { text } 792 db.titlereq.info.attlist = 793 db.titlereq.info.role.attribute? & db.common.attributes 794 db.titlereq.info = 795 796 ## A wrapper for information about a component or other block with a required title 797 element info { 798 db.titlereq.info.attlist, (db._title.req & db.info.elements*) 799 } 800} 801div { 802 db.titleonly.info.role.attribute = attribute role { text } 803 db.titleonly.info.attlist = 804 db.titleonly.info.role.attribute? & db.common.attributes 805 db.titleonly.info = 806 807 ## A wrapper for information about a component or other block with only a title 808 element info { 809 db.titleonly.info.attlist, (db._title.only & db.info.elements*) 810 } 811} 812div { 813 db.titleonlyreq.info.role.attribute = attribute role { text } 814 db.titleonlyreq.info.attlist = 815 db.titleonlyreq.info.role.attribute? & db.common.attributes 816 db.titleonlyreq.info = 817 818 ## A wrapper for information about a component or other block with only a required title 819 element info { 820 db.titleonlyreq.info.attlist, 821 (db._title.onlyreq & db.info.elements*) 822 } 823} 824div { 825 db.titleforbidden.info.role.attribute = attribute role { text } 826 db.titleforbidden.info.attlist = 827 db.titleforbidden.info.role.attribute? & db.common.attributes 828 db.titleforbidden.info = 829 830 ## A wrapper for information about a component or other block without a title 831 element info { db.titleforbidden.info.attlist, db.info.elements* } 832} 833div { 834 db.subjectset.role.attribute = attribute role { text } 835 db.subjectset.scheme.attribute = 836 837 ## Identifies the controlled vocabulary used by this set's terms 838 attribute scheme { xsd:NMTOKEN } 839 db.subjectset.attlist = 840 db.subjectset.role.attribute? 841 & db.common.attributes 842 & db.common.linking.attributes 843 & db.subjectset.scheme.attribute? 844 db.subjectset = 845 846 ## A set of terms describing the subject matter of a document 847 element subjectset { db.subjectset.attlist, db.subject+ } 848} 849div { 850 db.subject.role.attribute = attribute role { text } 851 db.subject.weight.attribute = 852 853 ## Specifies a ranking for this subject relative to other subjects in the same set 854 attribute weight { text } 855 db.subject.attlist = 856 db.subject.role.attribute? 857 & db.common.attributes 858 & db.common.linking.attributes 859 & db.subject.weight.attribute? 860 db.subject = 861 862 ## One of a group of terms describing the subject matter of a document 863 element subject { db.subject.attlist, db.subjectterm+ } 864} 865div { 866 db.subjectterm.role.attribute = attribute role { text } 867 db.subjectterm.attlist = 868 db.subjectterm.role.attribute? 869 & db.common.attributes 870 & db.common.linking.attributes 871 db.subjectterm = 872 873 ## A term in a group of terms describing the subject matter of a document 874 element subjectterm { db.subjectterm.attlist, text } 875} 876div { 877 db.keywordset.role.attribute = attribute role { text } 878 db.keywordset.attlist = 879 db.keywordset.role.attribute? 880 & db.common.attributes 881 & db.common.linking.attributes 882 db.keywordset = 883 884 ## A set of keywords describing the content of a document 885 element keywordset { db.keywordset.attlist, db.keyword+ } 886} 887div { 888 db.keyword.role.attribute = attribute role { text } 889 db.keyword.attlist = 890 db.keyword.role.attribute? 891 & db.common.attributes 892 & db.common.linking.attributes 893 db.keyword = 894 895 ## One of a set of keywords describing the content of a document 896 element keyword { db.keyword.attlist, text } 897} 898db.table.choice = notAllowed | db.cals.table | db.html.table 899db.informaltable.choice = 900 notAllowed | db.cals.informaltable | db.html.informaltable 901db.table = db.table.choice 902db.informaltable = db.informaltable.choice 903div { 904 db.procedure.role.attribute = attribute role { text } 905 db.procedure.attlist = 906 db.procedure.role.attribute? 907 & db.common.attributes 908 & db.common.linking.attributes 909 db.procedure.info = db._info.title.only 910 db.procedure = 911 912 ## A list of operations to be performed in a well-defined sequence 913 element procedure { 914 db.procedure.attlist, db.procedure.info, db.all.blocks*, db.step+ 915 } 916} 917div { 918 db.step.role.attribute = attribute role { text } 919 db.step.attlist = 920 db.step.role.attribute? 921 & db.common.attributes 922 & db.common.linking.attributes 923 & db.performance.attribute? 924 db.step.info = db._info.title.only 925 # 926 # This content model is blocks*, step|stepalternatives, blocks* but 927 # expressed this way it avoids UPA issues in XSD and DTD versions 928 db.step = 929 930 ## A unit of action in a procedure 931 element step { 932 db.step.attlist, 933 db.step.info, 934 ((db.all.blocks+, 935 ((db.substeps | db.stepalternatives), db.all.blocks*)?) 936 | ((db.substeps | db.stepalternatives), db.all.blocks*)) 937 } 938} 939div { 940 db.stepalternatives.role.attribute = attribute role { text } 941 db.stepalternatives.attlist = 942 db.stepalternatives.role.attribute? 943 & db.common.attributes 944 & db.common.linking.attributes 945 & db.performance.attribute? 946 db.stepalternatives.info = db._info.title.forbidden 947 db.stepalternatives = 948 949 ## Alternative steps in a procedure 950 element stepalternatives { 951 db.stepalternatives.attlist, db.stepalternatives.info, db.step+ 952 } 953} 954div { 955 db.substeps.role.attribute = attribute role { text } 956 db.substeps.attlist = 957 db.substeps.role.attribute? 958 & db.common.attributes 959 & db.common.linking.attributes 960 & db.performance.attribute? 961 db.substeps = 962 963 ## A wrapper for steps that occur within steps in a procedure 964 element substeps { db.substeps.attlist, db.step+ } 965} 966div { 967 db.sidebar.role.attribute = attribute role { text } 968 db.sidebar.attlist = 969 db.sidebar.role.attribute? 970 & db.common.attributes 971 & db.common.linking.attributes 972 db.sidebar.info = db._info.title.only 973 db.sidebar = 974 975 ## A portion of a document that is isolated from the main narrative flow 976 [ 977 s:pattern [ 978 name = "Element exclusion" 979 "\x{a}" ~ 980 " " 981 s:rule [ 982 context = "db:sidebar" 983 "\x{a}" ~ 984 " " 985 s:assert [ 986 test = "not(.//db:sidebar)" 987 "sidebar must not occur in the descendants of sidebar" 988 ] 989 "\x{a}" ~ 990 " " 991 ] 992 "\x{a}" ~ 993 " " 994 ] 995 ] 996 element sidebar { 997 db.sidebar.attlist, db.sidebar.info, db.all.blocks+ 998 } 999} 1000div { 1001 db.abstract.role.attribute = attribute role { text } 1002 db.abstract.attlist = 1003 db.abstract.role.attribute? 1004 & db.common.attributes 1005 & db.common.linking.attributes 1006 db.abstract.info = db._info.title.only 1007 db.abstract = 1008 1009 ## A summary 1010 element abstract { 1011 db.abstract.attlist, db.abstract.info, db.para.blocks+ 1012 } 1013} 1014div { 1015 db.personblurb.role.attribute = attribute role { text } 1016 db.personblurb.attlist = 1017 db.personblurb.role.attribute? 1018 & db.common.attributes 1019 & db.common.linking.attributes 1020 db.personblurb.info = db._info.title.only 1021 db.personblurb = 1022 1023 ## A short description or note about a person 1024 element personblurb { 1025 db.personblurb.attlist, db.personblurb.info, db.para.blocks+ 1026 } 1027} 1028div { 1029 db.blockquote.role.attribute = attribute role { text } 1030 db.blockquote.attlist = 1031 db.blockquote.role.attribute? 1032 & db.common.attributes 1033 & db.common.linking.attributes 1034 db.blockquote.info = db._info.title.only 1035 db.blockquote = 1036 1037 ## A quotation set off from the main text 1038 element blockquote { 1039 db.blockquote.attlist, 1040 db.blockquote.info, 1041 db.attribution?, 1042 (db.para.blocks | db.literallayout)+ 1043 } 1044} 1045div { 1046 db.attribution.role.attribute = attribute role { text } 1047 db.attribution.attlist = 1048 db.attribution.role.attribute? 1049 & db.common.attributes 1050 & db.common.linking.attributes 1051 db.attribution = 1052 1053 ## The source of a block quote or epigraph 1054 element attribution { 1055 db.attribution.attlist, 1056 (db._text 1057 | db.person 1058 | db.personname 1059 | db.citetitle 1060 | db.citation)* 1061 } 1062} 1063div { 1064 db.bridgehead.renderas.enumeration = 1065 1066 ## Render as a first-level section 1067 "sect1" 1068 | 1069 ## Render as a second-level section 1070 "sect2" 1071 | 1072 ## Render as a third-level section 1073 "sect3" 1074 | 1075 ## Render as a fourth-level section 1076 "sect4" 1077 | 1078 ## Render as a fifth-level section 1079 "sect5" 1080 db.bridgehead.renderas-enum.attribute = 1081 1082 ## Indicates how the bridge head should be rendered 1083 attribute renderas { db.bridgehead.renderas.enumeration }? 1084 db.bridgehead.renderas-other.attribute = 1085 1086 ## Identifies the nature of the non-standard rendering 1087 attribute otherrenderas { xsd:NMTOKEN } 1088 db.bridgehead.renderas-other.attributes = 1089 1090 ## Indicates how the bridge head should be rendered 1091 attribute renderas { 1092 1093 ## Identifies a non-standard rendering 1094 "other" 1095 } 1096 & db.bridgehead.renderas-other.attribute 1097 db.bridgehead.renderas.attribute = 1098 db.bridgehead.renderas-enum.attribute 1099 | db.bridgehead.renderas-other.attributes 1100 db.bridgehead.role.attribute = attribute role { text } 1101 db.bridgehead.attlist = 1102 db.bridgehead.role.attribute? 1103 & db.common.attributes 1104 & db.common.linking.attributes 1105 & db.bridgehead.renderas.attribute? 1106 db.bridgehead = 1107 1108 ## A free-floating heading 1109 element bridgehead { db.bridgehead.attlist, db.all.inlines* } 1110} 1111div { 1112 db.remark.role.attribute = attribute role { text } 1113 db.remark.attlist = 1114 db.remark.role.attribute? 1115 & db.common.attributes 1116 & db.common.linking.attributes 1117 db.remark = 1118 1119 ## A remark (or comment) intended for presentation in a draft manuscript 1120 element remark { db.remark.attlist, db._text } 1121} 1122div { 1123 db.epigraph.role.attribute = attribute role { text } 1124 db.epigraph.attlist = 1125 db.epigraph.role.attribute? 1126 & db.common.attributes 1127 & db.common.linking.attributes 1128 db.epigraph.info = db._info.title.forbidden 1129 db.epigraph = 1130 1131 ## A short inscription at the beginning of a document or component 1132 element epigraph { 1133 db.epigraph.attlist, 1134 db.epigraph.info, 1135 db.attribution?, 1136 (db.para.blocks | db.literallayout)+ 1137 } 1138} 1139div { 1140 db.footnote.role.attribute = attribute role { text } 1141 db.footnote.label.attribute = 1142 1143 ## Identifies the desired footnote mark 1144 attribute label { xsd:NMTOKEN } 1145 db.footnote.attlist = 1146 db.footnote.role.attribute? 1147 & db.common.attributes 1148 & db.common.linking.attributes 1149 & db.footnote.label.attribute? 1150 db.footnote = 1151 1152 ## A footnote 1153 [ 1154 s:pattern [ 1155 name = "Element exclusion" 1156 "\x{a}" ~ 1157 " " 1158 s:rule [ 1159 context = "db:footnote" 1160 "\x{a}" ~ 1161 " " 1162 s:assert [ 1163 test = "not(.//db:footnote)" 1164 "footnote must not occur in the descendants of footnote" 1165 ] 1166 "\x{a}" ~ 1167 " " 1168 ] 1169 "\x{a}" ~ 1170 " " 1171 ] 1172 s:pattern [ 1173 name = "Element exclusion" 1174 "\x{a}" ~ 1175 " " 1176 s:rule [ 1177 context = "db:footnote" 1178 "\x{a}" ~ 1179 " " 1180 s:assert [ 1181 test = "not(.//db:example)" 1182 "example must not occur in the descendants of footnote" 1183 ] 1184 "\x{a}" ~ 1185 " " 1186 ] 1187 "\x{a}" ~ 1188 " " 1189 ] 1190 s:pattern [ 1191 name = "Element exclusion" 1192 "\x{a}" ~ 1193 " " 1194 s:rule [ 1195 context = "db:footnote" 1196 "\x{a}" ~ 1197 " " 1198 s:assert [ 1199 test = "not(.//db:figure)" 1200 "figure must not occur in the descendants of footnote" 1201 ] 1202 "\x{a}" ~ 1203 " " 1204 ] 1205 "\x{a}" ~ 1206 " " 1207 ] 1208 s:pattern [ 1209 name = "Element exclusion" 1210 "\x{a}" ~ 1211 " " 1212 s:rule [ 1213 context = "db:footnote" 1214 "\x{a}" ~ 1215 " " 1216 s:assert [ 1217 test = "not(.//db:table)" 1218 "table must not occur in the descendants of footnote" 1219 ] 1220 "\x{a}" ~ 1221 " " 1222 ] 1223 "\x{a}" ~ 1224 " " 1225 ] 1226 s:pattern [ 1227 name = "Element exclusion" 1228 "\x{a}" ~ 1229 " " 1230 s:rule [ 1231 context = "db:footnote" 1232 "\x{a}" ~ 1233 " " 1234 s:assert [ 1235 test = "not(.//db:table)" 1236 "table must not occur in the descendants of footnote" 1237 ] 1238 "\x{a}" ~ 1239 " " 1240 ] 1241 "\x{a}" ~ 1242 " " 1243 ] 1244 s:pattern [ 1245 name = "Element exclusion" 1246 "\x{a}" ~ 1247 " " 1248 s:rule [ 1249 context = "db:footnote" 1250 "\x{a}" ~ 1251 " " 1252 s:assert [ 1253 test = "not(.//db:caution)" 1254 "caution must not occur in the descendants of footnote" 1255 ] 1256 "\x{a}" ~ 1257 " " 1258 ] 1259 "\x{a}" ~ 1260 " " 1261 ] 1262 s:pattern [ 1263 name = "Element exclusion" 1264 "\x{a}" ~ 1265 " " 1266 s:rule [ 1267 context = "db:footnote" 1268 "\x{a}" ~ 1269 " " 1270 s:assert [ 1271 test = "not(.//db:important)" 1272 "important must not occur in the descendants of footnote" 1273 ] 1274 "\x{a}" ~ 1275 " " 1276 ] 1277 "\x{a}" ~ 1278 " " 1279 ] 1280 s:pattern [ 1281 name = "Element exclusion" 1282 "\x{a}" ~ 1283 " " 1284 s:rule [ 1285 context = "db:footnote" 1286 "\x{a}" ~ 1287 " " 1288 s:assert [ 1289 test = "not(.//db:note)" 1290 "note must not occur in the descendants of footnote" 1291 ] 1292 "\x{a}" ~ 1293 " " 1294 ] 1295 "\x{a}" ~ 1296 " " 1297 ] 1298 s:pattern [ 1299 name = "Element exclusion" 1300 "\x{a}" ~ 1301 " " 1302 s:rule [ 1303 context = "db:footnote" 1304 "\x{a}" ~ 1305 " " 1306 s:assert [ 1307 test = "not(.//db:tip)" 1308 "tip must not occur in the descendants of footnote" 1309 ] 1310 "\x{a}" ~ 1311 " " 1312 ] 1313 "\x{a}" ~ 1314 " " 1315 ] 1316 s:pattern [ 1317 name = "Element exclusion" 1318 "\x{a}" ~ 1319 " " 1320 s:rule [ 1321 context = "db:footnote" 1322 "\x{a}" ~ 1323 " " 1324 s:assert [ 1325 test = "not(.//db:warning)" 1326 "warning must not occur in the descendants of footnote" 1327 ] 1328 "\x{a}" ~ 1329 " " 1330 ] 1331 "\x{a}" ~ 1332 " " 1333 ] 1334 s:pattern [ 1335 name = "Element exclusion" 1336 "\x{a}" ~ 1337 " " 1338 s:rule [ 1339 context = "db:footnote" 1340 "\x{a}" ~ 1341 " " 1342 s:assert [ 1343 test = "not(.//db:indexterm)" 1344 "indexterm must not occur in the descendants of footnote" 1345 ] 1346 "\x{a}" ~ 1347 " " 1348 ] 1349 "\x{a}" ~ 1350 " " 1351 ] 1352 s:pattern [ 1353 name = "Element exclusion" 1354 "\x{a}" ~ 1355 " " 1356 s:rule [ 1357 context = "db:footnote" 1358 "\x{a}" ~ 1359 " " 1360 s:assert [ 1361 test = "not(.//db:indexterm)" 1362 "indexterm must not occur in the descendants of footnote" 1363 ] 1364 "\x{a}" ~ 1365 " " 1366 ] 1367 "\x{a}" ~ 1368 " " 1369 ] 1370 s:pattern [ 1371 name = "Element exclusion" 1372 "\x{a}" ~ 1373 " " 1374 s:rule [ 1375 context = "db:footnote" 1376 "\x{a}" ~ 1377 " " 1378 s:assert [ 1379 test = "not(.//db:indexterm)" 1380 "indexterm must not occur in the descendants of footnote" 1381 ] 1382 "\x{a}" ~ 1383 " " 1384 ] 1385 "\x{a}" ~ 1386 " " 1387 ] 1388 s:pattern [ 1389 name = "Element exclusion" 1390 "\x{a}" ~ 1391 " " 1392 s:rule [ 1393 context = "db:footnote" 1394 "\x{a}" ~ 1395 " " 1396 s:assert [ 1397 test = "not(.//db:sidebar)" 1398 "sidebar must not occur in the descendants of footnote" 1399 ] 1400 "\x{a}" ~ 1401 " " 1402 ] 1403 "\x{a}" ~ 1404 " " 1405 ] 1406 s:pattern [ 1407 name = "Element exclusion" 1408 "\x{a}" ~ 1409 " " 1410 s:rule [ 1411 context = "db:footnote" 1412 "\x{a}" ~ 1413 " " 1414 s:assert [ 1415 test = "not(.//db:task)" 1416 "task must not occur in the descendants of footnote" 1417 ] 1418 "\x{a}" ~ 1419 " " 1420 ] 1421 "\x{a}" ~ 1422 " " 1423 ] 1424 s:pattern [ 1425 name = "Element exclusion" 1426 "\x{a}" ~ 1427 " " 1428 s:rule [ 1429 context = "db:footnote" 1430 "\x{a}" ~ 1431 " " 1432 s:assert [ 1433 test = "not(.//db:epigraph)" 1434 "epigraph must not occur in the descendants of footnote" 1435 ] 1436 "\x{a}" ~ 1437 " " 1438 ] 1439 "\x{a}" ~ 1440 " " 1441 ] 1442 ] 1443 element footnote { db.footnote.attlist, db.all.blocks+ } 1444} 1445div { 1446 db.formalpara.role.attribute = attribute role { text } 1447 db.formalpara.attlist = 1448 db.formalpara.role.attribute? 1449 & db.common.attributes 1450 & db.common.linking.attributes 1451 db.formalpara.info = db._info.title.onlyreq 1452 db.formalpara = 1453 1454 ## A paragraph with a title 1455 element formalpara { 1456 db.formalpara.attlist, 1457 db.formalpara.info, 1458 db.indexing.inlines*, 1459 db.para 1460 } 1461} 1462div { 1463 db.para.role.attribute = attribute role { text } 1464 db.para.attlist = 1465 db.para.role.attribute? 1466 & db.common.attributes 1467 & db.common.linking.attributes 1468 db.para.info = db._info.title.forbidden 1469 db.para = 1470 1471 ## A paragraph 1472 [ 1473 s:pattern [ 1474 name = "Root must have version" 1475 "\x{a}" ~ 1476 " " 1477 s:rule [ 1478 context = "/db:para" 1479 "\x{a}" ~ 1480 " " 1481 s:assert [ 1482 test = "@version" 1483 "The root element must have a version attribute." 1484 ] 1485 "\x{a}" ~ 1486 " " 1487 ] 1488 "\x{a}" ~ 1489 " " 1490 ] 1491 ] 1492 element para { 1493 db.para.attlist, 1494 db.para.info, 1495 (db.all.inlines | db.nopara.blocks)* 1496 } 1497} 1498div { 1499 db.simpara.role.attribute = attribute role { text } 1500 db.simpara.attlist = 1501 db.simpara.role.attribute? 1502 & db.common.attributes 1503 & db.common.linking.attributes 1504 db.simpara.info = db._info.title.forbidden 1505 db.simpara = 1506 1507 ## A paragraph that contains only text and inline markup, no block elements 1508 element simpara { 1509 db.simpara.attlist, db.simpara.info, db.all.inlines* 1510 } 1511} 1512db.admonition.contentmodel = db._info.title.only, db.all.blocks+ 1513div { 1514 db.caution.role.attribute = attribute role { text } 1515 db.caution.attlist = 1516 db.caution.role.attribute? 1517 & db.common.attributes 1518 & db.common.linking.attributes 1519 db.caution = 1520 1521 ## A note of caution 1522 [ 1523 s:pattern [ 1524 name = "Element exclusion" 1525 "\x{a}" ~ 1526 " " 1527 s:rule [ 1528 context = "db:caution" 1529 "\x{a}" ~ 1530 " " 1531 s:assert [ 1532 test = "not(.//db:caution)" 1533 "caution must not occur in the descendants of caution" 1534 ] 1535 "\x{a}" ~ 1536 " " 1537 ] 1538 "\x{a}" ~ 1539 " " 1540 ] 1541 s:pattern [ 1542 name = "Element exclusion" 1543 "\x{a}" ~ 1544 " " 1545 s:rule [ 1546 context = "db:caution" 1547 "\x{a}" ~ 1548 " " 1549 s:assert [ 1550 test = "not(.//db:important)" 1551 "important must not occur in the descendants of caution" 1552 ] 1553 "\x{a}" ~ 1554 " " 1555 ] 1556 "\x{a}" ~ 1557 " " 1558 ] 1559 s:pattern [ 1560 name = "Element exclusion" 1561 "\x{a}" ~ 1562 " " 1563 s:rule [ 1564 context = "db:caution" 1565 "\x{a}" ~ 1566 " " 1567 s:assert [ 1568 test = "not(.//db:note)" 1569 "note must not occur in the descendants of caution" 1570 ] 1571 "\x{a}" ~ 1572 " " 1573 ] 1574 "\x{a}" ~ 1575 " " 1576 ] 1577 s:pattern [ 1578 name = "Element exclusion" 1579 "\x{a}" ~ 1580 " " 1581 s:rule [ 1582 context = "db:caution" 1583 "\x{a}" ~ 1584 " " 1585 s:assert [ 1586 test = "not(.//db:tip)" 1587 "tip must not occur in the descendants of caution" 1588 ] 1589 "\x{a}" ~ 1590 " " 1591 ] 1592 "\x{a}" ~ 1593 " " 1594 ] 1595 s:pattern [ 1596 name = "Element exclusion" 1597 "\x{a}" ~ 1598 " " 1599 s:rule [ 1600 context = "db:caution" 1601 "\x{a}" ~ 1602 " " 1603 s:assert [ 1604 test = "not(.//db:warning)" 1605 "warning must not occur in the descendants of caution" 1606 ] 1607 "\x{a}" ~ 1608 " " 1609 ] 1610 "\x{a}" ~ 1611 " " 1612 ] 1613 ] 1614 element caution { db.caution.attlist, db.admonition.contentmodel } 1615} 1616div { 1617 db.important.role.attribute = attribute role { text } 1618 db.important.attlist = 1619 db.important.role.attribute? 1620 & db.common.attributes 1621 & db.common.linking.attributes 1622 db.important = 1623 1624 ## An admonition set off from the text 1625 [ 1626 s:pattern [ 1627 name = "Element exclusion" 1628 "\x{a}" ~ 1629 " " 1630 s:rule [ 1631 context = "db:important" 1632 "\x{a}" ~ 1633 " " 1634 s:assert [ 1635 test = "not(.//db:caution)" 1636 "caution must not occur in the descendants of important" 1637 ] 1638 "\x{a}" ~ 1639 " " 1640 ] 1641 "\x{a}" ~ 1642 " " 1643 ] 1644 s:pattern [ 1645 name = "Element exclusion" 1646 "\x{a}" ~ 1647 " " 1648 s:rule [ 1649 context = "db:important" 1650 "\x{a}" ~ 1651 " " 1652 s:assert [ 1653 test = "not(.//db:important)" 1654 "important must not occur in the descendants of important" 1655 ] 1656 "\x{a}" ~ 1657 " " 1658 ] 1659 "\x{a}" ~ 1660 " " 1661 ] 1662 s:pattern [ 1663 name = "Element exclusion" 1664 "\x{a}" ~ 1665 " " 1666 s:rule [ 1667 context = "db:important" 1668 "\x{a}" ~ 1669 " " 1670 s:assert [ 1671 test = "not(.//db:note)" 1672 "note must not occur in the descendants of important" 1673 ] 1674 "\x{a}" ~ 1675 " " 1676 ] 1677 "\x{a}" ~ 1678 " " 1679 ] 1680 s:pattern [ 1681 name = "Element exclusion" 1682 "\x{a}" ~ 1683 " " 1684 s:rule [ 1685 context = "db:important" 1686 "\x{a}" ~ 1687 " " 1688 s:assert [ 1689 test = "not(.//db:tip)" 1690 "tip must not occur in the descendants of important" 1691 ] 1692 "\x{a}" ~ 1693 " " 1694 ] 1695 "\x{a}" ~ 1696 " " 1697 ] 1698 s:pattern [ 1699 name = "Element exclusion" 1700 "\x{a}" ~ 1701 " " 1702 s:rule [ 1703 context = "db:important" 1704 "\x{a}" ~ 1705 " " 1706 s:assert [ 1707 test = "not(.//db:warning)" 1708 "warning must not occur in the descendants of important" 1709 ] 1710 "\x{a}" ~ 1711 " " 1712 ] 1713 "\x{a}" ~ 1714 " " 1715 ] 1716 ] 1717 element important { 1718 db.important.attlist, db.admonition.contentmodel 1719 } 1720} 1721div { 1722 db.note.role.attribute = attribute role { text } 1723 db.note.attlist = 1724 db.note.role.attribute? 1725 & db.common.attributes 1726 & db.common.linking.attributes 1727 db.note = 1728 1729 ## A message set off from the text 1730 [ 1731 s:pattern [ 1732 name = "Element exclusion" 1733 "\x{a}" ~ 1734 " " 1735 s:rule [ 1736 context = "db:note" 1737 "\x{a}" ~ 1738 " " 1739 s:assert [ 1740 test = "not(.//db:caution)" 1741 "caution must not occur in the descendants of note" 1742 ] 1743 "\x{a}" ~ 1744 " " 1745 ] 1746 "\x{a}" ~ 1747 " " 1748 ] 1749 s:pattern [ 1750 name = "Element exclusion" 1751 "\x{a}" ~ 1752 " " 1753 s:rule [ 1754 context = "db:note" 1755 "\x{a}" ~ 1756 " " 1757 s:assert [ 1758 test = "not(.//db:important)" 1759 "important must not occur in the descendants of note" 1760 ] 1761 "\x{a}" ~ 1762 " " 1763 ] 1764 "\x{a}" ~ 1765 " " 1766 ] 1767 s:pattern [ 1768 name = "Element exclusion" 1769 "\x{a}" ~ 1770 " " 1771 s:rule [ 1772 context = "db:note" 1773 "\x{a}" ~ 1774 " " 1775 s:assert [ 1776 test = "not(.//db:note)" 1777 "note must not occur in the descendants of note" 1778 ] 1779 "\x{a}" ~ 1780 " " 1781 ] 1782 "\x{a}" ~ 1783 " " 1784 ] 1785 s:pattern [ 1786 name = "Element exclusion" 1787 "\x{a}" ~ 1788 " " 1789 s:rule [ 1790 context = "db:note" 1791 "\x{a}" ~ 1792 " " 1793 s:assert [ 1794 test = "not(.//db:tip)" 1795 "tip must not occur in the descendants of note" 1796 ] 1797 "\x{a}" ~ 1798 " " 1799 ] 1800 "\x{a}" ~ 1801 " " 1802 ] 1803 s:pattern [ 1804 name = "Element exclusion" 1805 "\x{a}" ~ 1806 " " 1807 s:rule [ 1808 context = "db:note" 1809 "\x{a}" ~ 1810 " " 1811 s:assert [ 1812 test = "not(.//db:warning)" 1813 "warning must not occur in the descendants of note" 1814 ] 1815 "\x{a}" ~ 1816 " " 1817 ] 1818 "\x{a}" ~ 1819 " " 1820 ] 1821 ] 1822 element note { db.note.attlist, db.admonition.contentmodel } 1823} 1824div { 1825 db.tip.role.attribute = attribute role { text } 1826 db.tip.attlist = 1827 db.tip.role.attribute? 1828 & db.common.attributes 1829 & db.common.linking.attributes 1830 db.tip = 1831 1832 ## A suggestion to the user, set off from the text 1833 [ 1834 s:pattern [ 1835 name = "Element exclusion" 1836 "\x{a}" ~ 1837 " " 1838 s:rule [ 1839 context = "db:tip" 1840 "\x{a}" ~ 1841 " " 1842 s:assert [ 1843 test = "not(.//db:caution)" 1844 "caution must not occur in the descendants of tip" 1845 ] 1846 "\x{a}" ~ 1847 " " 1848 ] 1849 "\x{a}" ~ 1850 " " 1851 ] 1852 s:pattern [ 1853 name = "Element exclusion" 1854 "\x{a}" ~ 1855 " " 1856 s:rule [ 1857 context = "db:tip" 1858 "\x{a}" ~ 1859 " " 1860 s:assert [ 1861 test = "not(.//db:important)" 1862 "important must not occur in the descendants of tip" 1863 ] 1864 "\x{a}" ~ 1865 " " 1866 ] 1867 "\x{a}" ~ 1868 " " 1869 ] 1870 s:pattern [ 1871 name = "Element exclusion" 1872 "\x{a}" ~ 1873 " " 1874 s:rule [ 1875 context = "db:tip" 1876 "\x{a}" ~ 1877 " " 1878 s:assert [ 1879 test = "not(.//db:note)" 1880 "note must not occur in the descendants of tip" 1881 ] 1882 "\x{a}" ~ 1883 " " 1884 ] 1885 "\x{a}" ~ 1886 " " 1887 ] 1888 s:pattern [ 1889 name = "Element exclusion" 1890 "\x{a}" ~ 1891 " " 1892 s:rule [ 1893 context = "db:tip" 1894 "\x{a}" ~ 1895 " " 1896 s:assert [ 1897 test = "not(.//db:tip)" 1898 "tip must not occur in the descendants of tip" 1899 ] 1900 "\x{a}" ~ 1901 " " 1902 ] 1903 "\x{a}" ~ 1904 " " 1905 ] 1906 s:pattern [ 1907 name = "Element exclusion" 1908 "\x{a}" ~ 1909 " " 1910 s:rule [ 1911 context = "db:tip" 1912 "\x{a}" ~ 1913 " " 1914 s:assert [ 1915 test = "not(.//db:warning)" 1916 "warning must not occur in the descendants of tip" 1917 ] 1918 "\x{a}" ~ 1919 " " 1920 ] 1921 "\x{a}" ~ 1922 " " 1923 ] 1924 ] 1925 element tip { db.tip.attlist, db.admonition.contentmodel } 1926} 1927div { 1928 db.warning.role.attribute = attribute role { text } 1929 db.warning.attlist = 1930 db.warning.role.attribute? 1931 & db.common.attributes 1932 & db.common.linking.attributes 1933 db.warning = 1934 1935 ## An admonition set off from the text 1936 [ 1937 s:pattern [ 1938 name = "Element exclusion" 1939 "\x{a}" ~ 1940 " " 1941 s:rule [ 1942 context = "db:warning" 1943 "\x{a}" ~ 1944 " " 1945 s:assert [ 1946 test = "not(.//db:caution)" 1947 "caution must not occur in the descendants of warning" 1948 ] 1949 "\x{a}" ~ 1950 " " 1951 ] 1952 "\x{a}" ~ 1953 " " 1954 ] 1955 s:pattern [ 1956 name = "Element exclusion" 1957 "\x{a}" ~ 1958 " " 1959 s:rule [ 1960 context = "db:warning" 1961 "\x{a}" ~ 1962 " " 1963 s:assert [ 1964 test = "not(.//db:important)" 1965 "important must not occur in the descendants of warning" 1966 ] 1967 "\x{a}" ~ 1968 " " 1969 ] 1970 "\x{a}" ~ 1971 " " 1972 ] 1973 s:pattern [ 1974 name = "Element exclusion" 1975 "\x{a}" ~ 1976 " " 1977 s:rule [ 1978 context = "db:warning" 1979 "\x{a}" ~ 1980 " " 1981 s:assert [ 1982 test = "not(.//db:note)" 1983 "note must not occur in the descendants of warning" 1984 ] 1985 "\x{a}" ~ 1986 " " 1987 ] 1988 "\x{a}" ~ 1989 " " 1990 ] 1991 s:pattern [ 1992 name = "Element exclusion" 1993 "\x{a}" ~ 1994 " " 1995 s:rule [ 1996 context = "db:warning" 1997 "\x{a}" ~ 1998 " " 1999 s:assert [ 2000 test = "not(.//db:tip)" 2001 "tip must not occur in the descendants of warning" 2002 ] 2003 "\x{a}" ~ 2004 " " 2005 ] 2006 "\x{a}" ~ 2007 " " 2008 ] 2009 s:pattern [ 2010 name = "Element exclusion" 2011 "\x{a}" ~ 2012 " " 2013 s:rule [ 2014 context = "db:warning" 2015 "\x{a}" ~ 2016 " " 2017 s:assert [ 2018 test = "not(.//db:warning)" 2019 "warning must not occur in the descendants of warning" 2020 ] 2021 "\x{a}" ~ 2022 " " 2023 ] 2024 "\x{a}" ~ 2025 " " 2026 ] 2027 ] 2028 element warning { db.warning.attlist, db.admonition.contentmodel } 2029} 2030div { 2031 db.itemizedlist.role.attribute = attribute role { text } 2032 db.itemizedlist.mark.attribute = 2033 2034 ## Identifies the type of mark to be used on items in this list 2035 attribute mark { xsd:NMTOKEN } 2036 db.itemizedlist.attlist = 2037 db.itemizedlist.role.attribute? 2038 & db.common.attributes 2039 & db.common.linking.attributes 2040 & db.spacing.attribute? 2041 & db.itemizedlist.mark.attribute? 2042 db.itemizedlist.info = db._info.title.only 2043 db.itemizedlist = 2044 2045 ## A list in which each entry is marked with a bullet or other dingbat 2046 element itemizedlist { 2047 db.itemizedlist.attlist, 2048 db.itemizedlist.info, 2049 db.all.blocks*, 2050 db.listitem+ 2051 } 2052} 2053div { 2054 db.orderedlist.role.attribute = attribute role { text } 2055 db.orderedlist.continuation.enumeration = 2056 2057 ## Specifies that numbering should begin where the preceding list left off 2058 "continues" 2059 | 2060 ## Specifies that numbering should begin again at 1 2061 "restarts" 2062 db.orderedlist.continuation.attribute = 2063 2064 ## Indicates how list numbering should begin relative to the immediately preceding list 2065 attribute continuation { db.orderedlist.continuation.enumeration } 2066 db.orderedlist.startingnumber.attribute = 2067 2068 ## Specifies the initial line number. 2069 attribute startingnumber { xsd:integer } 2070 db.orderedlist.inheritnum.enumeration = 2071 2072 ## Specifies that numbering should ignore list nesting 2073 "ignore" 2074 | 2075 ## Specifies that numbering should inherit from outer-level lists 2076 "inherit" 2077 db.orderedlist.inheritnum.attribute = 2078 2079 ## Indicates whether or not item numbering should be influenced by list nesting 2080 attribute inheritnum { db.orderedlist.inheritnum.enumeration } 2081 db.orderedlist.numeration.enumeration = 2082 2083 ## Specifies Arabic numeration (1, 2, 3, …) 2084 "arabic" 2085 | 2086 ## Specifies upper-case alphabetic numeration (A, B, C, …) 2087 "upperalpha" 2088 | 2089 ## Specifies lower-case alphabetic numeration (a, b, c, …) 2090 "loweralpha" 2091 | 2092 ## Specifies upper-case Roman numeration (I, II, III, …) 2093 "upperroman" 2094 | 2095 ## Specifies lower-case Roman numeration (i, ii, iii …) 2096 "lowerroman" 2097 db.orderedlist.numeration.attribute = 2098 2099 ## Indicates the desired numeration 2100 attribute numeration { db.orderedlist.numeration.enumeration } 2101 db.orderedlist.attlist = 2102 db.orderedlist.role.attribute? 2103 & db.common.attributes 2104 & db.common.linking.attributes 2105 & db.spacing.attribute? 2106 & (db.orderedlist.continuation.attribute 2107 | db.orderedlist.startingnumber.attribute)? 2108 & db.orderedlist.inheritnum.attribute? 2109 & db.orderedlist.numeration.attribute? 2110 db.orderedlist.info = db._info.title.only 2111 db.orderedlist = 2112 2113 ## A list in which each entry is marked with a sequentially incremented label 2114 element orderedlist { 2115 db.orderedlist.attlist, 2116 db.orderedlist.info, 2117 db.all.blocks*, 2118 db.listitem+ 2119 } 2120} 2121div { 2122 db.listitem.role.attribute = attribute role { text } 2123 db.listitem.override.attribute = 2124 2125 ## Specifies the keyword for the type of mark that should be used on this 2126 ## item, instead of the mark that would be used by default 2127 attribute override { xsd:NMTOKEN } 2128 db.listitem.attlist = 2129 db.listitem.role.attribute? 2130 & db.common.attributes 2131 & db.common.linking.attributes 2132 & db.listitem.override.attribute? 2133 db.listitem = 2134 2135 ## A wrapper for the elements of a list item 2136 element listitem { db.listitem.attlist, db.all.blocks+ } 2137} 2138div { 2139 db.segmentedlist.role.attribute = attribute role { text } 2140 db.segmentedlist.attlist = 2141 db.segmentedlist.role.attribute? 2142 & db.common.attributes 2143 & db.common.linking.attributes 2144 db.segmentedlist.info = db._info.title.only 2145 db.segmentedlist = 2146 2147 ## A segmented list, a list of sets of elements 2148 element segmentedlist { 2149 db.segmentedlist.attlist, 2150 db.segmentedlist.info, 2151 db.segtitle+, 2152 db.seglistitem+ 2153 } 2154} 2155div { 2156 db.segtitle.role.attribute = attribute role { text } 2157 db.segtitle.attlist = 2158 db.segtitle.role.attribute? 2159 & db.common.attributes 2160 & db.common.linking.attributes 2161 db.segtitle = 2162 2163 ## The title of an element of a list item in a segmented list 2164 element segtitle { db.segtitle.attlist, db.all.inlines* } 2165} 2166div { 2167 db.seglistitem.role.attribute = attribute role { text } 2168 db.seglistitem.attlist = 2169 db.seglistitem.role.attribute? 2170 & db.common.attributes 2171 & db.common.linking.attributes 2172 db.seglistitem = 2173 2174 ## A list item in a segmented list 2175 [ 2176 s:pattern [ 2177 name = "Cardinality of segments and titles" 2178 "\x{a}" ~ 2179 " " 2180 s:rule [ 2181 context = "db:seglistitem" 2182 "\x{a}" ~ 2183 " " 2184 s:assert [ 2185 test = "count(db:seg) = count(../db:segtitle)" 2186 "The number of seg elements must be the same as the number of segtitle elements in the parent segmentedlist" 2187 ] 2188 "\x{a}" ~ 2189 " " 2190 ] 2191 "\x{a}" ~ 2192 " " 2193 ] 2194 ] 2195 element seglistitem { db.seglistitem.attlist, db.seg+ } 2196} 2197div { 2198 db.seg.role.attribute = attribute role { text } 2199 db.seg.attlist = 2200 db.seg.role.attribute? 2201 & db.common.attributes 2202 & db.common.linking.attributes 2203 db.seg = 2204 2205 ## An element of a list item in a segmented list 2206 element seg { db.seg.attlist, db.all.inlines* } 2207} 2208div { 2209 db.simplelist.role.attribute = attribute role { text } 2210 db.simplelist.type.enumeration = 2211 2212 ## A tabular presentation in row-major order. 2213 "horiz" 2214 | 2215 ## A tabular presentation in column-major order. 2216 "vert" 2217 | 2218 ## An inline presentation, usually a comma-delimited list. 2219 "inline" 2220 db.simplelist.type.attribute = 2221 2222 ## Specifies the type of list presentation. 2223 [ a:defaultValue = "vert" ] 2224 attribute type { db.simplelist.type.enumeration } 2225 db.simplelist.columns.attribute = 2226 2227 ## Specifies the number of columns for horizontal or vertical presentation 2228 attribute columns { xsd:integer } 2229 db.simplelist.attlist = 2230 db.simplelist.role.attribute? 2231 & db.common.attributes 2232 & db.common.linking.attributes 2233 & db.simplelist.type.attribute? 2234 & db.simplelist.columns.attribute? 2235 db.simplelist = 2236 2237 ## An undecorated list of single words or short phrases 2238 element simplelist { db.simplelist.attlist, db.member+ } 2239} 2240div { 2241 db.member.role.attribute = attribute role { text } 2242 db.member.attlist = 2243 db.member.role.attribute? 2244 & db.common.attributes 2245 & db.common.linking.attributes 2246 db.member = 2247 2248 ## An element of a simple list 2249 element member { db.member.attlist, db.all.inlines* } 2250} 2251div { 2252 db.variablelist.role.attribute = attribute role { text } 2253 db.variablelist.termlength.attribute = 2254 2255 ## Indicates a length beyond which the presentation system may consider a term too long and select an alternate presentation for that term, item, or list 2256 attribute termlength { text } 2257 db.variablelist.attlist = 2258 db.variablelist.role.attribute? 2259 & db.common.attributes 2260 & db.common.linking.attributes 2261 & db.spacing.attribute? 2262 & db.variablelist.termlength.attribute? 2263 db.variablelist.info = db._info.title.only 2264 db.variablelist = 2265 2266 ## A list in which each entry is composed of a set of one or more terms and an associated description 2267 element variablelist { 2268 db.variablelist.attlist, 2269 db.variablelist.info, 2270 db.all.blocks*, 2271 db.varlistentry+ 2272 } 2273} 2274div { 2275 db.varlistentry.role.attribute = attribute role { text } 2276 db.varlistentry.attlist = 2277 db.varlistentry.role.attribute? 2278 & db.common.attributes 2279 & db.common.linking.attributes 2280 db.varlistentry = 2281 2282 ## A wrapper for a set of terms and the associated description in a variable list 2283 element varlistentry { 2284 db.varlistentry.attlist, db.term+, db.listitem 2285 } 2286} 2287div { 2288 db.term.role.attribute = attribute role { text } 2289 db.term.attlist = 2290 db.term.role.attribute? 2291 & db.common.attributes 2292 & db.common.linking.attributes 2293 db.term = 2294 2295 ## The word or phrase being defined or described in a variable list 2296 element term { db.term.attlist, db.all.inlines* } 2297} 2298div { 2299 db.example.role.attribute = attribute role { text } 2300 db.example.label.attribute = db.label.attribute 2301 db.example.width.attribute = db.width.characters.attribute 2302 db.example.floatstyle.attribute = db.floatstyle.attribute 2303 db.example.attlist = 2304 db.example.role.attribute? 2305 & db.common.attributes 2306 & db.common.linking.attributes 2307 & db.example.label.attribute? 2308 & db.example.floatstyle.attribute? 2309 & db.example.width.attribute? 2310 db.example.info = db._info.title.onlyreq 2311 db.example = 2312 2313 ## A formal example, with a title 2314 [ 2315 s:pattern [ 2316 name = "Element exclusion" 2317 "\x{a}" ~ 2318 " " 2319 s:rule [ 2320 context = "db:example" 2321 "\x{a}" ~ 2322 " " 2323 s:assert [ 2324 test = "not(.//db:example)" 2325 "example must not occur in the descendants of example" 2326 ] 2327 "\x{a}" ~ 2328 " " 2329 ] 2330 "\x{a}" ~ 2331 " " 2332 ] 2333 s:pattern [ 2334 name = "Element exclusion" 2335 "\x{a}" ~ 2336 " " 2337 s:rule [ 2338 context = "db:example" 2339 "\x{a}" ~ 2340 " " 2341 s:assert [ 2342 test = "not(.//db:figure)" 2343 "figure must not occur in the descendants of example" 2344 ] 2345 "\x{a}" ~ 2346 " " 2347 ] 2348 "\x{a}" ~ 2349 " " 2350 ] 2351 s:pattern [ 2352 name = "Element exclusion" 2353 "\x{a}" ~ 2354 " " 2355 s:rule [ 2356 context = "db:example" 2357 "\x{a}" ~ 2358 " " 2359 s:assert [ 2360 test = "not(.//db:table)" 2361 "table must not occur in the descendants of example" 2362 ] 2363 "\x{a}" ~ 2364 " " 2365 ] 2366 "\x{a}" ~ 2367 " " 2368 ] 2369 s:pattern [ 2370 name = "Element exclusion" 2371 "\x{a}" ~ 2372 " " 2373 s:rule [ 2374 context = "db:example" 2375 "\x{a}" ~ 2376 " " 2377 s:assert [ 2378 test = "not(.//db:table)" 2379 "table must not occur in the descendants of example" 2380 ] 2381 "\x{a}" ~ 2382 " " 2383 ] 2384 "\x{a}" ~ 2385 " " 2386 ] 2387 s:pattern [ 2388 name = "Element exclusion" 2389 "\x{a}" ~ 2390 " " 2391 s:rule [ 2392 context = "db:example" 2393 "\x{a}" ~ 2394 " " 2395 s:assert [ 2396 test = "not(.//db:caution)" 2397 "caution must not occur in the descendants of example" 2398 ] 2399 "\x{a}" ~ 2400 " " 2401 ] 2402 "\x{a}" ~ 2403 " " 2404 ] 2405 s:pattern [ 2406 name = "Element exclusion" 2407 "\x{a}" ~ 2408 " " 2409 s:rule [ 2410 context = "db:example" 2411 "\x{a}" ~ 2412 " " 2413 s:assert [ 2414 test = "not(.//db:important)" 2415 "important must not occur in the descendants of example" 2416 ] 2417 "\x{a}" ~ 2418 " " 2419 ] 2420 "\x{a}" ~ 2421 " " 2422 ] 2423 s:pattern [ 2424 name = "Element exclusion" 2425 "\x{a}" ~ 2426 " " 2427 s:rule [ 2428 context = "db:example" 2429 "\x{a}" ~ 2430 " " 2431 s:assert [ 2432 test = "not(.//db:note)" 2433 "note must not occur in the descendants of example" 2434 ] 2435 "\x{a}" ~ 2436 " " 2437 ] 2438 "\x{a}" ~ 2439 " " 2440 ] 2441 s:pattern [ 2442 name = "Element exclusion" 2443 "\x{a}" ~ 2444 " " 2445 s:rule [ 2446 context = "db:example" 2447 "\x{a}" ~ 2448 " " 2449 s:assert [ 2450 test = "not(.//db:tip)" 2451 "tip must not occur in the descendants of example" 2452 ] 2453 "\x{a}" ~ 2454 " " 2455 ] 2456 "\x{a}" ~ 2457 " " 2458 ] 2459 s:pattern [ 2460 name = "Element exclusion" 2461 "\x{a}" ~ 2462 " " 2463 s:rule [ 2464 context = "db:example" 2465 "\x{a}" ~ 2466 " " 2467 s:assert [ 2468 test = "not(.//db:warning)" 2469 "warning must not occur in the descendants of example" 2470 ] 2471 "\x{a}" ~ 2472 " " 2473 ] 2474 "\x{a}" ~ 2475 " " 2476 ] 2477 ] 2478 element example { 2479 db.example.attlist, db.example.info, db.all.blocks+, db.caption? 2480 } 2481} 2482div { 2483 db.informalexample.role.attribute = attribute role { text } 2484 db.informalexample.width.attribute = db.width.characters.attribute 2485 db.informalexample.floatstyle.attribute = db.floatstyle.attribute 2486 db.informalexample.attlist = 2487 db.informalexample.role.attribute? 2488 & db.common.attributes 2489 & db.common.linking.attributes 2490 & db.informalexample.floatstyle.attribute? 2491 & db.informalexample.width.attribute? 2492 db.informalexample.info = db._info.title.forbidden 2493 db.informalexample = 2494 2495 ## A displayed example without a title 2496 element informalexample { 2497 db.informalexample.attlist, 2498 db.informalexample.info, 2499 db.all.blocks+, 2500 db.caption? 2501 } 2502} 2503db.verbatim.inlines = (db.all.inlines | db.lineannotation) | db.co 2504db.verbatim.contentmodel = 2505 db._info.title.forbidden, (db.textobject | db.verbatim.inlines*) 2506div { 2507 db.programlisting.role.attribute = attribute role { text } 2508 db.programlisting.width.attribute = db.width.characters.attribute 2509 db.programlisting.attlist = 2510 db.programlisting.role.attribute? 2511 & db.common.attributes 2512 & db.common.linking.attributes 2513 & db.verbatim.attributes 2514 & db.programlisting.width.attribute? 2515 db.programlisting = 2516 2517 ## A literal listing of all or part of a program 2518 element programlisting { 2519 db.programlisting.attlist, db.verbatim.contentmodel 2520 } 2521} 2522div { 2523 db.literallayout.role.attribute = attribute role { text } 2524 db.literallayout.class.enumeration = 2525 2526 ## The literal layout should be formatted with a monospaced font 2527 "monospaced" 2528 | 2529 ## The literal layout should be formatted with the current font 2530 "normal" 2531 db.literallayout.class.attribute = 2532 2533 ## Specifies the class of literal layout 2534 attribute class { db.literallayout.class.enumeration } 2535 db.literallayout.attlist = 2536 db.literallayout.role.attribute? 2537 & db.common.attributes 2538 & db.common.linking.attributes 2539 & db.verbatim.attributes 2540 & db.literallayout.class.attribute? 2541 db.literallayout = 2542 2543 ## A block of text in which line breaks and white space are to be reproduced faithfully 2544 element literallayout { 2545 db.literallayout.attlist, db.verbatim.contentmodel 2546 } 2547} 2548div { 2549 db.screen.role.attribute = attribute role { text } 2550 db.screen.width.attribute = db.width.characters.attribute 2551 db.screen.attlist = 2552 db.screen.role.attribute? 2553 & db.common.attributes 2554 & db.common.linking.attributes 2555 & db.verbatim.attributes 2556 & db.screen.width.attribute? 2557 db.screen = 2558 2559 ## Text that a user sees or might see on a computer screen 2560 element screen { db.screen.attlist, db.verbatim.contentmodel } 2561} 2562div { 2563 db.screenshot.role.attribute = attribute role { text } 2564 db.screenshot.attlist = 2565 db.screenshot.role.attribute? 2566 & db.common.attributes 2567 & db.common.linking.attributes 2568 db.screenshot.info = db._info 2569 db.screenshot = 2570 2571 ## A representation of what the user sees or might see on a computer screen 2572 element screenshot { 2573 db.screenshot.attlist, db.screenshot.info, db.mediaobject 2574 } 2575} 2576div { 2577 db.figure.role.attribute = attribute role { text } 2578 db.figure.label.attribute = db.label.attribute 2579 db.figure.pgwide.attribute = db.pgwide.attribute 2580 db.figure.floatstyle.attribute = db.floatstyle.attribute 2581 db.figure.attlist = 2582 db.figure.role.attribute? 2583 & db.common.attributes 2584 & db.common.linking.attributes 2585 & db.figure.label.attribute? 2586 & db.figure.pgwide.attribute? 2587 & db.figure.floatstyle.attribute? 2588 db.figure.info = db._info.title.onlyreq 2589 db.figure = 2590 2591 ## A formal figure, generally an illustration, with a title 2592 [ 2593 s:pattern [ 2594 name = "Element exclusion" 2595 "\x{a}" ~ 2596 " " 2597 s:rule [ 2598 context = "db:figure" 2599 "\x{a}" ~ 2600 " " 2601 s:assert [ 2602 test = "not(.//db:example)" 2603 "example must not occur in the descendants of figure" 2604 ] 2605 "\x{a}" ~ 2606 " " 2607 ] 2608 "\x{a}" ~ 2609 " " 2610 ] 2611 s:pattern [ 2612 name = "Element exclusion" 2613 "\x{a}" ~ 2614 " " 2615 s:rule [ 2616 context = "db:figure" 2617 "\x{a}" ~ 2618 " " 2619 s:assert [ 2620 test = "not(.//db:figure)" 2621 "figure must not occur in the descendants of figure" 2622 ] 2623 "\x{a}" ~ 2624 " " 2625 ] 2626 "\x{a}" ~ 2627 " " 2628 ] 2629 s:pattern [ 2630 name = "Element exclusion" 2631 "\x{a}" ~ 2632 " " 2633 s:rule [ 2634 context = "db:figure" 2635 "\x{a}" ~ 2636 " " 2637 s:assert [ 2638 test = "not(.//db:table)" 2639 "table must not occur in the descendants of figure" 2640 ] 2641 "\x{a}" ~ 2642 " " 2643 ] 2644 "\x{a}" ~ 2645 " " 2646 ] 2647 s:pattern [ 2648 name = "Element exclusion" 2649 "\x{a}" ~ 2650 " " 2651 s:rule [ 2652 context = "db:figure" 2653 "\x{a}" ~ 2654 " " 2655 s:assert [ 2656 test = "not(.//db:table)" 2657 "table must not occur in the descendants of figure" 2658 ] 2659 "\x{a}" ~ 2660 " " 2661 ] 2662 "\x{a}" ~ 2663 " " 2664 ] 2665 s:pattern [ 2666 name = "Element exclusion" 2667 "\x{a}" ~ 2668 " " 2669 s:rule [ 2670 context = "db:figure" 2671 "\x{a}" ~ 2672 " " 2673 s:assert [ 2674 test = "not(.//db:caution)" 2675 "caution must not occur in the descendants of figure" 2676 ] 2677 "\x{a}" ~ 2678 " " 2679 ] 2680 "\x{a}" ~ 2681 " " 2682 ] 2683 s:pattern [ 2684 name = "Element exclusion" 2685 "\x{a}" ~ 2686 " " 2687 s:rule [ 2688 context = "db:figure" 2689 "\x{a}" ~ 2690 " " 2691 s:assert [ 2692 test = "not(.//db:important)" 2693 "important must not occur in the descendants of figure" 2694 ] 2695 "\x{a}" ~ 2696 " " 2697 ] 2698 "\x{a}" ~ 2699 " " 2700 ] 2701 s:pattern [ 2702 name = "Element exclusion" 2703 "\x{a}" ~ 2704 " " 2705 s:rule [ 2706 context = "db:figure" 2707 "\x{a}" ~ 2708 " " 2709 s:assert [ 2710 test = "not(.//db:note)" 2711 "note must not occur in the descendants of figure" 2712 ] 2713 "\x{a}" ~ 2714 " " 2715 ] 2716 "\x{a}" ~ 2717 " " 2718 ] 2719 s:pattern [ 2720 name = "Element exclusion" 2721 "\x{a}" ~ 2722 " " 2723 s:rule [ 2724 context = "db:figure" 2725 "\x{a}" ~ 2726 " " 2727 s:assert [ 2728 test = "not(.//db:tip)" 2729 "tip must not occur in the descendants of figure" 2730 ] 2731 "\x{a}" ~ 2732 " " 2733 ] 2734 "\x{a}" ~ 2735 " " 2736 ] 2737 s:pattern [ 2738 name = "Element exclusion" 2739 "\x{a}" ~ 2740 " " 2741 s:rule [ 2742 context = "db:figure" 2743 "\x{a}" ~ 2744 " " 2745 s:assert [ 2746 test = "not(.//db:warning)" 2747 "warning must not occur in the descendants of figure" 2748 ] 2749 "\x{a}" ~ 2750 " " 2751 ] 2752 "\x{a}" ~ 2753 " " 2754 ] 2755 ] 2756 element figure { 2757 db.figure.attlist, db.figure.info, db.all.blocks+, db.caption? 2758 } 2759} 2760div { 2761 db.informalfigure.role.attribute = attribute role { text } 2762 db.informalfigure.label.attribute = db.label.attribute 2763 db.informalfigure.pgwide.attribute = db.pgwide.attribute 2764 db.informalfigure.floatstyle.attribute = db.floatstyle.attribute 2765 db.informalfigure.attlist = 2766 db.informalfigure.role.attribute? 2767 & db.common.attributes 2768 & db.common.linking.attributes 2769 & db.informalfigure.label.attribute? 2770 & db.informalfigure.pgwide.attribute? 2771 & db.informalfigure.floatstyle.attribute? 2772 db.informalfigure.info = db._info.title.forbidden 2773 db.informalfigure = 2774 2775 ## A untitled figure 2776 element informalfigure { 2777 db.informalfigure.attlist, 2778 db.informalfigure.info, 2779 db.all.blocks+, 2780 db.caption? 2781 } 2782} 2783db.mediaobject.content = 2784 (db.videoobject | db.audioobject | db.imageobject | db.textobject) 2785 | db.imageobjectco 2786div { 2787 db.mediaobject.role.attribute = attribute role { text } 2788 db.mediaobject.attlist = 2789 db.mediaobject.role.attribute? 2790 & db.common.attributes 2791 & db.common.linking.attributes 2792 db.mediaobject.info = db._info.title.forbidden 2793 db.mediaobject = 2794 2795 ## A displayed media object (video, audio, image, etc.) 2796 element mediaobject { 2797 db.mediaobject.attlist, 2798 db.mediaobject.info, 2799 db.alt?, 2800 db.mediaobject.content+, 2801 db.caption? 2802 } 2803} 2804div { 2805 db.inlinemediaobject.role.attribute = attribute role { text } 2806 db.inlinemediaobject.attlist = 2807 db.inlinemediaobject.role.attribute? 2808 & db.common.attributes 2809 & db.common.linking.attributes 2810 db.inlinemediaobject.info = db._info.title.forbidden 2811 db.inlinemediaobject = 2812 2813 ## An inline media object (video, audio, image, and so on) 2814 element inlinemediaobject { 2815 db.inlinemediaobject.attlist, 2816 db.inlinemediaobject.info, 2817 db.alt?, 2818 db.mediaobject.content+ 2819 } 2820} 2821div { 2822 db.videoobject.role.attribute = attribute role { text } 2823 db.videoobject.attlist = 2824 db.videoobject.role.attribute? 2825 & db.common.attributes 2826 & db.common.linking.attributes 2827 db.videoobject.info = db._info.title.forbidden 2828 db.videoobject = 2829 2830 ## A wrapper for video data and its associated meta-information 2831 element videoobject { 2832 db.videoobject.attlist, db.videoobject.info, db.videodata 2833 } 2834} 2835div { 2836 db.audioobject.role.attribute = attribute role { text } 2837 db.audioobject.attlist = 2838 db.audioobject.role.attribute? 2839 & db.common.attributes 2840 & db.common.linking.attributes 2841 db.audioobject.info = db._info.title.forbidden 2842 db.audioobject = 2843 2844 ## A wrapper for audio data and its associated meta-information 2845 element audioobject { 2846 db.audioobject.attlist, db.audioobject.info, db.audiodata 2847 } 2848} 2849db.imageobject.content = 2850 db.imagedata | db.imagedata.mathml | db.imagedata.svg 2851div { 2852 db.imageobject.role.attribute = attribute role { text } 2853 db.imageobject.attlist = 2854 db.imageobject.role.attribute? 2855 & db.common.attributes 2856 & db.common.linking.attributes 2857 db.imageobject.info = db._info.title.forbidden 2858 db.imageobject = 2859 2860 ## A wrapper for image data and its associated meta-information 2861 element imageobject { 2862 db.imageobject.attlist, 2863 db.imageobject.info, 2864 db.imageobject.content 2865 } 2866} 2867div { 2868 db.textobject.role.attribute = attribute role { text } 2869 db.textobject.attlist = 2870 db.textobject.role.attribute? 2871 & db.common.attributes 2872 & db.common.linking.attributes 2873 db.textobject.info = db._info.title.forbidden 2874 db.textobject = 2875 2876 ## A wrapper for a text description of an object and its associated meta-information 2877 element textobject { 2878 db.textobject.attlist, 2879 db.textobject.info, 2880 (db.phrase | db.textdata | db.all.blocks+) 2881 } 2882} 2883div { 2884 db.videodata.role.attribute = attribute role { text } 2885 db.videodata.align.enumeration = db.halign.enumeration 2886 db.videodata.align.attribute = 2887 2888 ## Specifies the (horizontal) alignment of the video data 2889 attribute align { db.videodata.align.enumeration } 2890 db.videodata.valign.enumeration = db.valign.enumeration 2891 db.videodata.valign.attribute = 2892 2893 ## Specifies the vertical alignment of the video data 2894 attribute valign { db.videodata.valign.enumeration } 2895 db.videodata.width.attribute = db.width.attribute 2896 db.videodata.depth.attribute = db.depth.attribute 2897 db.videodata.contentwidth.attribute = db.contentwidth.attribute 2898 db.videodata.contentdepth.attribute = db.contentdepth.attribute 2899 db.videodata.scalefit.enumeration = db.scalefit.enumeration 2900 db.videodata.scalefit.attribute = 2901 2902 ## Determines if anamorphic scaling is forbidden 2903 attribute scalefit { db.videodata.scalefit.enumeration } 2904 db.videodata.scale.attribute = db.scale.attribute 2905 db.videodata.attlist = 2906 db.videodata.role.attribute? 2907 & db.common.attributes 2908 & db.common.data.attributes 2909 & db.videodata.align.attribute? 2910 & db.videodata.valign.attribute? 2911 & db.videodata.width.attribute? 2912 & db.videodata.contentwidth.attribute? 2913 & db.videodata.scalefit.attribute? 2914 & db.videodata.scale.attribute? 2915 & db.videodata.depth.attribute? 2916 & db.videodata.contentdepth.attribute? 2917 db.videodata.info = db._info.title.forbidden 2918 db.videodata = 2919 2920 ## Pointer to external video data 2921 element videodata { db.videodata.attlist, db.videodata.info } 2922} 2923div { 2924 db.audiodata.role.attribute = attribute role { text } 2925 db.audiodata.attlist = 2926 db.audiodata.role.attribute? 2927 & db.common.attributes 2928 & db.common.data.attributes 2929 db.audiodata.info = db._info.title.forbidden 2930 db.audiodata = 2931 2932 ## Pointer to external audio data 2933 element audiodata { db.audiodata.attlist, db.audiodata.info } 2934} 2935div { 2936 db.imagedata.role.attribute = attribute role { text } 2937 db.imagedata.align.enumeration = db.halign.enumeration 2938 db.imagedata.align.attribute = 2939 2940 ## Specifies the (horizontal) alignment of the image data 2941 attribute align { db.imagedata.align.enumeration } 2942 db.imagedata.valign.enumeration = db.valign.enumeration 2943 db.imagedata.valign.attribute = 2944 2945 ## Specifies the vertical alignment of the image data 2946 attribute valign { db.imagedata.valign.enumeration } 2947 db.imagedata.width.attribute = db.width.attribute 2948 db.imagedata.depth.attribute = db.depth.attribute 2949 db.imagedata.contentwidth.attribute = db.contentwidth.attribute 2950 db.imagedata.contentdepth.attribute = db.contentdepth.attribute 2951 db.imagedata.scalefit.enumeration = db.scalefit.enumeration 2952 db.imagedata.scalefit.attribute = 2953 2954 ## Determines if anamorphic scaling is forbidden 2955 attribute scalefit { db.imagedata.scalefit.enumeration } 2956 db.imagedata.scale.attribute = db.scale.attribute 2957 db.imagedata.attlist = 2958 db.imagedata.role.attribute? 2959 & db.common.attributes 2960 & db.common.data.attributes 2961 & db.imagedata.align.attribute? 2962 & db.imagedata.valign.attribute? 2963 & db.imagedata.width.attribute? 2964 & db.imagedata.contentwidth.attribute? 2965 & db.imagedata.scalefit.attribute? 2966 & db.imagedata.scale.attribute? 2967 & db.imagedata.depth.attribute? 2968 & db.imagedata.contentdepth.attribute? 2969 db.imagedata.info = db._info.title.forbidden 2970 db.imagedata = 2971 2972 ## Pointer to external image data 2973 element imagedata { db.imagedata.attlist, db.imagedata.info } 2974} 2975div { 2976 db.textdata.role.attribute = attribute role { text } 2977 db.textdata.encoding.attribute = 2978 2979 ## Identifies the encoding of the text in the external file 2980 attribute encoding { text } 2981 db.textdata.attlist = 2982 db.textdata.role.attribute? 2983 & db.common.attributes 2984 & db.common.data.attributes 2985 & db.textdata.encoding.attribute? 2986 db.textdata.info = db._info.title.forbidden 2987 db.textdata = 2988 2989 ## Pointer to external text data 2990 element textdata { db.textdata.attlist, db.textdata.info } 2991} 2992div { 2993 db.caption.role.attribute = attribute role { text } 2994 db.caption.attlist = 2995 db.caption.role.attribute? 2996 & db.common.attributes 2997 & db.common.linking.attributes 2998 db.caption.info = db._info.title.forbidden 2999 db.caption = 3000 3001 ## A caption 3002 [ 3003 s:pattern [ 3004 name = "Element exclusion" 3005 "\x{a}" ~ 3006 " " 3007 s:rule [ 3008 context = "db:caption" 3009 "\x{a}" ~ 3010 " " 3011 s:assert [ 3012 test = "not(.//db:example)" 3013 "example must not occur in the descendants of caption" 3014 ] 3015 "\x{a}" ~ 3016 " " 3017 ] 3018 "\x{a}" ~ 3019 " " 3020 ] 3021 s:pattern [ 3022 name = "Element exclusion" 3023 "\x{a}" ~ 3024 " " 3025 s:rule [ 3026 context = "db:caption" 3027 "\x{a}" ~ 3028 " " 3029 s:assert [ 3030 test = "not(.//db:figure)" 3031 "figure must not occur in the descendants of caption" 3032 ] 3033 "\x{a}" ~ 3034 " " 3035 ] 3036 "\x{a}" ~ 3037 " " 3038 ] 3039 s:pattern [ 3040 name = "Element exclusion" 3041 "\x{a}" ~ 3042 " " 3043 s:rule [ 3044 context = "db:caption" 3045 "\x{a}" ~ 3046 " " 3047 s:assert [ 3048 test = "not(.//db:table)" 3049 "table must not occur in the descendants of caption" 3050 ] 3051 "\x{a}" ~ 3052 " " 3053 ] 3054 "\x{a}" ~ 3055 " " 3056 ] 3057 s:pattern [ 3058 name = "Element exclusion" 3059 "\x{a}" ~ 3060 " " 3061 s:rule [ 3062 context = "db:caption" 3063 "\x{a}" ~ 3064 " " 3065 s:assert [ 3066 test = "not(.//db:table)" 3067 "table must not occur in the descendants of caption" 3068 ] 3069 "\x{a}" ~ 3070 " " 3071 ] 3072 "\x{a}" ~ 3073 " " 3074 ] 3075 s:pattern [ 3076 name = "Element exclusion" 3077 "\x{a}" ~ 3078 " " 3079 s:rule [ 3080 context = "db:caption" 3081 "\x{a}" ~ 3082 " " 3083 s:assert [ 3084 test = "not(.//db:caution)" 3085 "caution must not occur in the descendants of caption" 3086 ] 3087 "\x{a}" ~ 3088 " " 3089 ] 3090 "\x{a}" ~ 3091 " " 3092 ] 3093 s:pattern [ 3094 name = "Element exclusion" 3095 "\x{a}" ~ 3096 " " 3097 s:rule [ 3098 context = "db:caption" 3099 "\x{a}" ~ 3100 " " 3101 s:assert [ 3102 test = "not(.//db:important)" 3103 "important must not occur in the descendants of caption" 3104 ] 3105 "\x{a}" ~ 3106 " " 3107 ] 3108 "\x{a}" ~ 3109 " " 3110 ] 3111 s:pattern [ 3112 name = "Element exclusion" 3113 "\x{a}" ~ 3114 " " 3115 s:rule [ 3116 context = "db:caption" 3117 "\x{a}" ~ 3118 " " 3119 s:assert [ 3120 test = "not(.//db:note)" 3121 "note must not occur in the descendants of caption" 3122 ] 3123 "\x{a}" ~ 3124 " " 3125 ] 3126 "\x{a}" ~ 3127 " " 3128 ] 3129 s:pattern [ 3130 name = "Element exclusion" 3131 "\x{a}" ~ 3132 " " 3133 s:rule [ 3134 context = "db:caption" 3135 "\x{a}" ~ 3136 " " 3137 s:assert [ 3138 test = "not(.//db:tip)" 3139 "tip must not occur in the descendants of caption" 3140 ] 3141 "\x{a}" ~ 3142 " " 3143 ] 3144 "\x{a}" ~ 3145 " " 3146 ] 3147 s:pattern [ 3148 name = "Element exclusion" 3149 "\x{a}" ~ 3150 " " 3151 s:rule [ 3152 context = "db:caption" 3153 "\x{a}" ~ 3154 " " 3155 s:assert [ 3156 test = "not(.//db:warning)" 3157 "warning must not occur in the descendants of caption" 3158 ] 3159 "\x{a}" ~ 3160 " " 3161 ] 3162 "\x{a}" ~ 3163 " " 3164 ] 3165 s:pattern [ 3166 name = "Element exclusion" 3167 "\x{a}" ~ 3168 " " 3169 s:rule [ 3170 context = "db:caption" 3171 "\x{a}" ~ 3172 " " 3173 s:assert [ 3174 test = "not(.//db:sidebar)" 3175 "sidebar must not occur in the descendants of caption" 3176 ] 3177 "\x{a}" ~ 3178 " " 3179 ] 3180 "\x{a}" ~ 3181 " " 3182 ] 3183 s:pattern [ 3184 name = "Element exclusion" 3185 "\x{a}" ~ 3186 " " 3187 s:rule [ 3188 context = "db:caption" 3189 "\x{a}" ~ 3190 " " 3191 s:assert [ 3192 test = "not(.//db:task)" 3193 "task must not occur in the descendants of caption" 3194 ] 3195 "\x{a}" ~ 3196 " " 3197 ] 3198 "\x{a}" ~ 3199 " " 3200 ] 3201 ] 3202 element caption { 3203 db.caption.attlist, db.caption.info, db.all.blocks+ 3204 } 3205} 3206div { 3207 db.synopsis.role.attribute = attribute role { text } 3208 db.synopsis.label.attribute = db.label.attribute 3209 db.synopsis.attlist = 3210 db.synopsis.role.attribute? 3211 & db.common.attributes 3212 & db.common.linking.attributes 3213 & db.verbatim.attributes 3214 & db.synopsis.label.attribute? 3215 db.synopsis = 3216 3217 ## A general-purpose element for representing the syntax of commands or functions 3218 element synopsis { db.synopsis.attlist, db.verbatim.contentmodel } 3219} 3220div { 3221 db.cmdsynopsis.role.attribute = attribute role { text } 3222 db.cmdsynopsis.sepchar.attribute = 3223 3224 ## Specifies the character that should separate the command and its top-level arguments 3225 attribute sepchar { text } 3226 db.cmdsynopsis.cmdlength.attribute = 3227 3228 ## Indicates the displayed length of the command; this information may be used to intelligently indent command synopses which extend beyond one line 3229 attribute cmdlength { text } 3230 db.cmdsynopsis.label.attribute = db.label.attribute 3231 db.cmdsynopsis.attlist = 3232 db.cmdsynopsis.role.attribute? 3233 & db.common.attributes 3234 & db.common.linking.attributes 3235 & db.cmdsynopsis.sepchar.attribute? 3236 & db.cmdsynopsis.cmdlength.attribute? 3237 & db.cmdsynopsis.label.attribute? 3238 db.cmdsynopsis.info = db._info.title.forbidden 3239 db.cmdsynopsis = 3240 3241 ## A syntax summary for a software command 3242 element cmdsynopsis { 3243 db.cmdsynopsis.attlist, 3244 db.cmdsynopsis.info, 3245 (db.command | db.arg | db.group | db.sbr)+, 3246 db.synopfragment* 3247 } 3248} 3249db.rep.enumeration = 3250 3251 ## Can not be repeated. 3252 "norepeat" 3253 | 3254 ## Can be repeated. 3255 "repeat" 3256db.rep.attribute = 3257 3258 ## Indicates whether or not repetition is possible. 3259 [ a:defaultValue = "norepeat" ] attribute rep { db.rep.enumeration } 3260db.choice.enumeration = 3261 3262 ## Formatted to indicate that it is optional. 3263 "opt" 3264 | 3265 ## Formatted without indication. 3266 "plain" 3267 | 3268 ## Formatted to indicate that it is required. 3269 "req" 3270db.choice.opt.attribute = 3271 3272 ## Indicates optionality. 3273 [ a:defaultValue = "opt" ] attribute choice { db.choice.enumeration } 3274db.choice.req.attribute = 3275 3276 ## Indicates optionality. 3277 [ a:defaultValue = "req" ] attribute choice { db.choice.enumeration } 3278div { 3279 db.arg.role.attribute = attribute role { text } 3280 db.arg.rep.attribute = db.rep.attribute 3281 db.arg.choice.attribute = db.choice.opt.attribute 3282 db.arg.attlist = 3283 db.arg.role.attribute? 3284 & db.common.attributes 3285 & db.common.linking.attributes 3286 & db.arg.rep.attribute? 3287 & db.arg.choice.attribute? 3288 db.arg = 3289 3290 ## An argument in a CmdSynopsis 3291 element arg { 3292 db.arg.attlist, 3293 (db._text 3294 | db.arg 3295 | db.group 3296 | db.option 3297 | db.synopfragmentref 3298 | db.sbr)* 3299 } 3300} 3301div { 3302 db.group.role.attribute = attribute role { text } 3303 db.group.rep.attribute = db.rep.attribute 3304 db.group.choice.attribute = db.choice.opt.attribute 3305 db.group.attlist = 3306 db.group.role.attribute? 3307 & db.common.attributes 3308 & db.common.linking.attributes 3309 & db.group.rep.attribute? 3310 & db.group.choice.attribute? 3311 db.group = 3312 3313 ## A group of elements in a CmdSynopsis 3314 element group { 3315 db.group.attlist, 3316 (db.arg 3317 | db.group 3318 | db.option 3319 | db.synopfragmentref 3320 | db.replaceable 3321 | db.sbr)+ 3322 } 3323} 3324div { 3325 db.sbr.role.attribute = attribute role { text } 3326 db.sbr.attlist = db.sbr.role.attribute? & db.common.attributes 3327 db.sbr = 3328 3329 ## An explicit line break in a command synopsis 3330 element sbr { db.sbr.attlist, empty } 3331} 3332div { 3333 db.synopfragment.role.attribute = attribute role { text } 3334 db.synopfragment.attlist = 3335 db.synopfragment.role.attribute? 3336 & db.common.attributes 3337 & db.common.linking.attributes 3338 db.synopfragment = 3339 3340 ## A portion of a CmdSynopsis broken out from the main body of the synopsis 3341 element synopfragment { 3342 db.synopfragment.attlist, (db.arg | db.group)+ 3343 } 3344} 3345div { 3346 db.synopfragmentref.role.attribute = attribute role { text } 3347 db.synopfragmentref.attlist = 3348 db.synopfragmentref.role.attribute? 3349 & db.common.attributes 3350 & db.linkend.attribute 3351 db.synopfragmentref = 3352 3353 ## A reference to a fragment of a command synopsis 3354 [ 3355 s:pattern [ 3356 name = "Synopsis fragment type constraint" 3357 "\x{a}" ~ 3358 " " 3359 s:rule [ 3360 context = "db:synopfragmentref" 3361 "\x{a}" ~ 3362 " " 3363 s:assert [ 3364 test = 3365 "local-name(//*[@id=current()/@linkend]) = 'synopfragment' and namespace-uri(//*[@id=current()/@linkend]) = 'http://docbook.org/ns/docbook'" 3366 "@linkend on synopfragmentref must point to a synopfragment." 3367 ] 3368 "\x{a}" ~ 3369 " " 3370 ] 3371 "\x{a}" ~ 3372 " " 3373 ] 3374 ] 3375 element synopfragmentref { db.synopfragmentref.attlist, text } 3376} 3377div { 3378 db.funcsynopsis.role.attribute = attribute role { text } 3379 db.funcsynopsis.attlist = 3380 db.funcsynopsis.role.attribute? 3381 & db.common.attributes 3382 & db.common.linking.attributes 3383 & db.language.attribute? 3384 db.funcsynopsis.info = db._info.title.forbidden 3385 db.funcsynopsis = 3386 3387 ## The syntax summary for a function definition 3388 element funcsynopsis { 3389 db.funcsynopsis.attlist, 3390 db.funcsynopsis.info, 3391 (db.funcsynopsisinfo | db.funcprototype)+ 3392 } 3393} 3394div { 3395 db.funcsynopsisinfo.role.attribute = attribute role { text } 3396 db.funcsynopsisinfo.attlist = 3397 db.funcsynopsisinfo.role.attribute? 3398 & db.common.attributes 3399 & db.common.linking.attributes 3400 & db.verbatim.attributes 3401 db.funcsynopsisinfo = 3402 3403 ## Information supplementing the FuncDefs of a FuncSynopsis 3404 element funcsynopsisinfo { 3405 db.funcsynopsisinfo.attlist, db.verbatim.contentmodel 3406 } 3407} 3408div { 3409 db.funcprototype.role.attribute = attribute role { text } 3410 db.funcprototype.attlist = 3411 db.funcprototype.role.attribute? 3412 & db.common.attributes 3413 & db.common.linking.attributes 3414 db.funcprototype = 3415 3416 ## The prototype of a function 3417 element funcprototype { 3418 db.funcprototype.attlist, 3419 db.modifier*, 3420 db.funcdef, 3421 (db.void | db.varargs | (db.paramdef+, db.varargs?)), 3422 db.modifier* 3423 } 3424} 3425div { 3426 db.funcdef.role.attribute = attribute role { text } 3427 db.funcdef.attlist = 3428 db.funcdef.role.attribute? 3429 & db.common.attributes 3430 & db.common.linking.attributes 3431 db.funcdef = 3432 3433 ## A function (subroutine) name and its return type 3434 element funcdef { 3435 db.funcdef.attlist, (db._text | db.type | db.function)* 3436 } 3437} 3438div { 3439 db.void.role.attribute = attribute role { text } 3440 db.void.attlist = 3441 db.void.role.attribute? 3442 & db.common.attributes 3443 & db.common.linking.attributes 3444 db.void = 3445 3446 ## An empty element in a function synopsis indicating that the function in question takes no arguments 3447 element void { db.void.attlist, empty } 3448} 3449div { 3450 db.varargs.role.attribute = attribute role { text } 3451 db.varargs.attlist = 3452 db.varargs.role.attribute? 3453 & db.common.attributes 3454 & db.common.linking.attributes 3455 db.varargs = 3456 3457 ## An empty element in a function synopsis indicating a variable number of arguments 3458 element varargs { db.varargs.attlist, empty } 3459} 3460div { 3461 db.paramdef.role.attribute = attribute role { text } 3462 db.paramdef.choice.enumeration = 3463 3464 ## Formatted to indicate that it is optional. 3465 "opt" 3466 | 3467 ## Formatted to indicate that it is required. 3468 "req" 3469 db.paramdef.choice.attribute = 3470 3471 ## Indicates optionality. 3472 [ a:defaultValue = "opt" ] 3473 attribute choice { db.paramdef.choice.enumeration } 3474 db.paramdef.attlist = 3475 db.paramdef.role.attribute? 3476 & db.common.attributes 3477 & db.common.linking.attributes 3478 & db.paramdef.choice.attribute? 3479 db.paramdef = 3480 3481 ## Information about a function parameter in a programming language 3482 element paramdef { 3483 db.paramdef.attlist, 3484 (db._text 3485 | db.initializer 3486 | db.type 3487 | db.parameter 3488 | db.funcparams)* 3489 } 3490} 3491div { 3492 db.funcparams.role.attribute = attribute role { text } 3493 db.funcparams.attlist = 3494 db.funcparams.role.attribute? 3495 & db.common.attributes 3496 & db.common.linking.attributes 3497 db.funcparams = 3498 3499 ## Parameters for a function referenced through a function pointer in a synopsis 3500 element funcparams { db.funcparams.attlist, db._text } 3501} 3502div { 3503 db.classsynopsis.role.attribute = attribute role { text } 3504 db.classsynopsis.class.enumeration = 3505 3506 ## This is the synopsis of a class 3507 "class" 3508 | 3509 ## This is the synopsis of an interface 3510 "interface" 3511 db.classsynopsis.class.attribute = 3512 3513 ## Specifies the nature of the synopsis 3514 attribute class { db.classsynopsis.class.enumeration } 3515 db.classsynopsis.attlist = 3516 db.classsynopsis.role.attribute? 3517 & db.common.attributes 3518 & db.common.linking.attributes 3519 & db.language.attribute? 3520 & db.classsynopsis.class.attribute? 3521 db.classsynopsis = 3522 3523 ## The syntax summary for a class definition 3524 element classsynopsis { 3525 db.classsynopsis.attlist, 3526 db.oo.inlines+, 3527 (db.classsynopsisinfo 3528 | db.methodsynopsis 3529 | db.constructorsynopsis 3530 | db.destructorsynopsis 3531 | db.fieldsynopsis)* 3532 } 3533} 3534div { 3535 db.classsynopsisinfo.role.attribute = attribute role { text } 3536 db.classsynopsisinfo.attlist = 3537 db.classsynopsisinfo.role.attribute? 3538 & db.common.attributes 3539 & db.common.linking.attributes 3540 & db.verbatim.attributes 3541 db.classsynopsisinfo = 3542 3543 ## Information supplementing the contents of a ClassSynopsis 3544 element classsynopsisinfo { 3545 db.classsynopsisinfo.attlist, db.verbatim.contentmodel 3546 } 3547} 3548div { 3549 db.ooclass.role.attribute = attribute role { text } 3550 db.ooclass.attlist = 3551 db.ooclass.role.attribute? 3552 & db.common.attributes 3553 & db.common.linking.attributes 3554 db.ooclass = 3555 3556 ## A class in an object-oriented programming language 3557 element ooclass { 3558 db.ooclass.attlist, (db.package | db.modifier)*, db.classname 3559 } 3560} 3561div { 3562 db.oointerface.role.attribute = attribute role { text } 3563 db.oointerface.attlist = 3564 db.oointerface.role.attribute? 3565 & db.common.attributes 3566 & db.common.linking.attributes 3567 db.oointerface = 3568 3569 ## An interface in an object-oriented programming language 3570 element oointerface { 3571 db.oointerface.attlist, 3572 (db.package | db.modifier)*, 3573 db.interfacename 3574 } 3575} 3576div { 3577 db.ooexception.role.attribute = attribute role { text } 3578 db.ooexception.attlist = 3579 db.ooexception.role.attribute? 3580 & db.common.attributes 3581 & db.common.linking.attributes 3582 db.ooexception = 3583 3584 ## An exception in an object-oriented programming language 3585 element ooexception { 3586 db.ooexception.attlist, 3587 (db.package | db.modifier)*, 3588 db.exceptionname 3589 } 3590} 3591db.modifier.xml.space.attribute = 3592 3593 ## Can be used to indicate that whitespace in the modifier should be preserved (for multi-line annotations, for example). 3594 attribute xml:space { 3595 3596 ## Extra whitespace and line breaks must be preserved. 3597 [ 3598 # Ideally the definition of xml:space used on modifier would be 3599 # different from the definition used on the verbatim elements. The 3600 # verbatim elements forbid the use of xml:space="default" which 3601 # wouldn't be a problem on modifier. But doing that causes the 3602 # generated XSD schemas to be broken so I'm just reusing the existing 3603 # definition for now. It won't be backwards incompatible to fix this 3604 # problem in the future. 3605 # | ## Extra whitespace and line breaks are not preserved. 3606 # "default" 3607 3608 ] 3609 "preserve" 3610 } 3611div { 3612 db.modifier.role.attribute = attribute role { text } 3613 db.modifier.attlist = 3614 db.modifier.xml.space.attribute? 3615 & db.modifier.role.attribute? 3616 & db.common.attributes 3617 & db.common.linking.attributes 3618 db.modifier = 3619 3620 ## Modifiers in a synopsis 3621 element modifier { db.modifier.attlist, db._text } 3622} 3623div { 3624 db.interfacename.role.attribute = attribute role { text } 3625 db.interfacename.attlist = 3626 db.interfacename.role.attribute? 3627 & db.common.attributes 3628 & db.common.linking.attributes 3629 db.interfacename = 3630 3631 ## The name of an interface 3632 element interfacename { db.interfacename.attlist, db._text } 3633} 3634div { 3635 db.exceptionname.role.attribute = attribute role { text } 3636 db.exceptionname.attlist = 3637 db.exceptionname.role.attribute? 3638 & db.common.attributes 3639 & db.common.linking.attributes 3640 db.exceptionname = 3641 3642 ## The name of an exception 3643 element exceptionname { db.exceptionname.attlist, db._text } 3644} 3645div { 3646 db.fieldsynopsis.role.attribute = attribute role { text } 3647 db.fieldsynopsis.attlist = 3648 db.fieldsynopsis.role.attribute? 3649 & db.common.attributes 3650 & db.common.linking.attributes 3651 & db.language.attribute? 3652 db.fieldsynopsis = 3653 3654 ## The name of a field in a class definition 3655 element fieldsynopsis { 3656 db.fieldsynopsis.attlist, 3657 db.modifier*, 3658 db.type?, 3659 db.varname, 3660 db.initializer? 3661 } 3662} 3663div { 3664 db.initializer.role.attribute = attribute role { text } 3665 db.initializer.attlist = 3666 db.initializer.role.attribute? 3667 & db.common.attributes 3668 & db.common.linking.attributes 3669 db.initializer = 3670 3671 ## The initializer for a FieldSynopsis 3672 element initializer { db.initializer.attlist, db._text } 3673} 3674div { 3675 db.constructorsynopsis.role.attribute = attribute role { text } 3676 db.constructorsynopsis.attlist = 3677 db.constructorsynopsis.role.attribute? 3678 & db.common.attributes 3679 & db.common.linking.attributes 3680 & db.language.attribute? 3681 db.constructorsynopsis = 3682 3683 ## A syntax summary for a constructor 3684 element constructorsynopsis { 3685 db.constructorsynopsis.attlist, 3686 db.modifier*, 3687 db.methodname?, 3688 (db.methodparam+ | db.void?), 3689 db.exceptionname* 3690 } 3691} 3692div { 3693 db.destructorsynopsis.role.attribute = attribute role { text } 3694 db.destructorsynopsis.attlist = 3695 db.destructorsynopsis.role.attribute? 3696 & db.common.attributes 3697 & db.common.linking.attributes 3698 & db.language.attribute? 3699 db.destructorsynopsis = 3700 3701 ## A syntax summary for a destructor 3702 element destructorsynopsis { 3703 db.destructorsynopsis.attlist, 3704 db.modifier*, 3705 db.methodname?, 3706 (db.methodparam+ | db.void?), 3707 db.exceptionname* 3708 } 3709} 3710div { 3711 db.methodsynopsis.role.attribute = attribute role { text } 3712 db.methodsynopsis.attlist = 3713 db.methodsynopsis.role.attribute? 3714 & db.common.attributes 3715 & db.common.linking.attributes 3716 & db.language.attribute? 3717 db.methodsynopsis = 3718 3719 ## A syntax summary for a method 3720 element methodsynopsis { 3721 db.methodsynopsis.attlist, 3722 db.modifier*, 3723 (db.type | db.void)?, 3724 db.methodname, 3725 (db.methodparam+ | db.void), 3726 db.exceptionname*, 3727 db.modifier* 3728 } 3729} 3730div { 3731 db.methodname.role.attribute = attribute role { text } 3732 db.methodname.attlist = 3733 db.methodname.role.attribute? 3734 & db.common.attributes 3735 & db.common.linking.attributes 3736 db.methodname = 3737 3738 ## The name of a method 3739 element methodname { db.methodname.attlist, db._text } 3740} 3741div { 3742 db.methodparam.role.attribute = attribute role { text } 3743 db.methodparam.rep.attribute = db.rep.attribute 3744 db.methodparam.choice.attribute = db.choice.req.attribute 3745 db.methodparam.attlist = 3746 db.methodparam.role.attribute? 3747 & db.common.attributes 3748 & db.common.linking.attributes 3749 & db.methodparam.rep.attribute? 3750 & db.methodparam.choice.attribute? 3751 db.methodparam = 3752 3753 ## Parameters to a method 3754 element methodparam { 3755 db.methodparam.attlist, 3756 db.modifier*, 3757 db.type?, 3758 ((db.modifier*, db.parameter, db.initializer?) | db.funcparams), 3759 db.modifier* 3760 } 3761} 3762div { 3763 db.address.role.attribute = attribute role { text } 3764 db.address.attlist = 3765 db.address.role.attribute? 3766 & db.common.attributes 3767 & db.common.linking.attributes 3768 & db.verbatim.attributes 3769 db.address = 3770 3771 ## A real-world address, generally a postal address 3772 element address { 3773 db.address.attlist, 3774 (db._text 3775 | db.personname 3776 | db.pob 3777 | db.street 3778 | db.city 3779 | db.state 3780 | db.postcode 3781 | db.country 3782 | db.phone 3783 | db.fax 3784 | db.email 3785 | db.otheraddr)* 3786 } 3787} 3788div { 3789 db.street.role.attribute = attribute role { text } 3790 db.street.attlist = 3791 db.street.role.attribute? 3792 & db.common.attributes 3793 & db.common.linking.attributes 3794 db.street = 3795 3796 ## A street address in an address 3797 element street { db.street.attlist, db._text } 3798} 3799div { 3800 db.pob.role.attribute = attribute role { text } 3801 db.pob.attlist = 3802 db.pob.role.attribute? 3803 & db.common.attributes 3804 & db.common.linking.attributes 3805 db.pob = 3806 3807 ## A post office box in an address 3808 element pob { db.pob.attlist, db._text } 3809} 3810div { 3811 db.postcode.role.attribute = attribute role { text } 3812 db.postcode.attlist = 3813 db.postcode.role.attribute? 3814 & db.common.attributes 3815 & db.common.linking.attributes 3816 db.postcode = 3817 3818 ## A postal code in an address 3819 element postcode { db.postcode.attlist, db._text } 3820} 3821div { 3822 db.city.role.attribute = attribute role { text } 3823 db.city.attlist = 3824 db.city.role.attribute? 3825 & db.common.attributes 3826 & db.common.linking.attributes 3827 db.city = 3828 3829 ## The name of a city in an address 3830 element city { db.city.attlist, db._text } 3831} 3832div { 3833 db.state.role.attribute = attribute role { text } 3834 db.state.attlist = 3835 db.state.role.attribute? 3836 & db.common.attributes 3837 & db.common.linking.attributes 3838 db.state = 3839 3840 ## A state or province in an address 3841 element state { db.state.attlist, db._text } 3842} 3843div { 3844 db.country.role.attribute = attribute role { text } 3845 db.country.attlist = 3846 db.country.role.attribute? 3847 & db.common.attributes 3848 & db.common.linking.attributes 3849 db.country = 3850 3851 ## The name of a country 3852 element country { db.country.attlist, db._text } 3853} 3854div { 3855 db.phone.role.attribute = attribute role { text } 3856 db.phone.attlist = 3857 db.phone.role.attribute? 3858 & db.common.attributes 3859 & db.common.linking.attributes 3860 db.phone = 3861 3862 ## A telephone number 3863 element phone { db.phone.attlist, db._text } 3864} 3865div { 3866 db.fax.role.attribute = attribute role { text } 3867 db.fax.attlist = 3868 db.fax.role.attribute? 3869 & db.common.attributes 3870 & db.common.linking.attributes 3871 db.fax = 3872 3873 ## A fax number 3874 element fax { db.fax.attlist, db._text } 3875} 3876div { 3877 db.otheraddr.role.attribute = attribute role { text } 3878 db.otheraddr.attlist = 3879 db.otheraddr.role.attribute? 3880 & db.common.attributes 3881 & db.common.linking.attributes 3882 db.otheraddr = 3883 3884 ## Uncategorized information in address 3885 element otheraddr { db.otheraddr.attlist, db._text } 3886} 3887div { 3888 db.affiliation.role.attribute = attribute role { text } 3889 db.affiliation.attlist = 3890 db.affiliation.role.attribute? 3891 & db.common.attributes 3892 & db.common.linking.attributes 3893 db.affiliation = 3894 3895 ## The institutional affiliation of an individual 3896 element affiliation { 3897 db.affiliation.attlist, 3898 db.shortaffil?, 3899 db.jobtitle*, 3900 (db.org? | (db.orgname?, db.orgdiv*, db.address*)) 3901 } 3902} 3903div { 3904 db.shortaffil.role.attribute = attribute role { text } 3905 db.shortaffil.attlist = 3906 db.shortaffil.role.attribute? 3907 & db.common.attributes 3908 & db.common.linking.attributes 3909 db.shortaffil = 3910 3911 ## A brief description of an affiliation 3912 element shortaffil { db.shortaffil.attlist, db._text } 3913} 3914div { 3915 db.jobtitle.role.attribute = attribute role { text } 3916 db.jobtitle.attlist = 3917 db.jobtitle.role.attribute? 3918 & db.common.attributes 3919 & db.common.linking.attributes 3920 db.jobtitle = 3921 3922 ## The title of an individual in an organization 3923 element jobtitle { db.jobtitle.attlist, db._text } 3924} 3925div { 3926 db.orgname.class.enumeration = 3927 3928 ## A consortium 3929 "consortium" 3930 | 3931 ## A corporation 3932 "corporation" 3933 | 3934 ## An informal organization 3935 "informal" 3936 | 3937 ## A non-profit organization 3938 "nonprofit" 3939 db.orgname.class-enum.attribute = 3940 3941 ## Specifies the nature of the organization 3942 attribute class { db.orgname.class.enumeration } 3943 db.orgname.class-other.attributes = 3944 3945 ## Specifies the nature of the organization 3946 attribute class { 3947 3948 ## Indicates a non-standard organization class 3949 "other" 3950 }, 3951 3952 ## Identifies the non-standard nature of the organization 3953 attribute otherclass { text } 3954 db.orgname.class.attribute = 3955 db.orgname.class-enum.attribute | db.orgname.class-other.attributes 3956 db.orgname.role.attribute = attribute role { text } 3957 db.orgname.attlist = 3958 db.orgname.role.attribute? 3959 & db.common.attributes 3960 & db.common.linking.attributes 3961 & db.orgname.class.attribute? 3962 db.orgname = 3963 3964 ## The name of an organization other than a corporation 3965 element orgname { db.orgname.attlist, db._text } 3966} 3967div { 3968 db.orgdiv.role.attribute = attribute role { text } 3969 db.orgdiv.attlist = 3970 db.orgdiv.role.attribute? 3971 & db.common.attributes 3972 & db.common.linking.attributes 3973 db.orgdiv = 3974 3975 ## A division of an organization 3976 element orgdiv { db.orgdiv.attlist, db.all.inlines* } 3977} 3978div { 3979 db.artpagenums.role.attribute = attribute role { text } 3980 db.artpagenums.attlist = 3981 db.artpagenums.role.attribute? 3982 & db.common.attributes 3983 & db.common.linking.attributes 3984 db.artpagenums = 3985 3986 ## The page numbers of an article as published 3987 element artpagenums { db.artpagenums.attlist, db._text } 3988} 3989div { 3990 db.personname.role.attribute = attribute role { text } 3991 db.personname.attlist = 3992 db.personname.role.attribute? 3993 & db.common.attributes 3994 & db.common.linking.attributes 3995 db.personname = 3996 3997 ## The personal name of an individual 3998 element personname { 3999 db.personname.attlist, 4000 (db._text 4001 | (db.honorific 4002 | db.firstname 4003 | db.surname 4004 | db.lineage 4005 | db.othername)+) 4006 } 4007} 4008db.person.author.contentmodel = 4009 db.personname, 4010 (db.personblurb 4011 | db.affiliation 4012 | db.email 4013 | db.address 4014 | db.contrib)* 4015db.org.author.contentmodel = 4016 db.orgname, 4017 (db.orgdiv | db.affiliation | db.email | db.address | db.contrib)* 4018db.credit.contentmodel = 4019 db.person.author.contentmodel | db.org.author.contentmodel 4020div { 4021 db.author.role.attribute = attribute role { text } 4022 db.author.attlist = 4023 db.author.role.attribute? 4024 & db.common.attributes 4025 & db.common.linking.attributes 4026 db.author = 4027 4028 ## The name of an individual author 4029 element author { db.author.attlist, db.credit.contentmodel } 4030} 4031div { 4032 db.authorgroup.role.attribute = attribute role { text } 4033 db.authorgroup.attlist = 4034 db.authorgroup.role.attribute? 4035 & db.common.attributes 4036 & db.common.linking.attributes 4037 db.authorgroup = 4038 4039 ## Wrapper for author information when a document has multiple authors or collabarators 4040 element authorgroup { 4041 db.authorgroup.attlist, (db.author | db.editor | db.othercredit)+ 4042 } 4043} 4044div { 4045 db.collab.role.attribute = attribute role { text } 4046 db.collab.attlist = 4047 db.collab.role.attribute? 4048 & db.common.attributes 4049 & db.common.linking.attributes 4050 db.collab = 4051 4052 ## Identifies a collaborator 4053 element collab { 4054 db.collab.attlist, 4055 (db.person | db.personname | db.org | db.orgname)+, 4056 db.affiliation* 4057 } 4058} 4059div { 4060 db.authorinitials.role.attribute = attribute role { text } 4061 db.authorinitials.attlist = 4062 db.authorinitials.role.attribute? 4063 & db.common.attributes 4064 & db.common.linking.attributes 4065 db.authorinitials = 4066 4067 ## The initials or other short identifier for an author 4068 element authorinitials { db.authorinitials.attlist, db._text } 4069} 4070div { 4071 db.person.role.attribute = attribute role { text } 4072 db.person.attlist = 4073 db.person.role.attribute? 4074 & db.common.attributes 4075 & db.common.linking.attributes 4076 db.person = 4077 4078 ## A person and associated metadata 4079 element person { 4080 db.person.attlist, 4081 db.personname, 4082 (db.address | db.affiliation | db.email | db.personblurb)* 4083 } 4084} 4085div { 4086 db.org.role.attribute = attribute role { text } 4087 db.org.attlist = 4088 db.org.role.attribute? 4089 & db.common.attributes 4090 & db.common.linking.attributes 4091 db.org = 4092 4093 ## An organization and associated metadata 4094 element org { 4095 db.org.attlist, 4096 db.orgname, 4097 (db.address | db.affiliation | db.email | db.orgdiv)* 4098 } 4099} 4100div { 4101 db.confgroup.role.attribute = attribute role { text } 4102 db.confgroup.attlist = 4103 db.confgroup.role.attribute? 4104 & db.common.attributes 4105 & db.common.linking.attributes 4106 db.confgroup = 4107 4108 ## A wrapper for document meta-information about a conference 4109 element confgroup { 4110 db.confgroup.attlist, 4111 (db.confdates 4112 | db.conftitle 4113 | db.confnum 4114 | db.confsponsor 4115 | db.address)* 4116 } 4117} 4118div { 4119 db.confdates.role.attribute = attribute role { text } 4120 db.confdates.attlist = 4121 db.confdates.role.attribute? 4122 & db.common.attributes 4123 & db.common.linking.attributes 4124 db.confdates = 4125 4126 ## The dates of a conference for which a document was written 4127 element confdates { db.confdates.attlist, db._text } 4128} 4129div { 4130 db.conftitle.role.attribute = attribute role { text } 4131 db.conftitle.attlist = 4132 db.conftitle.role.attribute? 4133 & db.common.attributes 4134 & db.common.linking.attributes 4135 db.conftitle = 4136 4137 ## The title of a conference for which a document was written 4138 element conftitle { db.conftitle.attlist, db._text } 4139} 4140div { 4141 db.confnum.role.attribute = attribute role { text } 4142 db.confnum.attlist = 4143 db.confnum.role.attribute? 4144 & db.common.attributes 4145 & db.common.linking.attributes 4146 db.confnum = 4147 4148 ## An identifier, frequently numerical, associated with a conference for which a document was written 4149 element confnum { db.confnum.attlist, db._text } 4150} 4151div { 4152 db.confsponsor.role.attribute = attribute role { text } 4153 db.confsponsor.attlist = 4154 db.confsponsor.role.attribute? 4155 & db.common.attributes 4156 & db.common.linking.attributes 4157 db.confsponsor = 4158 4159 ## The sponsor of a conference for which a document was written 4160 element confsponsor { db.confsponsor.attlist, db._text } 4161} 4162div { 4163 db.contractnum.role.attribute = attribute role { text } 4164 db.contractnum.attlist = 4165 db.contractnum.role.attribute? 4166 & db.common.attributes 4167 & db.common.linking.attributes 4168 db.contractnum = 4169 4170 ## The contract number of a document 4171 element contractnum { db.contractnum.attlist, db._text } 4172} 4173div { 4174 db.contractsponsor.role.attribute = attribute role { text } 4175 db.contractsponsor.attlist = 4176 db.contractsponsor.role.attribute? 4177 & db.common.attributes 4178 & db.common.linking.attributes 4179 db.contractsponsor = 4180 4181 ## The sponsor of a contract 4182 element contractsponsor { db.contractsponsor.attlist, db._text } 4183} 4184div { 4185 db.copyright.role.attribute = attribute role { text } 4186 db.copyright.attlist = 4187 db.copyright.role.attribute? 4188 & db.common.attributes 4189 & db.common.linking.attributes 4190 db.copyright = 4191 4192 ## Copyright information about a document 4193 element copyright { db.copyright.attlist, db.year+, db.holder* } 4194} 4195div { 4196 db.year.role.attribute = attribute role { text } 4197 db.year.attlist = 4198 db.year.role.attribute? 4199 & db.common.attributes 4200 & db.common.linking.attributes 4201 db.year = 4202 4203 ## The year of publication of a document 4204 element year { db.year.attlist, db._text } 4205} 4206div { 4207 db.holder.role.attribute = attribute role { text } 4208 db.holder.attlist = 4209 db.holder.role.attribute? 4210 & db.common.attributes 4211 & db.common.linking.attributes 4212 db.holder = 4213 4214 ## The name of the individual or organization that holds a copyright 4215 element holder { db.holder.attlist, db._text } 4216} 4217db.cover.contentmodel = 4218 (db.para.blocks 4219 | db.extension.blocks 4220 | db.list.blocks 4221 | db.informal.blocks 4222 | db.publishing.blocks 4223 | db.graphic.blocks 4224 | db.technical.blocks 4225 | db.verbatim.blocks 4226 | db.bridgehead 4227 | db.synopsis.blocks 4228 | db.remark 4229 | db.revhistory)+ 4230div { 4231 db.cover.role.attribute = attribute role { text } 4232 db.cover.attlist = 4233 db.cover.role.attribute? 4234 & db.common.attributes 4235 & db.common.linking.attributes 4236 db.cover = 4237 4238 ## Additional content for the cover of a publication 4239 element cover { db.cover.attlist, db.cover.contentmodel } 4240} 4241db.date.contentmodel = 4242 xsd:date | xsd:dateTime | xsd:gYearMonth | xsd:gYear | text 4243div { 4244 db.date.role.attribute = attribute role { text } 4245 db.date.attlist = 4246 db.date.role.attribute? 4247 & db.common.attributes 4248 & db.common.linking.attributes 4249 db.date = 4250 4251 ## The date of publication or revision of a document 4252 element date { db.date.attlist, db.date.contentmodel } 4253} 4254div { 4255 db.edition.role.attribute = attribute role { text } 4256 db.edition.attlist = 4257 db.edition.role.attribute? 4258 & db.common.attributes 4259 & db.common.linking.attributes 4260 db.edition = 4261 4262 ## The name or number of an edition of a document 4263 element edition { db.edition.attlist, db._text } 4264} 4265div { 4266 db.editor.role.attribute = attribute role { text } 4267 db.editor.attlist = 4268 db.editor.role.attribute? 4269 & db.common.attributes 4270 & db.common.linking.attributes 4271 db.editor = 4272 4273 ## The name of the editor of a document 4274 element editor { db.editor.attlist, db.credit.contentmodel } 4275} 4276div { 4277 db.biblioid.role.attribute = attribute role { text } 4278 db.biblioid.attlist = 4279 db.biblioid.role.attribute? 4280 & db.common.attributes 4281 & db.common.linking.attributes 4282 & db.biblio.class.attribute 4283 db.biblioid = 4284 4285 ## An identifier for a document 4286 element biblioid { db.biblioid.attlist, db._text } 4287} 4288div { 4289 db.citebiblioid.role.attribute = attribute role { text } 4290 db.citebiblioid.attlist = 4291 db.citebiblioid.role.attribute? 4292 & db.common.attributes 4293 & db.common.linking.attributes 4294 & db.biblio.class.attribute 4295 db.citebiblioid = 4296 4297 ## A citation of a bibliographic identifier 4298 element citebiblioid { db.citebiblioid.attlist, db._text } 4299} 4300div { 4301 db.bibliosource.role.attribute = attribute role { text } 4302 db.bibliosource.attlist = 4303 db.bibliosource.role.attribute? 4304 & db.common.attributes 4305 & db.common.linking.attributes 4306 & db.biblio.class.attribute 4307 db.bibliosource = 4308 4309 ## The source of a document 4310 element bibliosource { db.bibliosource.attlist, db._text } 4311} 4312div { 4313 db.bibliorelation.type.enumeration = 4314 4315 ## The described resource pre-existed the referenced resource, which is essentially the same intellectual content presented in another format 4316 "hasformat" 4317 | 4318 ## The described resource includes the referenced resource either physically or logically 4319 "haspart" 4320 | 4321 ## The described resource has a version, edition, or adaptation, namely, the referenced resource 4322 "hasversion" 4323 | 4324 ## The described resource is the same intellectual content of the referenced resource, but presented in another format 4325 "isformatof" 4326 | 4327 ## The described resource is a physical or logical part of the referenced resource 4328 "ispartof" 4329 | 4330 ## The described resource is referenced, cited, or otherwise pointed to by the referenced resource 4331 "isreferencedby" 4332 | 4333 ## The described resource is supplanted, displaced, or superceded by the referenced resource 4334 "isreplacedby" 4335 | 4336 ## The described resource is required by the referenced resource, either physically or logically 4337 "isrequiredby" 4338 | 4339 ## The described resource is a version, edition, or adaptation of the referenced resource; changes in version imply substantive changes in content rather than differences in format 4340 "isversionof" 4341 | 4342 ## The described resource references, cites, or otherwise points to the referenced resource 4343 "references" 4344 | 4345 ## The described resource supplants, displaces, or supersedes the referenced resource 4346 "replaces" 4347 | 4348 ## The described resource requires the referenced resource to support its function, delivery, or coherence of content 4349 "requires" 4350 db.bibliorelation.type-enum.attribute = 4351 4352 ## Identifies the type of relationship 4353 attribute type { db.bibliorelation.type.enumeration }? 4354 db.bibliorelation.type-other.attributes = 4355 4356 ## Identifies the type of relationship 4357 attribute type { 4358 4359 ## The described resource has a non-standard relationship with the referenced resource 4360 "othertype" 4361 }?, 4362 4363 ## A keyword that identififes the type of the non-standard relationship 4364 attribute othertype { xsd:NMTOKEN } 4365 db.bibliorelation.type.attribute = 4366 db.bibliorelation.type-enum.attribute 4367 | db.bibliorelation.type-other.attributes 4368 db.bibliorelation.role.attribute = attribute role { text } 4369 db.bibliorelation.attlist = 4370 db.bibliorelation.role.attribute? 4371 & db.common.attributes 4372 & db.common.linking.attributes 4373 & db.biblio.class.attribute 4374 & db.bibliorelation.type.attribute 4375 db.bibliorelation = 4376 4377 ## The relationship of a document to another 4378 element bibliorelation { db.bibliorelation.attlist, db._text } 4379} 4380div { 4381 db.bibliocoverage.spacial.enumeration = 4382 4383 ## The DCMI Point identifies a point in space using its geographic coordinates 4384 "dcmipoint" 4385 | 4386 ## ISO 3166 Codes for the representation of names of countries 4387 "iso3166" 4388 | 4389 ## The DCMI Box identifies a region of space using its geographic limits 4390 "dcmibox" 4391 | 4392 ## The Getty Thesaurus of Geographic Names 4393 "tgn" 4394 db.bibliocoverage.spatial-enum.attribute = 4395 4396 ## Specifies the type of spatial coverage 4397 attribute spatial { db.bibliocoverage.spacial.enumeration }? 4398 db.bibliocoverage.spatial-other.attributes = 4399 4400 ## Specifies the type of spatial coverage 4401 attribute spatial { 4402 4403 ## Identifies a non-standard type of coverage 4404 "otherspatial" 4405 }?, 4406 4407 ## A keyword that identifies the type of non-standard coverage 4408 attribute otherspatial { xsd:NMTOKEN } 4409 db.bibliocoverage.spatial.attribute = 4410 db.bibliocoverage.spatial-enum.attribute 4411 | db.bibliocoverage.spatial-other.attributes 4412 db.bibliocoverage.temporal.enumeration = 4413 4414 ## A specification of the limits of a time interval 4415 "dcmiperiod" 4416 | 4417 ## W3C Encoding rules for dates and times—a profile based on ISO 8601 4418 "w3c-dtf" 4419 db.bibliocoverage.temporal-enum.attribute = 4420 4421 ## Specifies the type of temporal coverage 4422 attribute temporal { db.bibliocoverage.temporal.enumeration }? 4423 db.bibliocoverage.temporal-other.attributes = 4424 4425 ## Specifies the type of temporal coverage 4426 attribute temporal { 4427 4428 ## Specifies a non-standard type of coverage 4429 "othertemporal" 4430 }?, 4431 4432 ## A keyword that identifies the type of non-standard coverage 4433 attribute othertemporal { xsd:NMTOKEN } 4434 db.bibliocoverage.temporal.attribute = 4435 db.bibliocoverage.temporal-enum.attribute 4436 | db.bibliocoverage.temporal-other.attributes 4437 db.bibliocoverage.coverage.attrib = 4438 db.bibliocoverage.spatial.attribute 4439 & db.bibliocoverage.temporal.attribute 4440 db.bibliocoverage.role.attribute = attribute role { text } 4441 db.bibliocoverage.attlist = 4442 db.bibliocoverage.role.attribute? 4443 & db.common.attributes 4444 & db.common.linking.attributes 4445 & db.bibliocoverage.coverage.attrib 4446 db.bibliocoverage = 4447 4448 ## The spatial or temporal coverage of a document 4449 element bibliocoverage { db.bibliocoverage.attlist, db._text } 4450} 4451div { 4452 db.legalnotice.role.attribute = attribute role { text } 4453 db.legalnotice.attlist = 4454 db.legalnotice.role.attribute? 4455 & db.common.attributes 4456 & db.common.linking.attributes 4457 db.legalnotice.info = db._info.title.only 4458 db.legalnotice = 4459 4460 ## A statement of legal obligations or requirements 4461 element legalnotice { 4462 db.legalnotice.attlist, db.legalnotice.info, db.all.blocks+ 4463 } 4464} 4465div { 4466 db.othercredit.class.enumeration = 4467 4468 ## A copy editor 4469 "copyeditor" 4470 | 4471 ## A graphic designer 4472 "graphicdesigner" 4473 | 4474 ## Some other contributor 4475 "other" 4476 | 4477 ## A production editor 4478 "productioneditor" 4479 | 4480 ## A technical editor 4481 "technicaleditor" 4482 | 4483 ## A translator 4484 "translator" 4485 db.othercredit.class-enum.attribute = 4486 4487 ## Identifies the nature of the contributor 4488 attribute class { db.othercredit.class.enumeration }? 4489 db.othercredit.class-other.attribute = 4490 4491 ## Identifies the nature of the non-standard contribution 4492 attribute otherclass { xsd:NMTOKEN } 4493 db.othercredit.class-other.attributes = 4494 4495 ## Identifies the nature of the contributor 4496 attribute class { 4497 4498 ## Identifies a non-standard contribution 4499 "other" 4500 } 4501 & db.othercredit.class-other.attribute 4502 db.othercredit.class.attribute = 4503 db.othercredit.class-enum.attribute 4504 | db.othercredit.class-other.attributes 4505 db.othercredit.role.attribute = attribute role { text } 4506 db.othercredit.attlist = 4507 db.othercredit.role.attribute? 4508 & db.common.attributes 4509 & db.common.linking.attributes 4510 & db.othercredit.class.attribute 4511 db.othercredit = 4512 4513 ## A person or entity, other than an author or editor, credited in a document 4514 element othercredit { 4515 db.othercredit.attlist, db.credit.contentmodel 4516 } 4517} 4518div { 4519 db.pagenums.role.attribute = attribute role { text } 4520 db.pagenums.attlist = 4521 db.pagenums.role.attribute? 4522 & db.common.attributes 4523 & db.common.linking.attributes 4524 db.pagenums = 4525 4526 ## The numbers of the pages in a book, for use in a bibliographic entry 4527 element pagenums { db.pagenums.attlist, db._text } 4528} 4529div { 4530 db.contrib.role.attribute = attribute role { text } 4531 db.contrib.attlist = 4532 db.contrib.role.attribute? 4533 & db.common.attributes 4534 & db.common.linking.attributes 4535 db.contrib = 4536 4537 ## A summary of the contributions made to a document by a credited source 4538 element contrib { db.contrib.attlist, db._text } 4539} 4540div { 4541 db.honorific.role.attribute = attribute role { text } 4542 db.honorific.attlist = 4543 db.honorific.role.attribute? 4544 & db.common.attributes 4545 & db.common.linking.attributes 4546 db.honorific = 4547 4548 ## The title of a person 4549 element honorific { db.honorific.attlist, db._text } 4550} 4551div { 4552 db.firstname.role.attribute = attribute role { text } 4553 db.firstname.attlist = 4554 db.firstname.role.attribute? 4555 & db.common.attributes 4556 & db.common.linking.attributes 4557 db.firstname = 4558 4559 ## The first name of a person 4560 element firstname { db.firstname.attlist, db._text } 4561} 4562div { 4563 db.surname.role.attribute = attribute role { text } 4564 db.surname.attlist = 4565 db.surname.role.attribute? 4566 & db.common.attributes 4567 & db.common.linking.attributes 4568 db.surname = 4569 4570 ## A family name; in western cultures the last name 4571 element surname { db.surname.attlist, db._text } 4572} 4573div { 4574 db.lineage.role.attribute = attribute role { text } 4575 db.lineage.attlist = 4576 db.lineage.role.attribute? 4577 & db.common.attributes 4578 & db.common.linking.attributes 4579 db.lineage = 4580 4581 ## The portion of a person's name indicating a relationship to ancestors 4582 element lineage { db.lineage.attlist, db._text } 4583} 4584div { 4585 db.othername.role.attribute = attribute role { text } 4586 db.othername.attlist = 4587 db.othername.role.attribute? 4588 & db.common.attributes 4589 & db.common.linking.attributes 4590 db.othername = 4591 4592 ## A component of a persons name that is not a first name, surname, or lineage 4593 element othername { db.othername.attlist, db._text } 4594} 4595div { 4596 db.printhistory.role.attribute = attribute role { text } 4597 db.printhistory.attlist = 4598 db.printhistory.role.attribute? 4599 & db.common.attributes 4600 & db.common.linking.attributes 4601 db.printhistory = 4602 4603 ## The printing history of a document 4604 element printhistory { db.printhistory.attlist, db.para.blocks+ } 4605} 4606div { 4607 db.productname.role.attribute = attribute role { text } 4608 db.productname.class.enumeration = 4609 4610 ## A name with a copyright 4611 "copyright" 4612 | 4613 ## A name with a registered copyright 4614 "registered" 4615 | 4616 ## A name of a service 4617 "service" 4618 | 4619 ## A name which is trademarked 4620 "trade" 4621 db.productname.class.attribute = 4622 4623 ## Specifies the class of product name 4624 attribute class { db.productname.class.enumeration } 4625 db.productname.attlist = 4626 db.productname.role.attribute? 4627 & db.common.attributes 4628 & db.common.linking.attributes 4629 & db.productname.class.attribute? 4630 db.productname = 4631 4632 ## The formal name of a product 4633 element productname { db.productname.attlist, db._text } 4634} 4635div { 4636 db.productnumber.role.attribute = attribute role { text } 4637 db.productnumber.attlist = 4638 db.productnumber.role.attribute? 4639 & db.common.attributes 4640 & db.common.linking.attributes 4641 db.productnumber = 4642 4643 ## A number assigned to a product 4644 element productnumber { db.productnumber.attlist, db._text } 4645} 4646div { 4647 db.pubdate.role.attribute = attribute role { text } 4648 db.pubdate.attlist = 4649 db.pubdate.role.attribute? 4650 & db.common.attributes 4651 & db.common.linking.attributes 4652 db.pubdate = 4653 4654 ## The date of publication of a document 4655 element pubdate { db.pubdate.attlist, db.date.contentmodel } 4656} 4657div { 4658 db.publisher.role.attribute = attribute role { text } 4659 db.publisher.attlist = 4660 db.publisher.role.attribute? 4661 & db.common.attributes 4662 & db.common.linking.attributes 4663 db.publisher = 4664 4665 ## The publisher of a document 4666 element publisher { 4667 db.publisher.attlist, db.publishername, db.address* 4668 } 4669} 4670div { 4671 db.publishername.role.attribute = attribute role { text } 4672 db.publishername.attlist = 4673 db.publishername.role.attribute? 4674 & db.common.attributes 4675 & db.common.linking.attributes 4676 db.publishername = 4677 4678 ## The name of the publisher of a document 4679 element publishername { db.publishername.attlist, db._text } 4680} 4681div { 4682 db.releaseinfo.role.attribute = attribute role { text } 4683 db.releaseinfo.attlist = 4684 db.releaseinfo.role.attribute? 4685 & db.common.attributes 4686 & db.common.linking.attributes 4687 db.releaseinfo = 4688 4689 ## Information about a particular release of a document 4690 element releaseinfo { db.releaseinfo.attlist, db._text } 4691} 4692div { 4693 db.revhistory.role.attribute = attribute role { text } 4694 db.revhistory.attlist = 4695 db.revhistory.role.attribute? 4696 & db.common.attributes 4697 & db.common.linking.attributes 4698 db.revhistory.info = db._info.title.only 4699 db.revhistory = 4700 4701 ## A history of the revisions to a document 4702 element revhistory { 4703 db.revhistory.attlist, db.revhistory.info, db.revision+ 4704 } 4705} 4706div { 4707 db.revision.role.attribute = attribute role { text } 4708 db.revision.attlist = 4709 db.revision.role.attribute? 4710 & db.common.attributes 4711 & db.common.linking.attributes 4712 db.revision = 4713 4714 ## An entry describing a single revision in the history of the revisions to a document 4715 element revision { 4716 db.revision.attlist, 4717 db.revnumber?, 4718 db.date, 4719 (db.authorinitials | db.author)*, 4720 (db.revremark | db.revdescription)? 4721 } 4722} 4723div { 4724 db.revnumber.role.attribute = attribute role { text } 4725 db.revnumber.attlist = 4726 db.revnumber.role.attribute? 4727 & db.common.attributes 4728 & db.common.linking.attributes 4729 db.revnumber = 4730 4731 ## A document revision number 4732 element revnumber { db.revnumber.attlist, db._text } 4733} 4734div { 4735 db.revremark.role.attribute = attribute role { text } 4736 db.revremark.attlist = 4737 db.revremark.role.attribute? 4738 & db.common.attributes 4739 & db.common.linking.attributes 4740 db.revremark = 4741 4742 ## A description of a revision to a document 4743 element revremark { db.revremark.attlist, db._text } 4744} 4745div { 4746 db.revdescription.role.attribute = attribute role { text } 4747 db.revdescription.attlist = 4748 db.revdescription.role.attribute? 4749 & db.common.attributes 4750 & db.common.linking.attributes 4751 db.revdescription = 4752 4753 ## A extended description of a revision to a document 4754 element revdescription { db.revdescription.attlist, db.all.blocks* } 4755} 4756div { 4757 db.seriesvolnums.role.attribute = attribute role { text } 4758 db.seriesvolnums.attlist = 4759 db.seriesvolnums.role.attribute? 4760 & db.common.attributes 4761 & db.common.linking.attributes 4762 db.seriesvolnums = 4763 4764 ## Numbers of the volumes in a series of books 4765 element seriesvolnums { db.seriesvolnums.attlist, db._text } 4766} 4767div { 4768 db.volumenum.role.attribute = attribute role { text } 4769 db.volumenum.attlist = 4770 db.volumenum.role.attribute? 4771 & db.common.attributes 4772 & db.common.linking.attributes 4773 db.volumenum = 4774 4775 ## The volume number of a document in a set (as of books in a set or articles in a journal) 4776 element volumenum { db.volumenum.attlist, db._text } 4777} 4778div { 4779 db.issuenum.role.attribute = attribute role { text } 4780 db.issuenum.attlist = 4781 db.issuenum.role.attribute? 4782 & db.common.attributes 4783 & db.common.linking.attributes 4784 db.issuenum = 4785 4786 ## The number of an issue of a journal 4787 element issuenum { db.issuenum.attlist, db._text } 4788} 4789div { 4790 db.accel.role.attribute = attribute role { text } 4791 db.accel.attlist = 4792 db.accel.role.attribute? 4793 & db.common.attributes 4794 & db.common.linking.attributes 4795 db.accel = 4796 4797 ## A graphical user interface (GUI) keyboard shortcut 4798 element accel { db.accel.attlist, db._text } 4799} 4800div { 4801 db.application.class.enumeration = 4802 4803 ## A hardware application 4804 "hardware" 4805 | 4806 ## A software application 4807 "software" 4808 db.application.class.attribute = 4809 4810 ## Identifies the class of application 4811 attribute class { db.application.class.enumeration } 4812 db.application.role.attribute = attribute role { text } 4813 db.application.attlist = 4814 db.application.role.attribute? 4815 & db.common.attributes 4816 & db.common.linking.attributes 4817 & db.application.class.attribute? 4818 db.application = 4819 4820 ## The name of a software program 4821 element application { db.application.attlist, db._text } 4822} 4823div { 4824 db.package.role.attribute = attribute role { text } 4825 db.package.attlist = 4826 db.package.role.attribute? 4827 & db.common.attributes 4828 & db.common.linking.attributes 4829 db.package = 4830 4831 ## A software or application package 4832 element package { db.package.attlist, db._text } 4833} 4834div { 4835 db.classname.role.attribute = attribute role { text } 4836 db.classname.attlist = 4837 db.classname.role.attribute? 4838 & db.common.attributes 4839 & db.common.linking.attributes 4840 db.classname = 4841 4842 ## The name of a class, in the object-oriented programming sense 4843 element classname { db.classname.attlist, db._text } 4844} 4845div { 4846 db.command.role.attribute = attribute role { text } 4847 db.command.attlist = 4848 db.command.role.attribute? 4849 & db.common.attributes 4850 & db.common.linking.attributes 4851 db.command = 4852 4853 ## The name of an executable program or other software command 4854 element command { db.command.attlist, db._text } 4855} 4856db.computeroutput.inlines = 4857 (text 4858 | db.ubiq.inlines 4859 | db.os.inlines 4860 | db.technical.inlines 4861 | db.markup.inlines) 4862 | db.co 4863 | db.co 4864div { 4865 db.computeroutput.role.attribute = attribute role { text } 4866 db.computeroutput.attlist = 4867 db.computeroutput.role.attribute? 4868 & db.common.attributes 4869 & db.common.linking.attributes 4870 db.computeroutput = 4871 4872 ## Data, generally text, displayed or presented by a computer 4873 element computeroutput { 4874 db.computeroutput.attlist, db.computeroutput.inlines* 4875 } 4876} 4877div { 4878 db.database.class.enumeration = 4879 4880 ## An alternate or secondary key 4881 "altkey" 4882 | 4883 ## A constraint 4884 "constraint" 4885 | 4886 ## A data type 4887 "datatype" 4888 | 4889 ## A field 4890 "field" 4891 | 4892 ## A foreign key 4893 "foreignkey" 4894 | 4895 ## A group 4896 "group" 4897 | 4898 ## An index 4899 "index" 4900 | 4901 ## The first or primary key 4902 "key1" 4903 | 4904 ## An alternate or secondary key 4905 "key2" 4906 | 4907 ## A name 4908 "name" 4909 | 4910 ## The primary key 4911 "primarykey" 4912 | 4913 ## A (stored) procedure 4914 "procedure" 4915 | 4916 ## A record 4917 "record" 4918 | 4919 ## A rule 4920 "rule" 4921 | 4922 ## The secondary key 4923 "secondarykey" 4924 | 4925 ## A table 4926 "table" 4927 | 4928 ## A user 4929 "user" 4930 | 4931 ## A view 4932 "view" 4933 db.database.class.attribute = 4934 4935 ## Identifies the class of database artifact 4936 attribute class { db.database.class.enumeration } 4937 db.database.role.attribute = attribute role { text } 4938 db.database.attlist = 4939 db.database.role.attribute? 4940 & db.common.attributes 4941 & db.common.linking.attributes 4942 & db.database.class.attribute? 4943 db.database = 4944 4945 ## The name of a database, or part of a database 4946 element database { db.database.attlist, db._text } 4947} 4948div { 4949 db.email.role.attribute = attribute role { text } 4950 db.email.attlist = 4951 db.email.role.attribute? 4952 & db.common.attributes 4953 & db.common.linking.attributes 4954 db.email = 4955 4956 ## An email address 4957 element email { db.email.attlist, db._text } 4958} 4959div { 4960 db.envar.role.attribute = attribute role { text } 4961 db.envar.attlist = 4962 db.envar.role.attribute? 4963 & db.common.attributes 4964 & db.common.linking.attributes 4965 db.envar = 4966 4967 ## A software environment variable 4968 element envar { db.envar.attlist, db._text } 4969} 4970div { 4971 db.errorcode.role.attribute = attribute role { text } 4972 db.errorcode.attlist = 4973 db.errorcode.role.attribute? 4974 & db.common.attributes 4975 & db.common.linking.attributes 4976 db.errorcode = 4977 4978 ## An error code 4979 element errorcode { db.errorcode.attlist, db._text } 4980} 4981div { 4982 db.errorname.role.attribute = attribute role { text } 4983 db.errorname.attlist = 4984 db.errorname.role.attribute? 4985 & db.common.attributes 4986 & db.common.linking.attributes 4987 db.errorname = 4988 4989 ## An error name 4990 element errorname { db.errorname.attlist, db._text } 4991} 4992div { 4993 db.errortext.role.attribute = attribute role { text } 4994 db.errortext.attlist = 4995 db.errortext.role.attribute? 4996 & db.common.attributes 4997 & db.common.linking.attributes 4998 db.errortext = 4999 5000 ## An error message. 5001 element errortext { db.errortext.attlist, db._text } 5002} 5003div { 5004 db.errortype.role.attribute = attribute role { text } 5005 db.errortype.attlist = 5006 db.errortype.role.attribute? 5007 & db.common.attributes 5008 & db.common.linking.attributes 5009 db.errortype = 5010 5011 ## The classification of an error message 5012 element errortype { db.errortype.attlist, db._text } 5013} 5014div { 5015 db.filename.class.enumeration = 5016 5017 ## A device 5018 "devicefile" 5019 | 5020 ## A directory 5021 "directory" 5022 | 5023 ## A filename extension 5024 "extension" 5025 | 5026 ## A header file (as for a programming language) 5027 "headerfile" 5028 | 5029 ## A library file 5030 "libraryfile" 5031 | 5032 ## A partition (as of a hard disk) 5033 "partition" 5034 | 5035 ## A symbolic link 5036 "symlink" 5037 db.filename.class.attribute = 5038 5039 ## Identifies the class of filename 5040 attribute class { db.filename.class.enumeration } 5041 db.filename.path.attribute = 5042 5043 ## Specifies the path of the filename 5044 attribute path { text } 5045 db.filename.role.attribute = attribute role { text } 5046 db.filename.attlist = 5047 db.filename.role.attribute? 5048 & db.common.attributes 5049 & db.common.linking.attributes 5050 & db.filename.path.attribute? 5051 & db.filename.class.attribute? 5052 db.filename = 5053 5054 ## The name of a file 5055 element filename { db.filename.attlist, db._text } 5056} 5057div { 5058 db.function.role.attribute = attribute role { text } 5059 db.function.attlist = 5060 db.function.role.attribute? 5061 & db.common.attributes 5062 & db.common.linking.attributes 5063 db.function = 5064 5065 ## The name of a function or subroutine, as in a programming language 5066 element function { db.function.attlist, db._text } 5067} 5068div { 5069 db.guibutton.role.attribute = attribute role { text } 5070 db.guibutton.attlist = 5071 db.guibutton.role.attribute? 5072 & db.common.attributes 5073 & db.common.linking.attributes 5074 db.guibutton = 5075 5076 ## The text on a button in a GUI 5077 element guibutton { 5078 db.guibutton.attlist, 5079 (db._text | db.accel | db.superscript | db.subscript)* 5080 } 5081} 5082div { 5083 db.guiicon.role.attribute = attribute role { text } 5084 db.guiicon.attlist = 5085 db.guiicon.role.attribute? 5086 & db.common.attributes 5087 & db.common.linking.attributes 5088 db.guiicon = 5089 5090 ## Graphic and/or text appearing as a icon in a GUI 5091 element guiicon { 5092 db.guiicon.attlist, 5093 (db._text | db.accel | db.superscript | db.subscript)* 5094 } 5095} 5096div { 5097 db.guilabel.role.attribute = attribute role { text } 5098 db.guilabel.attlist = 5099 db.guilabel.role.attribute? 5100 & db.common.attributes 5101 & db.common.linking.attributes 5102 db.guilabel = 5103 5104 ## The text of a label in a GUI 5105 element guilabel { 5106 db.guilabel.attlist, 5107 (db._text | db.accel | db.superscript | db.subscript)* 5108 } 5109} 5110div { 5111 db.guimenu.role.attribute = attribute role { text } 5112 db.guimenu.attlist = 5113 db.guimenu.role.attribute? 5114 & db.common.attributes 5115 & db.common.linking.attributes 5116 db.guimenu = 5117 5118 ## The name of a menu in a GUI 5119 element guimenu { 5120 db.guimenu.attlist, 5121 (db._text | db.accel | db.superscript | db.subscript)* 5122 } 5123} 5124div { 5125 db.guimenuitem.role.attribute = attribute role { text } 5126 db.guimenuitem.attlist = 5127 db.guimenuitem.role.attribute? 5128 & db.common.attributes 5129 & db.common.linking.attributes 5130 db.guimenuitem = 5131 5132 ## The name of a terminal menu item in a GUI 5133 element guimenuitem { 5134 db.guimenuitem.attlist, 5135 (db._text | db.accel | db.superscript | db.subscript)* 5136 } 5137} 5138div { 5139 db.guisubmenu.role.attribute = attribute role { text } 5140 db.guisubmenu.attlist = 5141 db.guisubmenu.role.attribute? 5142 & db.common.attributes 5143 & db.common.linking.attributes 5144 db.guisubmenu = 5145 5146 ## The name of a submenu in a GUI 5147 element guisubmenu { 5148 db.guisubmenu.attlist, 5149 (db._text | db.accel | db.superscript | db.subscript)* 5150 } 5151} 5152div { 5153 db.hardware.role.attribute = attribute role { text } 5154 db.hardware.attlist = 5155 db.hardware.role.attribute? 5156 & db.common.attributes 5157 & db.common.linking.attributes 5158 db.hardware = 5159 5160 ## A physical part of a computer system 5161 element hardware { db.hardware.attlist, db._text } 5162} 5163div { 5164 db.keycap.function.enumeration = 5165 5166 ## The "Alt" key 5167 "alt" 5168 | 5169 ## The "Backspace" key 5170 "backspace" 5171 | 5172 ## The "Command" key 5173 "command" 5174 | 5175 ## The "Control" key 5176 "control" 5177 | 5178 ## The "Delete" key 5179 "delete" 5180 | 5181 ## The down arrow 5182 "down" 5183 | 5184 ## The "End" key 5185 "end" 5186 | 5187 ## The "Enter" or "Return" key 5188 "enter" 5189 | 5190 ## The "Escape" key 5191 "escape" 5192 | 5193 ## The "Home" key 5194 "home" 5195 | 5196 ## The "Insert" key 5197 "insert" 5198 | 5199 ## The left arrow 5200 "left" 5201 | 5202 ## The "Meta" key 5203 "meta" 5204 | 5205 ## The "Option" key 5206 "option" 5207 | 5208 ## The page down key 5209 "pagedown" 5210 | 5211 ## The page up key 5212 "pageup" 5213 | 5214 ## The right arrow 5215 "right" 5216 | 5217 ## The "Shift" key 5218 "shift" 5219 | 5220 ## The spacebar 5221 "space" 5222 | 5223 ## The "Tab" key 5224 "tab" 5225 | 5226 ## The up arrow 5227 "up" 5228 db.keycap.function-enum.attribute = 5229 5230 ## Identifies the function key 5231 attribute function { db.keycap.function.enumeration }? 5232 db.keycap.function-other.attributes = 5233 5234 ## Identifies the function key 5235 attribute function { 5236 5237 ## Indicates a non-standard function key 5238 "other" 5239 }?, 5240 5241 ## Specifies a keyword that identifies the non-standard key 5242 attribute otherfunction { text } 5243 db.keycap.function.attrib = 5244 db.keycap.function-enum.attribute 5245 | db.keycap.function-other.attributes 5246 db.keycap.role.attribute = attribute role { text } 5247 db.keycap.attlist = 5248 db.keycap.role.attribute? 5249 & db.common.attributes 5250 & db.common.linking.attributes 5251 & db.keycap.function.attrib 5252 db.keycap = 5253 5254 ## The text printed on a key on a keyboard 5255 element keycap { db.keycap.attlist, db._text } 5256} 5257div { 5258 db.keycode.role.attribute = attribute role { text } 5259 db.keycode.attlist = 5260 db.keycode.role.attribute? 5261 & db.common.attributes 5262 & db.common.linking.attributes 5263 db.keycode = 5264 5265 ## The internal, frequently numeric, identifier for a key on a keyboard 5266 element keycode { db.keycode.attlist, db._text } 5267} 5268div { 5269 db.keycombo.action.enumeration = 5270 5271 ## A (single) mouse click. 5272 "click" 5273 | 5274 ## A double mouse click. 5275 "double-click" 5276 | 5277 ## A mouse or key press. 5278 "press" 5279 | 5280 ## Sequential clicks or presses. 5281 "seq" 5282 | 5283 ## Simultaneous clicks or presses. 5284 "simul" 5285 db.keycombo.action-enum.attribute = 5286 5287 ## Identifies the nature of the action taken. If keycombo 5288 ## contains more than one element, simul 5289 ## is the default, otherwise there is no default. 5290 attribute action { db.keycombo.action.enumeration }? 5291 db.keycombo.action-other.attributes = 5292 5293 ## Identifies the nature of the action taken 5294 attribute action { 5295 5296 ## Indicates a non-standard action 5297 "other" 5298 }?, 5299 5300 ## Identifies the non-standard action in some unspecified way. 5301 attribute otheraction { text } 5302 db.keycombo.action.attrib = 5303 db.keycombo.action-enum.attribute 5304 | db.keycombo.action-other.attributes 5305 db.keycombo.role.attribute = attribute role { text } 5306 db.keycombo.attlist = 5307 db.keycombo.role.attribute? 5308 & db.common.attributes 5309 & db.common.linking.attributes 5310 & db.keycombo.action.attrib 5311 db.keycombo = 5312 5313 ## A combination of input actions 5314 element keycombo { 5315 db.keycombo.attlist, 5316 (db.keycap | db.keycombo | db.keysym | db.mousebutton)+ 5317 } 5318} 5319div { 5320 db.keysym.role.attribute = attribute role { text } 5321 db.keysym.attlist = 5322 db.keysym.role.attribute? 5323 & db.common.attributes 5324 & db.common.linking.attributes 5325 db.keysym = 5326 5327 ## The symbolic name of a key on a keyboard 5328 element keysym { db.keysym.attlist, db._text } 5329} 5330div { 5331 db.lineannotation.role.attribute = attribute role { text } 5332 db.lineannotation.attlist = 5333 db.lineannotation.role.attribute? 5334 & db.common.attributes 5335 & db.common.linking.attributes 5336 db.lineannotation = 5337 5338 ## A comment on a line in a verbatim listing 5339 element lineannotation { db.lineannotation.attlist, db._text } 5340} 5341div { 5342 db.literal.role.attribute = attribute role { text } 5343 db.literal.attlist = 5344 db.literal.role.attribute? 5345 & db.common.attributes 5346 & db.common.linking.attributes 5347 db.literal = 5348 5349 ## Inline text that is some literal value 5350 element literal { db.literal.attlist, db._text } 5351} 5352div { 5353 code.language.attribute = 5354 5355 ## Identifies the (computer) language of the code fragment 5356 attribute language { text } 5357 db.code.role.attribute = attribute role { text } 5358 db.code.attlist = 5359 db.code.role.attribute? 5360 & db.common.attributes 5361 & db.common.linking.attributes 5362 & code.language.attribute? 5363 db.code = 5364 5365 ## An inline code fragment 5366 element code { db.code.attlist, db._text } 5367} 5368div { 5369 db.constant.class.attribute = 5370 5371 ## Identifies the class of constant 5372 attribute class { 5373 5374 ## The value is a limit of some kind 5375 "limit" 5376 } 5377 db.constant.role.attribute = attribute role { text } 5378 db.constant.attlist = 5379 db.constant.role.attribute? 5380 & db.common.attributes 5381 & db.common.linking.attributes 5382 & db.constant.class.attribute? 5383 db.constant = 5384 5385 ## A programming or system constant 5386 element constant { db.constant.attlist, db._text } 5387} 5388div { 5389 db.varname.role.attribute = attribute role { text } 5390 db.varname.attlist = 5391 db.varname.role.attribute? 5392 & db.common.attributes 5393 & db.common.linking.attributes 5394 db.varname = 5395 5396 ## The name of a variable 5397 element varname { db.varname.attlist, db._text } 5398} 5399div { 5400 db.markup.role.attribute = attribute role { text } 5401 db.markup.attlist = 5402 db.markup.role.attribute? 5403 & db.common.attributes 5404 & db.common.linking.attributes 5405 db.markup = 5406 5407 ## A string of formatting markup in text that is to be represented literally 5408 element markup { db.markup.attlist, db._text } 5409} 5410div { 5411 db.menuchoice.role.attribute = attribute role { text } 5412 db.menuchoice.attlist = 5413 db.menuchoice.role.attribute? 5414 & db.common.attributes 5415 & db.common.linking.attributes 5416 db.menuchoice = 5417 5418 ## A selection or series of selections from a menu 5419 element menuchoice { 5420 db.menuchoice.attlist, 5421 db.shortcut?, 5422 (db.guibutton 5423 | db.guiicon 5424 | db.guilabel 5425 | db.guimenu 5426 | db.guimenuitem 5427 | db.guisubmenu)+ 5428 } 5429} 5430div { 5431 db.shortcut.action.attrib = db.keycombo.action.attrib 5432 db.shortcut.role.attribute = attribute role { text } 5433 db.shortcut.attlist = 5434 db.shortcut.role.attribute? 5435 & db.common.attributes 5436 & db.common.linking.attributes 5437 & db.shortcut.action.attrib 5438 db.shortcut = 5439 5440 ## A key combination for an action that is also accessible through a menu 5441 element shortcut { 5442 db.shortcut.attlist, 5443 (db.keycap | db.keycombo | db.keysym | db.mousebutton)+ 5444 } 5445} 5446div { 5447 db.mousebutton.role.attribute = attribute role { text } 5448 db.mousebutton.attlist = 5449 db.mousebutton.role.attribute? 5450 & db.common.attributes 5451 & db.common.linking.attributes 5452 db.mousebutton = 5453 5454 ## The conventional name of a mouse button 5455 element mousebutton { db.mousebutton.attlist, db._text } 5456} 5457div { 5458 db.option.role.attribute = attribute role { text } 5459 db.option.attlist = 5460 db.option.role.attribute? 5461 & db.common.attributes 5462 & db.common.linking.attributes 5463 db.option = 5464 5465 ## An option for a software command 5466 element option { db.option.attlist, db._text } 5467} 5468div { 5469 db.optional.role.attribute = attribute role { text } 5470 db.optional.attlist = 5471 db.optional.role.attribute? 5472 & db.common.attributes 5473 & db.common.linking.attributes 5474 db.optional = 5475 5476 ## Optional information 5477 element optional { db.optional.attlist, db._text } 5478} 5479div { 5480 db.property.role.attribute = attribute role { text } 5481 db.property.attlist = 5482 db.property.role.attribute? 5483 & db.common.attributes 5484 & db.common.linking.attributes 5485 db.property = 5486 5487 ## A unit of data associated with some part of a computer system 5488 element property { db.property.attlist, db._text } 5489} 5490div { 5491 db.parameter.class.enumeration = 5492 5493 ## A command 5494 "command" 5495 | 5496 ## A function 5497 "function" 5498 | 5499 ## An option 5500 "option" 5501 db.parameter.class.attribute = 5502 5503 ## Identifies the class of parameter 5504 attribute class { db.parameter.class.enumeration } 5505 db.parameter.role.attribute = attribute role { text } 5506 db.parameter.attlist = 5507 db.parameter.role.attribute? 5508 & db.common.attributes 5509 & db.common.linking.attributes 5510 & db.parameter.class.attribute? 5511 db.parameter = 5512 5513 ## A value or a symbolic reference to a value 5514 element parameter { db.parameter.attlist, db._text } 5515} 5516db.prompt.inlines = db._text | db.co 5517div { 5518 db.prompt.role.attribute = attribute role { text } 5519 db.prompt.attlist = 5520 db.prompt.role.attribute? 5521 & db.common.attributes 5522 & db.common.linking.attributes 5523 db.prompt = 5524 5525 ## A character or string indicating the start of an input field in a computer display 5526 element prompt { db.prompt.attlist, db.prompt.inlines* } 5527} 5528db.replaceable.inlines = db._text | db.co 5529div { 5530 db.replaceable.class.enumeration = 5531 5532 ## A command 5533 "command" 5534 | 5535 ## A function 5536 "function" 5537 | 5538 ## An option 5539 "option" 5540 | 5541 ## A parameter 5542 "parameter" 5543 db.replaceable.class.attribute = 5544 5545 ## Identifies the nature of the replaceable text 5546 attribute class { db.replaceable.class.enumeration } 5547 db.replaceable.role.attribute = attribute role { text } 5548 db.replaceable.attlist = 5549 db.replaceable.role.attribute? 5550 & db.common.attributes 5551 & db.common.linking.attributes 5552 & db.replaceable.class.attribute? 5553 db.replaceable = 5554 5555 ## Content that may or must be replaced by the user 5556 element replaceable { 5557 db.replaceable.attlist, db.replaceable.inlines* 5558 } 5559} 5560div { 5561 db.returnvalue.role.attribute = attribute role { text } 5562 db.returnvalue.attlist = 5563 db.returnvalue.role.attribute? 5564 & db.common.attributes 5565 & db.common.linking.attributes 5566 db.returnvalue = 5567 5568 ## The value returned by a function 5569 element returnvalue { db.returnvalue.attlist, db._text } 5570} 5571div { 5572 db.tag.role.attribute = attribute role { text } 5573 db.tag.class.enumeration = 5574 5575 ## An attribute 5576 "attribute" 5577 | 5578 ## An attribute value 5579 "attvalue" 5580 | 5581 ## An element 5582 "element" 5583 | 5584 ## An empty element tag 5585 "emptytag" 5586 | 5587 ## An end tag 5588 "endtag" 5589 | 5590 ## A general entity 5591 "genentity" 5592 | 5593 ## A numeric character reference 5594 "numcharref" 5595 | 5596 ## A parameter entity 5597 "paramentity" 5598 | 5599 ## A processing instruction 5600 "pi" 5601 | 5602 ## An SGML comment 5603 "comment" 5604 | 5605 ## A start tag 5606 "starttag" 5607 | 5608 ## An XML processing instruction 5609 "xmlpi" 5610 db.tag.class.attribute = 5611 5612 ## Identifies the nature of the tag content 5613 attribute class { db.tag.class.enumeration } 5614 db.tag.namespace.attribute = 5615 5616 ## Identifies the namespace of the tag content 5617 attribute namespace { xsd:anyURI } 5618 db.tag.attlist = 5619 db.tag.role.attribute? 5620 & db.common.attributes 5621 & db.common.linking.attributes 5622 & db.tag.class.attribute? 5623 & db.tag.namespace.attribute? 5624 db.tag = 5625 5626 ## A component of XML (or SGML) markup 5627 element tag { db.tag.attlist, db._text } 5628} 5629div { 5630 db.symbol.class.attribute = 5631 5632 ## Identifies the class of symbol 5633 attribute class { 5634 5635 ## The value is a limit of some kind 5636 "limit" 5637 } 5638 db.symbol.role.attribute = attribute role { text } 5639 db.symbol.attlist = 5640 db.symbol.role.attribute? 5641 & db.common.attributes 5642 & db.common.linking.attributes 5643 & db.symbol.class.attribute? 5644 db.symbol = 5645 5646 ## A name that is replaced by a value before processing 5647 element symbol { db.symbol.attlist, db._text } 5648} 5649db.systemitem.inlines = db._text | db.co 5650div { 5651 db.systemitem.class.enumeration = 5652 5653 ## A daemon or other system process (syslogd) 5654 "daemon" 5655 | 5656 ## A domain name (example.com) 5657 "domainname" 5658 | 5659 ## An ethernet address (00:05:4E:49:FD:8E) 5660 "etheraddress" 5661 | 5662 ## An event of some sort (SIGHUP) 5663 "event" 5664 | 5665 ## An event handler of some sort (hangup) 5666 "eventhandler" 5667 | 5668 ## A filesystem (ext3) 5669 "filesystem" 5670 | 5671 ## A fully qualified domain name (my.example.com) 5672 "fqdomainname" 5673 | 5674 ## A group name (wheel) 5675 "groupname" 5676 | 5677 ## An IP address (127.0.0.1) 5678 "ipaddress" 5679 | 5680 ## A library (libncurses) 5681 "library" 5682 | 5683 ## A macro 5684 "macro" 5685 | 5686 ## A netmask (255.255.255.192) 5687 "netmask" 5688 | 5689 ## A newsgroup (comp.text.xml) 5690 "newsgroup" 5691 | 5692 ## An operating system name (Hurd) 5693 "osname" 5694 | 5695 ## A process (gnome-cups-icon) 5696 "process" 5697 | 5698 ## A protocol (ftp) 5699 "protocol" 5700 | 5701 ## A resource 5702 "resource" 5703 | 5704 ## A server (mail.example.com) 5705 "server" 5706 | 5707 ## A service (ppp) 5708 "service" 5709 | 5710 ## A system name (hephaistos) 5711 "systemname" 5712 | 5713 ## A user name (ndw) 5714 "username" 5715 db.systemitem.class.attribute = 5716 5717 ## Identifies the nature of the system item 5718 attribute class { db.systemitem.class.enumeration } 5719 db.systemitem.role.attribute = attribute role { text } 5720 db.systemitem.attlist = 5721 db.systemitem.role.attribute? 5722 & db.common.attributes 5723 & db.common.linking.attributes 5724 & db.systemitem.class.attribute? 5725 db.systemitem = 5726 5727 ## A system-related item or term 5728 element systemitem { db.systemitem.attlist, db.systemitem.inlines* } 5729} 5730div { 5731 db.uri.type.attribute = 5732 5733 ## Identifies the type of URI specified 5734 attribute type { text }? 5735 db.uri.role.attribute = attribute role { text } 5736 db.uri.attlist = 5737 db.uri.role.attribute? 5738 & db.common.attributes 5739 & db.common.linking.attributes 5740 & db.uri.type.attribute 5741 db.uri = 5742 5743 ## A Uniform Resource Identifier 5744 element uri { db.uri.attlist, db._text } 5745} 5746div { 5747 db.token.role.attribute = attribute role { text } 5748 db.token.attlist = 5749 db.token.role.attribute? 5750 & db.common.attributes 5751 & db.common.linking.attributes 5752 db.token = 5753 5754 ## A unit of information 5755 element token { db.token.attlist, db._text } 5756} 5757div { 5758 db.type.role.attribute = attribute role { text } 5759 db.type.attlist = 5760 db.type.role.attribute? 5761 & db.common.attributes 5762 & db.common.linking.attributes 5763 db.type = 5764 5765 ## The classification of a value 5766 element type { db.type.attlist, db._text } 5767} 5768db.userinput.inlines = 5769 (text 5770 | db.ubiq.inlines 5771 | db.os.inlines 5772 | db.technical.inlines 5773 | db.markup.inlines) 5774 | db.co 5775div { 5776 db.userinput.role.attribute = attribute role { text } 5777 db.userinput.attlist = 5778 db.userinput.role.attribute? 5779 & db.common.attributes 5780 & db.common.linking.attributes 5781 db.userinput = 5782 5783 ## Data entered by the user 5784 element userinput { db.userinput.attlist, db.userinput.inlines* } 5785} 5786div { 5787 db.abbrev.role.attribute = attribute role { text } 5788 db.abbrev.attlist = 5789 db.abbrev.role.attribute? 5790 & db.common.attributes 5791 & db.common.linking.attributes 5792 db.abbrev = 5793 5794 ## An abbreviation, especially one followed by a period 5795 element abbrev { 5796 db.abbrev.attlist, 5797 (db._text | db.superscript | db.subscript | db.trademark)* 5798 } 5799} 5800div { 5801 db.acronym.role.attribute = attribute role { text } 5802 db.acronym.attlist = 5803 db.acronym.role.attribute? 5804 & db.common.attributes 5805 & db.common.linking.attributes 5806 db.acronym = 5807 5808 ## An often pronounceable word made from the initial (or selected) letters of a name or phrase 5809 element acronym { 5810 db.acronym.attlist, 5811 (db._text | db.superscript | db.subscript | db.trademark)* 5812 } 5813} 5814div { 5815 db.citation.role.attribute = attribute role { text } 5816 db.citation.attlist = 5817 db.citation.role.attribute? 5818 & db.common.attributes 5819 & db.common.linking.attributes 5820 db.citation = 5821 5822 ## An inline bibliographic reference to another published work 5823 element citation { db.citation.attlist, db.all.inlines* } 5824} 5825div { 5826 db.citerefentry.role.attribute = attribute role { text } 5827 db.citerefentry.attlist = 5828 db.citerefentry.role.attribute? 5829 & db.common.attributes 5830 & db.common.linking.attributes 5831 db.citerefentry = 5832 5833 ## A citation to a reference page 5834 element citerefentry { 5835 db.citerefentry.attlist, db.refentrytitle, db.manvolnum? 5836 } 5837} 5838div { 5839 db.refentrytitle.role.attribute = attribute role { text } 5840 db.refentrytitle.attlist = 5841 db.refentrytitle.role.attribute? 5842 & db.common.attributes 5843 & db.common.linking.attributes 5844 db.refentrytitle = 5845 5846 ## The title of a reference page 5847 element refentrytitle { db.refentrytitle.attlist, db.all.inlines* } 5848} 5849div { 5850 db.manvolnum.role.attribute = attribute role { text } 5851 db.manvolnum.attlist = 5852 db.manvolnum.role.attribute? 5853 & db.common.attributes 5854 & db.common.linking.attributes 5855 db.manvolnum = 5856 5857 ## A reference volume number 5858 element manvolnum { db.manvolnum.attlist, db._text } 5859} 5860div { 5861 db.citetitle.pubwork.enumeration = 5862 5863 ## An article 5864 "article" 5865 | 5866 ## A bulletin board system 5867 "bbs" 5868 | 5869 ## A book 5870 "book" 5871 | 5872 ## A CD-ROM 5873 "cdrom" 5874 | 5875 ## A chapter (as of a book) 5876 "chapter" 5877 | 5878 ## A DVD 5879 "dvd" 5880 | 5881 ## An email message 5882 "emailmessage" 5883 | 5884 ## A gopher page 5885 "gopher" 5886 | 5887 ## A journal 5888 "journal" 5889 | 5890 ## A manuscript 5891 "manuscript" 5892 | 5893 ## A posting to a newsgroup 5894 "newsposting" 5895 | 5896 ## A part (as of a book) 5897 "part" 5898 | 5899 ## A reference entry 5900 "refentry" 5901 | 5902 ## A section (as of a book or article) 5903 "section" 5904 | 5905 ## A series 5906 "series" 5907 | 5908 ## A set (as of books) 5909 "set" 5910 | 5911 ## A web page 5912 "webpage" 5913 | 5914 ## A wiki page 5915 "wiki" 5916 db.citetitle.pubwork.attribute = 5917 5918 ## Identifies the nature of the publication being cited 5919 attribute pubwork { db.citetitle.pubwork.enumeration } 5920 db.citetitle.role.attribute = attribute role { text } 5921 db.citetitle.attlist = 5922 db.citetitle.role.attribute? 5923 & db.common.attributes 5924 & db.common.linking.attributes 5925 & db.citetitle.pubwork.attribute? 5926 db.citetitle = 5927 5928 ## The title of a cited work 5929 element citetitle { db.citetitle.attlist, db.all.inlines* } 5930} 5931div { 5932 db.emphasis.role.attribute = attribute role { text } 5933 db.emphasis.attlist = 5934 db.emphasis.role.attribute? 5935 & db.common.attributes 5936 & db.common.linking.attributes 5937 db.emphasis = 5938 5939 ## Emphasized text 5940 element emphasis { db.emphasis.attlist, db.all.inlines* } 5941} 5942div { 5943 db._emphasis = 5944 5945 ## A limited span of emphasized text 5946 element emphasis { db.emphasis.attlist, (db._text | db._emphasis)* } 5947} 5948div { 5949 db.foreignphrase.role.attribute = attribute role { text } 5950 db.foreignphrase.attlist = 5951 db.foreignphrase.role.attribute? 5952 & db.common.attributes 5953 & db.common.linking.attributes 5954 db.foreignphrase = 5955 5956 ## A word or phrase in a language other than the primary language of the document 5957 element foreignphrase { 5958 db.foreignphrase.attlist, (text | db.general.inlines)* 5959 } 5960} 5961div { 5962 db.phrase.role.attribute = attribute role { text } 5963 db.phrase.attlist = 5964 db.phrase.role.attribute? 5965 & db.common.attributes 5966 & db.common.linking.attributes 5967 db.phrase = 5968 5969 ## A span of text 5970 element phrase { db.phrase.attlist, db.all.inlines* } 5971} 5972div { 5973 db._phrase = 5974 5975 ## A limited span of text 5976 element phrase { db.phrase.attlist, db._text } 5977} 5978div { 5979 db.quote.role.attribute = attribute role { text } 5980 db.quote.attlist = 5981 db.quote.role.attribute? 5982 & db.common.attributes 5983 & db.common.linking.attributes 5984 db.quote = 5985 5986 ## An inline quotation 5987 element quote { db.quote.attlist, db.all.inlines* } 5988} 5989div { 5990 db.subscript.role.attribute = attribute role { text } 5991 db.subscript.attlist = 5992 db.subscript.role.attribute? 5993 & db.common.attributes 5994 & db.common.linking.attributes 5995 db.subscript = 5996 5997 ## A subscript (as in H2 5998 ## O, the molecular formula for water) 5999 element subscript { db.subscript.attlist, db._text } 6000} 6001div { 6002 db.superscript.role.attribute = attribute role { text } 6003 db.superscript.attlist = 6004 db.superscript.role.attribute? 6005 & db.common.attributes 6006 & db.common.linking.attributes 6007 db.superscript = 6008 6009 ## A superscript (as in x^2, the mathematical notation for x multiplied by itself) 6010 element superscript { db.superscript.attlist, db._text } 6011} 6012div { 6013 db.trademark.class.enumeration = 6014 6015 ## A copyright 6016 "copyright" 6017 | 6018 ## A registered copyright 6019 "registered" 6020 | 6021 ## A service 6022 "service" 6023 | 6024 ## A trademark 6025 "trade" 6026 db.trademark.class.attribute = 6027 6028 ## Identifies the class of trade mark 6029 attribute class { db.trademark.class.enumeration } 6030 db.trademark.role.attribute = attribute role { text } 6031 db.trademark.attlist = 6032 db.trademark.role.attribute? 6033 & db.common.attributes 6034 & db.common.linking.attributes 6035 & db.trademark.class.attribute? 6036 db.trademark = 6037 6038 ## A trademark 6039 element trademark { db.trademark.attlist, db._text } 6040} 6041div { 6042 db.wordasword.role.attribute = attribute role { text } 6043 db.wordasword.attlist = 6044 db.wordasword.role.attribute? 6045 & db.common.attributes 6046 & db.common.linking.attributes 6047 db.wordasword = 6048 6049 ## A word meant specifically as a word and not representing anything else 6050 element wordasword { db.wordasword.attlist, db._text } 6051} 6052div { 6053 db.footnoteref.role.attribute = attribute role { text } 6054 db.footnoteref.label.attribute = db.label.attribute 6055 db.footnoteref.attlist = 6056 db.footnoteref.role.attribute? 6057 & db.common.attributes 6058 & db.linkend.attribute 6059 & db.footnoteref.label.attribute? 6060 db.footnoteref = 6061 6062 ## A cross reference to a footnote (a footnote mark) 6063 [ 6064 s:pattern [ 6065 name = "Footnote reference type constraint" 6066 "\x{a}" ~ 6067 " " 6068 s:rule [ 6069 context = "db:footnoteref" 6070 "\x{a}" ~ 6071 " " 6072 s:assert [ 6073 test = 6074 "local-name(//*[@id=current()/@linkend]) = 'footnote' and namespace-uri(//*[@id=current()/@linkend]) = 'http://docbook.org/ns/docbook'" 6075 "@linkend on footnoteref must point to a footnote." 6076 ] 6077 "\x{a}" ~ 6078 " " 6079 ] 6080 "\x{a}" ~ 6081 " " 6082 ] 6083 ] 6084 element footnoteref { db.footnoteref.attlist, empty } 6085} 6086div { 6087 db.xref.role.attribute = attribute role { text } 6088 db.xref.xrefstyle.attribute = db.xrefstyle.attribute 6089 db.xref.endterm.attribute = db.endterm.attribute 6090 db.xref.attlist = 6091 db.xref.role.attribute? 6092 & db.common.attributes 6093 & db.common.req.linking.attributes 6094 & db.xref.xrefstyle.attribute? 6095 & db.xref.endterm.attribute? 6096 db.xref = 6097 6098 ## A cross reference to another part of the document 6099 element xref { db.xref.attlist, empty } 6100} 6101div { 6102 db.link.role.attribute = attribute role { text } 6103 db.link.xrefstyle.attribute = db.xrefstyle.attribute 6104 db.link.endterm.attribute = db.endterm.attribute 6105 db.link.attlist = 6106 db.link.role.attribute? 6107 & db.common.attributes 6108 & db.common.req.linking.attributes 6109 & db.link.xrefstyle.attribute? 6110 & db.link.endterm.attribute? 6111 db.link = 6112 6113 ## A hypertext link 6114 element link { db.link.attlist, db.all.inlines* } 6115} 6116div { 6117 db.olink.role.attribute = attribute role { text } 6118 db.olink.xrefstyle.attribute = db.xrefstyle.attribute 6119 db.olink.localinfo.attribute = 6120 6121 ## Holds additional information that may be used by the applicatoin when resolving the link 6122 attribute localinfo { text } 6123 db.olink.targetdoc.attribute = 6124 6125 ## Specifies the URI of the document in which the link target appears 6126 attribute targetdoc { xsd:anyURI } 6127 db.olink.targetptr.attribute = 6128 6129 ## Specifies the location of the link target in the document 6130 attribute targetptr { text } 6131 db.olink.type.attribute = 6132 6133 ## Identifies application-specific customization of the link behavior 6134 attribute type { text } 6135 db.olink.attlist = 6136 db.common.attributes 6137 & db.olink.targetdoc.attribute 6138 & db.olink.role.attribute? 6139 & db.olink.xrefstyle.attribute? 6140 & db.olink.localinfo.attribute? 6141 & db.olink.targetptr.attribute? 6142 & db.olink.type.attribute? 6143 db.olink = 6144 6145 ## A link that addresses its target indirectly 6146 element olink { db.olink.attlist, db.all.inlines* } 6147} 6148div { 6149 db.anchor.role.attribute = attribute role { text } 6150 db.anchor.attlist = 6151 db.anchor.role.attribute? & db.common.idreq.attributes 6152 db.anchor = 6153 6154 ## A spot in the document 6155 element anchor { db.anchor.attlist, empty } 6156} 6157div { 6158 db.alt.role.attribute = attribute role { text } 6159 db.alt.attlist = db.alt.role.attribute? & db.common.attributes 6160 db.alt = 6161 6162 ## A text-only annotation, often used for accessibility 6163 element alt { db.alt.attlist, (text | db.inlinemediaobject)* } 6164} 6165db.annotations.attribute = 6166 6167 ## Identifies one or more annotations that apply to this element 6168 attribute annotations { text } 6169div { 6170 db.annotation.role.attribute = attribute role { text } 6171 db.annotation.annotates.attribute = 6172 6173 ## Identifies one ore more elements to which this annotation applies 6174 attribute annotates { text } 6175 db.annotation.attlist = 6176 db.annotation.role.attribute? 6177 & db.annotation.annotates.attribute? 6178 & db.common.attributes 6179 db.annotation.info = db._info.title.only 6180 db.annotation = 6181 6182 ## An annotation 6183 [ 6184 s:pattern [ 6185 name = "Element exclusion" 6186 "\x{a}" ~ 6187 " " 6188 s:rule [ 6189 context = "db:annotation" 6190 "\x{a}" ~ 6191 " " 6192 s:assert [ 6193 test = "not(.//db:annotation)" 6194 "annotation must not occur in the descendants of annotation" 6195 ] 6196 "\x{a}" ~ 6197 " " 6198 ] 6199 "\x{a}" ~ 6200 " " 6201 ] 6202 ] 6203 element annotation { 6204 db.annotation.attlist, db.annotation.info, db.all.blocks+ 6205 } 6206} 6207db.xlink.from.attribute = 6208 6209 ## Specifies the XLink traversal-from 6210 attribute xlink:from { xsd:NMTOKEN }? 6211db.xlink.label.attribute = 6212 6213 ## Specifies the XLink label 6214 attribute xlink:label { xsd:NMTOKEN }? 6215db.xlink.to.attribute = 6216 6217 ## Specifies the XLink traversal-to 6218 attribute xlink:to { xsd:NMTOKEN }? 6219div { 6220 db.extendedlink.role.attribute = attribute role { text } 6221 db.extendedlink.attlist = 6222 db.extendedlink.role.attribute? 6223 & db.common.attributes 6224 & 6225 ## Identifies the XLink link type 6226 [ a:defaultValue = "extended" ] 6227 attribute xlink:type { 6228 6229 ## An XLink extended link 6230 "extended" 6231 }? 6232 & db.xlink.role.attribute? 6233 & db.xlink.title.attribute? 6234 db.extendedlink = 6235 6236 ## An XLink extended link 6237 element extendedlink { 6238 db.extendedlink.attlist, (db.locator | db.arc)+ 6239 } 6240} 6241div { 6242 db.locator.role.attribute = attribute role { text } 6243 db.locator.attlist = 6244 db.locator.role.attribute? 6245 & db.common.attributes 6246 & 6247 ## Identifies the XLink link type 6248 [ a:defaultValue = "locator" ] 6249 attribute xlink:type { 6250 6251 ## An XLink locator link 6252 "locator" 6253 }? 6254 & db.xlink.href.attribute 6255 & db.xlink.role.attribute? 6256 & db.xlink.title.attribute? 6257 & db.xlink.label.attribute? 6258 db.locator = 6259 6260 ## An XLink locator in an extendedlink 6261 element locator { db.locator.attlist, empty } 6262} 6263div { 6264 db.arc.role.attribute = attribute role { text } 6265 db.arc.attlist = 6266 db.arc.role.attribute? 6267 & db.common.attributes 6268 & 6269 ## Identifies the XLink link type 6270 [ a:defaultValue = "arc" ] 6271 attribute xlink:type { 6272 6273 ## An XLink arc link 6274 "arc" 6275 }? 6276 & db.xlink.arcrole.attribute? 6277 & db.xlink.title.attribute? 6278 & db.xlink.show.attribute? 6279 & db.xlink.actuate.attribute? 6280 & db.xlink.from.attribute? 6281 & db.xlink.to.attribute? 6282 db.arc = 6283 6284 ## An XLink arc in an extendedlink 6285 element arc { db.arc.attlist, empty } 6286} 6287db.status.attribute = 6288 6289 ## Identifies the editorial or publication status of the element on which it occurs 6290 attribute status { text } 6291db.toplevel.sections = 6292 ((db.section+, db.simplesect*) | db.simplesect+) 6293 | (db.sect1+, db.simplesect*) 6294 | db.refentry+ 6295db.toplevel.blocks.or.sections = 6296 (db.all.blocks+, db.toplevel.sections?) | db.toplevel.sections 6297db.recursive.sections = 6298 ((db.section+, db.simplesect*) | db.simplesect+) 6299 | db.refentry+ 6300db.recursive.blocks.or.sections = 6301 (db.all.blocks+, db.recursive.sections?) | db.recursive.sections 6302db.divisions = db.part | db.reference 6303db.components = 6304 db.dedication 6305 | db.preface 6306 | db.chapter 6307 | db.appendix 6308 | db.article 6309 | db.colophon 6310db.navigation.components = 6311 notAllowed | db.glossary | db.bibliography | db.index | db.toc 6312db.component.contentmodel = 6313 db.navigation.components*, 6314 db.toplevel.blocks.or.sections, 6315 db.navigation.components* 6316db.setindex.components = notAllowed | db.setindex 6317db.toc.components = notAllowed | db.toc 6318db.set.components = db.set | db.book 6319div { 6320 db.set.status.attribute = db.status.attribute 6321 db.set.role.attribute = attribute role { text } 6322 db.set.attlist = 6323 db.set.role.attribute? 6324 & db.common.attributes 6325 & db.common.linking.attributes 6326 & db.label.attribute? 6327 & db.set.status.attribute? 6328 db.set.info = db._info.title.req 6329 db.set = 6330 6331 ## A collection of books 6332 [ 6333 s:pattern [ 6334 name = "Root must have version" 6335 "\x{a}" ~ 6336 " " 6337 s:rule [ 6338 context = "/db:set" 6339 "\x{a}" ~ 6340 " " 6341 s:assert [ 6342 test = "@version" 6343 "The root element must have a version attribute." 6344 ] 6345 "\x{a}" ~ 6346 " " 6347 ] 6348 "\x{a}" ~ 6349 " " 6350 ] 6351 ] 6352 element set { 6353 db.set.attlist, 6354 db.set.info, 6355 db.toc.components?, 6356 db.set.components+, 6357 db.setindex.components? 6358 } 6359} 6360div { 6361 db.book.status.attribute = db.status.attribute 6362 db.book.role.attribute = attribute role { text } 6363 db.book.attlist = 6364 db.book.role.attribute? 6365 & db.common.attributes 6366 & db.common.linking.attributes 6367 & db.label.attribute? 6368 & db.book.status.attribute? 6369 db.book.info = db._info.title.req 6370 db.book = 6371 6372 ## A book 6373 [ 6374 s:pattern [ 6375 name = "Root must have version" 6376 "\x{a}" ~ 6377 " " 6378 s:rule [ 6379 context = "/db:book" 6380 "\x{a}" ~ 6381 " " 6382 s:assert [ 6383 test = "@version" 6384 "The root element must have a version attribute." 6385 ] 6386 "\x{a}" ~ 6387 " " 6388 ] 6389 "\x{a}" ~ 6390 " " 6391 ] 6392 ] 6393 element book { 6394 db.book.attlist, 6395 db.book.info, 6396 (db.navigation.components | db.components | db.divisions)+ 6397 } 6398} 6399div { 6400 db.dedication.status.attribute = db.status.attribute 6401 db.dedication.role.attribute = attribute role { text } 6402 db.dedication.attlist = 6403 db.dedication.role.attribute? 6404 & db.common.attributes 6405 & db.common.linking.attributes 6406 & db.label.attribute? 6407 & db.dedication.status.attribute? 6408 db.dedication.info = db._info 6409 db.dedication = 6410 6411 ## A wrapper for the dedication section of a book 6412 [ 6413 s:pattern [ 6414 name = "Root must have version" 6415 "\x{a}" ~ 6416 " " 6417 s:rule [ 6418 context = "/db:dedication" 6419 "\x{a}" ~ 6420 " " 6421 s:assert [ 6422 test = "@version" 6423 "The root element must have a version attribute." 6424 ] 6425 "\x{a}" ~ 6426 " " 6427 ] 6428 "\x{a}" ~ 6429 " " 6430 ] 6431 ] 6432 element dedication { 6433 db.dedication.attlist, db.dedication.info, db.all.blocks+ 6434 } 6435} 6436div { 6437 db.colophon.status.attribute = db.status.attribute 6438 db.colophon.role.attribute = attribute role { text } 6439 db.colophon.attlist = 6440 db.colophon.role.attribute? 6441 & db.common.attributes 6442 & db.common.linking.attributes 6443 & db.label.attribute? 6444 & db.colophon.status.attribute? 6445 db.colophon.info = db._info 6446 db.colophon = 6447 6448 ## Text at the back of a book describing facts about its production 6449 [ 6450 s:pattern [ 6451 name = "Root must have version" 6452 "\x{a}" ~ 6453 " " 6454 s:rule [ 6455 context = "/db:colophon" 6456 "\x{a}" ~ 6457 " " 6458 s:assert [ 6459 test = "@version" 6460 "The root element must have a version attribute." 6461 ] 6462 "\x{a}" ~ 6463 " " 6464 ] 6465 "\x{a}" ~ 6466 " " 6467 ] 6468 ] 6469 element colophon { 6470 db.colophon.attlist, db.colophon.info, db.all.blocks+ 6471 } 6472} 6473div { 6474 db.appendix.status.attribute = db.status.attribute 6475 db.appendix.role.attribute = attribute role { text } 6476 db.appendix.attlist = 6477 db.appendix.role.attribute? 6478 & db.common.attributes 6479 & db.common.linking.attributes 6480 & db.label.attribute? 6481 & db.appendix.status.attribute? 6482 db.appendix.info = db._info.title.req 6483 db.appendix = 6484 6485 ## An appendix in a Book or Article 6486 [ 6487 s:pattern [ 6488 name = "Root must have version" 6489 "\x{a}" ~ 6490 " " 6491 s:rule [ 6492 context = "/db:appendix" 6493 "\x{a}" ~ 6494 " " 6495 s:assert [ 6496 test = "@version" 6497 "The root element must have a version attribute." 6498 ] 6499 "\x{a}" ~ 6500 " " 6501 ] 6502 "\x{a}" ~ 6503 " " 6504 ] 6505 ] 6506 element appendix { 6507 db.appendix.attlist, db.appendix.info, db.component.contentmodel 6508 } 6509} 6510div { 6511 db.chapter.status.attribute = db.status.attribute 6512 db.chapter.role.attribute = attribute role { text } 6513 db.chapter.attlist = 6514 db.chapter.role.attribute? 6515 & db.common.attributes 6516 & db.common.linking.attributes 6517 & db.label.attribute? 6518 & db.chapter.status.attribute? 6519 db.chapter.info = db._info.title.req 6520 db.chapter = 6521 6522 ## A chapter, as of a book 6523 [ 6524 s:pattern [ 6525 name = "Root must have version" 6526 "\x{a}" ~ 6527 " " 6528 s:rule [ 6529 context = "/db:chapter" 6530 "\x{a}" ~ 6531 " " 6532 s:assert [ 6533 test = "@version" 6534 "The root element must have a version attribute." 6535 ] 6536 "\x{a}" ~ 6537 " " 6538 ] 6539 "\x{a}" ~ 6540 " " 6541 ] 6542 ] 6543 element chapter { 6544 db.chapter.attlist, db.chapter.info, db.component.contentmodel 6545 } 6546} 6547db.part.components = 6548 (db.navigation.components | db.components) 6549 | (db.refentry | db.reference) 6550div { 6551 db.part.status.attribute = db.status.attribute 6552 db.part.role.attribute = attribute role { text } 6553 db.part.attlist = 6554 db.part.role.attribute? 6555 & db.common.attributes 6556 & db.common.linking.attributes 6557 & db.label.attribute? 6558 & db.part.status.attribute? 6559 db.part.info = db._info.title.req 6560 db.part = 6561 6562 ## A division in a book 6563 [ 6564 s:pattern [ 6565 name = "Root must have version" 6566 "\x{a}" ~ 6567 " " 6568 s:rule [ 6569 context = "/db:part" 6570 "\x{a}" ~ 6571 " " 6572 s:assert [ 6573 test = "@version" 6574 "The root element must have a version attribute." 6575 ] 6576 "\x{a}" ~ 6577 " " 6578 ] 6579 "\x{a}" ~ 6580 " " 6581 ] 6582 ] 6583 element part { 6584 db.part.attlist, db.part.info, db.partintro?, db.part.components+ 6585 } 6586} 6587div { 6588 db.preface.status.attribute = db.status.attribute 6589 db.preface.role.attribute = attribute role { text } 6590 db.preface.attlist = 6591 db.preface.role.attribute? 6592 & db.common.attributes 6593 & db.common.linking.attributes 6594 & db.label.attribute? 6595 & db.preface.status.attribute? 6596 db.preface.info = db._info.title.req 6597 db.preface = 6598 6599 ## Introductory matter preceding the first chapter of a book 6600 [ 6601 s:pattern [ 6602 name = "Root must have version" 6603 "\x{a}" ~ 6604 " " 6605 s:rule [ 6606 context = "/db:preface" 6607 "\x{a}" ~ 6608 " " 6609 s:assert [ 6610 test = "@version" 6611 "The root element must have a version attribute." 6612 ] 6613 "\x{a}" ~ 6614 " " 6615 ] 6616 "\x{a}" ~ 6617 " " 6618 ] 6619 ] 6620 element preface { 6621 db.preface.attlist, db.preface.info, db.component.contentmodel 6622 } 6623} 6624div { 6625 db.partintro.status.attribute = db.status.attribute 6626 db.partintro.role.attribute = attribute role { text } 6627 db.partintro.attlist = 6628 db.partintro.role.attribute? 6629 & db.common.attributes 6630 & db.common.linking.attributes 6631 & db.label.attribute? 6632 & db.partintro.status.attribute? 6633 db.partintro.info = db._info 6634 db.partintro = 6635 6636 ## An introduction to the contents of a part 6637 element partintro { 6638 db.partintro.attlist, 6639 db.partintro.info, 6640 db.toplevel.blocks.or.sections 6641 } 6642} 6643div { 6644 db.section.status.attribute = db.status.attribute 6645 db.section.role.attribute = attribute role { text } 6646 db.section.attlist = 6647 db.section.role.attribute? 6648 & db.common.attributes 6649 & db.common.linking.attributes 6650 & db.label.attribute? 6651 & db.section.status.attribute? 6652 db.section.info = db._info.title.req 6653 db.section = 6654 6655 ## A recursive section 6656 [ 6657 s:pattern [ 6658 name = "Root must have version" 6659 "\x{a}" ~ 6660 " " 6661 s:rule [ 6662 context = "/db:section" 6663 "\x{a}" ~ 6664 " " 6665 s:assert [ 6666 test = "@version" 6667 "The root element must have a version attribute." 6668 ] 6669 "\x{a}" ~ 6670 " " 6671 ] 6672 "\x{a}" ~ 6673 " " 6674 ] 6675 ] 6676 element section { 6677 db.section.attlist, 6678 db.section.info, 6679 db.recursive.blocks.or.sections, 6680 db.navigation.components* 6681 } 6682} 6683div { 6684 db.simplesect.status.attribute = db.status.attribute 6685 db.simplesect.role.attribute = attribute role { text } 6686 db.simplesect.attlist = 6687 db.simplesect.role.attribute? 6688 & db.common.attributes 6689 & db.common.linking.attributes 6690 & db.label.attribute? 6691 & db.simplesect.status.attribute? 6692 db.simplesect.info = db._info.title.req 6693 db.simplesect = 6694 6695 ## A section of a document with no subdivisions 6696 element simplesect { 6697 db.simplesect.attlist, db.simplesect.info, db.all.blocks+ 6698 } 6699} 6700div { 6701 db.ackno.role.attribute = attribute role { text } 6702 db.ackno.attlist = 6703 db.ackno.role.attribute? 6704 & db.common.attributes 6705 & db.common.linking.attributes 6706 db.ackno = 6707 6708 ## Acknowledgements in an Article 6709 element ackno { db.ackno.attlist, db.para.blocks+ } 6710} 6711db.article.components = db.toplevel.sections 6712div { 6713 db.article.status.attribute = db.status.attribute 6714 db.article.class.enumeration = 6715 6716 ## A collection of frequently asked questions. 6717 "faq" 6718 | 6719 ## An article in a journal or other periodical. 6720 "journalarticle" 6721 | 6722 ## A description of a product. 6723 "productsheet" 6724 | 6725 ## A specification. 6726 "specification" 6727 | 6728 ## A technical report. 6729 "techreport" 6730 | 6731 ## A white paper. 6732 "whitepaper" 6733 db.article.class.attribute = 6734 6735 ## Identifies the nature of the article 6736 attribute class { db.article.class.enumeration } 6737 db.article.role.attribute = attribute role { text } 6738 db.article.attlist = 6739 db.article.role.attribute? 6740 & db.common.attributes 6741 & db.common.linking.attributes 6742 & db.label.attribute? 6743 & db.article.status.attribute? 6744 & db.article.class.attribute? 6745 db.article.info = db._info.title.req 6746 db.article = 6747 6748 ## An article 6749 [ 6750 s:pattern [ 6751 name = "Root must have version" 6752 "\x{a}" ~ 6753 " " 6754 s:rule [ 6755 context = "/db:article" 6756 "\x{a}" ~ 6757 " " 6758 s:assert [ 6759 test = "@version" 6760 "The root element must have a version attribute." 6761 ] 6762 "\x{a}" ~ 6763 " " 6764 ] 6765 "\x{a}" ~ 6766 " " 6767 ] 6768 ] 6769 element article { 6770 db.article.attlist, 6771 db.article.info, 6772 db.navigation.components*, 6773 ((db.all.blocks+, db.article.components?) 6774 | db.article.components), 6775 (db.appendix | db.navigation.components | db.ackno | db.colophon)* 6776 } 6777} 6778db.sect1.sections = (db.sect2+, db.simplesect*) | db.simplesect+ 6779div { 6780 db.sect1.status.attribute = db.status.attribute 6781 db.sect1.role.attribute = attribute role { text } 6782 db.sect1.attlist = 6783 db.sect1.role.attribute? 6784 & db.common.attributes 6785 & db.common.linking.attributes 6786 & db.label.attribute? 6787 & db.sect1.status.attribute? 6788 db.sect1.info = db._info.title.req 6789 db.sect1 = 6790 6791 ## A top-level section of document 6792 [ 6793 s:pattern [ 6794 name = "Root must have version" 6795 "\x{a}" ~ 6796 " " 6797 s:rule [ 6798 context = "/db:sect1" 6799 "\x{a}" ~ 6800 " " 6801 s:assert [ 6802 test = "@version" 6803 "The root element must have a version attribute." 6804 ] 6805 "\x{a}" ~ 6806 " " 6807 ] 6808 "\x{a}" ~ 6809 " " 6810 ] 6811 ] 6812 element sect1 { 6813 db.sect1.attlist, 6814 db.sect1.info, 6815 ((db.all.blocks+, db.sect1.sections?) | db.sect1.sections), 6816 db.navigation.components* 6817 } 6818} 6819db.sect2.sections = (db.sect3+, db.simplesect*) | db.simplesect+ 6820div { 6821 db.sect2.status.attribute = db.status.attribute 6822 db.sect2.role.attribute = attribute role { text } 6823 db.sect2.attlist = 6824 db.sect2.role.attribute? 6825 & db.common.attributes 6826 & db.common.linking.attributes 6827 & db.label.attribute? 6828 & db.sect2.status.attribute? 6829 db.sect2.info = db._info.title.req 6830 db.sect2 = 6831 6832 ## A subsection within a Sect1 6833 [ 6834 s:pattern [ 6835 name = "Root must have version" 6836 "\x{a}" ~ 6837 " " 6838 s:rule [ 6839 context = "/db:sect2" 6840 "\x{a}" ~ 6841 " " 6842 s:assert [ 6843 test = "@version" 6844 "The root element must have a version attribute." 6845 ] 6846 "\x{a}" ~ 6847 " " 6848 ] 6849 "\x{a}" ~ 6850 " " 6851 ] 6852 ] 6853 element sect2 { 6854 db.sect2.attlist, 6855 db.sect2.info, 6856 ((db.all.blocks+, db.sect2.sections?) | db.sect2.sections), 6857 db.navigation.components* 6858 } 6859} 6860db.sect3.sections = (db.sect4+, db.simplesect*) | db.simplesect+ 6861div { 6862 db.sect3.status.attribute = db.status.attribute 6863 db.sect3.role.attribute = attribute role { text } 6864 db.sect3.attlist = 6865 db.sect3.role.attribute? 6866 & db.common.attributes 6867 & db.common.linking.attributes 6868 & db.label.attribute? 6869 & db.sect3.status.attribute? 6870 db.sect3.info = db._info.title.req 6871 db.sect3 = 6872 6873 ## A subsection within a Sect2 6874 [ 6875 s:pattern [ 6876 name = "Root must have version" 6877 "\x{a}" ~ 6878 " " 6879 s:rule [ 6880 context = "/db:sect3" 6881 "\x{a}" ~ 6882 " " 6883 s:assert [ 6884 test = "@version" 6885 "The root element must have a version attribute." 6886 ] 6887 "\x{a}" ~ 6888 " " 6889 ] 6890 "\x{a}" ~ 6891 " " 6892 ] 6893 ] 6894 element sect3 { 6895 db.sect3.attlist, 6896 db.sect3.info, 6897 ((db.all.blocks+, db.sect3.sections?) | db.sect3.sections), 6898 db.navigation.components* 6899 } 6900} 6901db.sect4.sections = (db.sect5+, db.simplesect*) | db.simplesect+ 6902div { 6903 db.sect4.status.attribute = db.status.attribute 6904 db.sect4.role.attribute = attribute role { text } 6905 db.sect4.attlist = 6906 db.sect4.role.attribute? 6907 & db.common.attributes 6908 & db.common.linking.attributes 6909 & db.label.attribute? 6910 & db.sect4.status.attribute? 6911 db.sect4.info = db._info.title.req 6912 db.sect4 = 6913 6914 ## A subsection within a Sect3 6915 [ 6916 s:pattern [ 6917 name = "Root must have version" 6918 "\x{a}" ~ 6919 " " 6920 s:rule [ 6921 context = "/db:sect4" 6922 "\x{a}" ~ 6923 " " 6924 s:assert [ 6925 test = "@version" 6926 "The root element must have a version attribute." 6927 ] 6928 "\x{a}" ~ 6929 " " 6930 ] 6931 "\x{a}" ~ 6932 " " 6933 ] 6934 ] 6935 element sect4 { 6936 db.sect4.attlist, 6937 db.sect4.info, 6938 ((db.all.blocks+, db.sect4.sections?) | db.sect4.sections), 6939 db.navigation.components* 6940 } 6941} 6942db.sect5.sections = db.simplesect+ 6943div { 6944 db.sect5.status.attribute = db.status.attribute 6945 db.sect5.role.attribute = attribute role { text } 6946 db.sect5.attlist = 6947 db.sect5.role.attribute? 6948 & db.common.attributes 6949 & db.common.linking.attributes 6950 & db.label.attribute? 6951 & db.sect5.status.attribute? 6952 db.sect5.info = db._info.title.req 6953 db.sect5 = 6954 6955 ## A subsection within a Sect4 6956 [ 6957 s:pattern [ 6958 name = "Root must have version" 6959 "\x{a}" ~ 6960 " " 6961 s:rule [ 6962 context = "/db:sect5" 6963 "\x{a}" ~ 6964 " " 6965 s:assert [ 6966 test = "@version" 6967 "The root element must have a version attribute." 6968 ] 6969 "\x{a}" ~ 6970 " " 6971 ] 6972 "\x{a}" ~ 6973 " " 6974 ] 6975 ] 6976 element sect5 { 6977 db.sect5.attlist, 6978 db.sect5.info, 6979 ((db.all.blocks+, db.sect5.sections?) | db.sect5.sections), 6980 db.navigation.components* 6981 } 6982} 6983db.toplevel.refsection = db.refsection+ | db.refsect1+ 6984db.secondlevel.refsection = db.refsection+ | db.refsect2+ 6985db.reference.components = db.refentry 6986div { 6987 db.reference.role.attribute = attribute role { text } 6988 db.reference.attlist = 6989 db.reference.role.attribute? 6990 & db.common.attributes 6991 & db.common.linking.attributes 6992 & db.status.attribute? 6993 & db.label.attribute? 6994 db.reference.info = db._info.title.req 6995 db.reference = 6996 6997 ## A collection of reference entries 6998 [ 6999 s:pattern [ 7000 name = "Root must have version" 7001 "\x{a}" ~ 7002 " " 7003 s:rule [ 7004 context = "/db:reference" 7005 "\x{a}" ~ 7006 " " 7007 s:assert [ 7008 test = "@version" 7009 "The root element must have a version attribute." 7010 ] 7011 "\x{a}" ~ 7012 " " 7013 ] 7014 "\x{a}" ~ 7015 " " 7016 ] 7017 ] 7018 element reference { 7019 db.reference.attlist, 7020 db.reference.info, 7021 db.partintro?, 7022 db.reference.components+ 7023 } 7024} 7025div { 7026 db.refentry.role.attribute = attribute role { text } 7027 db.refentry.attlist = 7028 db.refentry.role.attribute? 7029 & db.common.attributes 7030 & db.common.linking.attributes 7031 & db.status.attribute? 7032 & db.label.attribute? 7033 db.refentry.info = db._info.title.forbidden 7034 db.refentry = 7035 7036 ## A reference page (originally a UNIX man-style reference page) 7037 [ 7038 s:pattern [ 7039 name = "Root must have version" 7040 "\x{a}" ~ 7041 " " 7042 s:rule [ 7043 context = "/db:refentry" 7044 "\x{a}" ~ 7045 " " 7046 s:assert [ 7047 test = "@version" 7048 "The root element must have a version attribute." 7049 ] 7050 "\x{a}" ~ 7051 " " 7052 ] 7053 "\x{a}" ~ 7054 " " 7055 ] 7056 ] 7057 element refentry { 7058 db.refentry.attlist, 7059 db.indexterm*, 7060 db.refentry.info, 7061 db.refmeta?, 7062 db.refnamediv+, 7063 db.refsynopsisdiv?, 7064 db.toplevel.refsection 7065 } 7066} 7067div { 7068 db.refmeta.role.attribute = attribute role { text } 7069 db.refmeta.attlist = 7070 db.refmeta.role.attribute? 7071 & db.common.attributes 7072 & db.common.linking.attributes 7073 db.refmeta = 7074 7075 ## Meta-information for a reference entry 7076 element refmeta { 7077 db.refmeta.attlist, 7078 db.indexterm*, 7079 db.refentrytitle, 7080 db.manvolnum?, 7081 db.refmiscinfo*, 7082 db.indexterm* 7083 } 7084} 7085db.refmiscinfo.class.enumeration = 7086 7087 ## The name of the software product or component to which this topic applies 7088 "source" 7089 | 7090 ## The version of the software product or component to which this topic applies 7091 "version" 7092 | 7093 ## The section title of the reference page (e.g., User Commands) 7094 "manual" 7095 | 7096 ## The section title of the reference page (believed synonymous with "manual" but in wide use) 7097 "sectdesc" 7098 | 7099 ## The name of the software product or component to which this topic applies (e.g., SunOS x.y; believed synonymous with "source" but in wide use) 7100 "software" 7101db.refmiscinfo.class-enum.attribute = 7102 7103 ## Identifies the kind of miscellaneous information 7104 attribute class { db.refmiscinfo.class.enumeration }? 7105db.refmiscinfo.class-other.attribute = 7106 7107 ## Identifies the nature of non-standard miscellaneous information 7108 attribute otherclass { text } 7109db.refmiscinfo.class-other.attributes = 7110 7111 ## Identifies the kind of miscellaneious information 7112 attribute class { 7113 7114 ## Indicates that the information is some 'other' kind. 7115 "other" 7116 } 7117 & db.refmiscinfo.class-other.attribute 7118db.refmiscinfo.class.attribute = 7119 db.refmiscinfo.class-enum.attribute 7120 | db.refmiscinfo.class-other.attributes 7121div { 7122 db.refmiscinfo.role.attribute = attribute role { text } 7123 db.refmiscinfo.attlist = 7124 db.refmiscinfo.role.attribute? 7125 & db.common.attributes 7126 & db.common.linking.attributes 7127 & db.refmiscinfo.class.attribute? 7128 db.refmiscinfo = 7129 7130 ## Meta-information for a reference entry other than the title and volume number 7131 element refmiscinfo { db.refmiscinfo.attlist, db._text } 7132} 7133div { 7134 db.refnamediv.role.attribute = attribute role { text } 7135 db.refnamediv.attlist = 7136 db.refnamediv.role.attribute? 7137 & db.common.attributes 7138 & db.common.linking.attributes 7139 db.refnamediv = 7140 7141 ## The name, purpose, and classification of a reference page 7142 element refnamediv { 7143 db.refnamediv.attlist, 7144 db.refdescriptor?, 7145 db.refname+, 7146 db.refpurpose, 7147 db.refclass* 7148 } 7149} 7150div { 7151 db.refdescriptor.role.attribute = attribute role { text } 7152 db.refdescriptor.attlist = 7153 db.refdescriptor.role.attribute? 7154 & db.common.attributes 7155 & db.common.linking.attributes 7156 db.refdescriptor = 7157 7158 ## A description of the topic of a reference page 7159 element refdescriptor { db.refdescriptor.attlist, db.all.inlines* } 7160} 7161div { 7162 db.refname.role.attribute = attribute role { text } 7163 db.refname.attlist = 7164 db.refname.role.attribute? 7165 & db.common.attributes 7166 & db.common.linking.attributes 7167 db.refname = 7168 7169 ## The name of (one of) the subject(s) of a reference page 7170 element refname { db.refname.attlist, db.all.inlines* } 7171} 7172div { 7173 db.refpurpose.role.attribute = attribute role { text } 7174 db.refpurpose.attlist = 7175 db.refpurpose.role.attribute? 7176 & db.common.attributes 7177 & db.common.linking.attributes 7178 db.refpurpose = 7179 7180 ## A short (one sentence) synopsis of the topic of a reference page 7181 element refpurpose { db.refpurpose.attlist, db.all.inlines* } 7182} 7183div { 7184 db.refclass.role.attribute = attribute role { text } 7185 db.refclass.attlist = 7186 db.refclass.role.attribute? 7187 & db.common.attributes 7188 & db.common.linking.attributes 7189 db.refclass = 7190 7191 ## The scope or other indication of applicability of a reference entry 7192 element refclass { db.refclass.attlist, (text | db.application)* } 7193} 7194div { 7195 db.refsynopsisdiv.role.attribute = attribute role { text } 7196 db.refsynopsisdiv.attlist = 7197 db.refsynopsisdiv.role.attribute? 7198 & db.common.attributes 7199 & db.common.linking.attributes 7200 db.refsynopsisdiv.info = db._info 7201 db.refsynopsisdiv = 7202 7203 ## A syntactic synopsis of the subject of the reference page 7204 element refsynopsisdiv { 7205 db.refsynopsisdiv.attlist, 7206 db.refsynopsisdiv.info, 7207 ((db.all.blocks+, db.secondlevel.refsection?) 7208 | db.secondlevel.refsection) 7209 } 7210} 7211div { 7212 db.refsection.role.attribute = attribute role { text } 7213 db.refsection.attlist = 7214 db.refsection.role.attribute? 7215 & db.common.attributes 7216 & db.common.linking.attributes 7217 & db.status.attribute? 7218 & db.label.attribute? 7219 db.refsection.info = db._info.title.req 7220 db.refsection = 7221 7222 ## A recursive section in a refentry 7223 [ 7224 s:pattern [ 7225 name = "Root must have version" 7226 "\x{a}" ~ 7227 " " 7228 s:rule [ 7229 context = "/db:refsection" 7230 "\x{a}" ~ 7231 " " 7232 s:assert [ 7233 test = "@version" 7234 "The root element must have a version attribute." 7235 ] 7236 "\x{a}" ~ 7237 " " 7238 ] 7239 "\x{a}" ~ 7240 " " 7241 ] 7242 ] 7243 element refsection { 7244 db.refsection.attlist, 7245 db.refsection.info, 7246 ((db.all.blocks+, db.refsection*) | db.refsection+) 7247 } 7248} 7249db.refsect1.sections = db.refsect2+ 7250div { 7251 db.refsect1.status.attribute = db.status.attribute 7252 db.refsect1.role.attribute = attribute role { text } 7253 db.refsect1.attlist = 7254 db.refsect1.role.attribute? 7255 & db.common.attributes 7256 & db.common.linking.attributes 7257 & db.label.attribute? 7258 & db.refsect1.status.attribute? 7259 db.refsect1.info = db._info.title.req 7260 db.refsect1 = 7261 7262 ## A major subsection of a reference entry 7263 [ 7264 s:pattern [ 7265 name = "Root must have version" 7266 "\x{a}" ~ 7267 " " 7268 s:rule [ 7269 context = "/db:refsect1" 7270 "\x{a}" ~ 7271 " " 7272 s:assert [ 7273 test = "@version" 7274 "The root element must have a version attribute." 7275 ] 7276 "\x{a}" ~ 7277 " " 7278 ] 7279 "\x{a}" ~ 7280 " " 7281 ] 7282 ] 7283 element refsect1 { 7284 db.refsect1.attlist, 7285 db.refsect1.info, 7286 ((db.all.blocks+, db.refsect1.sections?) | db.refsect1.sections) 7287 } 7288} 7289db.refsect2.sections = db.refsect3+ 7290div { 7291 db.refsect2.status.attribute = db.status.attribute 7292 db.refsect2.role.attribute = attribute role { text } 7293 db.refsect2.attlist = 7294 db.refsect2.role.attribute? 7295 & db.common.attributes 7296 & db.common.linking.attributes 7297 & db.label.attribute? 7298 & db.refsect2.status.attribute? 7299 db.refsect2.info = db._info.title.req 7300 db.refsect2 = 7301 7302 ## A subsection of a refsect1 7303 [ 7304 s:pattern [ 7305 name = "Root must have version" 7306 "\x{a}" ~ 7307 " " 7308 s:rule [ 7309 context = "/db:refsect2" 7310 "\x{a}" ~ 7311 " " 7312 s:assert [ 7313 test = "@version" 7314 "The root element must have a version attribute." 7315 ] 7316 "\x{a}" ~ 7317 " " 7318 ] 7319 "\x{a}" ~ 7320 " " 7321 ] 7322 ] 7323 element refsect2 { 7324 db.refsect2.attlist, 7325 db.refsect2.info, 7326 ((db.all.blocks+, db.refsect2.sections?) | db.refsect2.sections) 7327 } 7328} 7329div { 7330 db.refsect3.status.attribute = db.status.attribute 7331 db.refsect3.role.attribute = attribute role { text } 7332 db.refsect3.attlist = 7333 db.refsect3.role.attribute? 7334 & db.common.attributes 7335 & db.common.linking.attributes 7336 & db.label.attribute? 7337 & db.refsect3.status.attribute? 7338 db.refsect3.info = db._info.title.req 7339 db.refsect3 = 7340 7341 ## A subsection of a refsect2 7342 [ 7343 s:pattern [ 7344 name = "Root must have version" 7345 "\x{a}" ~ 7346 " " 7347 s:rule [ 7348 context = "/db:refsect3" 7349 "\x{a}" ~ 7350 " " 7351 s:assert [ 7352 test = "@version" 7353 "The root element must have a version attribute." 7354 ] 7355 "\x{a}" ~ 7356 " " 7357 ] 7358 "\x{a}" ~ 7359 " " 7360 ] 7361 ] 7362 element refsect3 { 7363 db.refsect3.attlist, db.refsect3.info, db.all.blocks+ 7364 } 7365} 7366db.glossary.inlines = db.firstterm | db.glossterm 7367db.baseform.attribute = 7368 7369 ## Specifies the base form of the term, the one that appears in the glossary. This allows adjectival, plural, and other variations of the term to appear in the element. The element content is the default base form. 7370 attribute baseform { text }? 7371div { 7372 db.glosslist.role.attribute = attribute role { text } 7373 db.glosslist.attlist = 7374 db.glosslist.role.attribute? 7375 & db.common.attributes 7376 & db.common.linking.attributes 7377 db.glosslist.info = db._info.title.only 7378 db.glosslist = 7379 7380 ## A wrapper for a list of glossary entries 7381 element glosslist { 7382 db.glosslist.attlist, 7383 db.glosslist.info?, 7384 db.all.blocks*, 7385 db.glossentry+ 7386 } 7387} 7388div { 7389 db.glossentry.role.attribute = attribute role { text } 7390 db.glossentry.sortas.attribute = 7391 7392 ## Specifies the string by which the element's content is to be sorted; if unspecified, the content is used 7393 attribute sortas { text } 7394 db.glossentry.attlist = 7395 db.glossentry.role.attribute? 7396 & db.common.attributes 7397 & db.common.linking.attributes 7398 & db.glossentry.sortas.attribute? 7399 db.glossentry = 7400 7401 ## An entry in a Glossary or GlossList 7402 element glossentry { 7403 db.glossentry.attlist, 7404 db.glossterm, 7405 db.acronym?, 7406 db.abbrev?, 7407 db.indexterm*, 7408 (db.glosssee | db.glossdef+) 7409 } 7410} 7411div { 7412 db.glossdef.role.attribute = attribute role { text } 7413 db.glossdef.subject.attribute = 7414 7415 ## Specifies a list of keywords for the definition 7416 attribute subject { text } 7417 db.glossdef.attlist = 7418 db.glossdef.role.attribute? 7419 & db.common.attributes 7420 & db.common.linking.attributes 7421 & db.glossdef.subject.attribute? 7422 db.glossdef = 7423 7424 ## A definition in a GlossEntry 7425 element glossdef { 7426 db.glossdef.attlist, db.all.blocks+, db.glossseealso* 7427 } 7428} 7429div { 7430 db.glosssee.role.attribute = attribute role { text } 7431 db.glosssee.otherterm.attribute = 7432 7433 ## Identifies the other term 7434 attribute otherterm { xsd:IDREF } 7435 db.glosssee.attlist = 7436 db.glosssee.role.attribute? 7437 & db.common.attributes 7438 & db.common.linking.attributes 7439 & db.glosssee.otherterm.attribute? 7440 db.glosssee = 7441 7442 ## A cross-reference from one glossentry 7443 ## to another 7444 [ 7445 s:pattern [ 7446 name = "Glosssary 'see' type constraint" 7447 "\x{a}" ~ 7448 " " 7449 s:rule [ 7450 context = "db:glosssee[@otherterm]" 7451 "\x{a}" ~ 7452 " " 7453 s:assert [ 7454 test = 7455 "local-name(//*[@id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'" 7456 "@otherterm on glosssee must point to a glossentry." 7457 ] 7458 "\x{a}" ~ 7459 " " 7460 ] 7461 "\x{a}" ~ 7462 " " 7463 ] 7464 ] 7465 element glosssee { db.glosssee.attlist, db.all.inlines* } 7466} 7467div { 7468 db.glossseealso.role.attribute = attribute role { text } 7469 db.glossseealso.otherterm.attribute = 7470 7471 ## Identifies the other term 7472 attribute otherterm { xsd:IDREF } 7473 db.glossseealso.attlist = 7474 db.glossseealso.role.attribute? 7475 & db.common.attributes 7476 & db.common.linking.attributes 7477 & db.glossseealso.otherterm.attribute? 7478 db.glossseealso = 7479 7480 ## A cross-reference from one GlossEntry to another 7481 [ 7482 s:pattern [ 7483 name = "Glossary 'seealso' type constraint" 7484 "\x{a}" ~ 7485 " " 7486 s:rule [ 7487 context = "db:glossseealso[@otherterm]" 7488 "\x{a}" ~ 7489 " " 7490 s:assert [ 7491 test = 7492 "local-name(//*[@id=current()/@otherterm]) = 'glossentry' and namespace-uri(//*[@id=current()/@otherterm]) = 'http://docbook.org/ns/docbook'" 7493 "@otherterm on glossseealso must point to a glossentry." 7494 ] 7495 "\x{a}" ~ 7496 " " 7497 ] 7498 "\x{a}" ~ 7499 " " 7500 ] 7501 ] 7502 element glossseealso { db.glossseealso.attlist, db.all.inlines* } 7503} 7504div { 7505 db.firstterm.role.attribute = attribute role { text } 7506 db.firstterm.attlist = 7507 db.firstterm.role.attribute? 7508 & db.common.attributes 7509 & db.common.linking.attributes 7510 & db.baseform.attribute 7511 db.firstterm = 7512 7513 ## The first occurrence of a term 7514 [ 7515 s:pattern [ 7516 name = "Glossary 'firstterm' type constraint" 7517 "\x{a}" ~ 7518 " " 7519 s:rule [ 7520 context = "db:firstterm[@linkend]" 7521 "\x{a}" ~ 7522 " " 7523 s:assert [ 7524 test = 7525 "local-name(//*[@id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@id=current()/@linkend]) = 'http://docbook.org/ns/docbook'" 7526 "@linkend on firstterm must point to a glossentry." 7527 ] 7528 "\x{a}" ~ 7529 " " 7530 ] 7531 "\x{a}" ~ 7532 " " 7533 ] 7534 ] 7535 element firstterm { db.firstterm.attlist, db.all.inlines* } 7536} 7537div { 7538 db.glossterm.role.attribute = attribute role { text } 7539 db.glossterm.attlist = 7540 db.glossterm.role.attribute? 7541 & db.common.attributes 7542 & db.common.linking.attributes 7543 & db.baseform.attribute 7544 db.glossterm = 7545 7546 ## A glossary term 7547 [ 7548 s:pattern [ 7549 name = "Glossary 'glossterm' type constraint" 7550 "\x{a}" ~ 7551 " " 7552 s:rule [ 7553 context = "db:glossterm[@linkend]" 7554 "\x{a}" ~ 7555 " " 7556 s:assert [ 7557 test = 7558 "local-name(//*[@id=current()/@linkend]) = 'glossentry' and namespace-uri(//*[@id=current()/@linkend]) = 'http://docbook.org/ns/docbook'" 7559 "@linkend on glossterm must point to a glossentry." 7560 ] 7561 "\x{a}" ~ 7562 " " 7563 ] 7564 "\x{a}" ~ 7565 " " 7566 ] 7567 ] 7568 element glossterm { db.glossterm.attlist, db.all.inlines* } 7569} 7570div { 7571 db.glossary.status.attribute = db.status.attribute 7572 db.glossary.role.attribute = attribute role { text } 7573 db.glossary.attlist = 7574 db.glossary.role.attribute? 7575 & db.common.attributes 7576 & db.common.linking.attributes 7577 & db.label.attribute? 7578 & db.glossary.status.attribute? 7579 db.glossary.info = db._info 7580 db.glossary = 7581 7582 ## A glossary 7583 [ 7584 s:pattern [ 7585 name = "Root must have version" 7586 "\x{a}" ~ 7587 " " 7588 s:rule [ 7589 context = "/db:glossary" 7590 "\x{a}" ~ 7591 " " 7592 s:assert [ 7593 test = "@version" 7594 "The root element must have a version attribute." 7595 ] 7596 "\x{a}" ~ 7597 " " 7598 ] 7599 "\x{a}" ~ 7600 " " 7601 ] 7602 ] 7603 element glossary { 7604 db.glossary.attlist, 7605 db.glossary.info, 7606 db.all.blocks*, 7607 (db.glossdiv+ | db.glossentry+), 7608 db.bibliography? 7609 } 7610} 7611div { 7612 db.glossdiv.status.attribute = db.status.attribute 7613 db.glossdiv.role.attribute = attribute role { text } 7614 db.glossdiv.attlist = 7615 db.glossdiv.role.attribute? 7616 & db.common.attributes 7617 & db.common.linking.attributes 7618 & db.label.attribute? 7619 & db.glossdiv.status.attribute? 7620 db.glossdiv.info = db._info.title.req 7621 db.glossdiv = 7622 7623 ## A division in a Glossary 7624 element glossdiv { 7625 db.glossdiv.attlist, 7626 db.glossdiv.info, 7627 db.all.blocks*, 7628 db.glossentry+ 7629 } 7630} 7631div { 7632 db.termdef.role.attribute = attribute role { text } 7633 db.termdef.attlist = 7634 db.termdef.role.attribute? 7635 & db.common.attributes 7636 & db.common.linking.attributes 7637 & db.baseform.attribute 7638 db.termdef = 7639 7640 ## An inline definition of a term 7641 [ 7642 s:pattern [ 7643 name = "Glossary term definition constraint" 7644 "\x{a}" ~ 7645 " " 7646 s:rule [ 7647 context = "db:termdef" 7648 "\x{a}" ~ 7649 " " 7650 s:assert [ 7651 test = "count(db:glossterm) != 1" 7652 "A termdef must contain a glossterm" 7653 ] 7654 "\x{a}" ~ 7655 " " 7656 ] 7657 "\x{a}" ~ 7658 " " 7659 ] 7660 ] 7661 element termdef { db.termdef.attlist, db.all.inlines* } 7662} 7663db.relation.attribute = 7664 7665 ## Identifies the relationship between the bibliographic elemnts 7666 attribute relation { text } 7667div { 7668 db.biblioentry.role.attribute = attribute role { text } 7669 db.biblioentry.attlist = 7670 db.biblioentry.role.attribute? 7671 & db.common.attributes 7672 & db.common.linking.attributes 7673 db.biblioentry = 7674 7675 ## An entry in a Bibliography 7676 element biblioentry { 7677 db.biblioentry.attlist, db.bibliographic.elements+ 7678 } 7679} 7680div { 7681 db.bibliomixed.role.attribute = attribute role { text } 7682 db.bibliomixed.attlist = 7683 db.bibliomixed.role.attribute? 7684 & db.common.attributes 7685 & db.common.linking.attributes 7686 db.bibliomixed = 7687 7688 ## An entry in a Bibliography 7689 element bibliomixed { 7690 db.bibliomixed.attlist, (text | db.bibliographic.elements)* 7691 } 7692} 7693div { 7694 db.biblioset.relation.attribute = db.relation.attribute 7695 db.biblioset.role.attribute = attribute role { text } 7696 db.biblioset.attlist = 7697 db.biblioset.role.attribute? 7698 & db.common.attributes 7699 & db.common.linking.attributes 7700 & db.biblioset.relation.attribute? 7701 db.biblioset = 7702 7703 ## A raw container for related bibliographic information 7704 element biblioset { 7705 db.biblioset.attlist, db.bibliographic.elements+ 7706 } 7707} 7708div { 7709 db.bibliomset.relation.attribute = db.relation.attribute 7710 db.bibliomset.role.attribute = attribute role { text } 7711 db.bibliomset.attlist = 7712 db.bibliomset.role.attribute? 7713 & db.common.attributes 7714 & db.common.linking.attributes 7715 & db.bibliomset.relation.attribute? 7716 db.bibliomset = 7717 7718 ## A cooked container for related bibliographic information 7719 element bibliomset { 7720 db.bibliomset.attlist, (db._text | db.bibliographic.elements)* 7721 } 7722} 7723div { 7724 db.bibliomisc.role.attribute = attribute role { text } 7725 db.bibliomisc.attlist = 7726 db.bibliomisc.role.attribute? 7727 & db.common.attributes 7728 & db.common.linking.attributes 7729 db.bibliomisc = 7730 7731 ## Untyped bibliographic information 7732 element bibliomisc { db.bibliomisc.attlist, db._text } 7733} 7734div { 7735 db.bibliography.status.attrib = db.status.attribute 7736 db.bibliography.role.attribute = attribute role { text } 7737 db.bibliography.attlist = 7738 db.bibliography.role.attribute? 7739 & db.common.attributes 7740 & db.common.linking.attributes 7741 & db.label.attribute? 7742 & db.bibliography.status.attrib? 7743 db.bibliography.info = db._info 7744 db.bibliography = 7745 7746 ## A bibliography 7747 [ 7748 s:pattern [ 7749 name = "Root must have version" 7750 "\x{a}" ~ 7751 " " 7752 s:rule [ 7753 context = "/db:bibliography" 7754 "\x{a}" ~ 7755 " " 7756 s:assert [ 7757 test = "@version" 7758 "The root element must have a version attribute." 7759 ] 7760 "\x{a}" ~ 7761 " " 7762 ] 7763 "\x{a}" ~ 7764 " " 7765 ] 7766 ] 7767 element bibliography { 7768 db.bibliography.attlist, 7769 db.bibliography.info, 7770 db.all.blocks*, 7771 (db.bibliodiv+ | (db.biblioentry | db.bibliomixed)+) 7772 } 7773} 7774div { 7775 db.bibliodiv.status.attrib = db.status.attribute 7776 db.bibliodiv.role.attribute = attribute role { text } 7777 db.bibliodiv.attlist = 7778 db.bibliodiv.role.attribute? 7779 & db.common.attributes 7780 & db.common.linking.attributes 7781 & db.label.attribute? 7782 & db.bibliodiv.status.attrib? 7783 db.bibliodiv.info = db._info.title.req 7784 db.bibliodiv = 7785 7786 ## A section of a Bibliography 7787 element bibliodiv { 7788 db.bibliodiv.attlist, 7789 db.bibliodiv.info, 7790 db.all.blocks*, 7791 (db.biblioentry | db.bibliomixed)+ 7792 } 7793} 7794div { 7795 db.bibliolist.role.attribute = attribute role { text } 7796 db.bibliolist.attlist = 7797 db.bibliolist.role.attribute? 7798 & db.common.attributes 7799 & db.common.linking.attributes 7800 db.bibliolist.info = db._info.title.only 7801 db.bibliolist = 7802 7803 ## A wrapper for a list of bibliography entries 7804 element bibliolist { 7805 db.bibliolist.attlist, 7806 db.bibliolist.info?, 7807 db.all.blocks*, 7808 (db.biblioentry | db.bibliomixed)+ 7809 } 7810} 7811div { 7812 db.biblioref.role.attribute = attribute role { text } 7813 db.biblioref.xrefstyle.attribute = db.xrefstyle.attribute 7814 db.biblioref.endterm.attribute = db.endterm.attribute 7815 db.biblioref.units.attribute = 7816 7817 ## The units (for example, pages) used to identify the beginning and ending of a reference. 7818 attribute units { xsd:token } 7819 db.biblioref.begin.attribute = 7820 7821 ## Identifies the beginning of a reference; the location within the work that is being referenced. 7822 attribute begin { xsd:token } 7823 db.biblioref.end.attribute = 7824 7825 ## Identifies the end of a reference. 7826 attribute end { xsd:token } 7827 db.biblioref.attlist = 7828 db.biblioref.role.attribute? 7829 & db.common.attributes 7830 & db.common.req.linking.attributes 7831 & db.biblioref.xrefstyle.attribute? 7832 & db.biblioref.endterm.attribute? 7833 & db.biblioref.units.attribute? 7834 & db.biblioref.begin.attribute? 7835 & db.biblioref.end.attribute? 7836 db.biblioref = 7837 7838 ## A cross-reference to a bibliographic entry 7839 element biblioref { db.biblioref.attlist, empty } 7840} 7841db.significance.enumeration = 7842 7843 ## Normal 7844 "normal" 7845 | 7846 ## Preferred 7847 "preferred" 7848db.significance.attribute = 7849 7850 ## Specifies the significance of the term 7851 attribute significance { db.significance.enumeration } 7852db.zone.attribute = 7853 7854 ## Specifies the IDs of the elements to which this term applies 7855 attribute zone { xsd:IDREFS } 7856db.indexterm.pagenum.attribute = 7857 7858 ## Indicates the page on which this index term occurs in some version of the printed document 7859 attribute pagenum { text } 7860db.scope.enumeration = 7861 7862 ## All indexes 7863 "all" 7864 | 7865 ## The global index (as for a combined index of a set of box) 7866 "global" 7867 | 7868 ## The local index (the index for this document only) 7869 "local" 7870db.scope.attribute = 7871 7872 ## Specifies the scope of the index term 7873 attribute scope { db.scope.enumeration } 7874db.sortas.attribute = 7875 7876 ## Specifies the string by which the term is to be sorted; if unspecified, the term content is used 7877 attribute sortas { text } 7878db.index.type.attribute = 7879 7880 ## Specifies the target index for this term 7881 attribute type { text } 7882div { 7883 db.itermset.role.attribute = attribute role { text } 7884 db.itermset.attlist = 7885 db.itermset.role.attribute? 7886 & db.common.attributes 7887 & db.common.linking.attributes 7888 db.itermset = 7889 7890 ## A set of index terms in the meta-information of a document 7891 element itermset { db.itermset.attlist, db.indexterm.singular+ } 7892} 7893db.indexterm.contentmodel = 7894 db.primary?, 7895 ((db.secondary, 7896 ((db.tertiary, (db.see | db.seealso+)?) 7897 | db.see 7898 | db.seealso+)?) 7899 | db.see 7900 | db.seealso+)? 7901div { 7902 db.indexterm.singular.role.attribute = attribute role { text } 7903 db.indexterm.singular.class.attribute = 7904 7905 ## Identifies the class of index term 7906 attribute class { 7907 7908 ## A singular index term 7909 "singular" 7910 } 7911 db.indexterm.singular.attlist = 7912 db.indexterm.singular.role.attribute? 7913 & db.common.attributes 7914 & db.common.linking.attributes 7915 & db.significance.attribute? 7916 & db.zone.attribute? 7917 & db.indexterm.pagenum.attribute? 7918 & db.scope.attribute? 7919 & db.index.type.attribute? 7920 & db.indexterm.singular.class.attribute? 7921 db.indexterm.singular = 7922 7923 ## A wrapper for an indexed term 7924 element indexterm { 7925 db.indexterm.singular.attlist, db.indexterm.contentmodel 7926 } 7927} 7928div { 7929 db.indexterm.startofrange.role.attribute = attribute role { text } 7930 db.indexterm.startofrange.class.attribute = 7931 7932 ## Identifies the class of index term 7933 attribute class { 7934 7935 ## The start of a range 7936 "startofrange" 7937 } 7938 db.indexterm.startofrange.attlist = 7939 db.indexterm.startofrange.role.attribute? 7940 & db.common.attributes 7941 & db.common.linking.attributes 7942 & db.significance.attribute? 7943 & db.zone.attribute? 7944 & db.indexterm.pagenum.attribute? 7945 & db.scope.attribute? 7946 & db.index.type.attribute? 7947 & db.indexterm.startofrange.class.attribute 7948 db.indexterm.startofrange = 7949 7950 ## A wrapper for an indexed term that covers a range 7951 element indexterm { 7952 db.indexterm.startofrange.attlist, db.indexterm.contentmodel 7953 } 7954} 7955div { 7956 db.indexterm.endofrange.role.attribute = attribute role { text } 7957 db.indexterm.endofrange.class.attribute = 7958 7959 ## Identifies the class of index term 7960 attribute class { 7961 7962 ## The end of a range 7963 "endofrange" 7964 } 7965 db.indexterm.endofrange.startref.attribute = 7966 7967 ## Points to the start of the range 7968 attribute startref { xsd:IDREF } 7969 db.indexterm.endofrange.attlist = 7970 db.indexterm.endofrange.role.attribute? 7971 & db.common.attributes 7972 & db.common.linking.attributes 7973 & db.indexterm.endofrange.class.attribute 7974 & db.indexterm.endofrange.startref.attribute 7975 db.indexterm.endofrange = 7976 7977 ## Identifies the end of a range associated with an indexed term 7978 element indexterm { db.indexterm.endofrange.attlist, empty } 7979} 7980div { 7981 db.indexterm = 7982 db.indexterm.singular 7983 | db.indexterm.startofrange 7984 | db.indexterm.endofrange 7985} 7986div { 7987 db.primary.role.attribute = attribute role { text } 7988 db.primary.attlist = 7989 db.primary.role.attribute? 7990 & db.common.attributes 7991 & db.common.linking.attributes 7992 & db.sortas.attribute? 7993 db.primary = 7994 7995 ## The primary word or phrase under which an index term should be sorted 7996 element primary { db.primary.attlist, db.all.inlines* } 7997} 7998div { 7999 db.secondary.role.attribute = attribute role { text } 8000 db.secondary.attlist = 8001 db.secondary.role.attribute? 8002 & db.common.attributes 8003 & db.common.linking.attributes 8004 & db.sortas.attribute? 8005 db.secondary = 8006 8007 ## A secondary word or phrase in an index term 8008 element secondary { db.secondary.attlist, db.all.inlines* } 8009} 8010div { 8011 db.tertiary.role.attribute = attribute role { text } 8012 db.tertiary.attlist = 8013 db.tertiary.role.attribute? 8014 & db.common.attributes 8015 & db.common.linking.attributes 8016 & db.sortas.attribute? 8017 db.tertiary = 8018 8019 ## A tertiary word or phrase in an index term 8020 element tertiary { db.tertiary.attlist, db.all.inlines* } 8021} 8022div { 8023 db.see.role.attribute = attribute role { text } 8024 db.see.attlist = 8025 db.see.role.attribute? 8026 & db.common.attributes 8027 & db.common.linking.attributes 8028 db.see = 8029 8030 ## Part of an index term directing the reader instead to another entry in the index 8031 element see { db.see.attlist, db.all.inlines* } 8032} 8033div { 8034 db.seealso.role.attribute = attribute role { text } 8035 db.seealso.attlist = 8036 db.seealso.role.attribute? 8037 & db.common.attributes 8038 & db.common.linking.attributes 8039 db.seealso = 8040 8041 ## Part of an index term directing the reader also to another entry in the index 8042 element seealso { db.seealso.attlist, db.all.inlines* } 8043} 8044div { 8045 db.index.status.attribute = db.status.attribute 8046 db.index.role.attribute = attribute role { text } 8047 db.index.attlist = 8048 db.index.role.attribute? 8049 & db.common.attributes 8050 & db.common.linking.attributes 8051 & db.label.attribute? 8052 & db.index.status.attribute? 8053 & db.index.type.attribute? 8054 db.index.info = db._info 8055 # 8056 # Yes, db.indexdiv* and db.indexentry*; that way an <index/> is valid. 8057 # Authors can use an empty index to indicate where a generated index should 8058 # appear. 8059 db.index = 8060 8061 ## An index to a book or part of a book 8062 [ 8063 s:pattern [ 8064 name = "Root must have version" 8065 "\x{a}" ~ 8066 " " 8067 s:rule [ 8068 context = "/db:index" 8069 "\x{a}" ~ 8070 " " 8071 s:assert [ 8072 test = "@version" 8073 "The root element must have a version attribute." 8074 ] 8075 "\x{a}" ~ 8076 " " 8077 ] 8078 "\x{a}" ~ 8079 " " 8080 ] 8081 ] 8082 element index { 8083 db.index.attlist, 8084 db.index.info, 8085 db.all.blocks*, 8086 (db.indexdiv* | db.indexentry* | db.segmentedlist) 8087 } 8088} 8089div { 8090 db.setindex.status.attribute = db.status.attribute 8091 db.setindex.role.attribute = attribute role { text } 8092 db.setindex.attlist = 8093 db.setindex.role.attribute? 8094 & db.common.attributes 8095 & db.common.linking.attributes 8096 & db.label.attribute? 8097 & db.setindex.status.attribute? 8098 & db.index.type.attribute? 8099 db.setindex.info = db._info 8100 db.setindex = 8101 8102 ## An index to a set of books 8103 [ 8104 s:pattern [ 8105 name = "Root must have version" 8106 "\x{a}" ~ 8107 " " 8108 s:rule [ 8109 context = "/db:setindex" 8110 "\x{a}" ~ 8111 " " 8112 s:assert [ 8113 test = "@version" 8114 "The root element must have a version attribute." 8115 ] 8116 "\x{a}" ~ 8117 " " 8118 ] 8119 "\x{a}" ~ 8120 " " 8121 ] 8122 ] 8123 element setindex { 8124 db.setindex.attlist, 8125 db.setindex.info, 8126 db.all.blocks*, 8127 (db.indexdiv* | db.indexentry*) 8128 } 8129} 8130div { 8131 db.indexdiv.status.attribute = db.status.attribute 8132 db.indexdiv.role.attribute = attribute role { text } 8133 db.indexdiv.attlist = 8134 db.indexdiv.role.attribute? 8135 & db.common.attributes 8136 & db.common.linking.attributes 8137 & db.label.attribute? 8138 & db.indexdiv.status.attribute? 8139 db.indexdiv.info = db._info.title.req 8140 db.indexdiv = 8141 8142 ## A division in an index 8143 element indexdiv { 8144 db.indexdiv.attlist, 8145 db.indexdiv.info, 8146 db.all.blocks*, 8147 (db.indexentry+ | db.segmentedlist) 8148 } 8149} 8150div { 8151 db.indexentry.role.attribute = attribute role { text } 8152 db.indexentry.attlist = 8153 db.indexentry.role.attribute? 8154 & db.common.attributes 8155 & db.common.linking.attributes 8156 db.indexentry = 8157 8158 ## An entry in an index 8159 element indexentry { 8160 db.indexentry.attlist, 8161 db.primaryie, 8162 (db.seeie | db.seealsoie)*, 8163 (db.secondaryie, (db.seeie | db.seealsoie | db.tertiaryie)*)* 8164 } 8165} 8166div { 8167 db.primaryie.role.attribute = attribute role { text } 8168 db.primaryie.attlist = 8169 db.primaryie.role.attribute? 8170 & db.common.attributes 8171 & db.linkends.attribute? 8172 db.primaryie = 8173 8174 ## A primary term in an index entry, not in the text 8175 element primaryie { db.primaryie.attlist, db.all.inlines* } 8176} 8177div { 8178 db.secondaryie.role.attribute = attribute role { text } 8179 db.secondaryie.attlist = 8180 db.secondaryie.role.attribute? 8181 & db.common.attributes 8182 & db.linkends.attribute? 8183 db.secondaryie = 8184 8185 ## A secondary term in an index entry, rather than in the text 8186 element secondaryie { db.secondaryie.attlist, db.all.inlines* } 8187} 8188div { 8189 db.tertiaryie.role.attribute = attribute role { text } 8190 db.tertiaryie.attlist = 8191 db.tertiaryie.role.attribute? 8192 & db.common.attributes 8193 & db.linkends.attribute? 8194 db.tertiaryie = 8195 8196 ## A tertiary term in an index entry, rather than in the text 8197 element tertiaryie { db.tertiaryie.attlist, db.all.inlines* } 8198} 8199div { 8200 db.seeie.role.attribute = attribute role { text } 8201 db.seeie.attlist = 8202 db.seeie.role.attribute? 8203 & db.common.attributes 8204 & db.linkend.attribute? 8205 db.seeie = 8206 8207 ## A See 8208 ## entry in an index, rather than in the text 8209 element seeie { db.seeie.attlist, db.all.inlines* } 8210} 8211div { 8212 db.seealsoie.role.attribute = attribute role { text } 8213 db.seealsoie.attlist = 8214 db.seealsoie.role.attribute? 8215 & db.common.attributes 8216 & db.linkends.attribute? 8217 db.seealsoie = 8218 8219 ## A See also 8220 ## entry in an index, rather than in the text 8221 element seealsoie { db.seealsoie.attlist, db.all.inlines* } 8222} 8223db.toc.pagenum.attribute = 8224 8225 ## Indicates the page on which this element occurs in some version of the printed document 8226 attribute pagenum { text } 8227div { 8228 db.toc.role.attribute = attribute role { text } 8229 db.toc.attlist = 8230 db.toc.role.attribute? 8231 & db.common.attributes 8232 & db.common.linking.attributes 8233 db.toc.info = db._info.title.only 8234 db.toc = 8235 8236 ## A table of contents 8237 [ 8238 s:pattern [ 8239 name = "Root must have version" 8240 "\x{a}" ~ 8241 " " 8242 s:rule [ 8243 context = "/db:toc" 8244 "\x{a}" ~ 8245 " " 8246 s:assert [ 8247 test = "@version" 8248 "The root element must have a version attribute." 8249 ] 8250 "\x{a}" ~ 8251 " " 8252 ] 8253 "\x{a}" ~ 8254 " " 8255 ] 8256 ] 8257 element toc { 8258 db.toc.attlist, 8259 db.toc.info, 8260 db.all.blocks*, 8261 (db.tocdiv | db.tocentry)* 8262 } 8263} 8264div { 8265 db.tocdiv.role.attribute = attribute role { text } 8266 db.tocdiv.pagenum.attribute = db.toc.pagenum.attribute 8267 db.tocdiv.attlist = 8268 db.tocdiv.role.attribute? 8269 & db.common.attributes 8270 & db.tocdiv.pagenum.attribute? 8271 & db.linkend.attribute? 8272 db.tocdiv.info = db._info 8273 db.tocdiv = 8274 8275 ## A division in a table of contents 8276 element tocdiv { 8277 db.tocdiv.attlist, 8278 db.tocdiv.info, 8279 db.all.blocks*, 8280 (db.tocdiv | db.tocentry)+ 8281 } 8282} 8283div { 8284 db.tocentry.role.attribute = attribute role { text } 8285 db.tocentry.pagenum.attribute = db.toc.pagenum.attribute 8286 db.tocentry.attlist = 8287 db.tocentry.role.attribute? 8288 & db.common.attributes 8289 & db.tocentry.pagenum.attribute? 8290 & db.linkend.attribute? 8291 db.tocentry = 8292 8293 ## A component title in a table of contents 8294 element tocentry { db.tocentry.attlist, db.all.inlines* } 8295} 8296db.task.info = db._info.title.only 8297div { 8298 db.task.role.attribute = attribute role { text } 8299 db.task.attlist = 8300 db.task.role.attribute? 8301 & db.common.attributes 8302 & db.common.linking.attributes 8303 db.task = 8304 8305 ## A task to be completed 8306 element task { 8307 db.task.attlist, 8308 db.task.info, 8309 db.tasksummary?, 8310 db.taskprerequisites?, 8311 db.procedure, 8312 db.example*, 8313 db.taskrelated? 8314 } 8315} 8316div { 8317 db.tasksummary.role.attribute = attribute role { text } 8318 db.tasksummary.attlist = 8319 db.tasksummary.role.attribute? 8320 & db.common.attributes 8321 & db.common.linking.attributes 8322 db.tasksummary.info = db._info.title.only 8323 db.tasksummary = 8324 8325 ## A summary of a task 8326 element tasksummary { 8327 db.tasksummary.attlist, db.tasksummary.info, db.all.blocks+ 8328 } 8329} 8330div { 8331 db.taskprerequisites.role.attribute = attribute role { text } 8332 db.taskprerequisites.attlist = 8333 db.taskprerequisites.role.attribute? 8334 & db.common.attributes 8335 & db.common.linking.attributes 8336 db.taskprerequisites.info = db._info.title.only 8337 db.taskprerequisites = 8338 8339 ## The prerequisites for a task 8340 element taskprerequisites { 8341 db.taskprerequisites.attlist, 8342 db.taskprerequisites.info, 8343 db.all.blocks+ 8344 } 8345} 8346div { 8347 db.taskrelated.role.attribute = attribute role { text } 8348 db.taskrelated.attlist = 8349 db.taskrelated.role.attribute? 8350 & db.common.attributes 8351 & db.common.linking.attributes 8352 db.taskrelated.info = db._info.title.only 8353 db.taskrelated = 8354 8355 ## Information related to a task 8356 element taskrelated { 8357 db.taskrelated.attlist, db.taskrelated.info, db.all.blocks+ 8358 } 8359} 8360db.area.units.enumeration = 8361 8362 ## Coordinates expressed as a pair of CALS graphic coordinates. 8363 "calspair" 8364 | 8365 ## Coordinates expressed as a line and column. 8366 "linecolumn" 8367 | 8368 ## Coordinates expressed as a pair of lines and columns. 8369 "linecolumnpair" 8370 | 8371 ## Coordinates expressed as a line range. 8372 "linerange" 8373db.area.units-enum.attribute = 8374 8375 ## Identifies the units used in the coords attribute The default units vary according to the type of callout specified: calspair 8376 ## for graphics and linecolumn 8377 ## for line-oriented elements. 8378 attribute units { db.area.units.enumeration }? 8379db.area.units-other.attributes = 8380 8381 ## Indicates that non-standard units are used for this area 8382 ## . In this case otherunits 8383 ## must be specified. 8384 attribute units { 8385 8386 ## Coordinates expressed in some non-standard units. 8387 "other" 8388 }?, 8389 8390 ## Identifies the units used in the coords 8391 ## attribute when the units 8392 ## attribute is other 8393 ## . This attribute is forbidden otherwise. 8394 attribute otherunits { xsd:NMTOKEN } 8395db.area.units.attribute = 8396 db.area.units-enum.attribute | db.area.units-other.attributes 8397div { 8398 db.calloutlist.role.attribute = attribute role { text } 8399 db.calloutlist.attlist = 8400 db.calloutlist.role.attribute? 8401 & db.common.attributes 8402 & db.common.linking.attributes 8403 db.calloutlist.info = db._info.title.only 8404 db.calloutlist = 8405 8406 ## A list of callout 8407 ## s 8408 element calloutlist { 8409 db.calloutlist.attlist, 8410 db.calloutlist.info, 8411 db.all.blocks*, 8412 db.callout+ 8413 } 8414} 8415div { 8416 db.callout.role.attribute = attribute role { text } 8417 db.callout.arearefs.attribute = 8418 8419 ## Identifies the areas described by this callout. 8420 attribute arearefs { xsd:IDREFS } 8421 db.callout.attlist = 8422 db.callout.role.attribute? 8423 & db.common.attributes 8424 & db.callout.arearefs.attribute 8425 db.callout = 8426 8427 ## A called out 8428 ## description of a marked Area 8429 element callout { db.callout.attlist, db.all.blocks+ } 8430} 8431div { 8432 db.programlistingco.role.attribute = attribute role { text } 8433 db.programlistingco.attlist = 8434 db.programlistingco.role.attribute? 8435 & db.common.attributes 8436 & db.common.linking.attributes 8437 db.programlistingco.info = db._info.title.forbidden 8438 db.programlistingco = 8439 8440 ## A program listing with associated areas used in callouts 8441 element programlistingco { 8442 db.programlistingco.attlist, 8443 db.programlistingco.info, 8444 db.areaspec, 8445 db.programlisting, 8446 db.calloutlist* 8447 } 8448} 8449div { 8450 db.areaspec.role.attribute = attribute role { text } 8451 db.areaspec.attlist = 8452 db.areaspec.role.attribute? 8453 & db.common.attributes 8454 & db.common.linking.attributes 8455 & db.area.units.attribute 8456 db.areaspec = 8457 8458 ## A collection of regions in a graphic or code example 8459 element areaspec { db.areaspec.attlist, (db.area | db.areaset)+ } 8460} 8461div { 8462 db.area.role.attribute = attribute role { text } 8463 db.area.linkends.attribute = 8464 8465 ## Point to the callout 8466 ## s which refer to this area. (This provides bidirectional linking which may be useful in online presentation.) 8467 attribute linkends { xsd:IDREFS } 8468 db.area.label.attribute = 8469 8470 ## Specifies an identifying number or string that may be used in presentation. The area label might be drawn on top of the figure, for example, at the position indicated by the coords attribute. 8471 attribute label { text } 8472 db.area.coords.attribute = 8473 8474 ## Provides the coordinates of the area. The coordinates must be interpreted using the units 8475 ## specified. 8476 attribute coords { text } 8477 db.area.attlist = 8478 db.area.role.attribute? 8479 & db.common.idreq.attributes 8480 & db.area.units.attribute 8481 & (db.area.linkends.attribute | db.href.attribute)? 8482 & db.area.label.attribute? 8483 & db.area.coords.attribute 8484 db.area = 8485 8486 ## A region defined for a Callout in a graphic or code example 8487 element area { db.area.attlist, db.alt? } 8488} 8489div { 8490 # The only difference is that xml:id is optional 8491 db.area.inareaset.attlist = 8492 db.area.role.attribute? 8493 & db.common.attributes 8494 & db.area.units.attribute 8495 & (db.area.linkends.attribute | db.href.attribute)? 8496 & db.area.label.attribute? 8497 & db.area.coords.attribute 8498 db.area.inareaset = 8499 8500 ## A region defined for a Callout in a graphic or code example 8501 element area { db.area.inareaset.attlist, db.alt? } 8502} 8503div { 8504 db.areaset.role.attribute = attribute role { text } 8505 db.areaset.linkends.attribute = db.linkends.attribute 8506 db.areaset.label.attribute = db.label.attribute 8507 db.areaset.attlist = 8508 db.areaset.role.attribute? 8509 & db.common.idreq.attributes 8510 & db.area.units.attribute 8511 & (db.areaset.linkends.attribute | db.href.attribute)? 8512 & db.areaset.label.attribute? 8513 db.areaset = 8514 8515 ## A set of related areas in a graphic or code example 8516 element areaset { db.areaset.attlist, db.area.inareaset+ } 8517} 8518div { 8519 db.screenco.role.attribute = attribute role { text } 8520 db.screenco.attlist = 8521 db.screenco.role.attribute? 8522 & db.common.attributes 8523 & db.common.linking.attributes 8524 db.screenco.info = db._info.title.forbidden 8525 db.screenco = 8526 8527 ## A screen with associated areas used in callouts 8528 element screenco { 8529 db.screenco.attlist, 8530 db.screenco.info, 8531 db.areaspec, 8532 db.screen, 8533 db.calloutlist* 8534 } 8535} 8536div { 8537 db.imageobjectco.role.attribute = attribute role { text } 8538 db.imageobjectco.attlist = 8539 db.imageobjectco.role.attribute? 8540 & db.common.attributes 8541 & db.common.linking.attributes 8542 db.imageobjectco.info = db._info.title.forbidden 8543 db.imageobjectco = 8544 8545 ## A wrapper for an image object with callouts 8546 element imageobjectco { 8547 db.imageobjectco.attlist, 8548 db.imageobjectco.info, 8549 db.areaspec, 8550 db.imageobject+, 8551 db.calloutlist* 8552 } 8553} 8554div { 8555 db.co.role.attribute = attribute role { text } 8556 db.co.linkends.attribute = db.linkends.attribute 8557 db.co.label.attribute = db.label.attribute 8558 db.co.attlist = 8559 db.co.role.attribute? 8560 & db.common.idreq.attributes 8561 & db.co.linkends.attribute? 8562 & db.co.label.attribute? 8563 db.co = 8564 8565 ## The location of a callout embedded in text 8566 element co { db.co.attlist, empty } 8567} 8568div { 8569 db.coref.role.attribute = attribute role { text } 8570 db.coref.label.attribute = db.label.attribute 8571 db.coref.attlist = 8572 db.coref.role.attribute? 8573 & db.common.attributes 8574 & db.linkend.attribute 8575 & db.coref.label.attribute? 8576 db.coref = 8577 8578 ## A cross reference to a co 8579 element coref { db.coref.attlist, empty } 8580} 8581div { 8582 db.productionset.role.attribute = attribute role { text } 8583 db.productionset.attlist = 8584 db.productionset.role.attribute? 8585 & db.common.attributes 8586 & db.common.linking.attributes 8587 db.productionset.info = db._info.title.only 8588 db.productionset = 8589 8590 ## A set of EBNF productions 8591 element productionset { 8592 db.productionset.attlist, 8593 db.productionset.info, 8594 (db.production | db.productionrecap)+ 8595 } 8596} 8597div { 8598 db.production.role.attribute = attribute role { text } 8599 db.production.attlist = 8600 db.production.role.attribute? 8601 & db.common.idreq.attributes 8602 & db.common.linking.attributes 8603 db.production = 8604 8605 ## A production in a set of EBNF productions 8606 element production { 8607 db.production.attlist, db.lhs, db.rhs, db.constraint* 8608 } 8609} 8610div { 8611 db.lhs.role.attribute = attribute role { text } 8612 db.lhs.attlist = 8613 db.lhs.role.attribute? 8614 & db.common.attributes 8615 & db.common.linking.attributes 8616 db.lhs = 8617 8618 ## The left-hand side of an EBNF production 8619 element lhs { db.lhs.attlist, text } 8620} 8621div { 8622 db.rhs.role.attribute = attribute role { text } 8623 db.rhs.attlist = 8624 db.rhs.role.attribute? 8625 & db.common.attributes 8626 & db.common.linking.attributes 8627 db.rhs = 8628 8629 ## The right-hand side of an EBNF production 8630 element rhs { 8631 db.rhs.attlist, 8632 (text | db.nonterminal | db.lineannotation | db.sbr)* 8633 } 8634} 8635div { 8636 db.nonterminal.role.attribute = attribute role { text } 8637 db.nonterminal.def.attribute = 8638 8639 ## Specifies a URI that points to a production 8640 ## where the nonterminal 8641 ## is defined 8642 attribute def { xsd:anyURI } 8643 db.nonterminal.attlist = 8644 db.nonterminal.role.attribute? 8645 & db.common.attributes 8646 & db.common.linking.attributes 8647 & db.nonterminal.def.attribute 8648 db.nonterminal = 8649 8650 ## A non-terminal in an EBNF production 8651 element nonterminal { db.nonterminal.attlist, text } 8652} 8653div { 8654 db.constraint.role.attribute = attribute role { text } 8655 db.constraint.attlist = 8656 db.constraint.role.attribute? 8657 & db.common.attributes 8658 & db.common.req.linking.attributes 8659 db.constraint = 8660 8661 ## A constraint in an EBNF production 8662 element constraint { db.constraint.attlist, empty } 8663} 8664div { 8665 db.productionrecap.role.attribute = attribute role { text } 8666 db.productionrecap.attlist = 8667 db.productionrecap.role.attribute? 8668 & db.common.attributes 8669 & db.common.req.linking.attributes 8670 db.productionrecap = 8671 8672 ## A cross-reference to an EBNF production 8673 element productionrecap { db.productionrecap.attlist, empty } 8674} 8675div { 8676 db.constraintdef.role.attribute = attribute role { text } 8677 db.constraintdef.attlist = 8678 db.constraintdef.role.attribute? 8679 & db.common.attributes 8680 & db.common.linking.attributes 8681 db.constraintdef.info = db._info.title.only 8682 db.constraintdef = 8683 8684 ## The definition of a constraint in an EBNF production 8685 element constraintdef { 8686 db.constraintdef.attlist, db.constraintdef.info, db.all.blocks+ 8687 } 8688} 8689db.char.attribute = 8690 8691 ## Specifies the alignment character when align 8692 ## is set to char 8693 ## . 8694 attribute char { text } 8695db.charoff.attribute = 8696 8697 ## Specifies the percentage of the column's total width that should appear to the left of the first occurance of the character identified in char 8698 ## when align 8699 ## is set to char 8700 ## . 8701 attribute charoff { 8702 xsd:decimal { minExclusive = "0" maxExclusive = "100" } 8703 } 8704db.frame.attribute = 8705 8706 ## Specifies how the table is to be framed. Note that there is no way to obtain a border on only the starting edge (left, in left-to-right writing systems) of the table. 8707 attribute frame { 8708 8709 ## Frame all four sides of the table. In some environments with limited control over table border formatting, such as HTML, this may imply additional borders. 8710 "all" 8711 | 8712 ## Frame only the bottom of the table. 8713 "bottom" 8714 | 8715 ## Place no border on the table. In some environments with limited control over table border formatting, such as HTML, this may disable other borders as well. 8716 "none" 8717 | 8718 ## Frame the left and right sides of the table. 8719 "sides" 8720 | 8721 ## Frame the top of the table. 8722 "top" 8723 | 8724 ## Frame the top and bottom of the table. 8725 "topbot" 8726 } 8727db.colsep.attribute = 8728 8729 ## Specifies the presence or absence of the column separator 8730 attribute colsep { 8731 8732 ## No column separator rule. 8733 "0" 8734 | 8735 ## Provide a column separator rule on the right 8736 "1" 8737 } 8738db.rowsep.attribute = 8739 8740 ## Specifies the presence or absence of the row separator 8741 attribute rowsep { 8742 8743 ## No row separator rule. 8744 "0" 8745 | 8746 ## Provide a row separator rule below 8747 "1" 8748 } 8749db.orient.attribute = 8750 8751 ## Specifies the orientation of the table 8752 attribute orient { 8753 8754 ## 90 degrees counter-clockwise from the rest of the text flow. 8755 "land" 8756 | 8757 ## The same orientation as the rest of the text flow. 8758 "port" 8759 } 8760db.tabstyle.attribute = 8761 8762 ## Specifies the table style 8763 attribute tabstyle { text } 8764db.rowheader.attribute = 8765 8766 ## Indicates whether or not the entries in the first column should be considered row headers 8767 attribute rowheader { 8768 8769 ## Indicates that entries in the first column of the table are functionally row headers (analogous to the way that a thead provides column headers). 8770 "firstcol" 8771 | 8772 ## Indicates that entries in the first column have no special significance with respect to column headers. 8773 "norowheader" 8774 } 8775db.align.attribute = 8776 8777 ## Specifies the horizontal alignment of text in an entry. 8778 attribute align { 8779 8780 ## Centered. 8781 "center" 8782 | 8783 ## Aligned on a particular character. 8784 "char" 8785 | 8786 ## Left and right justified. 8787 "justify" 8788 | 8789 ## Left justified. 8790 "left" 8791 | 8792 ## Right justified. 8793 "right" 8794 } 8795db.valign.attribute = 8796 8797 ## Specifies the vertical alignment of text in an entry. 8798 attribute valign { 8799 8800 ## Aligned on the bottom of the entry. 8801 "bottom" 8802 | 8803 ## Aligned in the middle. 8804 "middle" 8805 | 8806 ## Aligned at the top of the entry. 8807 "top" 8808 } 8809db.specify-col-by-colname.attributes = 8810 8811 ## Specifies a column specification by name. 8812 attribute colname { text } 8813db.specify-col-by-namest.attributes = 8814 8815 ## Specifies a starting column by name. 8816 attribute namest { text } 8817db.specify-span-by-spanspec.attributes = 8818 8819 ## Specifies a span by name. 8820 attribute spanname { text } 8821db.specify-span-directly.attributes = 8822 8823 ## Specifies a starting column by name. 8824 attribute namest { text } 8825 & 8826 ## Specifies an ending column by name. 8827 attribute nameend { text } 8828db.column-spec.attributes = 8829 db.specify-col-by-colname.attributes 8830 | db.specify-col-by-namest.attributes 8831 | db.specify-span-by-spanspec.attributes 8832 | db.specify-span-directly.attributes 8833db.colname.attribute = 8834 8835 ## Provides a name for a column specification. 8836 attribute colname { text } 8837db.spanname.attribute = 8838 8839 ## Provides a name for a span specification. 8840 attribute spanname { text } 8841div { 8842 db.tgroup.role.attribute = attribute role { text } 8843 db.tgroup.tgroupstyle.attribute = 8844 8845 ## Additional style information for downstream processing; typically the name of a style. 8846 attribute tgroupstyle { text } 8847 db.tgroup.cols.attribute = 8848 8849 ## The number of columns in the table. Must be an integer greater than zero. 8850 attribute cols { xsd:positiveInteger } 8851 db.tgroup.attlist = 8852 db.tgroup.role.attribute? 8853 & db.common.attributes 8854 & db.common.linking.attributes 8855 & db.char.attribute? 8856 & db.charoff.attribute? 8857 & db.tgroup.tgroupstyle.attribute? 8858 & db.tgroup.cols.attribute 8859 & db.colsep.attribute? 8860 & db.rowsep.attribute? 8861 & db.align.attribute? 8862 db.tgroup = 8863 8864 ## A wrapper for the main content of a table, or part of a table 8865 element tgroup { 8866 db.tgroup.attlist, 8867 db.colspec*, 8868 db.spanspec*, 8869 db.cals.thead?, 8870 db.cals.tfoot?, 8871 db.cals.tbody 8872 } 8873} 8874div { 8875 db.colspec.role.attribute = attribute role { text } 8876 db.colspec.colnum.attribute = 8877 8878 ## The number of the column to which this specification applies. Must be greater than any preceding column number. Defaults to one more than the number of the preceding column, if there is one, or one. 8879 attribute colnum { xsd:positiveInteger } 8880 db.colspec.colwidth.attribute = 8881 8882 ## Specifies the width of the column. 8883 attribute colwidth { text } 8884 db.colspec.attlist = 8885 db.colspec.role.attribute? 8886 & db.common.attributes 8887 & db.common.linking.attributes 8888 & db.colspec.colnum.attribute? 8889 & db.char.attribute? 8890 & db.colsep.attribute? 8891 & db.colspec.colwidth.attribute? 8892 & db.charoff.attribute? 8893 & db.colname.attribute? 8894 & db.rowsep.attribute? 8895 & db.align.attribute? 8896 db.colspec = 8897 8898 ## Specifications for a column in a table 8899 element colspec { db.colspec.attlist, empty } 8900} 8901div { 8902 db.spanspec.role.attribute = attribute role { text } 8903 db.spanspec.namest.attribute = 8904 8905 ## Specifies a starting column by name. 8906 attribute namest { text } 8907 db.spanspec.nameend.attribute = 8908 8909 ## Specifies an ending column by name. 8910 attribute nameend { text } 8911 db.spanspec.attlist = 8912 db.spanspec.role.attribute? 8913 & db.common.attributes 8914 & db.common.linking.attributes 8915 & db.spanname.attribute 8916 & db.spanspec.namest.attribute 8917 & db.spanspec.nameend.attribute 8918 & db.char.attribute? 8919 & db.colsep.attribute? 8920 & db.charoff.attribute? 8921 & db.rowsep.attribute? 8922 & db.align.attribute? 8923 db.spanspec = 8924 8925 ## Formatting information for a spanned column in a table 8926 element spanspec { db.spanspec.attlist, empty } 8927} 8928div { 8929 db.cals.thead.role.attribute = attribute role { text } 8930 db.cals.thead.attlist = 8931 db.cals.thead.role.attribute? 8932 & db.common.attributes 8933 & db.common.linking.attributes 8934 & db.valign.attribute? 8935 db.cals.thead = 8936 8937 ## A table header consisting of one or more rows 8938 element thead { db.cals.thead.attlist, db.colspec*, db.row+ } 8939} 8940div { 8941 db.cals.tfoot.role.attribute = attribute role { text } 8942 db.cals.tfoot.attlist = 8943 db.cals.tfoot.role.attribute? 8944 & db.common.attributes 8945 & db.common.linking.attributes 8946 & db.valign.attribute? 8947 db.cals.tfoot = 8948 8949 ## A table footer consisting of one or more rows 8950 element tfoot { db.cals.tfoot.attlist, db.colspec*, db.row+ } 8951} 8952div { 8953 db.cals.tbody.role.attribute = attribute role { text } 8954 db.cals.tbody.attlist = 8955 db.cals.tbody.role.attribute? 8956 & db.common.attributes 8957 & db.common.linking.attributes 8958 & db.valign.attribute? 8959 db.cals.tbody = 8960 8961 ## A wrapper for the rows of a table or informal table 8962 element tbody { db.cals.tbody.attlist, db.row+ } 8963} 8964div { 8965 db.row.role.attribute = attribute role { text } 8966 db.row.attlist = 8967 db.row.role.attribute? 8968 & db.common.attributes 8969 & db.common.linking.attributes 8970 & db.rowsep.attribute? 8971 & db.valign.attribute? 8972 db.row = 8973 8974 ## A row in a table 8975 element row { db.row.attlist, (db.entry | db.entrytbl)+ } 8976} 8977div { 8978 db.entry.role.attribute = attribute role { text } 8979 db.entry.morerows.attribute = 8980 8981 ## Specifies the number of additional rows which this entry occupies. Defaults to zero. 8982 attribute morerows { xsd:integer } 8983 db.entry.rotate.attribute = 8984 8985 ## Specifies the rotation of this entry. A value of 1 (true) rotates the cell 90 degrees counter-clockwise. A value of 0 (false) leaves the cell unrotated. 8986 attribute rotate { 8987 8988 ## Do not rotate the cell. 8989 "0" 8990 | 8991 ## Rotate the cell 90 degrees counter-clockwise. 8992 "1" 8993 } 8994 db.entry.attlist = 8995 db.entry.role.attribute? 8996 & db.common.attributes 8997 & db.common.linking.attributes 8998 & db.valign.attribute? 8999 & db.char.attribute? 9000 & db.colsep.attribute? 9001 & db.charoff.attribute? 9002 & db.entry.morerows.attribute? 9003 & db.column-spec.attributes? 9004 & db.rowsep.attribute? 9005 & db.entry.rotate.attribute? 9006 & db.align.attribute? 9007 db.entry = 9008 9009 ## A cell in a table 9010 element entry { 9011 db.entry.attlist, (db.all.inlines* | db.all.blocks*) 9012 } 9013} 9014div { 9015 db.entrytbl.role.attribute = attribute role { text } 9016 db.entrytbl.tgroupstyle.attribute = 9017 9018 ## Additional style information for downstream processing; typically the name of a style. 9019 attribute tgroupstyle { text } 9020 db.entrytbl.cols.attribute = 9021 9022 ## The number of columns in the entry table. Must be an integer greater than zero. 9023 attribute cols { xsd:positiveInteger } 9024 db.entrytbl.attlist = 9025 db.entrytbl.role.attribute? 9026 & db.common.attributes 9027 & db.common.linking.attributes 9028 & db.char.attribute? 9029 & db.charoff.attribute? 9030 & db.column-spec.attributes? 9031 & db.entrytbl.tgroupstyle.attribute? 9032 & db.entrytbl.cols.attribute? 9033 & db.colsep.attribute? 9034 & db.rowsep.attribute? 9035 & db.align.attribute? 9036 db.entrytbl = 9037 9038 ## A subtable appearing in place of an Entry in a table 9039 element entrytbl { 9040 db.entrytbl.attlist, 9041 db.colspec*, 9042 db.spanspec*, 9043 db.cals.entrytbl.thead?, 9044 db.cals.entrytbl.tbody 9045 } 9046} 9047div { 9048 db.cals.entrytbl.thead.role.attribute = attribute role { text } 9049 db.cals.entrytbl.thead.attlist = 9050 db.cals.entrytbl.thead.role.attribute? 9051 & db.common.attributes 9052 & db.common.linking.attributes 9053 & db.valign.attribute? 9054 db.cals.entrytbl.thead = 9055 9056 ## A table header consisting of one or more rows 9057 element thead { 9058 db.cals.entrytbl.thead.attlist, db.colspec*, db.entrytbl.row+ 9059 } 9060} 9061div { 9062 db.cals.entrytbl.tbody.role.attribute = attribute role { text } 9063 db.cals.entrytbl.tbody.attlist = 9064 db.cals.entrytbl.tbody.role.attribute? 9065 & db.common.attributes 9066 & db.common.linking.attributes 9067 & db.valign.attribute? 9068 db.cals.entrytbl.tbody = 9069 9070 ## A wrapper for the rows of a table or informal table 9071 element tbody { db.cals.entrytbl.tbody.attlist, db.entrytbl.row+ } 9072} 9073div { 9074 db.entrytbl.row.role.attribute = attribute role { text } 9075 db.entrytbl.row.attlist = 9076 db.entrytbl.row.role.attribute? 9077 & db.common.attributes 9078 & db.common.linking.attributes 9079 & db.rowsep.attribute? 9080 & db.valign.attribute? 9081 db.entrytbl.row = 9082 9083 ## A row in a table 9084 element row { db.entrytbl.row.attlist, db.entry+ } 9085} 9086div { 9087 db.cals.table.role.attribute = attribute role { text } 9088 db.cals.table.attlist = 9089 db.cals.table.role.attribute? 9090 & db.common.attributes 9091 & db.common.linking.attributes 9092 & db.tabstyle.attribute? 9093 & db.floatstyle.attribute? 9094 & db.orient.attribute? 9095 & db.colsep.attribute? 9096 & db.rowsep.attribute? 9097 & db.frame.attribute? 9098 & db.pgwide.attribute? 9099 & 9100 ## Indicates if the short or long title should be used in a List of Tables 9101 attribute shortentry { 9102 9103 ## Indicates that the full title should be used. 9104 "0" 9105 | 9106 ## Indicates that the short short title (titleabbrev) should be used. 9107 "1" 9108 }? 9109 & 9110 ## Indicates if the table should appear in a List of Tables 9111 attribute tocentry { 9112 9113 ## Indicates that the table should not occur in the List of Tables. 9114 "0" 9115 | 9116 ## Indicates that the table should appear in the List of Tables. 9117 "1" 9118 }? 9119 & db.rowheader.attribute? 9120 db.cals.table.info = db._info.title.onlyreq 9121 db.cals.table = 9122 9123 ## A formal table in a document 9124 [ 9125 s:pattern [ 9126 name = "Element exclusion" 9127 "\x{a}" ~ 9128 " " 9129 s:rule [ 9130 context = "db:table" 9131 "\x{a}" ~ 9132 " " 9133 s:assert [ 9134 test = "not(.//db:example)" 9135 "example must not occur in the descendants of table" 9136 ] 9137 "\x{a}" ~ 9138 " " 9139 ] 9140 "\x{a}" ~ 9141 " " 9142 ] 9143 s:pattern [ 9144 name = "Element exclusion" 9145 "\x{a}" ~ 9146 " " 9147 s:rule [ 9148 context = "db:table" 9149 "\x{a}" ~ 9150 " " 9151 s:assert [ 9152 test = "not(.//db:figure)" 9153 "figure must not occur in the descendants of table" 9154 ] 9155 "\x{a}" ~ 9156 " " 9157 ] 9158 "\x{a}" ~ 9159 " " 9160 ] 9161 s:pattern [ 9162 name = "Element exclusion" 9163 "\x{a}" ~ 9164 " " 9165 s:rule [ 9166 context = "db:table" 9167 "\x{a}" ~ 9168 " " 9169 s:assert [ 9170 test = "not(.//db:table)" 9171 "table must not occur in the descendants of table" 9172 ] 9173 "\x{a}" ~ 9174 " " 9175 ] 9176 "\x{a}" ~ 9177 " " 9178 ] 9179 s:pattern [ 9180 name = "Element exclusion" 9181 "\x{a}" ~ 9182 " " 9183 s:rule [ 9184 context = "db:table" 9185 "\x{a}" ~ 9186 " " 9187 s:assert [ 9188 test = "not(.//db:table)" 9189 "table must not occur in the descendants of table" 9190 ] 9191 "\x{a}" ~ 9192 " " 9193 ] 9194 "\x{a}" ~ 9195 " " 9196 ] 9197 s:pattern [ 9198 name = "Element exclusion" 9199 "\x{a}" ~ 9200 " " 9201 s:rule [ 9202 context = "db:table" 9203 "\x{a}" ~ 9204 " " 9205 s:assert [ 9206 test = "not(.//db:caution)" 9207 "caution must not occur in the descendants of table" 9208 ] 9209 "\x{a}" ~ 9210 " " 9211 ] 9212 "\x{a}" ~ 9213 " " 9214 ] 9215 s:pattern [ 9216 name = "Element exclusion" 9217 "\x{a}" ~ 9218 " " 9219 s:rule [ 9220 context = "db:table" 9221 "\x{a}" ~ 9222 " " 9223 s:assert [ 9224 test = "not(.//db:important)" 9225 "important must not occur in the descendants of table" 9226 ] 9227 "\x{a}" ~ 9228 " " 9229 ] 9230 "\x{a}" ~ 9231 " " 9232 ] 9233 s:pattern [ 9234 name = "Element exclusion" 9235 "\x{a}" ~ 9236 " " 9237 s:rule [ 9238 context = "db:table" 9239 "\x{a}" ~ 9240 " " 9241 s:assert [ 9242 test = "not(.//db:note)" 9243 "note must not occur in the descendants of table" 9244 ] 9245 "\x{a}" ~ 9246 " " 9247 ] 9248 "\x{a}" ~ 9249 " " 9250 ] 9251 s:pattern [ 9252 name = "Element exclusion" 9253 "\x{a}" ~ 9254 " " 9255 s:rule [ 9256 context = "db:table" 9257 "\x{a}" ~ 9258 " " 9259 s:assert [ 9260 test = "not(.//db:tip)" 9261 "tip must not occur in the descendants of table" 9262 ] 9263 "\x{a}" ~ 9264 " " 9265 ] 9266 "\x{a}" ~ 9267 " " 9268 ] 9269 s:pattern [ 9270 name = "Element exclusion" 9271 "\x{a}" ~ 9272 " " 9273 s:rule [ 9274 context = "db:table" 9275 "\x{a}" ~ 9276 " " 9277 s:assert [ 9278 test = "not(.//db:warning)" 9279 "warning must not occur in the descendants of table" 9280 ] 9281 "\x{a}" ~ 9282 " " 9283 ] 9284 "\x{a}" ~ 9285 " " 9286 ] 9287 s:pattern [ 9288 name = "Element exclusion" 9289 "\x{a}" ~ 9290 " " 9291 s:rule [ 9292 context = "db:table" 9293 "\x{a}" ~ 9294 " " 9295 s:assert [ 9296 test = "not(.//db:table)" 9297 "table must not occur in the descendants of table" 9298 ] 9299 "\x{a}" ~ 9300 " " 9301 ] 9302 "\x{a}" ~ 9303 " " 9304 ] 9305 s:pattern [ 9306 name = "Element exclusion" 9307 "\x{a}" ~ 9308 " " 9309 s:rule [ 9310 context = "db:table" 9311 "\x{a}" ~ 9312 " " 9313 s:assert [ 9314 test = "not(.//db:informaltable)" 9315 "informaltable must not occur in the descendants of table" 9316 ] 9317 "\x{a}" ~ 9318 " " 9319 ] 9320 "\x{a}" ~ 9321 " " 9322 ] 9323 ] 9324 element table { 9325 db.cals.table.attlist, 9326 db.cals.table.info, 9327 (db.alt? & db.indexing.inlines* & db.textobject*), 9328 (db.mediaobject+ | db.tgroup+), 9329 db.caption? 9330 } 9331} 9332div { 9333 db.cals.informaltable.role.attribute = attribute role { text } 9334 db.cals.informaltable.attlist = 9335 db.cals.informaltable.role.attribute? 9336 & db.common.attributes 9337 & db.common.linking.attributes 9338 & db.tabstyle.attribute? 9339 & db.floatstyle.attribute? 9340 & db.orient.attribute? 9341 & db.colsep.attribute? 9342 & db.rowsep.attribute? 9343 & db.frame.attribute? 9344 & db.pgwide.attribute? 9345 & db.rowheader.attribute? 9346 db.cals.informaltable.info = db._info.title.forbidden 9347 db.cals.informaltable = 9348 9349 ## A table without a title 9350 element informaltable { 9351 db.cals.informaltable.attlist, 9352 db.cals.informaltable.info, 9353 (db.alt? & db.indexing.inlines* & db.textobject*), 9354 (db.mediaobject+ | db.tgroup+), 9355 db.caption? 9356 } 9357} 9358db.html.coreattrs = 9359 9360 ## This attribute assigns a class name or set of class names to an element. Any number of elements may be assigned the same class name or names. Multiple class names must be separated by white space characters. 9361 attribute class { text }? 9362 & 9363 ## This attribute specifies style information for the current element. 9364 attribute style { text }? 9365 & 9366 ## This attribute offers advisory information about the element for which it is set. 9367 attribute title { text }? 9368db.html.i18n = 9369 9370 ## This attribute specifies the base language of an element's attribute values and text content. The default value of this attribute is unknown. 9371 attribute lang { text }? 9372db.html.events = 9373 9374 ## Occurs when the pointing device button is clicked over an element. 9375 attribute onclick { text }? 9376 & 9377 ## Occurs when the pointing device button is double clicked over an element. 9378 attribute ondblclick { text }? 9379 & 9380 ## Occurs when the pointing device button is pressed over an element. 9381 attribute onmousedown { text }? 9382 & 9383 ## Occurs when the pointing device button is released over an element. 9384 attribute onmouseup { text }? 9385 & 9386 ## Occurs when the pointing device is moved onto an element. 9387 attribute onmouseover { text }? 9388 & 9389 ## Occurs when the pointing device is moved while it is over an element. 9390 attribute onmousemove { text }? 9391 & 9392 ## Occurs when the pointing device is moved away from an element. 9393 attribute onmouseout { text }? 9394 & 9395 ## Occurs when a key is pressed and released over an element. 9396 attribute onkeypress { text }? 9397 & 9398 ## Occurs when a key is pressed down over an element. 9399 attribute onkeydown { text }? 9400 & 9401 ## Occurs when a key is released over an element. 9402 attribute onkeyup { text }? 9403db.html.attrs = 9404 db.common.attributes 9405 & db.html.coreattrs 9406 & db.html.i18n 9407 & db.html.events 9408db.html.cellhalign = 9409 9410 ## Specifies the alignment of data and the justification of text in a cell. 9411 attribute align { 9412 9413 ## Left-flush data/Left-justify text. This is the default value for table data. 9414 "left" 9415 | 9416 ## Center data/Center-justify text. This is the default value for table headers. 9417 "center" 9418 | 9419 ## Right-flush data/Right-justify text. 9420 "right" 9421 | 9422 ## Double-justify text. 9423 "justify" 9424 | 9425 ## Align text around a specific character. If a user agent doesn't support character alignment, behavior in the presence of this value is unspecified. 9426 "char" 9427 }? 9428 & 9429 ## This attribute specifies a single character within a text fragment to act as an axis for alignment. The default value for this attribute is the decimal point character for the current language as set by the lang attribute (e.g., the period in English and the comma in French). User agents are not required to support this attribute. 9430 attribute char { text }? 9431 & 9432 ## When present, this attribute specifies the offset to the first occurrence of the alignment character on each line. If a line doesn't include the alignment character, it should be horizontally shifted to end at the alignment position. When charoff is used to set the offset of an alignment character, the direction of offset is determined by the current text direction (set by the dir attribute). In left-to-right texts (the default), offset is from the left margin. In right-to-left texts, offset is from the right margin. User agents are not required to support this attribute. 9433 attribute charoff { 9434 xsd:integer 9435 | xsd:string { pattern = "[0-9]+%" } 9436 }? 9437db.html.cellvalign = 9438 9439 ## Specifies the vertical position of data within a cell. 9440 attribute valign { 9441 9442 ## Cell data is flush with the top of the cell. 9443 "top" 9444 | 9445 ## Cell data is centered vertically within the cell. This is the default value. 9446 "middle" 9447 | 9448 ## Cell data is flush with the bottom of the cell. 9449 "bottom" 9450 | 9451 ## All cells in the same row as a cell whose valign attribute has this value should have their textual data positioned so that the first text line occurs on a baseline common to all cells in the row. This constraint does not apply to subsequent text lines in these cells. 9452 "baseline" 9453 }? 9454db.html.table.attributes = 9455 9456 ## Provides a summary of the table's purpose and structure for user agents rendering to non-visual media such as speech and Braille. 9457 attribute summary { text }? 9458 & 9459 ## Specifies the desired width of the entire table and is intended for visual user agents. When the value is a percentage value, the value is relative to the user agent's available horizontal space. In the absence of any width specification, table width is determined by the user agent. 9460 attribute width { 9461 xsd:integer 9462 | xsd:string { pattern = "[0-9]+%" } 9463 }? 9464 & 9465 ## Specifies the width (in pixels only) of the frame around a table. 9466 attribute border { xsd:nonNegativeInteger }? 9467 & 9468 ## Specifies which sides of the frame surrounding a table will be visible. 9469 attribute frame { 9470 9471 ## No sides. This is the default value. 9472 "void" 9473 | 9474 ## The top side only. 9475 "above" 9476 | 9477 ## The bottom side only. 9478 "below" 9479 | 9480 ## The top and bottom sides only. 9481 "hsides" 9482 | 9483 ## The left-hand side only. 9484 "lhs" 9485 | 9486 ## The right-hand side only. 9487 "rhs" 9488 | 9489 ## The right and left sides only. 9490 "vsides" 9491 | 9492 ## All four sides. 9493 "box" 9494 | 9495 ## All four sides. 9496 "border" 9497 }? 9498 & 9499 ## Specifies which rules will appear between cells within a table. The rendering of rules is user agent dependent. 9500 attribute rules { 9501 9502 ## No rules. This is the default value. 9503 "none" 9504 | 9505 ## Rules will appear between row groups (see thead, tfoot, and tbody) and column groups (see colgroup and col) only. 9506 "groups" 9507 | 9508 ## Rules will appear between rows only. 9509 "rows" 9510 | 9511 ## Rules will appear between columns only. 9512 "cols" 9513 | 9514 ## Rules will appear between all rows and columns. 9515 "all" 9516 }? 9517 & 9518 ## Specifies how much space the user agent should leave between the left side of the table and the left-hand side of the leftmost column, the top of the table and the top side of the topmost row, and so on for the right and bottom of the table. The attribute also specifies the amount of space to leave between cells. 9519 attribute cellspacing { 9520 xsd:integer 9521 | xsd:string { pattern = "[0-9]+%" } 9522 }? 9523 & 9524 ## Specifies the amount of space between the border of the cell and its contents. If the value of this attribute is a pixel length, all four margins should be this distance from the contents. If the value of the attribute is a percentage length, the top and bottom margins should be equally separated from the content based on a percentage of the available vertical space, and the left and right margins should be equally separated from the content based on a percentage of the available horizontal space. 9525 attribute cellpadding { 9526 xsd:integer 9527 | xsd:string { pattern = "[0-9]+%" } 9528 }? 9529db.html.tablecell.attributes = 9530 9531 ## Provides an abbreviated form of the cell's content and may be rendered by user agents when appropriate in place of the cell's content. Abbreviated names should be short since user agents may render them repeatedly. For instance, speech synthesizers may render the abbreviated headers relating to a particular cell before rendering that cell's content. 9532 attribute abbr { text }? 9533 & 9534 ## This attribute may be used to place a cell into conceptual categories that can be considered to form axes in an n-dimensional space. User agents may give users access to these categories (e.g., the user may query the user agent for all cells that belong to certain categories, the user agent may present a table in the form of a table of contents, etc.). Please consult an HTML reference for more details. 9535 attribute axis { text }? 9536 & 9537 ## Specifies the list of header cells that provide header information for the current data cell. The value of this attribute is a space-separated list of cell names; those cells must be named by setting their id attribute. Authors generally use the headers attribute to help non-visual user agents render header information about data cells (e.g., header information is spoken prior to the cell data), but the attribute may also be used in conjunction with style sheets. 9538 attribute headers { text }? 9539 & 9540 ## Specifies the set of data cells for which the current header cell provides header information. This attribute may be used in place of the headers attribute, particularly for simple tables. 9541 attribute scope { 9542 9543 ## The current cell provides header information for the rest of the row that contains it 9544 "row" 9545 | 9546 ## The current cell provides header information for the rest of the column that contains it. 9547 "col" 9548 | 9549 ## The header cell provides header information for the rest of the row group that contains it. 9550 "rowgroup" 9551 | 9552 ## The header cell provides header information for the rest of the column group that contains it. 9553 "colgroup" 9554 }? 9555 & 9556 ## Specifies the number of rows spanned by the current cell. The default value of this attribute is one (1 9557 ## ). The value zero (0 9558 ## ) means that the cell spans all rows from the current row to the last row of the table section (thead 9559 ## , tbody 9560 ## , or tfoot 9561 ## ) in which the cell is defined. 9562 attribute rowspan { xsd:nonNegativeInteger }? 9563 & 9564 ## Specifies the number of columns spanned by the current cell. The default value of this attribute is one (1 9565 ## ). The value zero (0 9566 ## ) means that the cell spans all columns from the current column to the last column of the column group (colgroup 9567 ## ) in which the cell is defined. 9568 attribute colspan { xsd:nonNegativeInteger }? 9569db.html.table.model = 9570 db.html.caption, 9571 (db.html.col* | db.html.colgroup*), 9572 db.html.thead?, 9573 db.html.tfoot?, 9574 (db.html.tbody+ | db.html.tr+) 9575db.html.informaltable.model = 9576 (db.html.col* | db.html.colgroup*), 9577 db.html.thead?, 9578 db.html.tfoot?, 9579 (db.html.tbody+ | db.html.tr+) 9580div { 9581 db.html.table.attlist = 9582 db.html.attrs 9583 & db.html.table.attributes 9584 & db.orient.attribute? 9585 & db.pgwide.attribute? 9586 & db.tabstyle.attribute? 9587 & db.floatstyle.attribute? 9588 db.html.table = 9589 9590 ## A formal (captioned) HTML table in a document 9591 [ 9592 s:pattern [ 9593 name = "Element exclusion" 9594 "\x{a}" ~ 9595 " " 9596 s:rule [ 9597 context = "db:table" 9598 "\x{a}" ~ 9599 " " 9600 s:assert [ 9601 test = "not(.//db:example)" 9602 "example must not occur in the descendants of table" 9603 ] 9604 "\x{a}" ~ 9605 " " 9606 ] 9607 "\x{a}" ~ 9608 " " 9609 ] 9610 s:pattern [ 9611 name = "Element exclusion" 9612 "\x{a}" ~ 9613 " " 9614 s:rule [ 9615 context = "db:table" 9616 "\x{a}" ~ 9617 " " 9618 s:assert [ 9619 test = "not(.//db:figure)" 9620 "figure must not occur in the descendants of table" 9621 ] 9622 "\x{a}" ~ 9623 " " 9624 ] 9625 "\x{a}" ~ 9626 " " 9627 ] 9628 s:pattern [ 9629 name = "Element exclusion" 9630 "\x{a}" ~ 9631 " " 9632 s:rule [ 9633 context = "db:table" 9634 "\x{a}" ~ 9635 " " 9636 s:assert [ 9637 test = "not(.//db:table)" 9638 "table must not occur in the descendants of table" 9639 ] 9640 "\x{a}" ~ 9641 " " 9642 ] 9643 "\x{a}" ~ 9644 " " 9645 ] 9646 s:pattern [ 9647 name = "Element exclusion" 9648 "\x{a}" ~ 9649 " " 9650 s:rule [ 9651 context = "db:table" 9652 "\x{a}" ~ 9653 " " 9654 s:assert [ 9655 test = "not(.//db:table)" 9656 "table must not occur in the descendants of table" 9657 ] 9658 "\x{a}" ~ 9659 " " 9660 ] 9661 "\x{a}" ~ 9662 " " 9663 ] 9664 s:pattern [ 9665 name = "Element exclusion" 9666 "\x{a}" ~ 9667 " " 9668 s:rule [ 9669 context = "db:table" 9670 "\x{a}" ~ 9671 " " 9672 s:assert [ 9673 test = "not(.//db:caution)" 9674 "caution must not occur in the descendants of table" 9675 ] 9676 "\x{a}" ~ 9677 " " 9678 ] 9679 "\x{a}" ~ 9680 " " 9681 ] 9682 s:pattern [ 9683 name = "Element exclusion" 9684 "\x{a}" ~ 9685 " " 9686 s:rule [ 9687 context = "db:table" 9688 "\x{a}" ~ 9689 " " 9690 s:assert [ 9691 test = "not(.//db:important)" 9692 "important must not occur in the descendants of table" 9693 ] 9694 "\x{a}" ~ 9695 " " 9696 ] 9697 "\x{a}" ~ 9698 " " 9699 ] 9700 s:pattern [ 9701 name = "Element exclusion" 9702 "\x{a}" ~ 9703 " " 9704 s:rule [ 9705 context = "db:table" 9706 "\x{a}" ~ 9707 " " 9708 s:assert [ 9709 test = "not(.//db:note)" 9710 "note must not occur in the descendants of table" 9711 ] 9712 "\x{a}" ~ 9713 " " 9714 ] 9715 "\x{a}" ~ 9716 " " 9717 ] 9718 s:pattern [ 9719 name = "Element exclusion" 9720 "\x{a}" ~ 9721 " " 9722 s:rule [ 9723 context = "db:table" 9724 "\x{a}" ~ 9725 " " 9726 s:assert [ 9727 test = "not(.//db:tip)" 9728 "tip must not occur in the descendants of table" 9729 ] 9730 "\x{a}" ~ 9731 " " 9732 ] 9733 "\x{a}" ~ 9734 " " 9735 ] 9736 s:pattern [ 9737 name = "Element exclusion" 9738 "\x{a}" ~ 9739 " " 9740 s:rule [ 9741 context = "db:table" 9742 "\x{a}" ~ 9743 " " 9744 s:assert [ 9745 test = "not(.//db:warning)" 9746 "warning must not occur in the descendants of table" 9747 ] 9748 "\x{a}" ~ 9749 " " 9750 ] 9751 "\x{a}" ~ 9752 " " 9753 ] 9754 s:pattern [ 9755 name = "Element exclusion" 9756 "\x{a}" ~ 9757 " " 9758 s:rule [ 9759 context = "db:table" 9760 "\x{a}" ~ 9761 " " 9762 s:assert [ 9763 test = "not(.//db:table)" 9764 "table must not occur in the descendants of table" 9765 ] 9766 "\x{a}" ~ 9767 " " 9768 ] 9769 "\x{a}" ~ 9770 " " 9771 ] 9772 s:pattern [ 9773 name = "Element exclusion" 9774 "\x{a}" ~ 9775 " " 9776 s:rule [ 9777 context = "db:table" 9778 "\x{a}" ~ 9779 " " 9780 s:assert [ 9781 test = "not(.//db:informaltable)" 9782 "informaltable must not occur in the descendants of table" 9783 ] 9784 "\x{a}" ~ 9785 " " 9786 ] 9787 "\x{a}" ~ 9788 " " 9789 ] 9790 ] 9791 element table { db.html.table.attlist, db.html.table.model } 9792} 9793div { 9794 db.html.informaltable.attlist = 9795 db.html.attrs & db.html.table.attributes 9796 db.html.informaltable = 9797 9798 ## An HTML table without a title 9799 element informaltable { 9800 db.html.informaltable.attlist, db.html.informaltable.model 9801 } 9802} 9803div { 9804 db.html.caption.attlist = db.html.attrs 9805 db.html.caption = 9806 9807 ## An HTML table caption 9808 [ 9809 s:pattern [ 9810 name = "Element exclusion" 9811 "\x{a}" ~ 9812 " " 9813 s:rule [ 9814 context = "db:caption" 9815 "\x{a}" ~ 9816 " " 9817 s:assert [ 9818 test = "not(.//db:example)" 9819 "example must not occur in the descendants of caption" 9820 ] 9821 "\x{a}" ~ 9822 " " 9823 ] 9824 "\x{a}" ~ 9825 " " 9826 ] 9827 s:pattern [ 9828 name = "Element exclusion" 9829 "\x{a}" ~ 9830 " " 9831 s:rule [ 9832 context = "db:caption" 9833 "\x{a}" ~ 9834 " " 9835 s:assert [ 9836 test = "not(.//db:figure)" 9837 "figure must not occur in the descendants of caption" 9838 ] 9839 "\x{a}" ~ 9840 " " 9841 ] 9842 "\x{a}" ~ 9843 " " 9844 ] 9845 s:pattern [ 9846 name = "Element exclusion" 9847 "\x{a}" ~ 9848 " " 9849 s:rule [ 9850 context = "db:caption" 9851 "\x{a}" ~ 9852 " " 9853 s:assert [ 9854 test = "not(.//db:table)" 9855 "table must not occur in the descendants of caption" 9856 ] 9857 "\x{a}" ~ 9858 " " 9859 ] 9860 "\x{a}" ~ 9861 " " 9862 ] 9863 s:pattern [ 9864 name = "Element exclusion" 9865 "\x{a}" ~ 9866 " " 9867 s:rule [ 9868 context = "db:caption" 9869 "\x{a}" ~ 9870 " " 9871 s:assert [ 9872 test = "not(.//db:table)" 9873 "table must not occur in the descendants of caption" 9874 ] 9875 "\x{a}" ~ 9876 " " 9877 ] 9878 "\x{a}" ~ 9879 " " 9880 ] 9881 s:pattern [ 9882 name = "Element exclusion" 9883 "\x{a}" ~ 9884 " " 9885 s:rule [ 9886 context = "db:caption" 9887 "\x{a}" ~ 9888 " " 9889 s:assert [ 9890 test = "not(.//db:caution)" 9891 "caution must not occur in the descendants of caption" 9892 ] 9893 "\x{a}" ~ 9894 " " 9895 ] 9896 "\x{a}" ~ 9897 " " 9898 ] 9899 s:pattern [ 9900 name = "Element exclusion" 9901 "\x{a}" ~ 9902 " " 9903 s:rule [ 9904 context = "db:caption" 9905 "\x{a}" ~ 9906 " " 9907 s:assert [ 9908 test = "not(.//db:important)" 9909 "important must not occur in the descendants of caption" 9910 ] 9911 "\x{a}" ~ 9912 " " 9913 ] 9914 "\x{a}" ~ 9915 " " 9916 ] 9917 s:pattern [ 9918 name = "Element exclusion" 9919 "\x{a}" ~ 9920 " " 9921 s:rule [ 9922 context = "db:caption" 9923 "\x{a}" ~ 9924 " " 9925 s:assert [ 9926 test = "not(.//db:note)" 9927 "note must not occur in the descendants of caption" 9928 ] 9929 "\x{a}" ~ 9930 " " 9931 ] 9932 "\x{a}" ~ 9933 " " 9934 ] 9935 s:pattern [ 9936 name = "Element exclusion" 9937 "\x{a}" ~ 9938 " " 9939 s:rule [ 9940 context = "db:caption" 9941 "\x{a}" ~ 9942 " " 9943 s:assert [ 9944 test = "not(.//db:tip)" 9945 "tip must not occur in the descendants of caption" 9946 ] 9947 "\x{a}" ~ 9948 " " 9949 ] 9950 "\x{a}" ~ 9951 " " 9952 ] 9953 s:pattern [ 9954 name = "Element exclusion" 9955 "\x{a}" ~ 9956 " " 9957 s:rule [ 9958 context = "db:caption" 9959 "\x{a}" ~ 9960 " " 9961 s:assert [ 9962 test = "not(.//db:warning)" 9963 "warning must not occur in the descendants of caption" 9964 ] 9965 "\x{a}" ~ 9966 " " 9967 ] 9968 "\x{a}" ~ 9969 " " 9970 ] 9971 s:pattern [ 9972 name = "Element exclusion" 9973 "\x{a}" ~ 9974 " " 9975 s:rule [ 9976 context = "db:caption" 9977 "\x{a}" ~ 9978 " " 9979 s:assert [ 9980 test = "not(.//db:sidebar)" 9981 "sidebar must not occur in the descendants of caption" 9982 ] 9983 "\x{a}" ~ 9984 " " 9985 ] 9986 "\x{a}" ~ 9987 " " 9988 ] 9989 s:pattern [ 9990 name = "Element exclusion" 9991 "\x{a}" ~ 9992 " " 9993 s:rule [ 9994 context = "db:caption" 9995 "\x{a}" ~ 9996 " " 9997 s:assert [ 9998 test = "not(.//db:task)" 9999 "task must not occur in the descendants of caption" 10000 ] 10001 "\x{a}" ~ 10002 " " 10003 ] 10004 "\x{a}" ~ 10005 " " 10006 ] 10007 ] 10008 element caption { db.html.caption.attlist, text } 10009} 10010div { 10011 db.html.col.attlist = 10012 db.html.attrs 10013 & 10014 ## This attribute, whose value must be an integer > 0, specifies the number of columns spanned 10015 ## by the col 10016 ## element; the col 10017 ## element shares its attributes with all the columns it spans. The default value for this attribute is 1 (i.e., a single column). If the span attribute is set to N > 1, the current col 10018 ## element shares its attributes with the next N-1 columns. 10019 attribute span { xsd:nonNegativeInteger }? 10020 & 10021 ## Specifies a default width for each column spanned by the current col 10022 ## element. It has the same meaning as the width 10023 ## attribute for the colgroup 10024 ## element and overrides it. 10025 attribute width { text }? 10026 & db.html.cellhalign 10027 & db.html.cellvalign 10028 db.html.col = 10029 10030 ## Specifications for a column in an HTML table 10031 element col { db.html.col.attlist, empty } 10032} 10033div { 10034 db.html.colgroup.attlist = 10035 db.html.attrs 10036 & 10037 ## This attribute, which must be an integer > 0, specifies the number of columns in a column group. In the absence of a span attribute, each colgroup 10038 ## defines a column group containing one column. If the span attribute is set to N > 0, the current colgroup 10039 ## element defines a column group containing N columns. User agents must ignore this attribute if the colgroup 10040 ## element contains one or more col 10041 ## elements. 10042 attribute span { xsd:nonNegativeInteger }? 10043 & 10044 ## This attribute specifies a default width for each column in the current column group. In addition to the standard pixel, percentage, and relative values, this attribute allows the special form 0* 10045 ## (zero asterisk) which means that the width of the each column in the group should be the minimum width necessary to hold the column's contents. This implies that a column's entire contents must be known before its width may be correctly computed. Authors should be aware that specifying 0* 10046 ## will prevent visual user agents from rendering a table incrementally. This attribute is overridden for any column in the column group whose width is specified via a col 10047 ## element. 10048 attribute width { text }? 10049 & db.html.cellhalign 10050 & db.html.cellvalign 10051 db.html.colgroup = 10052 10053 ## A group of columns in an HTML table 10054 element colgroup { db.html.colgroup.attlist, db.html.col* } 10055} 10056div { 10057 db.html.thead.attlist = 10058 db.html.attrs & db.html.cellhalign & db.html.cellvalign 10059 db.html.thead = 10060 10061 ## A table header consisting of one or more rows in an HTML table 10062 element thead { db.html.thead.attlist, db.html.tr+ } 10063} 10064div { 10065 db.html.tfoot.attlist = 10066 db.html.attrs & db.html.cellhalign & db.html.cellvalign 10067 db.html.tfoot = 10068 10069 ## A table footer consisting of one or more rows in an HTML table 10070 element tfoot { db.html.tfoot.attlist, db.html.tr+ } 10071} 10072div { 10073 db.html.tbody.attlist = 10074 db.html.attrs & db.html.cellhalign & db.html.cellvalign 10075 db.html.tbody = 10076 10077 ## A wrapper for the rows of an HTML table or informal HTML table 10078 element tbody { db.html.tbody.attlist, db.html.tr+ } 10079} 10080div { 10081 db.html.tr.attlist = 10082 db.html.attrs & db.html.cellhalign & db.html.cellvalign 10083 db.html.tr = 10084 10085 ## A row in an HTML table 10086 element tr { db.html.tr.attlist, (db.html.th | db.html.td)+ } 10087} 10088div { 10089 db.html.th.attlist = 10090 db.html.attrs 10091 & db.html.tablecell.attributes 10092 & db.html.cellhalign 10093 & db.html.cellvalign 10094 db.html.th = 10095 10096 ## A table header entry in an HTML table 10097 element th { 10098 db.html.th.attlist, (db.all.inlines* | db.all.blocks*) 10099 } 10100} 10101div { 10102 db.html.td.attlist = 10103 db.html.attrs 10104 & db.html.tablecell.attributes 10105 & db.html.cellhalign 10106 & db.html.cellvalign 10107 db.html.td = 10108 10109 ## A table entry in an HTML table 10110 element td { 10111 db.html.td.attlist, (db.all.inlines* | db.all.blocks*) 10112 } 10113} 10114div { 10115 db.msgset.role.attribute = attribute role { text } 10116 db.msgset.attlist = 10117 db.msgset.role.attribute? 10118 & db.common.attributes 10119 & db.common.linking.attributes 10120 db.msgset.info = db._info.title.only 10121 db.msgset = 10122 10123 ## A detailed set of messages, usually error messages 10124 element msgset { 10125 db.msgset.attlist, 10126 db.msgset.info, 10127 (db.msgentry+ | db.simplemsgentry+) 10128 } 10129} 10130div { 10131 db.msgentry.role.attribute = attribute role { text } 10132 db.msgentry.attlist = 10133 db.msgentry.role.attribute? 10134 & db.common.attributes 10135 & db.common.linking.attributes 10136 db.msgentry = 10137 10138 ## A wrapper for an entry in a message set 10139 element msgentry { 10140 db.msgentry.attlist, db.msg+, db.msginfo?, db.msgexplan* 10141 } 10142} 10143div { 10144 db.simplemsgentry.role.attribute = attribute role { text } 10145 db.simplemsgentry.msgaud.attribute = 10146 10147 ## The audience to which the message relevant 10148 attribute msgaud { text } 10149 db.simplemsgentry.msgorig.attribute = 10150 10151 ## The origin of the message 10152 attribute msgorig { text } 10153 db.simplemsgentry.msglevel.attribute = 10154 10155 ## The level of importance or severity of a message 10156 attribute msglevel { text } 10157 db.simplemsgentry.attlist = 10158 db.simplemsgentry.role.attribute? 10159 & db.common.attributes 10160 & db.common.linking.attributes 10161 & db.simplemsgentry.msgaud.attribute? 10162 & db.simplemsgentry.msgorig.attribute? 10163 & db.simplemsgentry.msglevel.attribute? 10164 db.simplemsgentry = 10165 10166 ## A wrapper for a simpler entry in a message set 10167 element simplemsgentry { 10168 db.simplemsgentry.attlist, db.msgtext, db.msgexplan+ 10169 } 10170} 10171div { 10172 db.msg.role.attribute = attribute role { text } 10173 db.msg.attlist = 10174 db.msg.role.attribute? 10175 & db.common.attributes 10176 & db.common.linking.attributes 10177 db.msg.info = db._info.title.only 10178 db.msg = 10179 10180 ## A message in a message set 10181 element msg { 10182 db.msg.attlist, db.msg.info, db.msgmain, (db.msgsub | db.msgrel)* 10183 } 10184} 10185div { 10186 db.msgmain.role.attribute = attribute role { text } 10187 db.msgmain.attlist = 10188 db.msgmain.role.attribute? 10189 & db.common.attributes 10190 & db.common.linking.attributes 10191 db.msgmain.info = db._info.title.only 10192 db.msgmain = 10193 10194 ## The primary component of a message in a message set 10195 element msgmain { db.msgmain.attlist, db.msgmain.info, db.msgtext } 10196} 10197div { 10198 db.msgsub.role.attribute = attribute role { text } 10199 db.msgsub.attlist = 10200 db.msgsub.role.attribute? 10201 & db.common.attributes 10202 & db.common.linking.attributes 10203 db.msgsub.info = db._info.title.only 10204 db.msgsub = 10205 10206 ## A subcomponent of a message in a message set 10207 element msgsub { db.msgsub.attlist, db.msgsub.info, db.msgtext } 10208} 10209div { 10210 db.msgrel.role.attribute = attribute role { text } 10211 db.msgrel.attlist = 10212 db.msgrel.role.attribute? 10213 & db.common.attributes 10214 & db.common.linking.attributes 10215 db.msgrel.info = db._info.title.only 10216 db.msgrel = 10217 10218 ## A related component of a message in a message set 10219 element msgrel { db.msgrel.attlist, db.msgrel.info, db.msgtext } 10220} 10221div { 10222 db.msgtext.role.attribute = attribute role { text } 10223 db.msgtext.attlist = 10224 db.msgtext.role.attribute? 10225 & db.common.attributes 10226 & db.common.linking.attributes 10227 db.msgtext = 10228 10229 ## The actual text of a message component in a message set 10230 element msgtext { db.msgtext.attlist, db.all.blocks+ } 10231} 10232div { 10233 db.msginfo.role.attribute = attribute role { text } 10234 db.msginfo.attlist = 10235 db.msginfo.role.attribute? 10236 & db.common.attributes 10237 & db.common.linking.attributes 10238 db.msginfo = 10239 10240 ## Information about a message in a message set 10241 element msginfo { 10242 db.msginfo.attlist, (db.msglevel | db.msgorig | db.msgaud)* 10243 } 10244} 10245div { 10246 db.msglevel.role.attribute = attribute role { text } 10247 db.msglevel.attlist = 10248 db.msglevel.role.attribute? 10249 & db.common.attributes 10250 & db.common.linking.attributes 10251 db.msglevel = 10252 10253 ## The level of importance or severity of a message in a message set 10254 element msglevel { db.msglevel.attlist, db._text } 10255} 10256div { 10257 db.msgorig.role.attribute = attribute role { text } 10258 db.msgorig.attlist = 10259 db.msgorig.role.attribute? 10260 & db.common.attributes 10261 & db.common.linking.attributes 10262 db.msgorig = 10263 10264 ## The origin of a message in a message set 10265 element msgorig { db.msgorig.attlist, db._text } 10266} 10267div { 10268 db.msgaud.role.attribute = attribute role { text } 10269 db.msgaud.attlist = 10270 db.msgaud.role.attribute? 10271 & db.common.attributes 10272 & db.common.linking.attributes 10273 db.msgaud = 10274 10275 ## The audience to which a message in a message set is relevant 10276 element msgaud { db.msgaud.attlist, db._text } 10277} 10278div { 10279 db.msgexplan.role.attribute = attribute role { text } 10280 db.msgexplan.attlist = 10281 db.msgexplan.role.attribute? 10282 & db.common.attributes 10283 & db.common.linking.attributes 10284 db.msgexplan.info = db._info.title.only 10285 db.msgexplan = 10286 10287 ## Explanatory material relating to a message in a message set 10288 element msgexplan { 10289 db.msgexplan.attlist, db.msgexplan.info, db.all.blocks+ 10290 } 10291} 10292div { 10293 db.qandaset.role.attribute = attribute role { text } 10294 db.qandaset.defaultlabel.enumeration = 10295 10296 ## No labels 10297 "none" 10298 | 10299 ## Numeric labels 10300 "number" 10301 | 10302 ## "Q:" and "A:" labels 10303 "qanda" 10304 db.qandaset.defaultlabel.attribute = 10305 10306 ## Specifies the default labelling 10307 attribute defaultlabel { db.qandaset.defaultlabel.enumeration } 10308 db.qandaset.attlist = 10309 db.qandaset.role.attribute? 10310 & db.common.attributes 10311 & db.common.linking.attributes 10312 & db.qandaset.defaultlabel.attribute? 10313 db.qandaset.info = db._info.title.only 10314 db.qandaset = 10315 10316 ## A question-and-answer set 10317 element qandaset { 10318 db.qandaset.attlist, 10319 db.qandaset.info, 10320 db.all.blocks*, 10321 (db.qandadiv+ | db.qandaentry+) 10322 } 10323} 10324div { 10325 db.qandadiv.role.attribute = attribute role { text } 10326 db.qandadiv.attlist = 10327 db.qandadiv.role.attribute? 10328 & db.common.attributes 10329 & db.common.linking.attributes 10330 db.qandadiv.info = db._info.title.only 10331 db.qandadiv = 10332 10333 ## A titled division in a QandASet 10334 element qandadiv { 10335 db.qandadiv.attlist, 10336 db.qandadiv.info, 10337 db.all.blocks*, 10338 (db.qandadiv+ | db.qandaentry+) 10339 } 10340} 10341div { 10342 db.qandaentry.role.attribute = attribute role { text } 10343 db.qandaentry.attlist = 10344 db.qandaentry.role.attribute? 10345 & db.common.attributes 10346 & db.common.linking.attributes 10347 db.qandaentry.info = db._info.title.forbidden 10348 db.qandaentry = 10349 10350 ## A question/answer set within a QandASet 10351 element qandaentry { 10352 db.qandaentry.attlist, db.qandaentry.info, db.question, db.answer* 10353 } 10354} 10355div { 10356 db.question.role.attribute = attribute role { text } 10357 db.question.attlist = 10358 db.question.role.attribute? 10359 & db.common.attributes 10360 & db.common.linking.attributes 10361 db.question = 10362 10363 ## A question in a QandASet 10364 element question { db.question.attlist, db.label?, db.all.blocks+ } 10365} 10366div { 10367 db.answer.role.attribute = attribute role { text } 10368 db.answer.attlist = 10369 db.answer.role.attribute? 10370 & db.common.attributes 10371 & db.common.linking.attributes 10372 db.answer = 10373 10374 ## An answer to a question posed in a QandASet 10375 element answer { db.answer.attlist, db.label?, db.all.blocks+ } 10376} 10377div { 10378 db.label.role.attribute = attribute role { text } 10379 db.label.attlist = 10380 db.label.role.attribute? 10381 & db.common.attributes 10382 & db.common.linking.attributes 10383 db.label = 10384 10385 ## A label on a Question or Answer 10386 element label { db.label.attlist, db._text } 10387} 10388db.math.inlines = db.inlineequation 10389db.math.blocks = db.equation | db.informalequation 10390db.equation.content = (db.mediaobject+ | db.mathphrase+) | db._any.mml+ 10391db.inlineequation.content = db.inlinemediaobject+ | db.mathphrase+ 10392div { 10393 db.equation.role.attribute = attribute role { text } 10394 db.equation.label.attribute = db.label.attribute 10395 db.equation.attlist = 10396 db.equation.role.attribute? 10397 & db.common.attributes 10398 & db.common.linking.attributes 10399 & db.equation.label.attribute? 10400 & db.pgwide.attribute? 10401 & db.floatstyle.attribute? 10402 db.equation.info = db._info.title.only 10403 db.equation = 10404 10405 ## A displayed mathematical equation 10406 element equation { 10407 db.equation.attlist, 10408 db.equation.info, 10409 db.alt?, 10410 db.equation.content, 10411 db.caption? 10412 } 10413} 10414div { 10415 db.informalequation.role.attribute = attribute role { text } 10416 db.informalequation.attlist = 10417 db.informalequation.role.attribute? 10418 & db.common.attributes 10419 & db.common.linking.attributes 10420 db.informalequation.info = db._info.title.forbidden 10421 db.informalequation = 10422 10423 ## A displayed mathematical equation without a title 10424 element informalequation { 10425 db.informalequation.attlist, 10426 db.informalequation.info, 10427 db.alt?, 10428 db.equation.content, 10429 db.caption? 10430 } 10431} 10432div { 10433 db.inlineequation.role.attribute = attribute role { text } 10434 db.inlineequation.attlist = 10435 db.inlineequation.role.attribute? 10436 & db.common.attributes 10437 & db.common.linking.attributes 10438 db.inlineequation = 10439 10440 ## A mathematical equation or expression occurring inline 10441 element inlineequation { 10442 db.inlineequation.attlist, db.alt?, db.inlineequation.content 10443 } 10444} 10445div { 10446 db.mathphrase.role.attribute = attribute role { text } 10447 db.mathphrase.attlist = 10448 db.mathphrase.role.attribute? 10449 & db.common.attributes 10450 & db.common.linking.attributes 10451 db.mathphrase = 10452 10453 ## A mathematical phrase, an expression that can be represented with ordinary text and a small amount of markup 10454 element mathphrase { 10455 db.mathphrase.attlist, 10456 (db._text | db.ubiq.inlines | db._emphasis)* 10457 } 10458} 10459div { 10460 db.imagedata.mathml.role.attribute = attribute role { text } 10461 db.imagedata.mathml.attlist = 10462 db.imagedata.mathml.role.attribute? 10463 & db.common.attributes 10464 & 10465 ## Specifies that the format of the data is MathML 10466 attribute format { 10467 10468 ## Specifies MathML. 10469 "mathml" 10470 }? 10471 & db.imagedata.align.attribute? 10472 & db.imagedata.valign.attribute? 10473 & db.imagedata.width.attribute? 10474 & db.imagedata.contentwidth.attribute? 10475 & db.imagedata.scalefit.attribute? 10476 & db.imagedata.scale.attribute? 10477 & db.imagedata.depth.attribute? 10478 & db.imagedata.contentdepth.attribute? 10479 db.imagedata.mathml.info = db._info.title.forbidden 10480 db.imagedata.mathml = 10481 10482 ## A MathML expression in a media object 10483 element imagedata { 10484 db.imagedata.mathml.attlist, 10485 db.imagedata.mathml.info, 10486 db._any.mml+ 10487 } 10488} 10489div { 10490 db._any.mml = 10491 10492 ## Any element from the MathML namespace 10493 element mml:* { (db._any.attribute | text | db._any)* } 10494} 10495div { 10496 db.imagedata.svg.role.attribute = attribute role { text } 10497 db.imagedata.svg.attlist = 10498 db.imagedata.svg.role.attribute? 10499 & db.common.attributes 10500 & 10501 ## Specifies that the format of the data is SVG 10502 attribute format { 10503 10504 ## Specifies SVG. 10505 "svg" 10506 }? 10507 & db.imagedata.align.attribute? 10508 & db.imagedata.valign.attribute? 10509 & db.imagedata.width.attribute? 10510 & db.imagedata.contentwidth.attribute? 10511 & db.imagedata.scalefit.attribute? 10512 & db.imagedata.scale.attribute? 10513 & db.imagedata.depth.attribute? 10514 & db.imagedata.contentdepth.attribute? 10515 db.imagedata.svg.info = db._info.title.forbidden 10516 db.imagedata.svg = 10517 10518 ## An SVG drawing in a media object 10519 element imagedata { 10520 db.imagedata.svg.attlist, db.imagedata.svg.info, db._any.svg+ 10521 } 10522} 10523div { 10524 db._any.svg = 10525 10526 ## Any element from the SVG namespace 10527 element svg:* { (db._any.attribute | text | db._any)* } 10528} 10529