(Button Types): For define-button-type, clarify type of NAME.
[emacs.git] / etc / schema / dbpool.rnc
blob46236eb7b7b30407c9758fa0bb6ec79221ad8eb8
1 # This file was generated automatically by Trang.  The table model
2 # dependent definitions have been moved into separate files.
4 # ......................................................................
6 # DocBook XML information pool module V4.2 .............................
8 # File dbpoolx.mod .....................................................
10 # Copyright 1992-2002 HaL Computer Systems, Inc.,
11 # O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
12 # Corporation, Norman Walsh, Sun Microsystems, Inc., and the
13 # Organization for the Advancement of Structured Information
14 # Standards (OASIS).
15
16 # $Id: dbpool.rnc,v 1.4 2003/08/30 07:48:31 jjc Exp $
17
18 # Permission to use, copy, modify and distribute the DocBook XML DTD
19 # and its accompanying documentation for any purpose and without fee
20 # is hereby granted in perpetuity, provided that the above copyright
21 # notice and this paragraph appear in all copies.  The copyright
22 # holders make no representation about the suitability of the DTD for
23 # any purpose.  It is provided "as is" without expressed or implied
24 # warranty.
25
26 # If you modify the DocBook XML DTD in any way, except for declaring and
27 # referencing additional sets of general entities and declaring
28 # additional notations, label your DTD as a variant of DocBook.  See
29 # the maintenance documentation for more information.
30
31 # Please direct all questions, bug reports, or suggestions for
32 # changes to the docbook@lists.oasis-open.org mailing list. For more
33 # information, see http://www.oasis-open.org/docbook/.
35 # ......................................................................
37 # This module contains the definitions for the objects, inline
38 # elements, and so on that are available to be used as the main
39 # content of DocBook documents.  Some elements are useful for general
40 # publishing, and others are useful specifically for computer
41 # documentation.
42
43 # This module has the following dependencies on other modules:
44
45 # o It assumes that a %notation.class; entity is defined by the
46 #   driver file or other high-level module.  This entity is
47 #   referenced in the NOTATION attributes for the graphic-related and
48 #   ModeSpec elements.
49
50 # o It assumes that an appropriately parameterized table module is
51 #   available for use with the table-related elements.
52
53 # In DTD driver files referring to this module, please use an entity
54 # declaration that uses the public identifier shown below:
55
56 # <!ENTITY % dbpool PUBLIC
57 # "-//OASIS//ELEMENTS DocBook XML Information Pool V4.2//EN"
58 # "dbpoolx.mod">
59 # %dbpool;
60
61 # See the documentation for detailed information on the parameter
62 # entity and module scheme used in DocBook, customizing DocBook and
63 # planning for interchange, and changes made since the last release
64 # of DocBook.
66 # ......................................................................
68 # General-purpose semantics entities ...................................
70 namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
72 yesorno.attvals = string
73 # ......................................................................
75 # Entities for module inclusions .......................................
77 # ......................................................................
79 # Entities for element classes and mixtures ............................
81 # "Ubiquitous" classes: ndxterm.class and beginpage
82 local.ndxterm.class = notAllowed
83 ndxterm.class = indexterm | local.ndxterm.class
84 # Object-level classes .................................................
85 local.list.class = notAllowed
86 list.class =
87   calloutlist
88   | glosslist
89   | itemizedlist
90   | orderedlist
91   | segmentedlist
92   | simplelist
93   | variablelist
94   | local.list.class
95 local.admon.class = notAllowed
96 admon.class =
97   caution | important | note | tip | warning | local.admon.class
98 local.linespecific.class = notAllowed
99 linespecific.class =
100   literallayout
101   | programlisting
102   | programlistingco
103   | screen
104   | screenco
105   | screenshot
106   | local.linespecific.class
107 local.method.synop.class = notAllowed
108 method.synop.class =
109   constructorsynopsis
110   | destructorsynopsis
111   | methodsynopsis
112   | local.method.synop.class
113 local.synop.class = notAllowed
114 synop.class =
115   synopsis
116   | cmdsynopsis
117   | funcsynopsis
118   | classsynopsis
119   | fieldsynopsis
120   | method.synop.class
121   | local.synop.class
122 local.para.class = notAllowed
123 para.class = formalpara | para | simpara | local.para.class
124 local.informal.class = notAllowed
125 informal.class =
126   address
127   | blockquote
128   | graphic
129   | graphicco
130   | mediaobject
131   | mediaobjectco
132   | informalequation
133   | informalexample
134   | informalfigure
135   | informaltable
136   | local.informal.class
137 local.formal.class = notAllowed
138 formal.class = equation | example | figure | table | local.formal.class
139 # The DocBook TC may produce an official EBNF module for DocBook.
141 # This PE provides the hook by which it can be inserted into the DTD.
142 ebnf.block.hook = notAllowed
143 local.compound.class = notAllowed
144 compound.class =
145   msgset
146   | procedure
147   | sidebar
148   | qandaset
149   | ebnf.block.hook
150   | local.compound.class
151 local.genobj.class = notAllowed
152 genobj.class =
153   anchor | bridgehead | remark | highlights | local.genobj.class
154 local.descobj.class = notAllowed
155 descobj.class = abstract | authorblurb | epigraph | local.descobj.class
156 # Character-level classes ..............................................
157 local.xref.char.class = notAllowed
158 xref.char.class = footnoteref | xref | local.xref.char.class
159 local.gen.char.class = notAllowed
160 gen.char.class =
161   abbrev
162   | acronym
163   | citation
164   | citerefentry
165   | citetitle
166   | emphasis
167   | firstterm
168   | foreignphrase
169   | glossterm
170   | footnote
171   | phrase
172   | quote
173   | trademark
174   | wordasword
175   | personname
176   | local.gen.char.class
177 local.link.char.class = notAllowed
178 link.char.class = link | olink | ulink | local.link.char.class
179 # The DocBook TC may produce an official EBNF module for DocBook.
181 # This PE provides the hook by which it can be inserted into the DTD.
182 ebnf.inline.hook = notAllowed
183 local.tech.char.class = notAllowed
184 tech.char.class =
185   action
186   | application
187   | classname
188   | methodname
189   | interfacename
190   | exceptionname
191   | ooclass
192   | oointerface
193   | ooexception
194   | command
195   | computeroutput
196   | database
197   | email
198   | envar
199   | errorcode
200   | errorname
201   | errortype
202   | errortext
203   | filename
204   | function
205   | guibutton
206   | guiicon
207   | guilabel
208   | guimenu
209   | guimenuitem
210   | guisubmenu
211   | hardware
212   | interface
213   | keycap
214   | keycode
215   | keycombo
216   | keysym
217   | literal
218   | constant
219   | markup
220   | medialabel
221   | menuchoice
222   | mousebutton
223   | option
224   | optional
225   | parameter
226   | prompt
227   | property
228   | replaceable
229   | returnvalue
230   | sgmltag
231   | structfield
232   | structname
233   | symbol
234   | systemitem
235   | \token
236   | type
237   | userinput
238   | varname
239   | ebnf.inline.hook
240   | local.tech.char.class
241 local.base.char.class = notAllowed
242 base.char.class = anchor | local.base.char.class
243 local.docinfo.char.class = notAllowed
244 docinfo.char.class =
245   author
246   | authorinitials
247   | corpauthor
248   | modespec
249   | othercredit
250   | productname
251   | productnumber
252   | revhistory
253   | local.docinfo.char.class
254 local.other.char.class = notAllowed
255 other.char.class =
256   remark | subscript | superscript | local.other.char.class
257 local.inlineobj.char.class = notAllowed
258 inlineobj.char.class =
259   inlinegraphic
260   | inlinemediaobject
261   | inlineequation
262   | local.inlineobj.char.class
263 # ......................................................................
265 # Entities for content models ..........................................
266 formalobject.title.content = title, titleabbrev?
267 # Redeclaration placeholder ............................................
269 # For redeclaring entities that are declared after this point while
270 # retaining their references to the entities that are declared before
271 # this point
273 # Object-level mixtures ................................................
275 #                       list admn line synp para infm form cmpd gen  desc
276 # Component mixture       X    X    X    X    X    X    X    X    X    X
277 # Sidebar mixture         X    X    X    X    X    X    X    a    X
278 # Footnote mixture        X         X    X    X    X
279 # Example mixture         X         X    X    X    X
280 # Highlights mixture      X    X              X
281 # Paragraph mixture       X         X    X         X
282 # Admonition mixture      X         X    X    X    X    X    b    c
283 # Figure mixture                    X    X         X
284 # Table entry mixture     X    X    X         X    d
285 # Glossary def mixture    X         X    X    X    X         e
286 # Legal notice mixture    X    X    X         X    f
288 # a. Just Procedure; not Sidebar itself or MsgSet.
289 # b. No MsgSet.
290 # c. No Highlights.
291 # d. Just Graphic; no other informal objects.
292 # e. No Anchor, BridgeHead, or Highlights.
293 # f. Just BlockQuote; no other informal objects.
294 local.component.mix = notAllowed
295 component.mix =
296   list.class
297   | admon.class
298   | linespecific.class
299   | synop.class
300   | para.class
301   | informal.class
302   | formal.class
303   | compound.class
304   | genobj.class
305   | descobj.class
306   | ndxterm.class
307   | beginpage
308   | local.component.mix
309 local.sidebar.mix = notAllowed
310 sidebar.mix =
311   list.class
312   | admon.class
313   | linespecific.class
314   | synop.class
315   | para.class
316   | informal.class
317   | formal.class
318   | procedure
319   | genobj.class
320   | ndxterm.class
321   | beginpage
322   | local.sidebar.mix
323 local.qandaset.mix = notAllowed
324 qandaset.mix =
325   list.class
326   | admon.class
327   | linespecific.class
328   | synop.class
329   | para.class
330   | informal.class
331   | formal.class
332   | procedure
333   | genobj.class
334   | ndxterm.class
335   | local.qandaset.mix
336 local.revdescription.mix = notAllowed
337 revdescription.mix =
338   list.class
339   | admon.class
340   | linespecific.class
341   | synop.class
342   | para.class
343   | informal.class
344   | formal.class
345   | procedure
346   | genobj.class
347   | ndxterm.class
348   | local.revdescription.mix
349 local.footnote.mix = notAllowed
350 footnote.mix =
351   list.class
352   | linespecific.class
353   | synop.class
354   | para.class
355   | informal.class
356   | local.footnote.mix
357 local.example.mix = notAllowed
358 example.mix =
359   list.class
360   | linespecific.class
361   | synop.class
362   | para.class
363   | informal.class
364   | ndxterm.class
365   | beginpage
366   | local.example.mix
367 local.highlights.mix = notAllowed
368 highlights.mix =
369   list.class
370   | admon.class
371   | para.class
372   | ndxterm.class
373   | local.highlights.mix
374 # %formal.class; is explicitly excluded from many contexts in which
375 # paragraphs are used
376 local.para.mix = notAllowed
377 para.mix =
378   list.class
379   | admon.class
380   | linespecific.class
381   | informal.class
382   | formal.class
383   | local.para.mix
384 local.admon.mix = notAllowed
385 admon.mix =
386   list.class
387   | linespecific.class
388   | synop.class
389   | para.class
390   | informal.class
391   | formal.class
392   | procedure
393   | sidebar
394   | anchor
395   | bridgehead
396   | remark
397   | ndxterm.class
398   | beginpage
399   | local.admon.mix
400 local.figure.mix = notAllowed
401 figure.mix =
402   linespecific.class
403   | synop.class
404   | informal.class
405   | ndxterm.class
406   | beginpage
407   | local.figure.mix
408 local.tabentry.mix = notAllowed
409 tabentry.mix =
410   list.class
411   | admon.class
412   | linespecific.class
413   | para.class
414   | graphic
415   | mediaobject
416   | local.tabentry.mix
417 local.glossdef.mix = notAllowed
418 glossdef.mix =
419   list.class
420   | linespecific.class
421   | synop.class
422   | para.class
423   | informal.class
424   | formal.class
425   | remark
426   | ndxterm.class
427   | beginpage
428   | local.glossdef.mix
429 local.legalnotice.mix = notAllowed
430 legalnotice.mix =
431   list.class
432   | admon.class
433   | linespecific.class
434   | para.class
435   | blockquote
436   | ndxterm.class
437   | beginpage
438   | local.legalnotice.mix
439 local.textobject.mix = notAllowed
440 textobject.mix =
441   list.class
442   | admon.class
443   | linespecific.class
444   | para.class
445   | blockquote
446   | local.textobject.mix
447 local.mediaobject.mix = notAllowed
448 mediaobject.mix =
449   videoobject
450   | audioobject
451   | imageobject
452   | textobject
453   | local.mediaobject.mix
454 local.listpreamble.mix = notAllowed
455 listpreamble.mix =
456   admon.class
457   | linespecific.class
458   | synop.class
459   | para.class
460   | informal.class
461   | genobj.class
462   | descobj.class
463   | ndxterm.class
464   | beginpage
465   | local.listpreamble.mix
466 # Character-level mixtures .............................................
468 # sgml.features
470 # not [sgml.features[
472 # ]] not sgml.features
474 #                     #PCD xref word link cptr base dnfo othr inob (synop)
475 # para.char.mix         X    X    X    X    X    X    X    X    X
476 # title.char.mix        X    X    X    X    X    X    X    X    X
477 # ndxterm.char.mix      X    X    X    X    X    X    X    X    a
478 # cptr.char.mix         X              X    X    X         X    a
479 # smallcptr.char.mix    X                   b                   a
480 # word.char.mix         X         c    X         X         X    a
481 # docinfo.char.mix      X         d    X    b              X    a
483 # a. Just InlineGraphic; no InlineEquation.
484 # b. Just Replaceable; no other computer terms.
485 # c. Just Emphasis and Trademark; no other word elements.
486 # d. Just Acronym, Emphasis, and Trademark; no other word elements.
488 # The DocBook TC may produce an official forms module for DocBook.
490 # This PE provides the hook by which it can be inserted into the DTD.
491 forminlines.hook = notAllowed
492 local.para.char.mix = notAllowed
493 para.char.mix =
494   text
495   | xref.char.class
496   | gen.char.class
497   | link.char.class
498   | tech.char.class
499   | base.char.class
500   | docinfo.char.class
501   | other.char.class
502   | inlineobj.char.class
503   | synop.class
504   | ndxterm.class
505   | beginpage
506   | forminlines.hook
507   | local.para.char.mix
508 local.title.char.mix = notAllowed
509 title.char.mix =
510   text
511   | xref.char.class
512   | gen.char.class
513   | link.char.class
514   | tech.char.class
515   | base.char.class
516   | docinfo.char.class
517   | other.char.class
518   | inlineobj.char.class
519   | ndxterm.class
520   | local.title.char.mix
521 local.ndxterm.char.mix = notAllowed
522 ndxterm.char.mix =
523   text
524   | xref.char.class
525   | gen.char.class
526   | link.char.class
527   | tech.char.class
528   | base.char.class
529   | docinfo.char.class
530   | other.char.class
531   | inlinegraphic
532   | inlinemediaobject
533   | local.ndxterm.char.mix
534 local.cptr.char.mix = notAllowed
535 cptr.char.mix =
536   text
537   | link.char.class
538   | tech.char.class
539   | base.char.class
540   | other.char.class
541   | inlinegraphic
542   | inlinemediaobject
543   | ndxterm.class
544   | beginpage
545   | local.cptr.char.mix
546 local.smallcptr.char.mix = notAllowed
547 smallcptr.char.mix =
548   text
549   | replaceable
550   | inlinegraphic
551   | inlinemediaobject
552   | ndxterm.class
553   | beginpage
554   | local.smallcptr.char.mix
555 local.word.char.mix = notAllowed
556 word.char.mix =
557   text
558   | acronym
559   | emphasis
560   | trademark
561   | link.char.class
562   | base.char.class
563   | other.char.class
564   | inlinegraphic
565   | inlinemediaobject
566   | ndxterm.class
567   | beginpage
568   | local.word.char.mix
569 local.docinfo.char.mix = notAllowed
570 docinfo.char.mix =
571   text
572   | link.char.class
573   | emphasis
574   | trademark
575   | replaceable
576   | other.char.class
577   | inlinegraphic
578   | inlinemediaobject
579   | ndxterm.class
580   | local.docinfo.char.mix
581 # ENTITY % bibliocomponent.mix (see Bibliographic section, below)
583 # ENTITY % person.ident.mix (see Bibliographic section, below)
585 # ......................................................................
587 # Entities for attributes and attribute components .....................
589 # Effectivity attributes ...............................................
591 # Arch: Computer or chip architecture to which element applies; no
592 # default
593 arch.attrib = attribute arch { text }?
594 # Condition: General-purpose effectivity attribute
595 condition.attrib = attribute condition { text }?
596 # Conformance: Standards conformance characteristics
597 conformance.attrib = attribute conformance { xsd:NMTOKENS }?
598 # OS: Operating system to which element applies; no default
599 os.attrib = attribute os { text }?
600 # Revision: Editorial revision to which element belongs; no default
601 revision.attrib = attribute revision { text }?
602 # Security: Security classification; no default
603 security.attrib = attribute security { text }?
604 # UserLevel: Level of user experience to which element applies; no
605 # default
606 userlevel.attrib = attribute userlevel { text }?
607 # Vendor: Computer vendor to which element applies; no default
608 vendor.attrib = attribute vendor { text }?
609 local.effectivity.attrib = empty
610 effectivity.attrib =
611   arch.attrib,
612   condition.attrib,
613   conformance.attrib,
614   os.attrib,
615   revision.attrib,
616   security.attrib,
617   userlevel.attrib,
618   vendor.attrib,
619   local.effectivity.attrib
620 # Common attributes ....................................................
622 # Id: Unique identifier of element; no default
623 id.attrib = attribute id { xsd:ID }?
624 # Id: Unique identifier of element; a value must be supplied; no
625 # default
626 idreq.attrib = attribute id { xsd:ID }
627 # Lang: Indicator of language in which element is written, for
628 # translation, character set management, etc.; no default
629 lang.attrib = attribute lang { text }?
630 # Remap: Previous role of element before conversion; no default
631 remap.attrib = attribute remap { text }?
632 # Role: New role of element in local environment; no default
633 role.attrib = attribute role { text }?
634 # XRefLabel: Alternate labeling string for XRef text generation;
635 # default is usually title or other appropriate label text already
636 # contained in element
637 xreflabel.attrib = attribute xreflabel { text }?
638 # RevisionFlag: Revision status of element; default is that element
639 # wasn't revised
640 revisionflag.attrib =
641   attribute revisionflag { "changed" | "added" | "deleted" | "off" }?
642 local.common.attrib = empty
643 # Role is included explicitly on each element
644 common.attrib =
645   id.attrib,
646   lang.attrib,
647   remap.attrib,
648   xreflabel.attrib,
649   revisionflag.attrib,
650   effectivity.attrib,
651   local.common.attrib
652 # Role is included explicitly on each element
653 idreq.common.attrib =
654   idreq.attrib,
655   lang.attrib,
656   remap.attrib,
657   xreflabel.attrib,
658   revisionflag.attrib,
659   effectivity.attrib,
660   local.common.attrib
661 # Semi-common attributes and other attribute entities ..................
662 local.graphics.attrib = empty
663 # EntityRef: Name of an external entity containing the content
664 # of the graphic
666 # FileRef: Filename, qualified by a pathname if desired,
667 # designating the file containing the content of the graphic
669 # Format: Notation of the element content, if any
671 # SrcCredit: Information about the source of the Graphic
673 # Width: Same as CALS reprowid (desired width)
675 # Depth: Same as CALS reprodep (desired depth)
677 # Align: Same as CALS hplace with 'none' removed; #IMPLIED means
678 # application-specific
680 # Scale: Conflation of CALS hscale and vscale
682 # Scalefit: Same as CALS scalefit
683 graphics.attrib =
684   attribute entityref { xsd:ENTITY }?,
685   attribute fileref { text }?,
686   attribute format { notation.class }?,
687   attribute srccredit { text }?,
688   attribute width { text }?,
689   attribute contentwidth { text }?,
690   attribute depth { text }?,
691   attribute contentdepth { text }?,
692   attribute align { "left" | "right" | "center" }?,
693   attribute valign { "top" | "middle" | "bottom" }?,
694   attribute scale { text }?,
695   attribute scalefit { yesorno.attvals }?,
696   local.graphics.attrib
697 local.keyaction.attrib = empty
698 # Action: Key combination type; default is unspecified if one
699 # child element, Simul if there is more than one; if value is
700 # Other, the OtherAction attribute must have a nonempty value
702 # OtherAction: User-defined key combination type
703 keyaction.attrib =
704   attribute action {
705     "click" | "double-click" | "press" | "seq" | "simul" | "other"
706   }?,
707   attribute otheraction { text }?,
708   local.keyaction.attrib
709 # Label: Identifying number or string; default is usually the
710 # appropriate number or string autogenerated by a formatter
711 label.attrib = attribute label { text }?
712 # Format: whether element is assumed to contain significant white
713 # space
714 linespecific.attrib =
715   [ a:defaultValue = "linespecific" ]
716   attribute format { "linespecific" }?,
717   attribute linenumbering { "numbered" | "unnumbered" }?
718 # Linkend: link to related information; no default
719 linkend.attrib = attribute linkend { xsd:IDREF }?
720 # Linkend: required link to related information
721 linkendreq.attrib = attribute linkend { xsd:IDREF }
722 # Linkends: link to one or more sets of related information; no
723 # default
724 linkends.attrib = attribute linkends { xsd:IDREFS }?
725 local.mark.attrib = empty
726 mark.attrib =
727   attribute mark { text }?,
728   local.mark.attrib
729 # MoreInfo: whether element's content has an associated RefEntry
730 moreinfo.attrib =
731   [ a:defaultValue = "none" ]
732   attribute moreinfo { "refentry" | "none" }?
733 # Pagenum: number of page on which element appears; no default
734 pagenum.attrib = attribute pagenum { text }?
735 local.status.attrib = empty
736 # Status: Editorial or publication status of the element
737 # it applies to, such as "in review" or "approved for distribution"
738 status.attrib =
739   attribute status { text }?,
740   local.status.attrib
741 # Width: width of the longest line in the element to which it
742 # pertains, in number of characters
743 width.attrib = attribute width { text }?
744 # ......................................................................
746 # Title elements .......................................................
747 local.title.attrib = empty
748 title.role.attrib = role.attrib
749 title = element title { title.attlist, title.char.mix* }
750 # end of title.element
751 title.attlist &=
752   pagenum.attrib, common.attrib, title.role.attrib, local.title.attrib
753 # end of title.attlist
755 # end of title.module
756 local.titleabbrev.attrib = empty
757 titleabbrev.role.attrib = role.attrib
758 titleabbrev =
759   element titleabbrev { titleabbrev.attlist, title.char.mix* }
760 # end of titleabbrev.element
761 titleabbrev.attlist &=
762   common.attrib, titleabbrev.role.attrib, local.titleabbrev.attrib
763 # end of titleabbrev.attlist
765 # end of titleabbrev.module
766 local.subtitle.attrib = empty
767 subtitle.role.attrib = role.attrib
768 subtitle = element subtitle { subtitle.attlist, title.char.mix* }
769 # end of subtitle.element
770 subtitle.attlist &=
771   common.attrib, subtitle.role.attrib, local.subtitle.attrib
772 # end of subtitle.attlist
774 # end of subtitle.module
776 # ......................................................................
778 # Bibliographic entities and elements ..................................
780 # The bibliographic elements are typically used in the document
781 # hierarchy. They do not appear in content models of information
782 # pool elements.  See also the document information elements,
783 # below.
784 local.person.ident.mix = notAllowed
785 person.ident.mix =
786   honorific
787   | firstname
788   | surname
789   | lineage
790   | othername
791   | affiliation
792   | authorblurb
793   | contrib
794   | local.person.ident.mix
795 local.bibliocomponent.mix = notAllowed
796 bibliocomponent.mix =
797   abbrev
798   | abstract
799   | address
800   | artpagenums
801   | author
802   | authorgroup
803   | authorinitials
804   | bibliomisc
805   | biblioset
806   | collab
807   | confgroup
808   | contractnum
809   | contractsponsor
810   | copyright
811   | corpauthor
812   | corpname
813   | date
814   | edition
815   | editor
816   | invpartnumber
817   | isbn
818   | issn
819   | issuenum
820   | orgname
821   | biblioid
822   | citebiblioid
823   | bibliosource
824   | bibliorelation
825   | bibliocoverage
826   | othercredit
827   | pagenums
828   | printhistory
829   | productname
830   | productnumber
831   | pubdate
832   | publisher
833   | publishername
834   | pubsnumber
835   | releaseinfo
836   | revhistory
837   | seriesvolnums
838   | subtitle
839   | title
840   | titleabbrev
841   | volumenum
842   | citetitle
843   | personname
844   | person.ident.mix
845   | ndxterm.class
846   | local.bibliocomponent.mix
847 # I don't think this is well placed, but it needs to be here because of
849 # the reference to bibliocomponent.mix
850 local.info.class = notAllowed
851 info.class =
852   graphic
853   | mediaobject
854   | legalnotice
855   | modespec
856   | subjectset
857   | keywordset
858   | itermset
859   | bibliocomponent.mix
860   | local.info.class
861 local.biblioentry.attrib = empty
862 biblioentry.role.attrib = role.attrib
863 biblioentry =
864   element biblioentry {
865     biblioentry.attlist, (articleinfo | bibliocomponent.mix)+
866   }
867 # end of biblioentry.element
868 biblioentry.attlist &=
869   common.attrib, biblioentry.role.attrib, local.biblioentry.attrib
870 # end of biblioentry.attlist
872 # end of biblioentry.module
873 local.bibliomixed.attrib = empty
874 bibliomixed.role.attrib = role.attrib
875 bibliomixed =
876   element bibliomixed {
877     bibliomixed.attlist, (text | bibliocomponent.mix | bibliomset)*
878   }
879 # end of bibliomixed.element
880 bibliomixed.attlist &=
881   common.attrib, bibliomixed.role.attrib, local.bibliomixed.attrib
882 # end of bibliomixed.attlist
884 # end of bibliomixed.module
885 local.articleinfo.attrib = empty
886 articleinfo.role.attrib = role.attrib
887 articleinfo = element articleinfo { articleinfo.attlist, info.class+ }
888 # end of articleinfo.element
889 articleinfo.attlist &=
890   common.attrib, articleinfo.role.attrib, local.articleinfo.attrib
891 # end of articleinfo.attlist
893 # end of articleinfo.module
894 local.biblioset.attrib = empty
895 biblioset.role.attrib = role.attrib
896 biblioset =
897   element biblioset { biblioset.attlist, bibliocomponent.mix+ }
898 # end of biblioset.element
900 # Relation: Relationship of elements contained within BiblioSet
901 biblioset.attlist &=
902   attribute relation { text }?,
903   common.attrib,
904   biblioset.role.attrib,
905   local.biblioset.attrib
906 # end of biblioset.attlist
908 # end of biblioset.module
909 bibliomset.role.attrib = role.attrib
910 local.bibliomset.attrib = empty
911 bibliomset =
912   element bibliomset {
913     bibliomset.attlist, (text | bibliocomponent.mix | bibliomset)*
914   }
915 # end of bibliomset.element
917 # Relation: Relationship of elements contained within BiblioMSet
918 bibliomset.attlist &=
919   attribute relation { text }?,
920   common.attrib,
921   bibliomset.role.attrib,
922   local.bibliomset.attrib
923 # end of bibliomset.attlist
925 # end of bibliomset.module
926 local.bibliomisc.attrib = empty
927 bibliomisc.role.attrib = role.attrib
928 bibliomisc = element bibliomisc { bibliomisc.attlist, para.char.mix* }
929 # end of bibliomisc.element
930 bibliomisc.attlist &=
931   common.attrib, bibliomisc.role.attrib, local.bibliomisc.attrib
932 # end of bibliomisc.attlist
934 # end of bibliomisc.module
936 # ......................................................................
938 # Subject, Keyword, and ITermSet elements ..............................
939 local.subjectset.attrib = empty
940 subjectset.role.attrib = role.attrib
941 subjectset = element subjectset { subjectset.attlist, subject+ }
942 # end of subjectset.element
944 # Scheme: Controlled vocabulary employed in SubjectTerms
945 subjectset.attlist &=
946   attribute scheme { xsd:NMTOKEN }?,
947   common.attrib,
948   subjectset.role.attrib,
949   local.subjectset.attrib
950 # end of subjectset.attlist
952 # end of subjectset.module
953 local.subject.attrib = empty
954 subject.role.attrib = role.attrib
955 subject = element subject { subject.attlist, subjectterm+ }
956 # end of subject.element
958 # Weight: Ranking of this group of SubjectTerms relative
959 # to others, 0 is low, no highest value specified
960 subject.attlist &=
961   attribute weight { text }?,
962   common.attrib,
963   subject.role.attrib,
964   local.subject.attrib
965 # end of subject.attlist
967 # end of subject.module
968 local.subjectterm.attrib = empty
969 subjectterm.role.attrib = role.attrib
970 subjectterm = element subjectterm { subjectterm.attlist, text }
971 # end of subjectterm.element
972 subjectterm.attlist &=
973   common.attrib, subjectterm.role.attrib, local.subjectterm.attrib
974 # end of subjectterm.attlist
976 # end of subjectterm.module
978 # end of subjectset.content.module
979 local.keywordset.attrib = empty
980 keywordset.role.attrib = role.attrib
981 keywordset = element keywordset { keywordset.attlist, keyword+ }
982 # end of keywordset.element
983 keywordset.attlist &=
984   common.attrib, keywordset.role.attrib, local.keywordset.attrib
985 # end of keywordset.attlist
987 # end of keywordset.module
988 local.keyword.attrib = empty
989 keyword.role.attrib = role.attrib
990 keyword = element keyword { keyword.attlist, text }
991 # end of keyword.element
992 keyword.attlist &=
993   common.attrib, keyword.role.attrib, local.keyword.attrib
994 # end of keyword.attlist
996 # end of keyword.module
998 # end of keywordset.content.module
999 local.itermset.attrib = empty
1000 itermset.role.attrib = role.attrib
1001 itermset = element itermset { itermset.attlist, indexterm+ }
1002 # end of itermset.element
1003 itermset.attlist &=
1004   common.attrib, itermset.role.attrib, local.itermset.attrib
1005 # end of itermset.attlist
1007 # end of itermset.module
1009 # Bibliographic info for "blocks"
1010 local.blockinfo.attrib = empty
1011 blockinfo.role.attrib = role.attrib
1012 blockinfo = element blockinfo { blockinfo.attlist, info.class+ }
1013 # end of blockinfo.element
1014 blockinfo.attlist &=
1015   common.attrib, blockinfo.role.attrib, local.blockinfo.attrib
1016 # end of blockinfo.attlist
1018 # end of blockinfo.module
1020 # ......................................................................
1022 # Compound (section-ish) elements ......................................
1024 # Message set ......................
1025 local.msgset.attrib = empty
1026 msgset.role.attrib = role.attrib
1027 msgset =
1028   element msgset {
1029     msgset.attlist,
1030     blockinfo?,
1031     formalobject.title.content?,
1032     (msgentry+ | simplemsgentry+)
1033   }
1034 # end of msgset.element
1035 msgset.attlist &= common.attrib, msgset.role.attrib, local.msgset.attrib
1036 # end of msgset.attlist
1038 # end of msgset.module
1039 local.msgentry.attrib = empty
1040 msgentry.role.attrib = role.attrib
1041 msgentry =
1042   element msgentry { msgentry.attlist, msg+, msginfo?, msgexplan* }
1043 # end of msgentry.element
1044 msgentry.attlist &=
1045   common.attrib, msgentry.role.attrib, local.msgentry.attrib
1046 # end of msgentry.attlist
1048 # end of msgentry.module
1049 local.simplemsgentry.attrib = empty
1050 simplemsgentry.role.attrib = role.attrib
1051 simplemsgentry =
1052   element simplemsgentry { simplemsgentry.attlist, msgtext, msgexplan+ }
1053 # end of simplemsgentry.element
1054 simplemsgentry.attlist &=
1055   attribute audience { text }?,
1056   attribute level { text }?,
1057   attribute origin { text }?,
1058   common.attrib,
1059   simplemsgentry.role.attrib,
1060   local.simplemsgentry.attrib
1061 # end of simplemsgentry.attlist
1063 # end of simplemsgentry.module
1064 local.msg.attrib = empty
1065 msg.role.attrib = role.attrib
1066 msg = element msg { msg.attlist, title?, msgmain, (msgsub | msgrel)* }
1067 # end of msg.element
1068 msg.attlist &= common.attrib, msg.role.attrib, local.msg.attrib
1069 # end of msg.attlist
1071 # end of msg.module
1072 local.msgmain.attrib = empty
1073 msgmain.role.attrib = role.attrib
1074 msgmain = element msgmain { msgmain.attlist, title?, msgtext }
1075 # end of msgmain.element
1076 msgmain.attlist &=
1077   common.attrib, msgmain.role.attrib, local.msgmain.attrib
1078 # end of msgmain.attlist
1080 # end of msgmain.module
1081 local.msgsub.attrib = empty
1082 msgsub.role.attrib = role.attrib
1083 msgsub = element msgsub { msgsub.attlist, title?, msgtext }
1084 # end of msgsub.element
1085 msgsub.attlist &= common.attrib, msgsub.role.attrib, local.msgsub.attrib
1086 # end of msgsub.attlist
1088 # end of msgsub.module
1089 local.msgrel.attrib = empty
1090 msgrel.role.attrib = role.attrib
1091 msgrel = element msgrel { msgrel.attlist, title?, msgtext }
1092 # end of msgrel.element
1093 msgrel.attlist &= common.attrib, msgrel.role.attrib, local.msgrel.attrib
1094 # end of msgrel.attlist
1096 # end of msgrel.module
1098 #  MsgText (defined in the Inlines section, below)
1099 local.msginfo.attrib = empty
1100 msginfo.role.attrib = role.attrib
1101 msginfo =
1102   element msginfo { msginfo.attlist, (msglevel | msgorig | msgaud)* }
1103 # end of msginfo.element
1104 msginfo.attlist &=
1105   common.attrib, msginfo.role.attrib, local.msginfo.attrib
1106 # end of msginfo.attlist
1108 # end of msginfo.module
1109 local.msglevel.attrib = empty
1110 msglevel.role.attrib = role.attrib
1111 msglevel = element msglevel { msglevel.attlist, smallcptr.char.mix* }
1112 # end of msglevel.element
1113 msglevel.attlist &=
1114   common.attrib, msglevel.role.attrib, local.msglevel.attrib
1115 # end of msglevel.attlist
1117 # end of msglevel.module
1118 local.msgorig.attrib = empty
1119 msgorig.role.attrib = role.attrib
1120 msgorig = element msgorig { msgorig.attlist, smallcptr.char.mix* }
1121 # end of msgorig.element
1122 msgorig.attlist &=
1123   common.attrib, msgorig.role.attrib, local.msgorig.attrib
1124 # end of msgorig.attlist
1126 # end of msgorig.module
1127 local.msgaud.attrib = empty
1128 msgaud.role.attrib = role.attrib
1129 msgaud = element msgaud { msgaud.attlist, para.char.mix* }
1130 # end of msgaud.element
1131 msgaud.attlist &= common.attrib, msgaud.role.attrib, local.msgaud.attrib
1132 # end of msgaud.attlist
1134 # end of msgaud.module
1135 local.msgexplan.attrib = empty
1136 msgexplan.role.attrib = role.attrib
1137 msgexplan =
1138   element msgexplan { msgexplan.attlist, title?, component.mix+ }
1139 # end of msgexplan.element
1140 msgexplan.attlist &=
1141   common.attrib, msgexplan.role.attrib, local.msgexplan.attrib
1142 # end of msgexplan.attlist
1144 # end of msgexplan.module
1146 # end of msgset.content.module
1148 # QandASet ........................
1149 local.qandaset.attrib = empty
1150 qandaset.role.attrib = role.attrib
1151 qandaset =
1152   element qandaset {
1153     qandaset.attlist,
1154     blockinfo?,
1155     formalobject.title.content?,
1156     qandaset.mix*,
1157     (qandadiv+ | qandaentry+)
1158   }
1159 # end of qandaset.element
1160 qandaset.attlist &=
1161   attribute defaultlabel { "qanda" | "number" | "none" }?,
1162   common.attrib,
1163   qandaset.role.attrib,
1164   local.qandaset.attrib
1165 # end of qandaset.attlist
1167 # end of qandaset.module
1168 local.qandadiv.attrib = empty
1169 qandadiv.role.attrib = role.attrib
1170 qandadiv =
1171   element qandadiv {
1172     qandadiv.attlist,
1173     blockinfo?,
1174     formalobject.title.content?,
1175     qandaset.mix*,
1176     (qandadiv+ | qandaentry+)
1177   }
1178 # end of qandadiv.element
1179 qandadiv.attlist &=
1180   common.attrib, qandadiv.role.attrib, local.qandadiv.attrib
1181 # end of qandadiv.attlist
1183 # end of qandadiv.module
1184 local.qandaentry.attrib = empty
1185 qandaentry.role.attrib = role.attrib
1186 qandaentry =
1187   element qandaentry {
1188     qandaentry.attlist, blockinfo?, revhistory?, question, answer*
1189   }
1190 # end of qandaentry.element
1191 qandaentry.attlist &=
1192   common.attrib, qandaentry.role.attrib, local.qandaentry.attrib
1193 # end of qandaentry.attlist
1195 # end of qandaentry.module
1196 local.question.attrib = empty
1197 question.role.attrib = role.attrib
1198 question = element question { question.attlist, label?, qandaset.mix+ }
1199 # end of question.element
1200 question.attlist &=
1201   common.attrib, question.role.attrib, local.question.attrib
1202 # end of question.attlist
1204 # end of question.module
1205 local.answer.attrib = empty
1206 answer.role.attrib = role.attrib
1207 answer =
1208   element answer { answer.attlist, label?, qandaset.mix*, qandaentry* }
1209 # end of answer.element
1210 answer.attlist &= common.attrib, answer.role.attrib, local.answer.attrib
1211 # end of answer.attlist
1213 # end of answer.module
1214 local.label.attrib = empty
1215 label.role.attrib = role.attrib
1216 label = element label { label.attlist, word.char.mix* }
1217 # end of label.element
1218 label.attlist &= common.attrib, label.role.attrib, local.label.attrib
1219 # end of label.attlist
1221 # end of label.module
1223 # end of qandaset.content.module
1225 # Procedure ........................
1226 local.procedure.attrib = empty
1227 procedure.role.attrib = role.attrib
1228 procedure =
1229   element procedure {
1230     procedure.attlist,
1231     blockinfo?,
1232     formalobject.title.content?,
1233     component.mix*,
1234     step+
1235   }
1236 # end of procedure.element
1237 procedure.attlist &=
1238   common.attrib, procedure.role.attrib, local.procedure.attrib
1239 # end of procedure.attlist
1241 # end of procedure.module
1242 local.step.attrib = empty
1243 step.role.attrib = role.attrib
1244 step =
1245   element step {
1246     step.attlist,
1247     title?,
1248     ((component.mix+, (substeps, component.mix*)?)
1249      | (substeps, component.mix*))
1250   }
1251 # end of step.element
1253 # Performance: Whether the Step must be performed
1255 # not #REQUIRED!
1256 step.attlist &=
1257   [ a:defaultValue = "required" ]
1258   attribute performance { "optional" | "required" }?,
1259   common.attrib,
1260   step.role.attrib,
1261   local.step.attrib
1262 # end of step.attlist
1264 # end of step.module
1265 local.substeps.attrib = empty
1266 substeps.role.attrib = role.attrib
1267 substeps = element substeps { substeps.attlist, step+ }
1268 # end of substeps.element
1270 # Performance: whether entire set of substeps must be performed
1272 # not #REQUIRED!
1273 substeps.attlist &=
1274   [ a:defaultValue = "required" ]
1275   attribute performance { "optional" | "required" }?,
1276   common.attrib,
1277   substeps.role.attrib,
1278   local.substeps.attrib
1279 # end of substeps.attlist
1281 # end of substeps.module
1283 # end of procedure.content.module
1285 # Sidebar ..........................
1286 local.sidebarinfo.attrib = empty
1287 sidebarinfo.role.attrib = role.attrib
1288 sidebarinfo = element sidebarinfo { sidebarinfo.attlist, info.class+ }
1289 # end of sidebarinfo.element
1290 sidebarinfo.attlist &=
1291   common.attrib, sidebarinfo.role.attrib, local.sidebarinfo.attrib
1292 # end of sidebarinfo.attlist
1294 # end of sidebarinfo.module
1295 local.sidebar.attrib = empty
1296 sidebar.role.attrib = role.attrib
1297 sidebar =
1298   element sidebar {
1299     sidebar.attlist,
1300     sidebarinfo?,
1301     formalobject.title.content?,
1302     sidebar.mix+
1303   }
1304 # end of sidebar.element
1305 sidebar.attlist &=
1306   common.attrib, sidebar.role.attrib, local.sidebar.attrib
1307 # end of sidebar.attlist
1309 # end of sidebar.module
1311 # end of sidebar.content.model
1313 # ......................................................................
1315 # Paragraph-related elements ...........................................
1316 local.abstract.attrib = empty
1317 abstract.role.attrib = role.attrib
1318 abstract = element abstract { abstract.attlist, title?, para.class+ }
1319 # end of abstract.element
1320 abstract.attlist &=
1321   common.attrib, abstract.role.attrib, local.abstract.attrib
1322 # end of abstract.attlist
1324 # end of abstract.module
1325 local.authorblurb.attrib = empty
1326 authorblurb.role.attrib = role.attrib
1327 authorblurb =
1328   element authorblurb { authorblurb.attlist, title?, para.class+ }
1329 # end of authorblurb.element
1330 authorblurb.attlist &=
1331   common.attrib, authorblurb.role.attrib, local.authorblurb.attrib
1332 # end of authorblurb.attlist
1334 # end of authorblurb.module
1335 local.personblurb.attrib = empty
1336 personblurb.role.attrib = role.attrib
1337 personblurb =
1338   element personblurb { personblurb.attlist, title?, para.class+ }
1339 # end of personblurb.element
1340 personblurb.attlist &=
1341   common.attrib, personblurb.role.attrib, local.personblurb.attrib
1342 # end of personblurb.attlist
1344 # end of personblurb.module
1345 local.blockquote.attrib = empty
1346 blockquote.role.attrib = role.attrib
1347 blockquote =
1348   element blockquote {
1349     blockquote.attlist, title?, attribution?, component.mix+
1350   }
1351 # end of blockquote.element
1352 blockquote.attlist &=
1353   common.attrib, blockquote.role.attrib, local.blockquote.attrib
1354 # end of blockquote.attlist
1356 # end of blockquote.module
1357 local.attribution.attrib = empty
1358 attribution.role.attrib = role.attrib
1359 attribution =
1360   element attribution { attribution.attlist, para.char.mix* }
1361 # end of attribution.element
1362 attribution.attlist &=
1363   common.attrib, attribution.role.attrib, local.attribution.attrib
1364 # end of attribution.attlist
1366 # end of attribution.module
1367 local.bridgehead.attrib = empty
1368 bridgehead.role.attrib = role.attrib
1369 bridgehead = element bridgehead { bridgehead.attlist, title.char.mix* }
1370 # end of bridgehead.element
1372 # Renderas: Indicates the format in which the BridgeHead
1373 # should appear
1374 bridgehead.attlist &=
1375   attribute renderas {
1376     "other" | "sect1" | "sect2" | "sect3" | "sect4" | "sect5"
1377   }?,
1378   common.attrib,
1379   bridgehead.role.attrib,
1380   local.bridgehead.attrib
1381 # end of bridgehead.attlist
1383 # end of bridgehead.module
1384 local.remark.attrib = empty
1385 remark.role.attrib = role.attrib
1386 remark = element remark { remark.attlist, para.char.mix* }
1387 # end of remark.element
1388 remark.attlist &= common.attrib, remark.role.attrib, local.remark.attrib
1389 # end of remark.attlist
1391 # end of remark.module
1392 local.epigraph.attrib = empty
1393 epigraph.role.attrib = role.attrib
1394 epigraph =
1395   element epigraph {
1396     epigraph.attlist, attribution?, (para.class | literallayout)+
1397   }
1398 # end of epigraph.element
1399 epigraph.attlist &=
1400   common.attrib, epigraph.role.attrib, local.epigraph.attrib
1401 # end of epigraph.attlist
1403 #  Attribution (defined above)
1405 # end of epigraph.module
1406 local.footnote.attrib = empty
1407 footnote.role.attrib = role.attrib
1408 footnote = element footnote { footnote.attlist, footnote.mix+ }
1409 # end of footnote.element
1410 footnote.attlist &=
1411   label.attrib,
1412   common.attrib,
1413   footnote.role.attrib,
1414   local.footnote.attrib
1415 # end of footnote.attlist
1417 # end of footnote.module
1418 local.highlights.attrib = empty
1419 highlights.role.attrib = role.attrib
1420 highlights = element highlights { highlights.attlist, highlights.mix+ }
1421 # end of highlights.element
1422 highlights.attlist &=
1423   common.attrib, highlights.role.attrib, local.highlights.attrib
1424 # end of highlights.attlist
1426 # end of highlights.module
1427 local.formalpara.attrib = empty
1428 formalpara.role.attrib = role.attrib
1429 formalpara =
1430   element formalpara { formalpara.attlist, title, ndxterm.class*, para }
1431 # end of formalpara.element
1432 formalpara.attlist &=
1433   common.attrib, formalpara.role.attrib, local.formalpara.attrib
1434 # end of formalpara.attlist
1436 # end of formalpara.module
1437 local.para.attrib = empty
1438 para.role.attrib = role.attrib
1439 para = element para { para.attlist, (para.char.mix | para.mix)* }
1440 # end of para.element
1441 para.attlist &= common.attrib, para.role.attrib, local.para.attrib
1442 # end of para.attlist
1444 # end of para.module
1445 local.simpara.attrib = empty
1446 simpara.role.attrib = role.attrib
1447 simpara = element simpara { simpara.attlist, para.char.mix* }
1448 # end of simpara.element
1449 simpara.attlist &=
1450   common.attrib, simpara.role.attrib, local.simpara.attrib
1451 # end of simpara.attlist
1453 # end of simpara.module
1454 local.admon.attrib = empty
1455 admon.role.attrib = role.attrib
1456 caution = element caution { caution.attlist, title?, admon.mix+ }
1457 # end of caution.element
1458 caution.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
1459 # end of caution.attlist
1460 important = element important { important.attlist, title?, admon.mix+ }
1461 # end of important.element
1462 important.attlist &=
1463   common.attrib, admon.role.attrib, local.admon.attrib
1464 # end of important.attlist
1465 note = element note { note.attlist, title?, admon.mix+ }
1466 # end of note.element
1467 note.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
1468 # end of note.attlist
1469 tip = element tip { tip.attlist, title?, admon.mix+ }
1470 # end of tip.element
1471 tip.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
1472 # end of tip.attlist
1473 warning = element warning { warning.attlist, title?, admon.mix+ }
1474 # end of warning.element
1475 warning.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
1476 # end of warning.attlist
1478 # end of admon.module
1480 # ......................................................................
1482 # Lists ................................................................
1484 # GlossList ........................
1485 local.glosslist.attrib = empty
1486 glosslist.role.attrib = role.attrib
1487 glosslist = element glosslist { glosslist.attlist, glossentry+ }
1488 # end of glosslist.element
1489 glosslist.attlist &=
1490   common.attrib, glosslist.role.attrib, local.glosslist.attrib
1491 # end of glosslist.attlist
1493 # end of glosslist.module
1494 local.glossentry.attrib = empty
1495 glossentry.role.attrib = role.attrib
1496 glossentry =
1497   element glossentry {
1498     glossentry.attlist,
1499     glossterm,
1500     acronym?,
1501     abbrev?,
1502     ndxterm.class*,
1503     revhistory?,
1504     (glosssee | glossdef+)
1505   }
1506 # end of glossentry.element
1508 # SortAs: String by which the GlossEntry is to be sorted
1509 # (alphabetized) in lieu of its proper content
1510 glossentry.attlist &=
1511   attribute sortas { text }?,
1512   common.attrib,
1513   glossentry.role.attrib,
1514   local.glossentry.attrib
1515 # end of glossentry.attlist
1517 # end of glossentry.module
1519 #  GlossTerm (defined in the Inlines section, below)
1520 local.glossdef.attrib = empty
1521 glossdef.role.attrib = role.attrib
1522 glossdef =
1523   element glossdef { glossdef.attlist, glossdef.mix+, glossseealso* }
1524 # end of glossdef.element
1526 # Subject: List of subjects; keywords for the definition
1527 glossdef.attlist &=
1528   attribute subject { text }?,
1529   common.attrib,
1530   glossdef.role.attrib,
1531   local.glossdef.attrib
1532 # end of glossdef.attlist
1534 # end of glossdef.module
1535 local.glosssee.attrib = empty
1536 glosssee.role.attrib = role.attrib
1537 glosssee = element glosssee { glosssee.attlist, para.char.mix* }
1538 # end of glosssee.element
1540 # OtherTerm: Reference to the GlossEntry whose GlossTerm
1541 # should be displayed at the point of the GlossSee
1542 glosssee.attlist &=
1543   attribute otherterm { xsd:IDREF }?,
1544   common.attrib,
1545   glosssee.role.attrib,
1546   local.glosssee.attrib
1547 # end of glosssee.attlist
1549 # end of glosssee.module
1550 local.glossseealso.attrib = empty
1551 glossseealso.role.attrib = role.attrib
1552 glossseealso =
1553   element glossseealso { glossseealso.attlist, para.char.mix* }
1554 # end of glossseealso.element
1556 # OtherTerm: Reference to the GlossEntry whose GlossTerm
1557 # should be displayed at the point of the GlossSeeAlso
1558 glossseealso.attlist &=
1559   attribute otherterm { xsd:IDREF }?,
1560   common.attrib,
1561   glossseealso.role.attrib,
1562   local.glossseealso.attrib
1563 # end of glossseealso.attlist
1565 # end of glossseealso.module
1567 # end of glossentry.content.module
1569 # ItemizedList and OrderedList .....
1570 local.itemizedlist.attrib = empty
1571 itemizedlist.role.attrib = role.attrib
1572 itemizedlist =
1573   element itemizedlist {
1574     itemizedlist.attlist,
1575     blockinfo?,
1576     formalobject.title.content?,
1577     listpreamble.mix*,
1578     listitem+
1579   }
1580 # end of itemizedlist.element
1582 # Spacing: Whether the vertical space in the list should be
1583 # compressed
1585 # Mark: Keyword, e.g., bullet, dash, checkbox, none;
1586 # list of keywords and defaults are implementation specific
1587 itemizedlist.attlist &=
1588   attribute spacing { "normal" | "compact" }?,
1589   mark.attrib,
1590   common.attrib,
1591   itemizedlist.role.attrib,
1592   local.itemizedlist.attrib
1593 # end of itemizedlist.attlist
1595 # end of itemizedlist.module
1596 local.orderedlist.attrib = empty
1597 orderedlist.role.attrib = role.attrib
1598 orderedlist =
1599   element orderedlist {
1600     orderedlist.attlist,
1601     blockinfo?,
1602     formalobject.title.content?,
1603     listpreamble.mix*,
1604     listitem+
1605   }
1606 # end of orderedlist.element
1608 # Numeration: Style of ListItem numbered; default is expected
1609 # to be Arabic
1611 # InheritNum: Specifies for a nested list that the numbering
1612 # of ListItems should include the number of the item
1613 # within which they are nested (e.g., 1a and 1b within 1,
1614 # rather than a and b)
1616 # Continuation: Where list numbering begins afresh (Restarts,
1617 # the default) or continues that of the immediately preceding
1618 # list (Continues)
1620 # Spacing: Whether the vertical space in the list should be
1621 # compressed
1622 orderedlist.attlist &=
1623   attribute numeration {
1624     "arabic" | "upperalpha" | "loweralpha" | "upperroman" | "lowerroman"
1625   }?,
1626   [ a:defaultValue = "ignore" ]
1627   attribute inheritnum { "inherit" | "ignore" }?,
1628   [ a:defaultValue = "restarts" ]
1629   attribute continuation { "continues" | "restarts" }?,
1630   attribute spacing { "normal" | "compact" }?,
1631   common.attrib,
1632   orderedlist.role.attrib,
1633   local.orderedlist.attrib
1634 # end of orderedlist.attlist
1636 # end of orderedlist.module
1637 local.listitem.attrib = empty
1638 listitem.role.attrib = role.attrib
1639 listitem = element listitem { listitem.attlist, component.mix+ }
1640 # end of listitem.element
1642 # Override: Indicates the mark to be used for this ListItem
1643 # instead of the default mark or the mark specified by
1644 # the Mark attribute on the enclosing ItemizedList
1645 listitem.attlist &=
1646   attribute override { text }?,
1647   common.attrib,
1648   listitem.role.attrib,
1649   local.listitem.attrib
1650 # end of listitem.attlist
1652 # end of listitem.module
1654 # SegmentedList ....................
1655 local.segmentedlist.attrib = empty
1656 segmentedlist.role.attrib = role.attrib
1657 segmentedlist =
1658   element segmentedlist {
1659     segmentedlist.attlist,
1660     formalobject.title.content?,
1661     segtitle+,
1662     seglistitem+
1663   }
1664 # end of segmentedlist.element
1665 segmentedlist.attlist &=
1666   common.attrib, segmentedlist.role.attrib, local.segmentedlist.attrib
1667 # end of segmentedlist.attlist
1669 # end of segmentedlist.module
1670 local.segtitle.attrib = empty
1671 segtitle.role.attrib = role.attrib
1672 segtitle = element segtitle { segtitle.attlist, title.char.mix* }
1673 # end of segtitle.element
1674 segtitle.attlist &=
1675   common.attrib, segtitle.role.attrib, local.segtitle.attrib
1676 # end of segtitle.attlist
1678 # end of segtitle.module
1679 local.seglistitem.attrib = empty
1680 seglistitem.role.attrib = role.attrib
1681 seglistitem = element seglistitem { seglistitem.attlist, seg+ }
1682 # end of seglistitem.element
1683 seglistitem.attlist &=
1684   common.attrib, seglistitem.role.attrib, local.seglistitem.attrib
1685 # end of seglistitem.attlist
1687 # end of seglistitem.module
1688 local.seg.attrib = empty
1689 seg.role.attrib = role.attrib
1690 seg = element seg { seg.attlist, para.char.mix* }
1691 # end of seg.element
1692 seg.attlist &= common.attrib, seg.role.attrib, local.seg.attrib
1693 # end of seg.attlist
1695 # end of seg.module
1697 # end of segmentedlist.content.module
1699 # SimpleList .......................
1700 local.simplelist.attrib = empty
1701 simplelist.role.attrib = role.attrib
1702 simplelist = element simplelist { simplelist.attlist, member+ }
1703 # end of simplelist.element
1705 # Columns: The number of columns the array should contain
1707 # Type: How the Members of the SimpleList should be
1708 # formatted: Inline (members separated with commas etc.
1709 # inline), Vert (top to bottom in n Columns), or Horiz (in
1710 # the direction of text flow) in n Columns.  If Column
1711 # is 1 or implied, Type=Vert and Type=Horiz give the same
1712 # results.
1713 simplelist.attlist &=
1714   attribute columns { text }?,
1715   [ a:defaultValue = "vert" ]
1716   attribute type { "inline" | "vert" | "horiz" }?,
1717   common.attrib,
1718   simplelist.role.attrib,
1719   local.simplelist.attrib
1720 # end of simplelist.attlist
1722 # end of simplelist.module
1723 local.member.attrib = empty
1724 member.role.attrib = role.attrib
1725 member = element member { member.attlist, para.char.mix* }
1726 # end of member.element
1727 member.attlist &= common.attrib, member.role.attrib, local.member.attrib
1728 # end of member.attlist
1730 # end of member.module
1732 # end of simplelist.content.module
1734 # VariableList .....................
1735 local.variablelist.attrib = empty
1736 variablelist.role.attrib = role.attrib
1737 variablelist =
1738   element variablelist {
1739     variablelist.attlist,
1740     blockinfo?,
1741     formalobject.title.content?,
1742     listpreamble.mix*,
1743     varlistentry+
1744   }
1745 # end of variablelist.element
1747 # TermLength: Length beyond which the presentation engine
1748 # may consider the Term too long and select an alternate
1749 # presentation of the Term and, or, its associated ListItem.
1750 variablelist.attlist &=
1751   attribute termlength { text }?,
1752   common.attrib,
1753   variablelist.role.attrib,
1754   local.variablelist.attrib
1755 # end of variablelist.attlist
1757 # end of variablelist.module
1758 local.varlistentry.attrib = empty
1759 varlistentry.role.attrib = role.attrib
1760 varlistentry =
1761   element varlistentry { varlistentry.attlist, term+, listitem }
1762 # end of varlistentry.element
1763 varlistentry.attlist &=
1764   common.attrib, varlistentry.role.attrib, local.varlistentry.attrib
1765 # end of varlistentry.attlist
1767 # end of varlistentry.module
1768 local.term.attrib = empty
1769 term.role.attrib = role.attrib
1770 term = element term { term.attlist, para.char.mix* }
1771 # end of term.element
1772 term.attlist &= common.attrib, term.role.attrib, local.term.attrib
1773 # end of term.attlist
1775 # end of term.module
1777 #  ListItem (defined above)
1779 # end of variablelist.content.module
1781 # CalloutList ......................
1782 local.calloutlist.attrib = empty
1783 calloutlist.role.attrib = role.attrib
1784 calloutlist =
1785   element calloutlist {
1786     calloutlist.attlist, formalobject.title.content?, callout+
1787   }
1788 # end of calloutlist.element
1789 calloutlist.attlist &=
1790   common.attrib, calloutlist.role.attrib, local.calloutlist.attrib
1791 # end of calloutlist.attlist
1793 # end of calloutlist.module
1794 local.callout.attrib = empty
1795 callout.role.attrib = role.attrib
1796 callout = element callout { callout.attlist, component.mix+ }
1797 # end of callout.element
1799 # AreaRefs: IDs of one or more Areas or AreaSets described
1800 # by this Callout
1801 callout.attlist &=
1802   attribute arearefs { xsd:IDREFS },
1803   common.attrib,
1804   callout.role.attrib,
1805   local.callout.attrib
1806 # end of callout.attlist
1808 # end of callout.module
1810 # end of calloutlist.content.module
1812 # ......................................................................
1814 # Objects ..............................................................
1816 # Examples etc. ....................
1817 local.example.attrib = empty
1818 example.role.attrib = role.attrib
1819 example =
1820   element example {
1821     example.attlist,
1822     blockinfo?,
1823     formalobject.title.content,
1824     example.mix+
1825   }
1826 # end of example.element
1827 example.attlist &=
1828   label.attrib,
1829   width.attrib,
1830   common.attrib,
1831   example.role.attrib,
1832   local.example.attrib
1833 # end of example.attlist
1835 # end of example.module
1836 local.informalexample.attrib = empty
1837 informalexample.role.attrib = role.attrib
1838 informalexample =
1839   element informalexample {
1840     informalexample.attlist, blockinfo?, example.mix+
1841   }
1842 # end of informalexample.element
1843 informalexample.attlist &=
1844   width.attrib,
1845   common.attrib,
1846   informalexample.role.attrib,
1847   local.informalexample.attrib
1848 # end of informalexample.attlist
1850 # end of informalexample.module
1851 local.programlistingco.attrib = empty
1852 programlistingco.role.attrib = role.attrib
1853 programlistingco =
1854   element programlistingco {
1855     programlistingco.attlist, areaspec, programlisting, calloutlist*
1856   }
1857 # end of programlistingco.element
1858 programlistingco.attlist &=
1859   common.attrib,
1860   programlistingco.role.attrib,
1861   local.programlistingco.attrib
1862 # end of programlistingco.attlist
1864 #  CalloutList (defined above in Lists)
1866 # end of informalexample.module
1867 local.areaspec.attrib = empty
1868 areaspec.role.attrib = role.attrib
1869 areaspec = element areaspec { areaspec.attlist, (area | areaset)+ }
1870 # end of areaspec.element
1872 # Units: global unit of measure in which coordinates in
1873 # this spec are expressed:
1875 # - CALSPair "x1,y1 x2,y2": lower-left and upper-right
1876 # coordinates in a rectangle describing repro area in which
1877 # graphic is placed, where X and Y dimensions are each some
1878 # number 0..10000 (taken from CALS graphic attributes)
1880 # - LineColumn "line column": line number and column number
1881 # at which to start callout text in "linespecific" content
1883 # - LineRange "startline endline": whole lines from startline
1884 # to endline in "linespecific" content
1886 # - LineColumnPair "line1 col1 line2 col2": starting and ending
1887 # points of area in "linespecific" content that starts at
1888 # first position and ends at second position (including the
1889 # beginnings of any intervening lines)
1891 # - Other: directive to look at value of OtherUnits attribute
1892 # to get implementation-specific keyword
1894 # The default is implementation-specific; usually dependent on
1895 # the parent element (GraphicCO gets CALSPair, ProgramListingCO
1896 # and ScreenCO get LineColumn)
1898 # OtherUnits: User-defined units
1899 areaspec.attlist &=
1900   attribute units {
1901     "calspair" | "linecolumn" | "linerange" | "linecolumnpair" | "other"
1902   }?,
1903   attribute otherunits { xsd:NMTOKEN }?,
1904   common.attrib,
1905   areaspec.role.attrib,
1906   local.areaspec.attrib
1907 # end of areaspec.attlist
1909 # end of areaspec.module
1910 local.area.attrib = empty
1911 area.role.attrib = role.attrib
1912 area = element area { area.attlist, empty }
1913 # end of area.element
1915 # bug number/symbol override or initialization
1917 # to any related information
1919 # Units: unit of measure in which coordinates in this
1920 # area are expressed; inherits from AreaSet and AreaSpec
1922 # OtherUnits: User-defined units
1923 area.attlist &=
1924   label.attrib,
1925   linkends.attrib,
1926   attribute units {
1927     "calspair" | "linecolumn" | "linerange" | "linecolumnpair" | "other"
1928   }?,
1929   attribute otherunits { xsd:NMTOKEN }?,
1930   attribute coords { text },
1931   idreq.common.attrib,
1932   area.role.attrib,
1933   local.area.attrib
1934 # end of area.attlist
1936 # end of area.module
1937 local.areaset.attrib = empty
1938 areaset.role.attrib = role.attrib
1939 areaset = element areaset { areaset.attlist, area+ }
1940 # end of areaset.element
1942 # bug number/symbol override or initialization
1944 # Units: unit of measure in which coordinates in this
1945 # area are expressed; inherits from AreaSpec
1946 areaset.attlist &=
1947   label.attrib,
1948   attribute units {
1949     "calspair" | "linecolumn" | "linerange" | "linecolumnpair" | "other"
1950   }?,
1951   attribute otherunits { xsd:NMTOKEN }?,
1952   attribute coords { text },
1953   idreq.common.attrib,
1954   areaset.role.attrib,
1955   local.areaset.attrib
1956 # end of areaset.attlist
1958 # end of areaset.module
1960 # end of areaspec.content.module
1961 local.programlisting.attrib = empty
1962 programlisting.role.attrib = role.attrib
1963 programlisting =
1964   element programlisting {
1965     programlisting.attlist,
1966     (para.char.mix | co | coref | lineannotation | textobject)*
1967   }
1968 # end of programlisting.element
1969 programlisting.attlist &=
1970   width.attrib,
1971   linespecific.attrib,
1972   common.attrib,
1973   programlisting.role.attrib,
1974   local.programlisting.attrib
1975 # end of programlisting.attlist
1977 # end of programlisting.module
1978 local.literallayout.attrib = empty
1979 literallayout.role.attrib = role.attrib
1980 literallayout =
1981   element literallayout {
1982     literallayout.attlist,
1983     (para.char.mix | co | coref | textobject | lineannotation)*
1984   }
1985 # end of literallayout.element
1986 literallayout.attlist &=
1987   width.attrib,
1988   linespecific.attrib,
1989   [ a:defaultValue = "normal" ]
1990   attribute class { "monospaced" | "normal" }?,
1991   common.attrib,
1992   literallayout.role.attrib,
1993   local.literallayout.attrib
1994 # end of literallayout.attlist
1996 #  LineAnnotation (defined in the Inlines section, below)
1998 # end of literallayout.module
1999 local.screenco.attrib = empty
2000 screenco.role.attrib = role.attrib
2001 screenco =
2002   element screenco { screenco.attlist, areaspec, screen, calloutlist* }
2003 # end of screenco.element
2004 screenco.attlist &=
2005   common.attrib, screenco.role.attrib, local.screenco.attrib
2006 # end of screenco.attlist
2008 #  AreaSpec (defined above)
2010 #  CalloutList (defined above in Lists)
2012 # end of screenco.module
2013 local.screen.attrib = empty
2014 screen.role.attrib = role.attrib
2015 screen =
2016   element screen {
2017     screen.attlist,
2018     (para.char.mix | co | coref | textobject | lineannotation)*
2019   }
2020 # end of screen.element
2021 screen.attlist &=
2022   width.attrib,
2023   linespecific.attrib,
2024   common.attrib,
2025   screen.role.attrib,
2026   local.screen.attrib
2027 # end of screen.attlist
2029 # end of screen.module
2030 local.screenshot.attrib = empty
2031 screenshot.role.attrib = role.attrib
2032 screenshot =
2033   element screenshot {
2034     screenshot.attlist,
2035     screeninfo?,
2036     (graphic | graphicco | mediaobject | mediaobjectco)
2037   }
2038 # end of screenshot.element
2039 screenshot.attlist &=
2040   common.attrib, screenshot.role.attrib, local.screenshot.attrib
2041 # end of screenshot.attlist
2043 # end of screenshot.module
2044 local.screeninfo.attrib = empty
2045 screeninfo.role.attrib = role.attrib
2046 screeninfo = element screeninfo { screeninfo.attlist, para.char.mix* }
2047 # end of screeninfo.element
2048 screeninfo.attlist &=
2049   common.attrib, screeninfo.role.attrib, local.screeninfo.attrib
2050 # end of screeninfo.attlist
2052 # end of screeninfo.module
2054 # end of screenshot.content.module
2056 # Figures etc. .....................
2057 local.figure.attrib = empty
2058 figure.role.attrib = role.attrib
2059 figure =
2060   element figure {
2061     figure.attlist,
2062     blockinfo?,
2063     formalobject.title.content,
2064     (figure.mix | link.char.class)+
2065   }
2066 # end of figure.element
2068 # Float: Whether the Figure is supposed to be rendered
2069 # where convenient (yes (1) value) or at the place it occurs
2070 # in the text (no (0) value, the default)
2071 figure.attlist &=
2072   [ a:defaultValue = "0" ] attribute float { yesorno.attvals }?,
2073   attribute pgwide { yesorno.attvals }?,
2074   label.attrib,
2075   common.attrib,
2076   figure.role.attrib,
2077   local.figure.attrib
2078 # end of figure.attlist
2080 # end of figure.module
2081 local.informalfigure.attrib = empty
2082 informalfigure.role.attrib = role.attrib
2083 informalfigure =
2084   element informalfigure {
2085     informalfigure.attlist, blockinfo?, (figure.mix | link.char.class)+
2086   }
2087 # end of informalfigure.element
2089 # Float: Whether the Figure is supposed to be rendered
2090 # where convenient (yes (1) value) or at the place it occurs
2091 # in the text (no (0) value, the default)
2092 informalfigure.attlist &=
2093   [ a:defaultValue = "0" ] attribute float { yesorno.attvals }?,
2094   attribute pgwide { yesorno.attvals }?,
2095   label.attrib,
2096   common.attrib,
2097   informalfigure.role.attrib,
2098   local.informalfigure.attrib
2099 # end of informalfigure.attlist
2101 # end of informalfigure.module
2102 local.graphicco.attrib = empty
2103 graphicco.role.attrib = role.attrib
2104 graphicco =
2105   element graphicco {
2106     graphicco.attlist, areaspec, graphic, calloutlist*
2107   }
2108 # end of graphicco.element
2109 graphicco.attlist &=
2110   common.attrib, graphicco.role.attrib, local.graphicco.attrib
2111 # end of graphicco.attlist
2113 #  AreaSpec (defined above in Examples)
2115 #  CalloutList (defined above in Lists)
2117 # end of graphicco.module
2119 # Graphical data can be the content of Graphic, or you can reference
2120 # an external file either as an entity (Entitref) or a filename
2121 # (Fileref).
2122 local.graphic.attrib = empty
2123 graphic.role.attrib = role.attrib
2124 graphic = element graphic { graphic.attlist, empty }
2125 # end of graphic.element
2126 graphic.attlist &=
2127   graphics.attrib,
2128   common.attrib,
2129   graphic.role.attrib,
2130   local.graphic.attrib
2131 # end of graphic.attlist
2133 # end of graphic.module
2134 local.inlinegraphic.attrib = empty
2135 inlinegraphic.role.attrib = role.attrib
2136 inlinegraphic = element inlinegraphic { inlinegraphic.attlist, empty }
2137 # end of inlinegraphic.element
2138 inlinegraphic.attlist &=
2139   graphics.attrib,
2140   common.attrib,
2141   inlinegraphic.role.attrib,
2142   local.inlinegraphic.attrib
2143 # end of inlinegraphic.attlist
2145 # end of inlinegraphic.module
2146 local.mediaobject.attrib = empty
2147 mediaobject.role.attrib = role.attrib
2148 mediaobject =
2149   element mediaobject {
2150     mediaobject.attlist, objectinfo?, mediaobject.mix+, caption?
2151   }
2152 # end of mediaobject.element
2153 mediaobject.attlist &=
2154   common.attrib, mediaobject.role.attrib, local.mediaobject.attrib
2155 # end of mediaobject.attlist
2157 # end of mediaobject.module
2158 local.inlinemediaobject.attrib = empty
2159 inlinemediaobject.role.attrib = role.attrib
2160 inlinemediaobject =
2161   element inlinemediaobject {
2162     inlinemediaobject.attlist, objectinfo?, mediaobject.mix+
2163   }
2164 # end of inlinemediaobject.element
2165 inlinemediaobject.attlist &=
2166   common.attrib,
2167   inlinemediaobject.role.attrib,
2168   local.inlinemediaobject.attrib
2169 # end of inlinemediaobject.attlist
2171 # end of inlinemediaobject.module
2172 local.videoobject.attrib = empty
2173 videoobject.role.attrib = role.attrib
2174 videoobject =
2175   element videoobject { videoobject.attlist, objectinfo?, videodata }
2176 # end of videoobject.element
2177 videoobject.attlist &=
2178   common.attrib, videoobject.role.attrib, local.videoobject.attrib
2179 # end of videoobject.attlist
2181 # end of videoobject.module
2182 local.audioobject.attrib = empty
2183 audioobject.role.attrib = role.attrib
2184 audioobject =
2185   element audioobject { audioobject.attlist, objectinfo?, audiodata }
2186 # end of audioobject.element
2187 audioobject.attlist &=
2188   common.attrib, audioobject.role.attrib, local.audioobject.attrib
2189 # end of audioobject.attlist
2191 # end of audioobject.module
2192 local.imageobject.attrib = empty
2193 imageobject.role.attrib = role.attrib
2194 imageobject =
2195   element imageobject { imageobject.attlist, objectinfo?, imagedata }
2196 # end of imageobject.element
2197 imageobject.attlist &=
2198   common.attrib, imageobject.role.attrib, local.imageobject.attrib
2199 # end of imageobject.attlist
2201 # end of imageobject.module
2202 local.textobject.attrib = empty
2203 textobject.role.attrib = role.attrib
2204 textobject =
2205   element textobject {
2206     textobject.attlist,
2207     objectinfo?,
2208     (phrase | textdata | textobject.mix+)
2209   }
2210 # end of textobject.element
2211 textobject.attlist &=
2212   common.attrib, textobject.role.attrib, local.textobject.attrib
2213 # end of textobject.attlist
2215 # end of textobject.module
2216 local.objectinfo.attrib = empty
2217 objectinfo.role.attrib = role.attrib
2218 objectinfo = element objectinfo { objectinfo.attlist, info.class+ }
2219 # end of objectinfo.element
2220 objectinfo.attlist &=
2221   common.attrib, objectinfo.role.attrib, local.objectinfo.attrib
2222 # end of objectinfo.attlist
2224 # end of objectinfo.module
2226 # EntityRef: Name of an external entity containing the content
2227 # of the object data
2229 # FileRef: Filename, qualified by a pathname if desired,
2230 # designating the file containing the content of the object data
2232 # Format: Notation of the element content, if any
2234 # SrcCredit: Information about the source of the image
2235 local.objectdata.attrib = empty
2236 objectdata.attrib =
2237   attribute entityref { xsd:ENTITY }?,
2238   attribute fileref { text }?,
2239   attribute format { notation.class }?,
2240   attribute srccredit { text }?,
2241   local.objectdata.attrib
2242 local.videodata.attrib = empty
2243 videodata.role.attrib = role.attrib
2244 videodata = element videodata { videodata.attlist, empty }
2245 # end of videodata.element
2247 # Width: Same as CALS reprowid (desired width)
2249 # Depth: Same as CALS reprodep (desired depth)
2251 # Align: Same as CALS hplace with 'none' removed; #IMPLIED means
2252 # application-specific
2254 # Scale: Conflation of CALS hscale and vscale
2256 # Scalefit: Same as CALS scalefit
2257 videodata.attlist &=
2258   attribute width { text }?,
2259   attribute contentwidth { text }?,
2260   attribute depth { text }?,
2261   attribute contentdepth { text }?,
2262   attribute align { "left" | "right" | "center" }?,
2263   attribute valign { "top" | "middle" | "bottom" }?,
2264   attribute scale { text }?,
2265   attribute scalefit { yesorno.attvals }?,
2266   objectdata.attrib,
2267   common.attrib,
2268   videodata.role.attrib,
2269   local.videodata.attrib
2270 # end of videodata.attlist
2272 # end of videodata.module
2273 local.audiodata.attrib = empty
2274 audiodata.role.attrib = role.attrib
2275 audiodata = element audiodata { audiodata.attlist, empty }
2276 # end of audiodata.element
2277 audiodata.attlist &=
2278   objectdata.attrib,
2279   common.attrib,
2280   audiodata.role.attrib,
2281   local.audiodata.attrib
2282 # end of audiodata.attlist
2284 # end of audiodata.module
2285 local.imagedata.attrib = empty
2286 imagedata.role.attrib = role.attrib
2287 imagedata = element imagedata { imagedata.attlist, empty }
2288 # end of imagedata.element
2290 # Width: Same as CALS reprowid (desired width)
2292 # Depth: Same as CALS reprodep (desired depth)
2294 # Align: Same as CALS hplace with 'none' removed; #IMPLIED means
2295 # application-specific
2297 # Scale: Conflation of CALS hscale and vscale
2299 # Scalefit: Same as CALS scalefit
2300 imagedata.attlist &=
2301   attribute width { text }?,
2302   attribute contentwidth { text }?,
2303   attribute depth { text }?,
2304   attribute contentdepth { text }?,
2305   attribute align { "left" | "right" | "center" }?,
2306   attribute valign { "top" | "middle" | "bottom" }?,
2307   attribute scale { text }?,
2308   attribute scalefit { yesorno.attvals }?,
2309   objectdata.attrib,
2310   common.attrib,
2311   imagedata.role.attrib,
2312   local.imagedata.attrib
2313 # end of imagedata.attlist
2315 # end of imagedata.module
2316 local.textdata.attrib = empty
2317 textdata.role.attrib = role.attrib
2318 textdata = element textdata { textdata.attlist, empty }
2319 # end of textdata.element
2320 textdata.attlist &=
2321   attribute encoding { text }?,
2322   objectdata.attrib,
2323   common.attrib,
2324   textdata.role.attrib,
2325   local.textdata.attrib
2326 # end of textdata.attlist
2328 # end of textdata.module
2329 local.caption.attrib = empty
2330 caption.role.attrib = role.attrib
2331 caption = element caption { caption.attlist, textobject.mix* }
2332 # end of caption.element
2333 caption.attlist &=
2334   common.attrib, caption.role.attrib, local.caption.attrib
2335 # end of caption.attlist
2337 # end of caption.module
2338 local.mediaobjectco.attrib = empty
2339 mediaobjectco.role.attrib = role.attrib
2340 mediaobjectco =
2341   element mediaobjectco {
2342     mediaobjectco.attlist,
2343     objectinfo?,
2344     imageobjectco,
2345     (imageobjectco | textobject)*
2346   }
2347 # end of mediaobjectco.element
2348 mediaobjectco.attlist &=
2349   common.attrib, mediaobjectco.role.attrib, local.mediaobjectco.attrib
2350 # end of mediaobjectco.attlist
2352 # end of mediaobjectco.module
2353 local.imageobjectco.attrib = empty
2354 imageobjectco.role.attrib = role.attrib
2355 imageobjectco =
2356   element imageobjectco {
2357     imageobjectco.attlist, areaspec, imageobject, calloutlist*
2358   }
2359 # end of imageobjectco.element
2360 imageobjectco.attlist &=
2361   common.attrib, imageobjectco.role.attrib, local.imageobjectco.attrib
2362 # end of imageobjectco.attlist
2364 # end of imageobjectco.module
2366 # end of mediaobject.content.module
2368 # Equations ........................
2370 # This PE provides a mechanism for replacing equation content,
2372 # perhaps adding a new or different model (e.g., MathML)
2373 equation.content = alt?, (graphic+ | mediaobject+)
2374 inlineequation.content = alt?, (graphic+ | inlinemediaobject+)
2375 local.equation.attrib = empty
2376 equation.role.attrib = role.attrib
2377 equation =
2378   element equation {
2379     equation.attlist,
2380     blockinfo?,
2381     formalobject.title.content?,
2382     (informalequation | equation.content)
2383   }
2384 # end of equation.element
2385 equation.attlist &=
2386   label.attrib,
2387   common.attrib,
2388   equation.role.attrib,
2389   local.equation.attrib
2390 # end of equation.attlist
2392 # end of equation.module
2393 local.informalequation.attrib = empty
2394 informalequation.role.attrib = role.attrib
2395 informalequation =
2396   element informalequation {
2397     informalequation.attlist, blockinfo?, equation.content
2398   }
2399 # end of informalequation.element
2400 informalequation.attlist &=
2401   common.attrib,
2402   informalequation.role.attrib,
2403   local.informalequation.attrib
2404 # end of informalequation.attlist
2406 # end of informalequation.module
2407 local.inlineequation.attrib = empty
2408 inlineequation.role.attrib = role.attrib
2409 inlineequation =
2410   element inlineequation {
2411     inlineequation.attlist, inlineequation.content
2412   }
2413 # end of inlineequation.element
2414 inlineequation.attlist &=
2415   common.attrib, inlineequation.role.attrib, local.inlineequation.attrib
2416 # end of inlineequation.attlist
2418 # end of inlineequation.module
2419 local.alt.attrib = empty
2420 alt.role.attrib = role.attrib
2421 alt = element alt { alt.attlist, text }
2422 # end of alt.element
2423 alt.attlist &= common.attrib, alt.role.attrib, local.alt.attrib
2424 # end of alt.attlist
2426 # end of alt.module
2428 # Tables ...........................
2430 tables.role.attrib = role.attrib
2432 # Note that InformalTable is dependent on some of the entity
2433 # declarations that customize Table.
2434 local.informaltable.attrib = empty
2435 informaltable =
2436   element informaltable {
2437     informaltable.attlist,
2438     blockinfo?,
2439     textobject*,
2440     (graphic+ | mediaobject+ | tgroup+)
2441   }
2442 # end of informaltable.element
2444 # Frame, Colsep, and Rowsep must be repeated because
2445 # they are not in entities in the table module.
2447 # includes TabStyle, ToCentry, ShortEntry,
2448 # Orient, PgWide
2450 # includes Label
2452 # includes common attributes
2453 informaltable.attlist &=
2454   attribute frame {
2455     "top" | "bottom" | "topbot" | "all" | "sides" | "none"
2456   }?,
2457   attribute colsep { yesorno.attvals }?,
2458   attribute rowsep { yesorno.attvals }?,
2459   common.table.attribs,
2460   tbl.table.att,
2461   local.informaltable.attrib
2462 # end of informaltable.attlist
2464 # end of informaltable.module
2466 # ......................................................................
2468 # Synopses .............................................................
2470 # Synopsis .........................
2471 local.synopsis.attrib = empty
2472 synopsis.role.attrib = role.attrib
2473 synopsis =
2474   element synopsis {
2475     synopsis.attlist,
2476     (para.char.mix
2477      | graphic
2478      | mediaobject
2479      | co
2480      | coref
2481      | textobject
2482      | lineannotation)*
2483   }
2484 # end of synopsis.element
2485 synopsis.attlist &=
2486   label.attrib,
2487   linespecific.attrib,
2488   common.attrib,
2489   synopsis.role.attrib,
2490   local.synopsis.attrib
2491 # end of synopsis.attlist
2493 #  LineAnnotation (defined in the Inlines section, below)
2495 # end of synopsis.module
2497 # CmdSynopsis ......................
2498 local.cmdsynopsis.attrib = empty
2499 cmdsynopsis.role.attrib = role.attrib
2500 cmdsynopsis =
2501   element cmdsynopsis {
2502     cmdsynopsis.attlist, (command | arg | group | sbr)+, synopfragment*
2503   }
2504 # end of cmdsynopsis.element
2506 # Sepchar: Character that should separate command and all
2507 # top-level arguments; alternate value might be e.g., &Delta;
2508 cmdsynopsis.attlist &=
2509   label.attrib,
2510   [ a:defaultValue = " " ] attribute sepchar { text }?,
2511   attribute cmdlength { text }?,
2512   common.attrib,
2513   cmdsynopsis.role.attrib,
2514   local.cmdsynopsis.attrib
2515 # end of cmdsynopsis.attlist
2517 # end of cmdsynopsis.module
2518 local.arg.attrib = empty
2519 arg.role.attrib = role.attrib
2520 arg =
2521   element arg {
2522     arg.attlist,
2523     (text
2524      | arg
2525      | group
2526      | option
2527      | synopfragmentref
2528      | replaceable
2529      | sbr)*
2530   }
2531 # end of arg.element
2533 # Choice: Whether Arg must be supplied: Opt (optional to
2534 # supply, e.g. [arg]; the default), Req (required to supply,
2535 # e.g. {arg}), or Plain (required to supply, e.g. arg)
2537 # Rep: whether Arg is repeatable: Norepeat (e.g. arg without
2538 # ellipsis; the default), or Repeat (e.g. arg...)
2539 arg.attlist &=
2540   [ a:defaultValue = "opt" ]
2541   attribute choice { "opt" | "req" | "plain" }?,
2542   [ a:defaultValue = "norepeat" ]
2543   attribute rep { "norepeat" | "repeat" }?,
2544   common.attrib,
2545   arg.role.attrib,
2546   local.arg.attrib
2547 # end of arg.attlist
2549 # end of arg.module
2550 local.group.attrib = empty
2551 group.role.attrib = role.attrib
2552 group =
2553   element group {
2554     group.attlist,
2555     (arg | group | option | synopfragmentref | replaceable | sbr)+
2556   }
2557 # end of group.element
2559 # Choice: Whether Group must be supplied: Opt (optional to
2560 # supply, e.g.  [g1|g2|g3]; the default), Req (required to
2561 # supply, e.g.  {g1|g2|g3}), Plain (required to supply,
2562 # e.g.  g1|g2|g3), OptMult (can supply zero or more, e.g.
2563 # [[g1|g2|g3]]), or ReqMult (must supply one or more, e.g.
2564 # {{g1|g2|g3}})
2566 # Rep: whether Group is repeatable: Norepeat (e.g. group
2567 # without ellipsis; the default), or Repeat (e.g. group...)
2568 group.attlist &=
2569   [ a:defaultValue = "opt" ]
2570   attribute choice { "opt" | "req" | "plain" }?,
2571   [ a:defaultValue = "norepeat" ]
2572   attribute rep { "norepeat" | "repeat" }?,
2573   common.attrib,
2574   group.role.attrib,
2575   local.group.attrib
2576 # end of group.attlist
2578 # end of group.module
2579 local.sbr.attrib = empty
2580 # Synopsis break
2581 sbr.role.attrib = role.attrib
2582 sbr = element sbr { sbr.attlist, empty }
2583 # end of sbr.element
2584 sbr.attlist &= common.attrib, sbr.role.attrib, local.sbr.attrib
2585 # end of sbr.attlist
2587 # end of sbr.module
2588 local.synopfragmentref.attrib = empty
2589 synopfragmentref.role.attrib = role.attrib
2590 synopfragmentref =
2591   element synopfragmentref { synopfragmentref.attlist, text }
2592 # end of synopfragmentref.element
2594 # to SynopFragment of complex synopsis
2595 # material for separate referencing
2596 synopfragmentref.attlist &=
2597   linkendreq.attrib,
2598   common.attrib,
2599   synopfragmentref.role.attrib,
2600   local.synopfragmentref.attrib
2601 # end of synopfragmentref.attlist
2603 # end of synopfragmentref.module
2604 local.synopfragment.attrib = empty
2605 synopfragment.role.attrib = role.attrib
2606 synopfragment =
2607   element synopfragment { synopfragment.attlist, (arg | group)+ }
2608 # end of synopfragment.element
2609 synopfragment.attlist &=
2610   idreq.common.attrib,
2611   synopfragment.role.attrib,
2612   local.synopfragment.attrib
2613 # end of synopfragment.attlist
2615 # end of synopfragment.module
2617 #  Command (defined in the Inlines section, below)
2619 #  Option (defined in the Inlines section, below)
2621 #  Replaceable (defined in the Inlines section, below)
2623 # end of cmdsynopsis.content.module
2625 # FuncSynopsis .....................
2626 local.funcsynopsis.attrib = empty
2627 funcsynopsis.role.attrib = role.attrib
2628 funcsynopsis =
2629   element funcsynopsis {
2630     funcsynopsis.attlist, (funcsynopsisinfo | funcprototype)+
2631   }
2632 # end of funcsynopsis.element
2633 funcsynopsis.attlist &=
2634   label.attrib,
2635   common.attrib,
2636   funcsynopsis.role.attrib,
2637   local.funcsynopsis.attrib
2638 # end of funcsynopsis.attlist
2640 # end of funcsynopsis.module
2641 local.funcsynopsisinfo.attrib = empty
2642 funcsynopsisinfo.role.attrib = role.attrib
2643 funcsynopsisinfo =
2644   element funcsynopsisinfo {
2645     funcsynopsisinfo.attlist,
2646     (cptr.char.mix | textobject | lineannotation)*
2647   }
2648 # end of funcsynopsisinfo.element
2649 funcsynopsisinfo.attlist &=
2650   linespecific.attrib,
2651   common.attrib,
2652   funcsynopsisinfo.role.attrib,
2653   local.funcsynopsisinfo.attrib
2654 # end of funcsynopsisinfo.attlist
2656 # end of funcsynopsisinfo.module
2657 local.funcprototype.attrib = empty
2658 funcprototype.role.attrib = role.attrib
2659 funcprototype =
2660   element funcprototype {
2661     funcprototype.attlist, funcdef, (void | varargs | paramdef+)
2662   }
2663 # end of funcprototype.element
2664 funcprototype.attlist &=
2665   common.attrib, funcprototype.role.attrib, local.funcprototype.attrib
2666 # end of funcprototype.attlist
2668 # end of funcprototype.module
2669 local.funcdef.attrib = empty
2670 funcdef.role.attrib = role.attrib
2671 funcdef =
2672   element funcdef {
2673     funcdef.attlist, (text | type | replaceable | function)*
2674   }
2675 # end of funcdef.element
2676 funcdef.attlist &=
2677   common.attrib, funcdef.role.attrib, local.funcdef.attrib
2678 # end of funcdef.attlist
2680 # end of funcdef.module
2681 local.void.attrib = empty
2682 void.role.attrib = role.attrib
2683 void = element void { void.attlist, empty }
2684 # end of void.element
2685 void.attlist &= common.attrib, void.role.attrib, local.void.attrib
2686 # end of void.attlist
2688 # end of void.module
2689 local.varargs.attrib = empty
2690 varargs.role.attrib = role.attrib
2691 varargs = element varargs { varargs.attlist, empty }
2692 # end of varargs.element
2693 varargs.attlist &=
2694   common.attrib, varargs.role.attrib, local.varargs.attrib
2695 # end of varargs.attlist
2697 # end of varargs.module
2699 # Processing assumes that only one Parameter will appear in a
2700 # ParamDef, and that FuncParams will be used at most once, for
2701 # providing information on the "inner parameters" for parameters that
2702 # are pointers to functions.
2703 local.paramdef.attrib = empty
2704 paramdef.role.attrib = role.attrib
2705 paramdef =
2706   element paramdef {
2707     paramdef.attlist,
2708     (text | type | replaceable | parameter | funcparams)*
2709   }
2710 # end of paramdef.element
2711 paramdef.attlist &=
2712   common.attrib, paramdef.role.attrib, local.paramdef.attrib
2713 # end of paramdef.attlist
2715 # end of paramdef.module
2716 local.funcparams.attrib = empty
2717 funcparams.role.attrib = role.attrib
2718 funcparams = element funcparams { funcparams.attlist, cptr.char.mix* }
2719 # end of funcparams.element
2720 funcparams.attlist &=
2721   common.attrib, funcparams.role.attrib, local.funcparams.attrib
2722 # end of funcparams.attlist
2724 # end of funcparams.module
2726 #  LineAnnotation (defined in the Inlines section, below)
2728 #  Replaceable (defined in the Inlines section, below)
2730 #  Function (defined in the Inlines section, below)
2732 #  Parameter (defined in the Inlines section, below)
2734 # end of funcsynopsis.content.module
2736 # ClassSynopsis .....................
2737 local.classsynopsis.attrib = empty
2738 classsynopsis.role.attrib = role.attrib
2739 classsynopsis =
2740   element classsynopsis {
2741     classsynopsis.attlist,
2742     (ooclass | oointerface | ooexception)+,
2743     (classsynopsisinfo | fieldsynopsis | method.synop.class)*
2744   }
2745 # end of classsynopsis.element
2746 classsynopsis.attlist &=
2747   attribute language { text }?,
2748   [ a:defaultValue = "class" ]
2749   attribute class { "class" | "interface" }?,
2750   common.attrib,
2751   classsynopsis.role.attrib,
2752   local.classsynopsis.attrib
2753 # end of classsynopsis.attlist
2755 # end of classsynopsis.module
2756 local.classsynopsisinfo.attrib = empty
2757 classsynopsisinfo.role.attrib = role.attrib
2758 classsynopsisinfo =
2759   element classsynopsisinfo {
2760     classsynopsisinfo.attlist,
2761     (cptr.char.mix | textobject | lineannotation)*
2762   }
2763 # end of classsynopsisinfo.element
2764 classsynopsisinfo.attlist &=
2765   linespecific.attrib,
2766   common.attrib,
2767   classsynopsisinfo.role.attrib,
2768   local.classsynopsisinfo.attrib
2769 # end of classsynopsisinfo.attlist
2771 # end of classsynopsisinfo.module
2772 local.ooclass.attrib = empty
2773 ooclass.role.attrib = role.attrib
2774 ooclass = element ooclass { ooclass.attlist, modifier*, classname }
2775 # end of ooclass.element
2776 ooclass.attlist &=
2777   common.attrib, ooclass.role.attrib, local.ooclass.attrib
2778 # end of ooclass.attlist
2780 # end of ooclass.module
2781 local.oointerface.attrib = empty
2782 oointerface.role.attrib = role.attrib
2783 oointerface =
2784   element oointerface { oointerface.attlist, modifier*, interfacename }
2785 # end of oointerface.element
2786 oointerface.attlist &=
2787   common.attrib, oointerface.role.attrib, local.oointerface.attrib
2788 # end of oointerface.attlist
2790 # end of oointerface.module
2791 local.ooexception.attrib = empty
2792 ooexception.role.attrib = role.attrib
2793 ooexception =
2794   element ooexception { ooexception.attlist, modifier*, exceptionname }
2795 # end of ooexception.element
2796 ooexception.attlist &=
2797   common.attrib, ooexception.role.attrib, local.ooexception.attrib
2798 # end of ooexception.attlist
2800 # end of ooexception.module
2801 local.modifier.attrib = empty
2802 modifier.role.attrib = role.attrib
2803 modifier = element modifier { modifier.attlist, smallcptr.char.mix* }
2804 # end of modifier.element
2805 modifier.attlist &=
2806   common.attrib, modifier.role.attrib, local.modifier.attrib
2807 # end of modifier.attlist
2809 # end of modifier.module
2810 local.interfacename.attrib = empty
2811 interfacename.role.attrib = role.attrib
2812 interfacename =
2813   element interfacename { interfacename.attlist, cptr.char.mix* }
2814 # end of interfacename.element
2815 interfacename.attlist &=
2816   common.attrib, interfacename.role.attrib, local.interfacename.attrib
2817 # end of interfacename.attlist
2819 # end of interfacename.module
2820 local.exceptionname.attrib = empty
2821 exceptionname.role.attrib = role.attrib
2822 exceptionname =
2823   element exceptionname { exceptionname.attlist, smallcptr.char.mix* }
2824 # end of exceptionname.element
2825 exceptionname.attlist &=
2826   common.attrib, exceptionname.role.attrib, local.exceptionname.attrib
2827 # end of exceptionname.attlist
2829 # end of exceptionname.module
2830 local.fieldsynopsis.attrib = empty
2831 fieldsynopsis.role.attrib = role.attrib
2832 fieldsynopsis =
2833   element fieldsynopsis {
2834     fieldsynopsis.attlist, modifier*, type?, varname, initializer?
2835   }
2836 # end of fieldsynopsis.element
2837 fieldsynopsis.attlist &=
2838   attribute language { text }?,
2839   common.attrib,
2840   fieldsynopsis.role.attrib,
2841   local.fieldsynopsis.attrib
2842 # end of fieldsynopsis.attlist
2844 # end of fieldsynopsis.module
2845 local.initializer.attrib = empty
2846 initializer.role.attrib = role.attrib
2847 initializer =
2848   element initializer { initializer.attlist, smallcptr.char.mix* }
2849 # end of initializer.element
2850 initializer.attlist &=
2851   common.attrib, initializer.role.attrib, local.initializer.attrib
2852 # end of initializer.attlist
2854 # end of initializer.module
2855 local.constructorsynopsis.attrib = empty
2856 constructorsynopsis.role.attrib = role.attrib
2857 constructorsynopsis =
2858   element constructorsynopsis {
2859     constructorsynopsis.attlist,
2860     modifier*,
2861     methodname?,
2862     (methodparam+ | void),
2863     exceptionname*
2864   }
2865 # end of constructorsynopsis.element
2866 constructorsynopsis.attlist &=
2867   attribute language { text }?,
2868   common.attrib,
2869   constructorsynopsis.role.attrib,
2870   local.constructorsynopsis.attrib
2871 # end of constructorsynopsis.attlist
2873 # end of constructorsynopsis.module
2874 local.destructorsynopsis.attrib = empty
2875 destructorsynopsis.role.attrib = role.attrib
2876 destructorsynopsis =
2877   element destructorsynopsis {
2878     destructorsynopsis.attlist,
2879     modifier*,
2880     methodname?,
2881     (methodparam+ | void),
2882     exceptionname*
2883   }
2884 # end of destructorsynopsis.element
2885 destructorsynopsis.attlist &=
2886   attribute language { text }?,
2887   common.attrib,
2888   destructorsynopsis.role.attrib,
2889   local.destructorsynopsis.attrib
2890 # end of destructorsynopsis.attlist
2892 # end of destructorsynopsis.module
2893 local.methodsynopsis.attrib = empty
2894 methodsynopsis.role.attrib = role.attrib
2895 methodsynopsis =
2896   element methodsynopsis {
2897     methodsynopsis.attlist,
2898     modifier*,
2899     (type | void)?,
2900     methodname,
2901     (methodparam+ | void),
2902     exceptionname*,
2903     modifier*
2904   }
2905 # end of methodsynopsis.element
2906 methodsynopsis.attlist &=
2907   attribute language { text }?,
2908   common.attrib,
2909   methodsynopsis.role.attrib,
2910   local.methodsynopsis.attrib
2911 # end of methodsynopsis.attlist
2913 # end of methodsynopsis.module
2914 local.methodname.attrib = empty
2915 methodname.role.attrib = role.attrib
2916 methodname =
2917   element methodname { methodname.attlist, smallcptr.char.mix* }
2918 # end of methodname.element
2919 methodname.attlist &=
2920   common.attrib, methodname.role.attrib, local.methodname.attrib
2921 # end of methodname.attlist
2923 # end of methodname.module
2924 local.methodparam.attrib = empty
2925 methodparam.role.attrib = role.attrib
2926 methodparam =
2927   element methodparam {
2928     methodparam.attlist,
2929     modifier*,
2930     type?,
2931     ((parameter, initializer?) | funcparams),
2932     modifier*
2933   }
2934 # end of methodparam.element
2935 methodparam.attlist &=
2936   [ a:defaultValue = "req" ]
2937   attribute choice { "opt" | "req" | "plain" }?,
2938   [ a:defaultValue = "norepeat" ]
2939   attribute rep { "norepeat" | "repeat" }?,
2940   common.attrib,
2941   methodparam.role.attrib,
2942   local.methodparam.attrib
2943 # end of methodparam.attlist
2945 # end of methodparam.module
2947 # end of classsynopsis.content.module
2949 # ......................................................................
2951 # Document information entities and elements ...........................
2953 # The document information elements include some elements that are
2954 # currently used only in the document hierarchy module. They are
2955 # defined here so that they will be available for use in customized
2956 # document hierarchies.
2958 # ..................................
2960 # Ackno ............................
2961 local.ackno.attrib = empty
2962 ackno.role.attrib = role.attrib
2963 ackno = element ackno { ackno.attlist, docinfo.char.mix* }
2964 # end of ackno.element
2965 ackno.attlist &= common.attrib, ackno.role.attrib, local.ackno.attrib
2966 # end of ackno.attlist
2968 # end of ackno.module
2970 # Address ..........................
2971 local.address.attrib = empty
2972 address.role.attrib = role.attrib
2973 address =
2974   element address {
2975     address.attlist,
2976     (text
2977      | personname
2978      | person.ident.mix
2979      | street
2980      | pob
2981      | postcode
2982      | city
2983      | state
2984      | country
2985      | phone
2986      | fax
2987      | email
2988      | otheraddr)*
2989   }
2990 # end of address.element
2991 address.attlist &=
2992   linespecific.attrib,
2993   common.attrib,
2994   address.role.attrib,
2995   local.address.attrib
2996 # end of address.attlist
2998 # end of address.module
2999 local.street.attrib = empty
3000 street.role.attrib = role.attrib
3001 street = element street { street.attlist, docinfo.char.mix* }
3002 # end of street.element
3003 street.attlist &= common.attrib, street.role.attrib, local.street.attrib
3004 # end of street.attlist
3006 # end of street.module
3007 local.pob.attrib = empty
3008 pob.role.attrib = role.attrib
3009 pob = element pob { pob.attlist, docinfo.char.mix* }
3010 # end of pob.element
3011 pob.attlist &= common.attrib, pob.role.attrib, local.pob.attrib
3012 # end of pob.attlist
3014 # end of pob.module
3015 local.postcode.attrib = empty
3016 postcode.role.attrib = role.attrib
3017 postcode = element postcode { postcode.attlist, docinfo.char.mix* }
3018 # end of postcode.element
3019 postcode.attlist &=
3020   common.attrib, postcode.role.attrib, local.postcode.attrib
3021 # end of postcode.attlist
3023 # end of postcode.module
3024 local.city.attrib = empty
3025 city.role.attrib = role.attrib
3026 city = element city { city.attlist, docinfo.char.mix* }
3027 # end of city.element
3028 city.attlist &= common.attrib, city.role.attrib, local.city.attrib
3029 # end of city.attlist
3031 # end of city.module
3032 local.state.attrib = empty
3033 state.role.attrib = role.attrib
3034 state = element state { state.attlist, docinfo.char.mix* }
3035 # end of state.element
3036 state.attlist &= common.attrib, state.role.attrib, local.state.attrib
3037 # end of state.attlist
3039 # end of state.module
3040 local.country.attrib = empty
3041 country.role.attrib = role.attrib
3042 country = element country { country.attlist, docinfo.char.mix* }
3043 # end of country.element
3044 country.attlist &=
3045   common.attrib, country.role.attrib, local.country.attrib
3046 # end of country.attlist
3048 # end of country.module
3049 local.phone.attrib = empty
3050 phone.role.attrib = role.attrib
3051 phone = element phone { phone.attlist, docinfo.char.mix* }
3052 # end of phone.element
3053 phone.attlist &= common.attrib, phone.role.attrib, local.phone.attrib
3054 # end of phone.attlist
3056 # end of phone.module
3057 local.fax.attrib = empty
3058 fax.role.attrib = role.attrib
3059 fax = element fax { fax.attlist, docinfo.char.mix* }
3060 # end of fax.element
3061 fax.attlist &= common.attrib, fax.role.attrib, local.fax.attrib
3062 # end of fax.attlist
3064 # end of fax.module
3066 #  Email (defined in the Inlines section, below)
3067 local.otheraddr.attrib = empty
3068 otheraddr.role.attrib = role.attrib
3069 otheraddr = element otheraddr { otheraddr.attlist, docinfo.char.mix* }
3070 # end of otheraddr.element
3071 otheraddr.attlist &=
3072   common.attrib, otheraddr.role.attrib, local.otheraddr.attrib
3073 # end of otheraddr.attlist
3075 # end of otheraddr.module
3077 # end of address.content.module
3079 # Affiliation ......................
3080 local.affiliation.attrib = empty
3081 affiliation.role.attrib = role.attrib
3082 affiliation =
3083   element affiliation {
3084     affiliation.attlist,
3085     shortaffil?,
3086     jobtitle*,
3087     orgname?,
3088     orgdiv*,
3089     address*
3090   }
3091 # end of affiliation.element
3092 affiliation.attlist &=
3093   common.attrib, affiliation.role.attrib, local.affiliation.attrib
3094 # end of affiliation.attlist
3096 # end of affiliation.module
3097 local.shortaffil.attrib = empty
3098 shortaffil.role.attrib = role.attrib
3099 shortaffil =
3100   element shortaffil { shortaffil.attlist, docinfo.char.mix* }
3101 # end of shortaffil.element
3102 shortaffil.attlist &=
3103   common.attrib, shortaffil.role.attrib, local.shortaffil.attrib
3104 # end of shortaffil.attlist
3106 # end of shortaffil.module
3107 local.jobtitle.attrib = empty
3108 jobtitle.role.attrib = role.attrib
3109 jobtitle = element jobtitle { jobtitle.attlist, docinfo.char.mix* }
3110 # end of jobtitle.element
3111 jobtitle.attlist &=
3112   common.attrib, jobtitle.role.attrib, local.jobtitle.attrib
3113 # end of jobtitle.attlist
3115 # end of jobtitle.module
3117 #  OrgName (defined elsewhere in this section)
3118 local.orgdiv.attrib = empty
3119 orgdiv.role.attrib = role.attrib
3120 orgdiv = element orgdiv { orgdiv.attlist, docinfo.char.mix* }
3121 # end of orgdiv.element
3122 orgdiv.attlist &= common.attrib, orgdiv.role.attrib, local.orgdiv.attrib
3123 # end of orgdiv.attlist
3125 # end of orgdiv.module
3127 #  Address (defined elsewhere in this section)
3129 # end of affiliation.content.module
3131 # ArtPageNums ......................
3132 local.artpagenums.attrib = empty
3133 artpagenums.role.attrib = role.attrib
3134 artpagenums =
3135   element artpagenums { artpagenums.attlist, docinfo.char.mix* }
3136 # end of artpagenums.element
3137 artpagenums.attlist &=
3138   common.attrib, artpagenums.role.attrib, local.artpagenums.attrib
3139 # end of artpagenums.attlist
3141 # end of artpagenums.module
3143 # PersonName
3144 local.personname.attrib = empty
3145 personname.role.attrib = role.attrib
3146 personname =
3147   element personname {
3148     personname.attlist,
3149     (honorific | firstname | surname | lineage | othername)+
3150   }
3151 # end of personname.element
3152 personname.attlist &=
3153   common.attrib, personname.role.attrib, local.personname.attrib
3154 # end of personname.attlist
3156 # end of personname.module
3158 # Author ...........................
3159 local.author.attrib = empty
3160 author.role.attrib = role.attrib
3161 author =
3162   element author {
3163     author.attlist,
3164     (personname | person.ident.mix+),
3165     (personblurb | email | address)*
3166   }
3167 # end of author.element
3168 author.attlist &= common.attrib, author.role.attrib, local.author.attrib
3169 # end of author.attlist
3171 # (see "Personal identity elements" for %person.ident.mix;)
3173 # end of author.module
3175 # AuthorGroup ......................
3176 local.authorgroup.attrib = empty
3177 authorgroup.role.attrib = role.attrib
3178 authorgroup =
3179   element authorgroup {
3180     authorgroup.attlist,
3181     (author | editor | collab | corpauthor | othercredit)+
3182   }
3183 # end of authorgroup.element
3184 authorgroup.attlist &=
3185   common.attrib, authorgroup.role.attrib, local.authorgroup.attrib
3186 # end of authorgroup.attlist
3188 # end of authorgroup.module
3190 #  Author (defined elsewhere in this section)
3192 #  Editor (defined elsewhere in this section)
3193 local.collab.attrib = empty
3194 collab.role.attrib = role.attrib
3195 collab = element collab { collab.attlist, collabname, affiliation* }
3196 # end of collab.element
3197 collab.attlist &= common.attrib, collab.role.attrib, local.collab.attrib
3198 # end of collab.attlist
3200 # end of collab.module
3201 local.collabname.attrib = empty
3202 collabname.role.attrib = role.attrib
3203 collabname =
3204   element collabname { collabname.attlist, docinfo.char.mix* }
3205 # end of collabname.element
3206 collabname.attlist &=
3207   common.attrib, collabname.role.attrib, local.collabname.attrib
3208 # end of collabname.attlist
3210 # end of collabname.module
3212 #  Affiliation (defined elsewhere in this section)
3214 # end of collab.content.module
3216 #  CorpAuthor (defined elsewhere in this section)
3218 #  OtherCredit (defined elsewhere in this section)
3220 # end of authorgroup.content.module
3222 # AuthorInitials ...................
3223 local.authorinitials.attrib = empty
3224 authorinitials.role.attrib = role.attrib
3225 authorinitials =
3226   element authorinitials { authorinitials.attlist, docinfo.char.mix* }
3227 # end of authorinitials.element
3228 authorinitials.attlist &=
3229   common.attrib, authorinitials.role.attrib, local.authorinitials.attrib
3230 # end of authorinitials.attlist
3232 # end of authorinitials.module
3234 # ConfGroup ........................
3235 local.confgroup.attrib = empty
3236 confgroup.role.attrib = role.attrib
3237 confgroup =
3238   element confgroup {
3239     confgroup.attlist,
3240     (confdates | conftitle | confnum | address | confsponsor)*
3241   }
3242 # end of confgroup.element
3243 confgroup.attlist &=
3244   common.attrib, confgroup.role.attrib, local.confgroup.attrib
3245 # end of confgroup.attlist
3247 # end of confgroup.module
3248 local.confdates.attrib = empty
3249 confdates.role.attrib = role.attrib
3250 confdates = element confdates { confdates.attlist, docinfo.char.mix* }
3251 # end of confdates.element
3252 confdates.attlist &=
3253   common.attrib, confdates.role.attrib, local.confdates.attrib
3254 # end of confdates.attlist
3256 # end of confdates.module
3257 local.conftitle.attrib = empty
3258 conftitle.role.attrib = role.attrib
3259 conftitle = element conftitle { conftitle.attlist, docinfo.char.mix* }
3260 # end of conftitle.element
3261 conftitle.attlist &=
3262   common.attrib, conftitle.role.attrib, local.conftitle.attrib
3263 # end of conftitle.attlist
3265 # end of conftitle.module
3266 local.confnum.attrib = empty
3267 confnum.role.attrib = role.attrib
3268 confnum = element confnum { confnum.attlist, docinfo.char.mix* }
3269 # end of confnum.element
3270 confnum.attlist &=
3271   common.attrib, confnum.role.attrib, local.confnum.attrib
3272 # end of confnum.attlist
3274 # end of confnum.module
3276 #  Address (defined elsewhere in this section)
3277 local.confsponsor.attrib = empty
3278 confsponsor.role.attrib = role.attrib
3279 confsponsor =
3280   element confsponsor { confsponsor.attlist, docinfo.char.mix* }
3281 # end of confsponsor.element
3282 confsponsor.attlist &=
3283   common.attrib, confsponsor.role.attrib, local.confsponsor.attrib
3284 # end of confsponsor.attlist
3286 # end of confsponsor.module
3288 # end of confgroup.content.module
3290 # ContractNum ......................
3291 local.contractnum.attrib = empty
3292 contractnum.role.attrib = role.attrib
3293 contractnum =
3294   element contractnum { contractnum.attlist, docinfo.char.mix* }
3295 # end of contractnum.element
3296 contractnum.attlist &=
3297   common.attrib, contractnum.role.attrib, local.contractnum.attrib
3298 # end of contractnum.attlist
3300 # end of contractnum.module
3302 # ContractSponsor ..................
3303 local.contractsponsor.attrib = empty
3304 contractsponsor.role.attrib = role.attrib
3305 contractsponsor =
3306   element contractsponsor { contractsponsor.attlist, docinfo.char.mix* }
3307 # end of contractsponsor.element
3308 contractsponsor.attlist &=
3309   common.attrib,
3310   contractsponsor.role.attrib,
3311   local.contractsponsor.attrib
3312 # end of contractsponsor.attlist
3314 # end of contractsponsor.module
3316 # Copyright ........................
3317 local.copyright.attrib = empty
3318 copyright.role.attrib = role.attrib
3319 copyright = element copyright { copyright.attlist, year+, holder* }
3320 # end of copyright.element
3321 copyright.attlist &=
3322   common.attrib, copyright.role.attrib, local.copyright.attrib
3323 # end of copyright.attlist
3325 # end of copyright.module
3326 local.year.attrib = empty
3327 year.role.attrib = role.attrib
3328 year = element year { year.attlist, docinfo.char.mix* }
3329 # end of year.element
3330 year.attlist &= common.attrib, year.role.attrib, local.year.attrib
3331 # end of year.attlist
3333 # end of year.module
3334 local.holder.attrib = empty
3335 holder.role.attrib = role.attrib
3336 holder = element holder { holder.attlist, docinfo.char.mix* }
3337 # end of holder.element
3338 holder.attlist &= common.attrib, holder.role.attrib, local.holder.attrib
3339 # end of holder.attlist
3341 # end of holder.module
3343 # end of copyright.content.module
3345 # CorpAuthor .......................
3346 local.corpauthor.attrib = empty
3347 corpauthor.role.attrib = role.attrib
3348 corpauthor =
3349   element corpauthor { corpauthor.attlist, docinfo.char.mix* }
3350 # end of corpauthor.element
3351 corpauthor.attlist &=
3352   common.attrib, corpauthor.role.attrib, local.corpauthor.attrib
3353 # end of corpauthor.attlist
3355 # end of corpauthor.module
3357 # CorpName .........................
3358 local.corpname.attrib = empty
3359 corpname = element corpname { corpname.attlist, docinfo.char.mix* }
3360 # end of corpname.element
3361 corpname.role.attrib = role.attrib
3362 corpname.attlist &=
3363   common.attrib, corpname.role.attrib, local.corpname.attrib
3364 # end of corpname.attlist
3366 # end of corpname.module
3368 # Date .............................
3369 local.date.attrib = empty
3370 date.role.attrib = role.attrib
3371 date = element date { date.attlist, docinfo.char.mix* }
3372 # end of date.element
3373 date.attlist &= common.attrib, date.role.attrib, local.date.attrib
3374 # end of date.attlist
3376 # end of date.module
3378 # Edition ..........................
3379 local.edition.attrib = empty
3380 edition.role.attrib = role.attrib
3381 edition = element edition { edition.attlist, docinfo.char.mix* }
3382 # end of edition.element
3383 edition.attlist &=
3384   common.attrib, edition.role.attrib, local.edition.attrib
3385 # end of edition.attlist
3387 # end of edition.module
3389 # Editor ...........................
3390 local.editor.attrib = empty
3391 editor.role.attrib = role.attrib
3392 editor =
3393   element editor {
3394     editor.attlist,
3395     (personname | person.ident.mix+),
3396     (personblurb | email | address)*
3397   }
3398 # end of editor.element
3399 editor.attlist &= common.attrib, editor.role.attrib, local.editor.attrib
3400 # end of editor.attlist
3402 # (see "Personal identity elements" for %person.ident.mix;)
3404 # end of editor.module
3406 # ISBN .............................
3407 local.isbn.attrib = empty
3408 isbn.role.attrib = role.attrib
3409 isbn = element isbn { isbn.attlist, docinfo.char.mix* }
3410 # end of isbn.element
3411 isbn.attlist &= common.attrib, isbn.role.attrib, local.isbn.attrib
3412 # end of isbn.attlist
3414 # end of isbn.module
3416 # ISSN .............................
3417 local.issn.attrib = empty
3418 issn.role.attrib = role.attrib
3419 issn = element issn { issn.attlist, docinfo.char.mix* }
3420 # end of issn.element
3421 issn.attlist &= common.attrib, issn.role.attrib, local.issn.attrib
3422 # end of issn.attlist
3424 # end of issn.module
3426 # BiblioId .................
3427 biblio.class.attrib =
3428   attribute class {
3429     "uri"
3430     | "doi"
3431     | "isbn"
3432     | "issn"
3433     | "libraryofcongress"
3434     | "pubnumber"
3435     | "other"
3436   }?,
3437   attribute otherclass { text }?
3438 local.biblioid.attrib = empty
3439 biblioid.role.attrib = role.attrib
3440 biblioid = element biblioid { biblioid.attlist, docinfo.char.mix* }
3441 # end of biblioid.element
3442 biblioid.attlist &=
3443   biblio.class.attrib,
3444   common.attrib,
3445   biblioid.role.attrib,
3446   local.biblioid.attrib
3447 # end of biblioid.attlist
3449 # end of biblioid.module
3451 # CiteBiblioId .................
3452 local.citebiblioid.attrib = empty
3453 citebiblioid.role.attrib = role.attrib
3454 citebiblioid =
3455   element citebiblioid { citebiblioid.attlist, docinfo.char.mix* }
3456 # end of citebiblioid.element
3457 citebiblioid.attlist &=
3458   biblio.class.attrib,
3459   common.attrib,
3460   citebiblioid.role.attrib,
3461   local.citebiblioid.attrib
3462 # end of citebiblioid.attlist
3464 # end of citebiblioid.module
3466 # BiblioSource .................
3467 local.bibliosource.attrib = empty
3468 bibliosource.role.attrib = role.attrib
3469 bibliosource =
3470   element bibliosource { bibliosource.attlist, docinfo.char.mix* }
3471 # end of bibliosource.element
3472 bibliosource.attlist &=
3473   biblio.class.attrib,
3474   common.attrib,
3475   bibliosource.role.attrib,
3476   local.bibliosource.attrib
3477 # end of bibliosource.attlist
3479 # end of bibliosource.module
3481 # BiblioRelation .................
3482 local.bibliorelation.attrib = empty
3483 local.bibliorelation.types = notAllowed
3484 bibliorelation.type.attrib =
3485   attribute type {
3486     "isversionof"
3487     | "hasversion"
3488     | "isreplacedby"
3489     | "replaces"
3490     | "isrequiredby"
3491     | "requires"
3492     | "ispartof"
3493     | "haspart"
3494     | "isreferencedby"
3495     | "references"
3496     | "isformatof"
3497     | "hasformat"
3498     | "othertype"
3499     | local.bibliorelation.types
3500   }?,
3501   attribute othertype { text }?
3502 bibliorelation.role.attrib = role.attrib
3503 bibliorelation =
3504   element bibliorelation { bibliorelation.attlist, docinfo.char.mix* }
3505 # end of bibliorelation.element
3506 bibliorelation.attlist &=
3507   biblio.class.attrib,
3508   bibliorelation.type.attrib,
3509   common.attrib,
3510   bibliorelation.role.attrib,
3511   local.bibliorelation.attrib
3512 # end of bibliorelation.attlist
3514 # end of bibliorelation.module
3516 # BiblioCoverage .................
3517 local.bibliocoverage.attrib = empty
3518 bibliocoverage.role.attrib = role.attrib
3519 bibliocoverage =
3520   element bibliocoverage { bibliocoverage.attlist, docinfo.char.mix* }
3521 # end of bibliocoverage.element
3522 bibliocoverage.attlist &=
3523   attribute spatial {
3524     "dcmipoint" | "iso3166" | "dcmibox" | "tgn" | "otherspatial"
3525   }?,
3526   attribute otherspatial { text }?,
3527   attribute temporal { "dcmiperiod" | "w3c-dtf" | "othertemporal" }?,
3528   attribute othertemporal { text }?,
3529   common.attrib,
3530   bibliocoverage.role.attrib,
3531   local.bibliocoverage.attrib
3532 # end of bibliocoverage.attlist
3534 # end of bibliocoverage.module
3536 # InvPartNumber ....................
3537 local.invpartnumber.attrib = empty
3538 invpartnumber.role.attrib = role.attrib
3539 invpartnumber =
3540   element invpartnumber { invpartnumber.attlist, docinfo.char.mix* }
3541 # end of invpartnumber.element
3542 invpartnumber.attlist &=
3543   common.attrib, invpartnumber.role.attrib, local.invpartnumber.attrib
3544 # end of invpartnumber.attlist
3546 # end of invpartnumber.module
3548 # IssueNum .........................
3549 local.issuenum.attrib = empty
3550 issuenum.role.attrib = role.attrib
3551 issuenum = element issuenum { issuenum.attlist, docinfo.char.mix* }
3552 # end of issuenum.element
3553 issuenum.attlist &=
3554   common.attrib, issuenum.role.attrib, local.issuenum.attrib
3555 # end of issuenum.attlist
3557 # end of issuenum.module
3559 # LegalNotice ......................
3560 local.legalnotice.attrib = empty
3561 legalnotice.role.attrib = role.attrib
3562 legalnotice =
3563   element legalnotice {
3564     legalnotice.attlist, blockinfo?, title?, legalnotice.mix+
3565   }
3566 # end of legalnotice.element
3567 legalnotice.attlist &=
3568   common.attrib, legalnotice.role.attrib, local.legalnotice.attrib
3569 # end of legalnotice.attlist
3571 # end of legalnotice.module
3573 # ModeSpec .........................
3574 local.modespec.attrib = empty
3575 modespec.role.attrib = role.attrib
3576 modespec = element modespec { modespec.attlist, docinfo.char.mix* }
3577 # end of modespec.element
3579 # Application: Type of action required for completion
3580 # of the links to which the ModeSpec is relevant (e.g.,
3581 # retrieval query)
3582 modespec.attlist &=
3583   attribute application { notation.class }?,
3584   common.attrib,
3585   modespec.role.attrib,
3586   local.modespec.attrib
3587 # end of modespec.attlist
3589 # end of modespec.module
3591 # OrgName ..........................
3592 local.orgname.attrib = empty
3593 orgname.role.attrib = role.attrib
3594 orgname = element orgname { orgname.attlist, docinfo.char.mix* }
3595 # end of orgname.element
3596 orgname.attlist &=
3597   common.attrib,
3598   attribute class {
3599     "corporation" | "nonprofit" | "consortium" | "informal" | "other"
3600   }?,
3601   attribute otherclass { text }?,
3602   orgname.role.attrib,
3603   local.orgname.attrib
3604 # end of orgname.attlist
3606 # end of orgname.module
3608 # OtherCredit ......................
3609 local.othercredit.attrib = empty
3610 othercredit.role.attrib = role.attrib
3611 othercredit =
3612   element othercredit {
3613     othercredit.attlist,
3614     (personname | person.ident.mix+),
3615     (personblurb | email | address)*
3616   }
3617 # end of othercredit.element
3618 othercredit.attlist &=
3619   common.attrib, othercredit.role.attrib, local.othercredit.attrib
3620 # end of othercredit.attlist
3622 # (see "Personal identity elements" for %person.ident.mix;)
3624 # end of othercredit.module
3626 # PageNums .........................
3627 local.pagenums.attrib = empty
3628 pagenums.role.attrib = role.attrib
3629 pagenums = element pagenums { pagenums.attlist, docinfo.char.mix* }
3630 # end of pagenums.element
3631 pagenums.attlist &=
3632   common.attrib, pagenums.role.attrib, local.pagenums.attrib
3633 # end of pagenums.attlist
3635 # end of pagenums.module
3637 # Personal identity elements .......
3639 # These elements are used only within Author, Editor, and
3640 # OtherCredit.
3641 local.contrib.attrib = empty
3642 contrib.role.attrib = role.attrib
3643 contrib = element contrib { contrib.attlist, docinfo.char.mix* }
3644 # end of contrib.element
3645 contrib.attlist &=
3646   common.attrib, contrib.role.attrib, local.contrib.attrib
3647 # end of contrib.attlist
3649 # end of contrib.module
3650 local.firstname.attrib = empty
3651 firstname.role.attrib = role.attrib
3652 firstname = element firstname { firstname.attlist, docinfo.char.mix* }
3653 # end of firstname.element
3654 firstname.attlist &=
3655   common.attrib, firstname.role.attrib, local.firstname.attrib
3656 # end of firstname.attlist
3658 # end of firstname.module
3659 local.honorific.attrib = empty
3660 honorific.role.attrib = role.attrib
3661 honorific = element honorific { honorific.attlist, docinfo.char.mix* }
3662 # end of honorific.element
3663 honorific.attlist &=
3664   common.attrib, honorific.role.attrib, local.honorific.attrib
3665 # end of honorific.attlist
3667 # end of honorific.module
3668 local.lineage.attrib = empty
3669 lineage.role.attrib = role.attrib
3670 lineage = element lineage { lineage.attlist, docinfo.char.mix* }
3671 # end of lineage.element
3672 lineage.attlist &=
3673   common.attrib, lineage.role.attrib, local.lineage.attrib
3674 # end of lineage.attlist
3676 # end of lineage.module
3677 local.othername.attrib = empty
3678 othername.role.attrib = role.attrib
3679 othername = element othername { othername.attlist, docinfo.char.mix* }
3680 # end of othername.element
3681 othername.attlist &=
3682   common.attrib, othername.role.attrib, local.othername.attrib
3683 # end of othername.attlist
3685 # end of othername.module
3686 local.surname.attrib = empty
3687 surname.role.attrib = role.attrib
3688 surname = element surname { surname.attlist, docinfo.char.mix* }
3689 # end of surname.element
3690 surname.attlist &=
3691   common.attrib, surname.role.attrib, local.surname.attrib
3692 # end of surname.attlist
3694 # end of surname.module
3696 # end of person.ident.module
3698 # PrintHistory .....................
3699 local.printhistory.attrib = empty
3700 printhistory.role.attrib = role.attrib
3701 printhistory =
3702   element printhistory { printhistory.attlist, para.class+ }
3703 # end of printhistory.element
3704 printhistory.attlist &=
3705   common.attrib, printhistory.role.attrib, local.printhistory.attrib
3706 # end of printhistory.attlist
3708 # end of printhistory.module
3710 # ProductName ......................
3711 local.productname.attrib = empty
3712 productname.role.attrib = role.attrib
3713 productname =
3714   element productname { productname.attlist, para.char.mix* }
3715 # end of productname.element
3717 # Class: More precisely identifies the item the element names
3718 productname.attlist &=
3719   [ a:defaultValue = "trade" ]
3720   attribute class { "service" | "trade" | "registered" | "copyright" }?,
3721   common.attrib,
3722   productname.role.attrib,
3723   local.productname.attrib
3724 # end of productname.attlist
3726 # end of productname.module
3728 # ProductNumber ....................
3729 local.productnumber.attrib = empty
3730 productnumber.role.attrib = role.attrib
3731 productnumber =
3732   element productnumber { productnumber.attlist, docinfo.char.mix* }
3733 # end of productnumber.element
3734 productnumber.attlist &=
3735   common.attrib, productnumber.role.attrib, local.productnumber.attrib
3736 # end of productnumber.attlist
3738 # end of productnumber.module
3740 # PubDate ..........................
3741 local.pubdate.attrib = empty
3742 pubdate.role.attrib = role.attrib
3743 pubdate = element pubdate { pubdate.attlist, docinfo.char.mix* }
3744 # end of pubdate.element
3745 pubdate.attlist &=
3746   common.attrib, pubdate.role.attrib, local.pubdate.attrib
3747 # end of pubdate.attlist
3749 # end of pubdate.module
3751 # Publisher ........................
3752 local.publisher.attrib = empty
3753 publisher.role.attrib = role.attrib
3754 publisher =
3755   element publisher { publisher.attlist, publishername, address* }
3756 # end of publisher.element
3757 publisher.attlist &=
3758   common.attrib, publisher.role.attrib, local.publisher.attrib
3759 # end of publisher.attlist
3761 # end of publisher.module
3762 local.publishername.attrib = empty
3763 publishername.role.attrib = role.attrib
3764 publishername =
3765   element publishername { publishername.attlist, docinfo.char.mix* }
3766 # end of publishername.element
3767 publishername.attlist &=
3768   common.attrib, publishername.role.attrib, local.publishername.attrib
3769 # end of publishername.attlist
3771 # end of publishername.module
3773 #  Address (defined elsewhere in this section)
3775 # end of publisher.content.module
3777 # PubsNumber .......................
3778 local.pubsnumber.attrib = empty
3779 pubsnumber.role.attrib = role.attrib
3780 pubsnumber =
3781   element pubsnumber { pubsnumber.attlist, docinfo.char.mix* }
3782 # end of pubsnumber.element
3783 pubsnumber.attlist &=
3784   common.attrib, pubsnumber.role.attrib, local.pubsnumber.attrib
3785 # end of pubsnumber.attlist
3787 # end of pubsnumber.module
3789 # ReleaseInfo ......................
3790 local.releaseinfo.attrib = empty
3791 releaseinfo.role.attrib = role.attrib
3792 releaseinfo =
3793   element releaseinfo { releaseinfo.attlist, docinfo.char.mix* }
3794 # end of releaseinfo.element
3795 releaseinfo.attlist &=
3796   common.attrib, releaseinfo.role.attrib, local.releaseinfo.attrib
3797 # end of releaseinfo.attlist
3799 # end of releaseinfo.module
3801 # RevHistory .......................
3802 local.revhistory.attrib = empty
3803 revhistory.role.attrib = role.attrib
3804 revhistory = element revhistory { revhistory.attlist, revision+ }
3805 # end of revhistory.element
3806 revhistory.attlist &=
3807   common.attrib, revhistory.role.attrib, local.revhistory.attrib
3808 # end of revhistory.attlist
3810 # end of revhistory.module
3811 local.revision.attrib = empty
3812 revision.role.attrib = role.attrib
3813 revision =
3814   element revision {
3815     revision.attlist,
3816     revnumber,
3817     date,
3818     authorinitials*,
3819     (revremark | revdescription)?
3820   }
3821 # end of revision.element
3822 revision.attlist &=
3823   common.attrib, revision.role.attrib, local.revision.attrib
3824 # end of revision.attlist
3826 # end of revision.module
3827 local.revnumber.attrib = empty
3828 revnumber.role.attrib = role.attrib
3829 revnumber = element revnumber { revnumber.attlist, docinfo.char.mix* }
3830 # end of revnumber.element
3831 revnumber.attlist &=
3832   common.attrib, revnumber.role.attrib, local.revnumber.attrib
3833 # end of revnumber.attlist
3835 # end of revnumber.module
3837 #  Date (defined elsewhere in this section)
3839 #  AuthorInitials (defined elsewhere in this section)
3840 local.revremark.attrib = empty
3841 revremark.role.attrib = role.attrib
3842 revremark = element revremark { revremark.attlist, docinfo.char.mix* }
3843 # end of revremark.element
3844 revremark.attlist &=
3845   common.attrib, revremark.role.attrib, local.revremark.attrib
3846 # end of revremark.attlist
3848 # end of revremark.module
3849 local.revdescription.attrib = empty
3850 revdescription.role.attrib = role.attrib
3851 revdescription =
3852   element revdescription { revdescription.attlist, revdescription.mix+ }
3853 # end of revdescription.element
3854 revdescription.attlist &=
3855   common.attrib, revdescription.role.attrib, local.revdescription.attrib
3856 # end of revdescription.attlist
3858 # end of revdescription.module
3860 # end of revhistory.content.module
3862 # SeriesVolNums ....................
3863 local.seriesvolnums.attrib = empty
3864 seriesvolnums.role.attrib = role.attrib
3865 seriesvolnums =
3866   element seriesvolnums { seriesvolnums.attlist, docinfo.char.mix* }
3867 # end of seriesvolnums.element
3868 seriesvolnums.attlist &=
3869   common.attrib, seriesvolnums.role.attrib, local.seriesvolnums.attrib
3870 # end of seriesvolnums.attlist
3872 # end of seriesvolnums.module
3874 # VolumeNum ........................
3875 local.volumenum.attrib = empty
3876 volumenum.role.attrib = role.attrib
3877 volumenum = element volumenum { volumenum.attlist, docinfo.char.mix* }
3878 # end of volumenum.element
3879 volumenum.attlist &=
3880   common.attrib, volumenum.role.attrib, local.volumenum.attrib
3881 # end of volumenum.attlist
3883 # end of volumenum.module
3885 # ..................................
3887 # end of docinfo.content.module
3889 # ......................................................................
3891 # Inline, link, and ubiquitous elements ................................
3893 # Technical and computer terms .........................................
3894 local.accel.attrib = empty
3895 accel.role.attrib = role.attrib
3896 accel = element accel { accel.attlist, smallcptr.char.mix* }
3897 # end of accel.element
3898 accel.attlist &= common.attrib, accel.role.attrib, local.accel.attrib
3899 # end of accel.attlist
3901 # end of accel.module
3902 local.action.attrib = empty
3903 action.role.attrib = role.attrib
3904 action = element action { action.attlist, cptr.char.mix* }
3905 # end of action.element
3906 action.attlist &=
3907   moreinfo.attrib,
3908   common.attrib,
3909   action.role.attrib,
3910   local.action.attrib
3911 # end of action.attlist
3913 # end of action.module
3914 local.application.attrib = empty
3915 application.role.attrib = role.attrib
3916 application =
3917   element application { application.attlist, para.char.mix* }
3918 # end of application.element
3919 application.attlist &=
3920   attribute class { "hardware" | "software" }?,
3921   moreinfo.attrib,
3922   common.attrib,
3923   application.role.attrib,
3924   local.application.attrib
3925 # end of application.attlist
3927 # end of application.module
3928 local.classname.attrib = empty
3929 classname.role.attrib = role.attrib
3930 classname = element classname { classname.attlist, smallcptr.char.mix* }
3931 # end of classname.element
3932 classname.attlist &=
3933   common.attrib, classname.role.attrib, local.classname.attrib
3934 # end of classname.attlist
3936 # end of classname.module
3937 local.co.attrib = empty
3938 # CO is a callout area of the LineColumn unit type (a single character
3939 # position); the position is directly indicated by the location of CO.
3940 co.role.attrib = role.attrib
3941 co = element co { co.attlist, empty }
3942 # end of co.element
3944 # bug number/symbol override or initialization
3946 # to any related information
3947 co.attlist &=
3948   label.attrib,
3949   linkends.attrib,
3950   idreq.common.attrib,
3951   co.role.attrib,
3952   local.co.attrib
3953 # end of co.attlist
3955 # end of co.module
3956 local.coref.attrib = empty
3957 # COREF is a reference to a CO
3958 coref.role.attrib = role.attrib
3959 coref = element coref { coref.attlist, empty }
3960 # end of coref.element
3962 # bug number/symbol override or initialization
3964 # to any related information
3965 coref.attlist &=
3966   label.attrib,
3967   linkendreq.attrib,
3968   common.attrib,
3969   coref.role.attrib,
3970   local.coref.attrib
3971 # end of coref.attlist
3973 # end of coref.module
3974 local.command.attrib = empty
3975 command.role.attrib = role.attrib
3976 command = element command { command.attlist, cptr.char.mix* }
3977 # end of command.element
3978 command.attlist &=
3979   moreinfo.attrib,
3980   common.attrib,
3981   command.role.attrib,
3982   local.command.attrib
3983 # end of command.attlist
3985 # end of command.module
3986 local.computeroutput.attrib = empty
3987 computeroutput.role.attrib = role.attrib
3988 computeroutput =
3989   element computeroutput {
3990     computeroutput.attlist, (cptr.char.mix | co)*
3991   }
3992 # end of computeroutput.element
3993 computeroutput.attlist &=
3994   moreinfo.attrib,
3995   common.attrib,
3996   computeroutput.role.attrib,
3997   local.computeroutput.attrib
3998 # end of computeroutput.attlist
4000 # end of computeroutput.module
4001 local.database.attrib = empty
4002 database.role.attrib = role.attrib
4003 database = element database { database.attlist, cptr.char.mix* }
4004 # end of database.element
4006 # Class: Type of database the element names; no default
4007 database.attlist &=
4008   attribute class {
4009     "name" | "table" | "field" | "key1" | "key2" | "record"
4010   }?,
4011   moreinfo.attrib,
4012   common.attrib,
4013   database.role.attrib,
4014   local.database.attrib
4015 # end of database.attlist
4017 # end of database.module
4018 local.email.attrib = empty
4019 email.role.attrib = role.attrib
4020 email = element email { email.attlist, docinfo.char.mix* }
4021 # end of email.element
4022 email.attlist &= common.attrib, email.role.attrib, local.email.attrib
4023 # end of email.attlist
4025 # end of email.module
4026 local.envar.attrib = empty
4027 envar.role.attrib = role.attrib
4028 envar = element envar { envar.attlist, smallcptr.char.mix* }
4029 # end of envar.element
4030 envar.attlist &= common.attrib, envar.role.attrib, local.envar.attrib
4031 # end of envar.attlist
4033 # end of envar.module
4034 local.errorcode.attrib = empty
4035 errorcode.role.attrib = role.attrib
4036 errorcode = element errorcode { errorcode.attlist, smallcptr.char.mix* }
4037 # end of errorcode.element
4038 errorcode.attlist &=
4039   moreinfo.attrib,
4040   common.attrib,
4041   errorcode.role.attrib,
4042   local.errorcode.attrib
4043 # end of errorcode.attlist
4045 # end of errorcode.module
4046 local.errorname.attrib = empty
4047 errorname.role.attrib = role.attrib
4048 errorname = element errorname { errorname.attlist, smallcptr.char.mix* }
4049 # end of errorname.element
4050 errorname.attlist &=
4051   common.attrib, errorname.role.attrib, local.errorname.attrib
4052 # end of errorname.attlist
4054 # end of errorname.module
4055 local.errortext.attrib = empty
4056 errortext.role.attrib = role.attrib
4057 errortext = element errortext { errortext.attlist, smallcptr.char.mix* }
4058 # end of errortext.element
4059 errortext.attlist &=
4060   common.attrib, errortext.role.attrib, local.errortext.attrib
4061 # end of errortext.attlist
4063 # end of errortext.module
4064 local.errortype.attrib = empty
4065 errortype.role.attrib = role.attrib
4066 errortype = element errortype { errortype.attlist, smallcptr.char.mix* }
4067 # end of errortype.element
4068 errortype.attlist &=
4069   common.attrib, errortype.role.attrib, local.errortype.attrib
4070 # end of errortype.attlist
4072 # end of errortype.module
4073 local.filename.attrib = empty
4074 filename.role.attrib = role.attrib
4075 filename = element filename { filename.attlist, cptr.char.mix* }
4076 # end of filename.element
4078 # Class: Type of filename the element names; no default
4080 # Path: Search path (possibly system-specific) in which
4081 # file can be found
4082 filename.attlist &=
4083   attribute class {
4084     "headerfile"
4085     | "partition"
4086     | "devicefile"
4087     | "libraryfile"
4088     | "directory"
4089     | "extension"
4090     | "symlink"
4091   }?,
4092   attribute path { text }?,
4093   moreinfo.attrib,
4094   common.attrib,
4095   filename.role.attrib,
4096   local.filename.attrib
4097 # end of filename.attlist
4099 # end of filename.module
4100 local.function.attrib = empty
4101 function.role.attrib = role.attrib
4102 function = element function { function.attlist, cptr.char.mix* }
4103 # end of function.element
4104 function.attlist &=
4105   moreinfo.attrib,
4106   common.attrib,
4107   function.role.attrib,
4108   local.function.attrib
4109 # end of function.attlist
4111 # end of function.module
4112 local.guibutton.attrib = empty
4113 guibutton.role.attrib = role.attrib
4114 guibutton =
4115   element guibutton { guibutton.attlist, (smallcptr.char.mix | accel)* }
4116 # end of guibutton.element
4117 guibutton.attlist &=
4118   moreinfo.attrib,
4119   common.attrib,
4120   guibutton.role.attrib,
4121   local.guibutton.attrib
4122 # end of guibutton.attlist
4124 # end of guibutton.module
4125 local.guiicon.attrib = empty
4126 guiicon.role.attrib = role.attrib
4127 guiicon =
4128   element guiicon { guiicon.attlist, (smallcptr.char.mix | accel)* }
4129 # end of guiicon.element
4130 guiicon.attlist &=
4131   moreinfo.attrib,
4132   common.attrib,
4133   guiicon.role.attrib,
4134   local.guiicon.attrib
4135 # end of guiicon.attlist
4137 # end of guiicon.module
4138 local.guilabel.attrib = empty
4139 guilabel.role.attrib = role.attrib
4140 guilabel =
4141   element guilabel { guilabel.attlist, (smallcptr.char.mix | accel)* }
4142 # end of guilabel.element
4143 guilabel.attlist &=
4144   moreinfo.attrib,
4145   common.attrib,
4146   guilabel.role.attrib,
4147   local.guilabel.attrib
4148 # end of guilabel.attlist
4150 # end of guilabel.module
4151 local.guimenu.attrib = empty
4152 guimenu.role.attrib = role.attrib
4153 guimenu =
4154   element guimenu { guimenu.attlist, (smallcptr.char.mix | accel)* }
4155 # end of guimenu.element
4156 guimenu.attlist &=
4157   moreinfo.attrib,
4158   common.attrib,
4159   guimenu.role.attrib,
4160   local.guimenu.attrib
4161 # end of guimenu.attlist
4163 # end of guimenu.module
4164 local.guimenuitem.attrib = empty
4165 guimenuitem.role.attrib = role.attrib
4166 guimenuitem =
4167   element guimenuitem {
4168     guimenuitem.attlist, (smallcptr.char.mix | accel)*
4169   }
4170 # end of guimenuitem.element
4171 guimenuitem.attlist &=
4172   moreinfo.attrib,
4173   common.attrib,
4174   guimenuitem.role.attrib,
4175   local.guimenuitem.attrib
4176 # end of guimenuitem.attlist
4178 # end of guimenuitem.module
4179 local.guisubmenu.attrib = empty
4180 guisubmenu.role.attrib = role.attrib
4181 guisubmenu =
4182   element guisubmenu {
4183     guisubmenu.attlist, (smallcptr.char.mix | accel)*
4184   }
4185 # end of guisubmenu.element
4186 guisubmenu.attlist &=
4187   moreinfo.attrib,
4188   common.attrib,
4189   guisubmenu.role.attrib,
4190   local.guisubmenu.attrib
4191 # end of guisubmenu.attlist
4193 # end of guisubmenu.module
4194 local.hardware.attrib = empty
4195 hardware.role.attrib = role.attrib
4196 hardware = element hardware { hardware.attlist, cptr.char.mix* }
4197 # end of hardware.element
4198 hardware.attlist &=
4199   moreinfo.attrib,
4200   common.attrib,
4201   hardware.role.attrib,
4202   local.hardware.attrib
4203 # end of hardware.attlist
4205 # end of hardware.module
4206 local.interface.attrib = empty
4207 interface.role.attrib = role.attrib
4208 interface =
4209   element interface { interface.attlist, (smallcptr.char.mix | accel)* }
4210 # end of interface.element
4212 # Class: Type of the Interface item; no default
4213 interface.attlist &=
4214   moreinfo.attrib,
4215   common.attrib,
4216   interface.role.attrib,
4217   local.interface.attrib
4218 # end of interface.attlist
4220 # end of interface.module
4221 local.keycap.attrib = empty
4222 keycap.role.attrib = role.attrib
4223 keycap = element keycap { keycap.attlist, cptr.char.mix* }
4224 # end of keycap.element
4225 keycap.attlist &=
4226   moreinfo.attrib,
4227   common.attrib,
4228   keycap.role.attrib,
4229   local.keycap.attrib
4230 # end of keycap.attlist
4232 # end of keycap.module
4233 local.keycode.attrib = empty
4234 keycode.role.attrib = role.attrib
4235 keycode = element keycode { keycode.attlist, smallcptr.char.mix* }
4236 # end of keycode.element
4237 keycode.attlist &=
4238   common.attrib, keycode.role.attrib, local.keycode.attrib
4239 # end of keycode.attlist
4241 # end of keycode.module
4242 local.keycombo.attrib = empty
4243 keycombo.role.attrib = role.attrib
4244 keycombo =
4245   element keycombo {
4246     keycombo.attlist, (keycap | keycombo | keysym | mousebutton)+
4247   }
4248 # end of keycombo.element
4249 keycombo.attlist &=
4250   keyaction.attrib,
4251   moreinfo.attrib,
4252   common.attrib,
4253   keycombo.role.attrib,
4254   local.keycombo.attrib
4255 # end of keycombo.attlist
4257 # end of keycombo.module
4258 local.keysym.attrib = empty
4259 keysysm.role.attrib = role.attrib
4260 keysym = element keysym { keysym.attlist, smallcptr.char.mix* }
4261 # end of keysym.element
4262 keysym.attlist &=
4263   common.attrib, keysysm.role.attrib, local.keysym.attrib
4264 # end of keysym.attlist
4266 # end of keysym.module
4267 local.lineannotation.attrib = empty
4268 lineannotation.role.attrib = role.attrib
4269 lineannotation =
4270   element lineannotation { lineannotation.attlist, para.char.mix* }
4271 # end of lineannotation.element
4272 lineannotation.attlist &=
4273   common.attrib, lineannotation.role.attrib, local.lineannotation.attrib
4274 # end of lineannotation.attlist
4276 # end of lineannotation.module
4277 local.literal.attrib = empty
4278 literal.role.attrib = role.attrib
4279 literal = element literal { literal.attlist, cptr.char.mix* }
4280 # end of literal.element
4281 literal.attlist &=
4282   moreinfo.attrib,
4283   common.attrib,
4284   literal.role.attrib,
4285   local.literal.attrib
4286 # end of literal.attlist
4288 # end of literal.module
4289 local.constant.attrib = empty
4290 constant.role.attrib = role.attrib
4291 constant = element constant { constant.attlist, smallcptr.char.mix* }
4292 # end of constant.element
4293 constant.attlist &=
4294   attribute class { "limit" }?,
4295   common.attrib,
4296   constant.role.attrib,
4297   local.constant.attrib
4298 # end of constant.attlist
4300 # end of constant.module
4301 local.varname.attrib = empty
4302 varname.role.attrib = role.attrib
4303 varname = element varname { varname.attlist, smallcptr.char.mix* }
4304 # end of varname.element
4305 varname.attlist &=
4306   common.attrib, varname.role.attrib, local.varname.attrib
4307 # end of varname.attlist
4309 # end of varname.module
4310 local.markup.attrib = empty
4311 markup.role.attrib = role.attrib
4312 markup = element markup { markup.attlist, smallcptr.char.mix* }
4313 # end of markup.element
4314 markup.attlist &= common.attrib, markup.role.attrib, local.markup.attrib
4315 # end of markup.attlist
4317 # end of markup.module
4318 local.medialabel.attrib = empty
4319 medialabel.role.attrib = role.attrib
4320 medialabel =
4321   element medialabel { medialabel.attlist, smallcptr.char.mix* }
4322 # end of medialabel.element
4324 # Class: Type of medium named by the element; no default
4325 medialabel.attlist &=
4326   attribute class { "cartridge" | "cdrom" | "disk" | "tape" }?,
4327   common.attrib,
4328   medialabel.role.attrib,
4329   local.medialabel.attrib
4330 # end of medialabel.attlist
4332 # end of medialabel.module
4333 local.menuchoice.attrib = empty
4334 menuchoice.role.attrib = role.attrib
4335 menuchoice =
4336   element menuchoice {
4337     menuchoice.attlist,
4338     shortcut?,
4339     (guibutton
4340      | guiicon
4341      | guilabel
4342      | guimenu
4343      | guimenuitem
4344      | guisubmenu
4345      | interface)+
4346   }
4347 # end of menuchoice.element
4348 menuchoice.attlist &=
4349   moreinfo.attrib,
4350   common.attrib,
4351   menuchoice.role.attrib,
4352   local.menuchoice.attrib
4353 # end of menuchoice.attlist
4355 # end of menuchoice.module
4357 # See also KeyCombo
4358 local.shortcut.attrib = empty
4359 shortcut.role.attrib = role.attrib
4360 shortcut =
4361   element shortcut {
4362     shortcut.attlist, (keycap | keycombo | keysym | mousebutton)+
4363   }
4364 # end of shortcut.element
4365 shortcut.attlist &=
4366   keyaction.attrib,
4367   moreinfo.attrib,
4368   common.attrib,
4369   shortcut.role.attrib,
4370   local.shortcut.attrib
4371 # end of shortcut.attlist
4373 # end of shortcut.module
4375 # end of menuchoice.content.module
4376 local.mousebutton.attrib = empty
4377 mousebutton.role.attrib = role.attrib
4378 mousebutton =
4379   element mousebutton { mousebutton.attlist, smallcptr.char.mix* }
4380 # end of mousebutton.element
4381 mousebutton.attlist &=
4382   moreinfo.attrib,
4383   common.attrib,
4384   mousebutton.role.attrib,
4385   local.mousebutton.attrib
4386 # end of mousebutton.attlist
4388 # end of mousebutton.module
4389 local.msgtext.attrib = empty
4390 msgtext.role.attrib = role.attrib
4391 msgtext = element msgtext { msgtext.attlist, component.mix+ }
4392 # end of msgtext.element
4393 msgtext.attlist &=
4394   common.attrib, msgtext.role.attrib, local.msgtext.attrib
4395 # end of msgtext.attlist
4397 # end of msgtext.module
4398 local.option.attrib = empty
4399 option.role.attrib = role.attrib
4400 option = element option { option.attlist, cptr.char.mix* }
4401 # end of option.element
4402 option.attlist &= common.attrib, option.role.attrib, local.option.attrib
4403 # end of option.attlist
4405 # end of option.module
4406 local.optional.attrib = empty
4407 optional.role.attrib = role.attrib
4408 optional = element optional { optional.attlist, cptr.char.mix* }
4409 # end of optional.element
4410 optional.attlist &=
4411   common.attrib, optional.role.attrib, local.optional.attrib
4412 # end of optional.attlist
4414 # end of optional.module
4415 local.parameter.attrib = empty
4416 parameter.role.attrib = role.attrib
4417 parameter = element parameter { parameter.attlist, cptr.char.mix* }
4418 # end of parameter.element
4420 # Class: Type of the Parameter; no default
4421 parameter.attlist &=
4422   attribute class { "command" | "function" | "option" }?,
4423   moreinfo.attrib,
4424   common.attrib,
4425   parameter.role.attrib,
4426   local.parameter.attrib
4427 # end of parameter.attlist
4429 # end of parameter.module
4430 local.prompt.attrib = empty
4431 prompt.role.attrib = role.attrib
4432 prompt = element prompt { prompt.attlist, (smallcptr.char.mix | co)* }
4433 # end of prompt.element
4434 prompt.attlist &=
4435   moreinfo.attrib,
4436   common.attrib,
4437   prompt.role.attrib,
4438   local.prompt.attrib
4439 # end of prompt.attlist
4441 # end of prompt.module
4442 local.property.attrib = empty
4443 property.role.attrib = role.attrib
4444 property = element property { property.attlist, cptr.char.mix* }
4445 # end of property.element
4446 property.attlist &=
4447   moreinfo.attrib,
4448   common.attrib,
4449   property.role.attrib,
4450   local.property.attrib
4451 # end of property.attlist
4453 # end of property.module
4454 local.replaceable.attrib = empty
4455 replaceable.role.attrib = role.attrib
4456 replaceable =
4457   element replaceable {
4458     replaceable.attlist,
4459     (text
4460      | link.char.class
4461      | optional
4462      | base.char.class
4463      | other.char.class
4464      | inlinegraphic
4465      | inlinemediaobject
4466      | co)*
4467   }
4468 # end of replaceable.element
4470 # Class: Type of information the element represents; no
4471 # default
4472 replaceable.attlist &=
4473   attribute class { "command" | "function" | "option" | "parameter" }?,
4474   common.attrib,
4475   replaceable.role.attrib,
4476   local.replaceable.attrib
4477 # end of replaceable.attlist
4479 # end of replaceable.module
4480 local.returnvalue.attrib = empty
4481 returnvalue.role.attrib = role.attrib
4482 returnvalue =
4483   element returnvalue { returnvalue.attlist, smallcptr.char.mix* }
4484 # end of returnvalue.element
4485 returnvalue.attlist &=
4486   common.attrib, returnvalue.role.attrib, local.returnvalue.attrib
4487 # end of returnvalue.attlist
4489 # end of returnvalue.module
4490 local.sgmltag.attrib = empty
4491 sgmltag.role.attrib = role.attrib
4492 sgmltag = element sgmltag { sgmltag.attlist, smallcptr.char.mix* }
4493 # end of sgmltag.element
4495 # Class: Type of SGML construct the element names; no default
4496 sgmltag.attlist &=
4497   attribute class {
4498     "attribute"
4499     | "attvalue"
4500     | "element"
4501     | "endtag"
4502     | "emptytag"
4503     | "genentity"
4504     | "numcharref"
4505     | "paramentity"
4506     | "pi"
4507     | "xmlpi"
4508     | "starttag"
4509     | "sgmlcomment"
4510   }?,
4511   common.attrib,
4512   sgmltag.role.attrib,
4513   local.sgmltag.attrib
4514 # end of sgmltag.attlist
4516 # end of sgmltag.module
4517 local.structfield.attrib = empty
4518 structfield.role.attrib = role.attrib
4519 structfield =
4520   element structfield { structfield.attlist, smallcptr.char.mix* }
4521 # end of structfield.element
4522 structfield.attlist &=
4523   common.attrib, structfield.role.attrib, local.structfield.attrib
4524 # end of structfield.attlist
4526 # end of structfield.module
4527 local.structname.attrib = empty
4528 structname.role.attrib = role.attrib
4529 structname =
4530   element structname { structname.attlist, smallcptr.char.mix* }
4531 # end of structname.element
4532 structname.attlist &=
4533   common.attrib, structname.role.attrib, local.structname.attrib
4534 # end of structname.attlist
4536 # end of structname.module
4537 local.symbol.attrib = empty
4538 symbol.role.attrib = role.attrib
4539 symbol = element symbol { symbol.attlist, smallcptr.char.mix* }
4540 # end of symbol.element
4542 # Class: Type of symbol; no default
4543 symbol.attlist &=
4544   attribute class { "limit" }?,
4545   common.attrib,
4546   symbol.role.attrib,
4547   local.symbol.attrib
4548 # end of symbol.attlist
4550 # end of symbol.module
4551 local.systemitem.attrib = empty
4552 systemitem.role.attrib = role.attrib
4553 systemitem =
4554   element systemitem {
4555     systemitem.attlist, (cptr.char.mix | acronym | co)*
4556   }
4557 # end of systemitem.element
4559 # Class: Type of system item the element names; no default
4560 systemitem.attlist &=
4561   attribute class {
4562     "constant"
4563     | "event"
4564     | "eventhandler"
4565     | "domainname"
4566     | "fqdomainname"
4567     | "ipaddress"
4568     | "netmask"
4569     | "etheraddress"
4570     | "groupname"
4571     | "library"
4572     | "macro"
4573     | "osname"
4574     | "filesystem"
4575     | "resource"
4576     | "systemname"
4577     | "username"
4578     | "newsgroup"
4579   }?,
4580   moreinfo.attrib,
4581   common.attrib,
4582   systemitem.role.attrib,
4583   local.systemitem.attrib
4584 # end of systemitem.attlist
4586 # end of systemitem.module
4587 local.token.attrib = empty
4588 token.role.attrib = role.attrib
4589 \token = element token { token.attlist, smallcptr.char.mix* }
4590 # end of token.element
4591 token.attlist &= common.attrib, token.role.attrib, local.token.attrib
4592 # end of token.attlist
4594 # end of token.module
4595 local.type.attrib = empty
4596 type.role.attrib = role.attrib
4597 type = element type { type.attlist, smallcptr.char.mix* }
4598 # end of type.element
4599 type.attlist &= common.attrib, type.role.attrib, local.type.attrib
4600 # end of type.attlist
4602 # end of type.module
4603 local.userinput.attrib = empty
4604 userinput.role.attrib = role.attrib
4605 userinput =
4606   element userinput { userinput.attlist, (cptr.char.mix | co)* }
4607 # end of userinput.element
4608 userinput.attlist &=
4609   moreinfo.attrib,
4610   common.attrib,
4611   userinput.role.attrib,
4612   local.userinput.attrib
4613 # end of userinput.attlist
4615 # end of userinput.module
4617 # General words and phrases ............................................
4618 local.abbrev.attrib = empty
4619 abbrev.role.attrib = role.attrib
4620 abbrev = element abbrev { abbrev.attlist, word.char.mix* }
4621 # end of abbrev.element
4622 abbrev.attlist &= common.attrib, abbrev.role.attrib, local.abbrev.attrib
4623 # end of abbrev.attlist
4625 # end of abbrev.module
4626 local.acronym.attrib = empty
4627 acronym.role.attrib = role.attrib
4628 acronym = element acronym { acronym.attlist, word.char.mix* }
4629 # end of acronym.element
4630 acronym.attlist &=
4631   common.attrib, acronym.role.attrib, local.acronym.attrib
4632 # end of acronym.attlist
4634 # end of acronym.module
4635 local.citation.attrib = empty
4636 citation.role.attrib = role.attrib
4637 citation = element citation { citation.attlist, para.char.mix* }
4638 # end of citation.element
4639 citation.attlist &=
4640   common.attrib, citation.role.attrib, local.citation.attrib
4641 # end of citation.attlist
4643 # end of citation.module
4644 local.citerefentry.attrib = empty
4645 citerefentry.role.attrib = role.attrib
4646 citerefentry =
4647   element citerefentry {
4648     citerefentry.attlist, refentrytitle, manvolnum?
4649   }
4650 # end of citerefentry.element
4651 citerefentry.attlist &=
4652   common.attrib, citerefentry.role.attrib, local.citerefentry.attrib
4653 # end of citerefentry.attlist
4655 # end of citerefentry.module
4656 local.refentrytitle.attrib = empty
4657 refentrytitle.role.attrib = role.attrib
4658 refentrytitle =
4659   element refentrytitle { refentrytitle.attlist, para.char.mix* }
4660 # end of refentrytitle.element
4661 refentrytitle.attlist &=
4662   common.attrib, refentrytitle.role.attrib, local.refentrytitle.attrib
4663 # end of refentrytitle.attlist
4665 # end of refentrytitle.module
4666 local.manvolnum.attrib = empty
4667 namvolnum.role.attrib = role.attrib
4668 manvolnum = element manvolnum { manvolnum.attlist, word.char.mix* }
4669 # end of manvolnum.element
4670 manvolnum.attlist &=
4671   common.attrib, namvolnum.role.attrib, local.manvolnum.attrib
4672 # end of manvolnum.attlist
4674 # end of manvolnum.module
4675 local.citetitle.attrib = empty
4676 citetitle.role.attrib = role.attrib
4677 citetitle = element citetitle { citetitle.attlist, para.char.mix* }
4678 # end of citetitle.element
4680 # Pubwork: Genre of published work cited; no default
4681 citetitle.attlist &=
4682   attribute pubwork {
4683     "article"
4684     | "book"
4685     | "chapter"
4686     | "part"
4687     | "refentry"
4688     | "section"
4689     | "journal"
4690     | "series"
4691     | "set"
4692     | "manuscript"
4693   }?,
4694   common.attrib,
4695   citetitle.role.attrib,
4696   local.citetitle.attrib
4697 # end of citetitle.attlist
4699 # end of citetitle.module
4700 local.emphasis.attrib = empty
4701 emphasis.role.attrib = role.attrib
4702 emphasis = element emphasis { emphasis.attlist, para.char.mix* }
4703 # end of emphasis.element
4704 emphasis.attlist &=
4705   common.attrib, emphasis.role.attrib, local.emphasis.attrib
4706 # end of emphasis.attlist
4708 # end of emphasis.module
4709 local.firstterm.attrib = empty
4710 firstterm.role.attrib = role.attrib
4711 firstterm = element firstterm { firstterm.attlist, word.char.mix* }
4712 # end of firstterm.element
4714 # to GlossEntry or other explanation
4715 firstterm.attlist &=
4716   linkend.attrib,
4717   common.attrib,
4718   firstterm.role.attrib,
4719   local.firstterm.attrib
4720 # end of firstterm.attlist
4722 # end of firstterm.module
4723 local.foreignphrase.attrib = empty
4724 foreignphrase.role.attrib = role.attrib
4725 foreignphrase =
4726   element foreignphrase { foreignphrase.attlist, para.char.mix* }
4727 # end of foreignphrase.element
4728 foreignphrase.attlist &=
4729   common.attrib, foreignphrase.role.attrib, local.foreignphrase.attrib
4730 # end of foreignphrase.attlist
4732 # end of foreignphrase.module
4733 local.glossterm.attrib = empty
4734 glossterm.role.attrib = role.attrib
4735 glossterm = element glossterm { glossterm.attlist, para.char.mix* }
4736 # end of glossterm.element
4738 # to GlossEntry if Glossterm used in text
4740 # BaseForm: Provides the form of GlossTerm to be used
4741 # for indexing
4742 glossterm.attlist &=
4743   linkend.attrib,
4744   attribute baseform { text }?,
4745   common.attrib,
4746   glossterm.role.attrib,
4747   local.glossterm.attrib
4748 # end of glossterm.attlist
4750 # end of glossterm.module
4751 local.phrase.attrib = empty
4752 phrase.role.attrib = role.attrib
4753 phrase = element phrase { phrase.attlist, para.char.mix* }
4754 # end of phrase.element
4755 phrase.attlist &= common.attrib, phrase.role.attrib, local.phrase.attrib
4756 # end of phrase.attlist
4758 # end of phrase.module
4759 local.quote.attrib = empty
4760 quote.role.attrib = role.attrib
4761 quote = element quote { quote.attlist, para.char.mix* }
4762 # end of quote.element
4763 quote.attlist &= common.attrib, quote.role.attrib, local.quote.attrib
4764 # end of quote.attlist
4766 # end of quote.module
4767 local.ssscript.attrib = empty
4768 ssscript.role.attrib = role.attrib
4769 subscript =
4770   element subscript {
4771     subscript.attlist,
4772     (text
4773      | link.char.class
4774      | emphasis
4775      | replaceable
4776      | symbol
4777      | inlinegraphic
4778      | inlinemediaobject
4779      | base.char.class
4780      | other.char.class)*
4781   }
4782 # end of subscript.element
4783 subscript.attlist &=
4784   common.attrib, ssscript.role.attrib, local.ssscript.attrib
4785 # end of subscript.attlist
4786 superscript =
4787   element superscript {
4788     superscript.attlist,
4789     (text
4790      | link.char.class
4791      | emphasis
4792      | replaceable
4793      | symbol
4794      | inlinegraphic
4795      | inlinemediaobject
4796      | base.char.class
4797      | other.char.class)*
4798   }
4799 # end of superscript.element
4800 superscript.attlist &=
4801   common.attrib, ssscript.role.attrib, local.ssscript.attrib
4802 # end of superscript.attlist
4804 # end of ssscript.module
4805 local.trademark.attrib = empty
4806 trademark.role.attrib = role.attrib
4807 trademark =
4808   element trademark {
4809     trademark.attlist,
4810     (text
4811      | link.char.class
4812      | tech.char.class
4813      | base.char.class
4814      | other.char.class
4815      | inlinegraphic
4816      | inlinemediaobject
4817      | emphasis)*
4818   }
4819 # end of trademark.element
4821 # Class: More precisely identifies the item the element names
4822 trademark.attlist &=
4823   [ a:defaultValue = "trade" ]
4824   attribute class { "service" | "trade" | "registered" | "copyright" }?,
4825   common.attrib,
4826   trademark.role.attrib,
4827   local.trademark.attrib
4828 # end of trademark.attlist
4830 # end of trademark.module
4831 local.wordasword.attrib = empty
4832 wordasword.role.attrib = role.attrib
4833 wordasword = element wordasword { wordasword.attlist, word.char.mix* }
4834 # end of wordasword.element
4835 wordasword.attlist &=
4836   common.attrib, wordasword.role.attrib, local.wordasword.attrib
4837 # end of wordasword.attlist
4839 # end of wordasword.module
4841 # Links and cross-references ...........................................
4842 local.link.attrib = empty
4843 link.role.attrib = role.attrib
4844 link = element link { link.attlist, para.char.mix* }
4845 # end of link.element
4847 # Endterm: ID of element containing text that is to be
4848 # fetched from elsewhere in the document to appear as
4849 # the content of this element
4851 # to linked-to object
4853 # Type: Freely assignable parameter
4854 link.attlist &=
4855   attribute endterm { xsd:IDREF }?,
4856   linkendreq.attrib,
4857   attribute type { text }?,
4858   common.attrib,
4859   link.role.attrib,
4860   local.link.attrib
4861 # end of link.attlist
4863 # end of link.module
4864 local.olink.attrib = empty
4865 olink.role.attrib = role.attrib
4866 olink = element olink { olink.attlist, para.char.mix* }
4867 # end of olink.element
4869 # TargetDocEnt: Name of an entity to be the target of the link
4871 # LinkMode: ID of a ModeSpec containing instructions for
4872 # operating on the entity named by TargetDocEnt
4874 # LocalInfo: Information that may be passed to ModeSpec
4876 # Type: Freely assignable parameter
4877 olink.attlist &=
4878   attribute targetdocent { xsd:ENTITY }?,
4879   attribute linkmode { xsd:IDREF }?,
4880   attribute localinfo { text }?,
4881   attribute type { text }?,
4882   attribute targetdoc { text }?,
4883   attribute targetptr { text }?,
4884   common.attrib,
4885   olink.role.attrib,
4886   local.olink.attrib
4887 # end of olink.attlist
4889 # end of olink.module
4890 local.ulink.attrib = empty
4891 ulink.role.attrib = role.attrib
4892 ulink = element ulink { ulink.attlist, para.char.mix* }
4893 # end of ulink.element
4895 # URL: uniform resource locator; the target of the ULink
4897 # Type: Freely assignable parameter
4898 ulink.attlist &=
4899   attribute url { text },
4900   attribute type { text }?,
4901   common.attrib,
4902   ulink.role.attrib,
4903   local.ulink.attrib
4904 # end of ulink.attlist
4906 # end of ulink.module
4907 local.footnoteref.attrib = empty
4908 footnoteref.role.attrib = role.attrib
4909 footnoteref = element footnoteref { footnoteref.attlist, empty }
4910 # end of footnoteref.element
4912 # to footnote content supplied elsewhere
4913 footnoteref.attlist &=
4914   linkendreq.attrib,
4915   label.attrib,
4916   common.attrib,
4917   footnoteref.role.attrib,
4918   local.footnoteref.attrib
4919 # end of footnoteref.attlist
4921 # end of footnoteref.module
4922 local.xref.attrib = empty
4923 xref.role.attrib = role.attrib
4924 xref = element xref { xref.attlist, empty }
4925 # end of xref.element
4927 # Endterm: ID of element containing text that is to be
4928 # fetched from elsewhere in the document to appear as
4929 # the content of this element
4931 # to linked-to object
4932 xref.attlist &=
4933   attribute endterm { xsd:IDREF }?,
4934   linkendreq.attrib,
4935   common.attrib,
4936   xref.role.attrib,
4937   local.xref.attrib
4938 # end of xref.attlist
4940 # end of xref.module
4942 # Ubiquitous elements ..................................................
4943 local.anchor.attrib = empty
4944 anchor.role.attrib = role.attrib
4945 anchor = element anchor { anchor.attlist, empty }
4946 # end of anchor.element
4948 # required
4950 # replaces Lang
4951 anchor.attlist &=
4952   idreq.attrib,
4953   pagenum.attrib,
4954   remap.attrib,
4955   xreflabel.attrib,
4956   revisionflag.attrib,
4957   effectivity.attrib,
4958   anchor.role.attrib,
4959   local.anchor.attrib
4960 # end of anchor.attlist
4962 # end of anchor.module
4963 local.beginpage.attrib = empty
4964 beginpage.role.attrib = role.attrib
4965 beginpage = element beginpage { beginpage.attlist, empty }
4966 # end of beginpage.element
4968 # PageNum: Number of page that begins at this point
4969 beginpage.attlist &=
4970   pagenum.attrib,
4971   common.attrib,
4972   beginpage.role.attrib,
4973   local.beginpage.attrib
4974 # end of beginpage.attlist
4976 # end of beginpage.module
4978 # IndexTerms appear in the text flow for generating or linking an
4979 # index.
4980 local.indexterm.attrib = empty
4981 indexterm.role.attrib = role.attrib
4982 indexterm =
4983   element indexterm {
4984     indexterm.attlist,
4985     primary?,
4986     ((secondary,
4987       ((tertiary, (see | seealso+)?)
4988        | see
4989        | seealso+)?)
4990      | see
4991      | seealso+)?
4992   }
4993 # end of indexterm.element
4995 # Scope: Indicates which generated indices the IndexTerm
4996 # should appear in: Global (whole document set), Local (this
4997 # document only), or All (both)
4999 # Significance: Whether this IndexTerm is the most pertinent
5000 # of its series (Preferred) or not (Normal, the default)
5002 # Class: Indicates type of IndexTerm; default is Singular,
5003 # or EndOfRange if StartRef is supplied; StartOfRange value
5004 # must be supplied explicitly on starts of ranges
5006 # StartRef: ID of the IndexTerm that starts the indexing
5007 # range ended by this IndexTerm
5009 # Zone: IDs of the elements to which the IndexTerm applies,
5010 # and indicates that the IndexTerm applies to those entire
5011 # elements rather than the point at which the IndexTerm
5012 # occurs
5013 indexterm.attlist &=
5014   pagenum.attrib,
5015   attribute scope { "all" | "global" | "local" }?,
5016   [ a:defaultValue = "normal" ]
5017   attribute significance { "preferred" | "normal" }?,
5018   attribute class { "singular" | "startofrange" | "endofrange" }?,
5019   attribute startref { xsd:IDREF }?,
5020   attribute zone { xsd:IDREFS }?,
5021   common.attrib,
5022   indexterm.role.attrib,
5023   local.indexterm.attrib
5024 # end of indexterm.attlist
5026 # end of indexterm.module
5027 local.primsecter.attrib = empty
5028 primsecter.role.attrib = role.attrib
5029 primary = element primary { primary.attlist, ndxterm.char.mix* }
5030 # end of primary.element
5032 # SortAs: Alternate sort string for index sorting, e.g.,
5033 # "fourteen" for an element containing "14"
5034 primary.attlist &=
5035   attribute sortas { text }?,
5036   common.attrib,
5037   primsecter.role.attrib,
5038   local.primsecter.attrib
5039 # end of primary.attlist
5040 secondary = element secondary { secondary.attlist, ndxterm.char.mix* }
5041 # end of secondary.element
5043 # SortAs: Alternate sort string for index sorting, e.g.,
5044 # "fourteen" for an element containing "14"
5045 secondary.attlist &=
5046   attribute sortas { text }?,
5047   common.attrib,
5048   primsecter.role.attrib,
5049   local.primsecter.attrib
5050 # end of secondary.attlist
5051 tertiary = element tertiary { tertiary.attlist, ndxterm.char.mix* }
5052 # end of tertiary.element
5054 # SortAs: Alternate sort string for index sorting, e.g.,
5055 # "fourteen" for an element containing "14"
5056 tertiary.attlist &=
5057   attribute sortas { text }?,
5058   common.attrib,
5059   primsecter.role.attrib,
5060   local.primsecter.attrib
5061 # end of tertiary.attlist
5063 # end of primsecter.module
5064 local.seeseealso.attrib = empty
5065 seeseealso.role.attrib = role.attrib
5066 see = element see { see.attlist, ndxterm.char.mix* }
5067 # end of see.element
5068 see.attlist &=
5069   common.attrib, seeseealso.role.attrib, local.seeseealso.attrib
5070 # end of see.attlist
5071 seealso = element seealso { seealso.attlist, ndxterm.char.mix* }
5072 # end of seealso.element
5073 seealso.attlist &=
5074   common.attrib, seeseealso.role.attrib, local.seeseealso.attrib
5075 # end of seealso.attlist
5077 # end of seeseealso.module
5079 # end of indexterm.content.module
5081 # End of DocBook XML information pool module V4.2 ......................
5083 # ......................................................................