source: BOOK/schema/docbook/4.5/rng/dbpoolx.rnc @ da28cc3

clfs-1.2clfs-2.1clfs-3.0.0-systemdclfs-3.0.0-sysvinitsystemdsysvinit
Last change on this file since da28cc3 was da28cc3, checked in by Joe Ciccone <jciccone@…>, 10 years ago

Validate the book against relax-ng instead of the
standard DTD.

  • Property mode set to 100644
File size: 163.5 KB
Line 
1# ......................................................................
2
3# DocBook XML information pool module V4.5 .............................
4
5# File dbpoolx.mod .....................................................
6
7# Copyright 1992-2004 HaL Computer Systems, Inc.,
8# O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
9# Corporation, Norman Walsh, Sun Microsystems, Inc., and the
10# Organization for the Advancement of Structured Information
11# Standards (OASIS).
12#
13# $Id: dbpoolx.mod 6340 2006-10-03 13:23:24Z nwalsh $
14#
15# Permission to use, copy, modify and distribute the DocBook XML DTD
16# and its accompanying documentation for any purpose and without fee
17# is hereby granted in perpetuity, provided that the above copyright
18# notice and this paragraph appear in all copies.  The copyright
19# holders make no representation about the suitability of the DTD for
20# any purpose.  It is provided "as is" without expressed or implied
21# warranty.
22#
23# If you modify the DocBook XML DTD in any way, except for declaring and
24# referencing additional sets of general entities and declaring
25# additional notations, label your DTD as a variant of DocBook.  See
26# the maintenance documentation for more information.
27#
28# Please direct all questions, bug reports, or suggestions for
29# changes to the docbook@lists.oasis-open.org mailing list. For more
30# information, see http://www.oasis-open.org/docbook/.
31
32# ......................................................................
33
34# This module contains the definitions for the objects, inline
35# elements, and so on that are available to be used as the main
36# content of DocBook documents.  Some elements are useful for general
37# publishing, and others are useful specifically for computer
38# documentation.
39#
40# This module has the following dependencies on other modules:
41#
42# o It assumes that a %notation.class; entity is defined by the
43#   driver file or other high-level module.  This entity is
44#   referenced in the NOTATION attributes for the graphic-related and
45#   ModeSpec elements.
46#
47# o It assumes that an appropriately parameterized table module is
48#   available for use with the table-related elements.
49#
50# In DTD driver files referring to this module, please use an entity
51# declaration that uses the public identifier shown below:
52#
53# <!ENTITY % dbpool PUBLIC
54# "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN"
55# "dbpoolx.mod">
56# %dbpool;
57#
58# See the documentation for detailed information on the parameter
59# entity and module scheme used in DocBook, customizing DocBook and
60# planning for interchange, and changes made since the last release
61# of DocBook.
62
63# ......................................................................
64
65# Forms entities .......................................................
66
67# These PEs provide the hook by which the forms module can be inserted
68
69# into the DTD.
70
71namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
72
73forminlines.hook = notAllowed
74forms.hook = notAllowed
75# ......................................................................
76
77# General-purpose semantics entities ...................................
78yesorno.attvals = string
79# ......................................................................
80
81# Entities for module inclusions .......................................
82
83# ......................................................................
84
85# Entities for element classes and mixtures ............................
86
87# "Ubiquitous" classes: ndxterm.class and beginpage
88local.ndxterm.class = notAllowed
89ndxterm.class = indexterm | local.ndxterm.class
90# Object-level classes .................................................
91local.list.class = notAllowed
92list.class =
93  calloutlist
94  | glosslist
95  | bibliolist
96  | itemizedlist
97  | orderedlist
98  | segmentedlist
99  | simplelist
100  | variablelist
101  | local.list.class
102local.admon.class = notAllowed
103admon.class =
104  caution | important | note | tip | warning | local.admon.class
105local.linespecific.class = notAllowed
106linespecific.class =
107  literallayout
108  | programlisting
109  | programlistingco
110  | screen
111  | screenco
112  | screenshot
113  | local.linespecific.class
114local.method.synop.class = notAllowed
115method.synop.class =
116  constructorsynopsis
117  | destructorsynopsis
118  | methodsynopsis
119  | local.method.synop.class
120local.synop.class = notAllowed
121synop.class =
122  synopsis
123  | cmdsynopsis
124  | funcsynopsis
125  | classsynopsis
126  | fieldsynopsis
127  | method.synop.class
128  | local.synop.class
129local.para.class = notAllowed
130para.class = formalpara | para | simpara | local.para.class
131local.informal.class = notAllowed
132informal.class =
133  address
134  | blockquote
135  | graphic
136  | graphicco
137  | mediaobject
138  | mediaobjectco
139  | informalequation
140  | informalexample
141  | informalfigure
142  | informaltable
143  | local.informal.class
144local.formal.class = notAllowed
145formal.class = equation | example | figure | table | local.formal.class
146# The DocBook TC may produce an official EBNF module for DocBook.
147
148# This PE provides the hook by which it can be inserted into the DTD.
149ebnf.block.hook = notAllowed
150local.compound.class = notAllowed
151compound.class =
152  msgset
153  | procedure
154  | sidebar
155  | qandaset
156  | task
157  | ebnf.block.hook
158  | local.compound.class
159local.genobj.class = notAllowed
160genobj.class =
161  anchor | bridgehead | remark | highlights | local.genobj.class
162local.descobj.class = notAllowed
163descobj.class = abstract | authorblurb | epigraph | local.descobj.class
164# Character-level classes ..............................................
165local.xref.char.class = notAllowed
166xref.char.class = footnoteref | xref | biblioref | local.xref.char.class
167local.gen.char.class = notAllowed
168gen.char.class =
169  abbrev
170  | acronym
171  | citation
172  | citerefentry
173  | citetitle
174  | citebiblioid
175  | emphasis
176  | firstterm
177  | foreignphrase
178  | glossterm
179  | termdef
180  | footnote
181  | phrase
182  | orgname
183  | quote
184  | trademark
185  | wordasword
186  | personname
187  | local.gen.char.class
188local.link.char.class = notAllowed
189link.char.class = link | olink | ulink | local.link.char.class
190# The DocBook TC may produce an official EBNF module for DocBook.
191
192# This PE provides the hook by which it can be inserted into the DTD.
193ebnf.inline.hook = notAllowed
194local.tech.char.class = notAllowed
195tech.char.class =
196  action
197  | application
198  | classname
199  | methodname
200  | interfacename
201  | exceptionname
202  | ooclass
203  | oointerface
204  | ooexception
205  | package
206  | command
207  | computeroutput
208  | database
209  | email
210  | envar
211  | errorcode
212  | errorname
213  | errortype
214  | errortext
215  | filename
216  | function
217  | guibutton
218  | guiicon
219  | guilabel
220  | guimenu
221  | guimenuitem
222  | guisubmenu
223  | hardware
224  | interface
225  | keycap
226  | keycode
227  | keycombo
228  | keysym
229  | literal
230  | code
231  | constant
232  | markup
233  | medialabel
234  | menuchoice
235  | mousebutton
236  | option
237  | optional
238  | parameter
239  | prompt
240  | property
241  | replaceable
242  | returnvalue
243  | sgmltag
244  | structfield
245  | structname
246  | symbol
247  | systemitem
248  | uri
249  | \token
250  | type
251  | userinput
252  | varname
253  | ebnf.inline.hook
254  | local.tech.char.class
255local.base.char.class = notAllowed
256base.char.class = anchor | local.base.char.class
257local.docinfo.char.class = notAllowed
258docinfo.char.class =
259  author
260  | authorinitials
261  | corpauthor
262  | corpcredit
263  | modespec
264  | othercredit
265  | productname
266  | productnumber
267  | revhistory
268  | local.docinfo.char.class
269local.other.char.class = notAllowed
270other.char.class =
271  remark | subscript | superscript | local.other.char.class
272local.inlineobj.char.class = notAllowed
273inlineobj.char.class =
274  inlinegraphic
275  | inlinemediaobject
276  | inlineequation
277  | local.inlineobj.char.class
278# ......................................................................
279
280# Entities for content models ..........................................
281formalobject.title.content = title, titleabbrev?
282# Redeclaration placeholder ............................................
283
284# For redeclaring entities that are declared after this point while
285# retaining their references to the entities that are declared before
286# this point
287
288# Object-level mixtures ................................................
289
290#                       list admn line synp para infm form cmpd gen  desc
291# Component mixture       X    X    X    X    X    X    X    X    X    X
292# Sidebar mixture         X    X    X    X    X    X    X    a    X
293# Footnote mixture        X         X    X    X    X
294# Example mixture         X         X    X    X    X
295# Highlights mixture      X    X              X
296# Paragraph mixture       X         X    X         X
297# Admonition mixture      X         X    X    X    X    X    b    c
298# Figure mixture                    X    X         X
299# Table entry mixture     X    X    X         X    d
300# Glossary def mixture    X         X    X    X    X         e
301# Legal notice mixture    X    X    X         X    f
302#
303# a. Just Procedure; not Sidebar itself or MsgSet.
304# b. No MsgSet.
305# c. No Highlights.
306# d. Just Graphic; no other informal objects.
307# e. No Anchor, BridgeHead, or Highlights.
308# f. Just BlockQuote; no other informal objects.
309local.component.mix = notAllowed
310component.mix =
311  list.class
312  | admon.class
313  | linespecific.class
314  | synop.class
315  | para.class
316  | informal.class
317  | formal.class
318  | compound.class
319  | genobj.class
320  | descobj.class
321  | ndxterm.class
322  | beginpage
323  | forms.hook
324  | local.component.mix
325local.sidebar.mix = notAllowed
326sidebar.mix =
327  list.class
328  | admon.class
329  | linespecific.class
330  | synop.class
331  | para.class
332  | informal.class
333  | formal.class
334  | procedure
335  | genobj.class
336  | ndxterm.class
337  | beginpage
338  | forms.hook
339  | local.sidebar.mix
340local.qandaset.mix = notAllowed
341qandaset.mix =
342  list.class
343  | admon.class
344  | linespecific.class
345  | synop.class
346  | para.class
347  | informal.class
348  | formal.class
349  | procedure
350  | genobj.class
351  | ndxterm.class
352  | forms.hook
353  | local.qandaset.mix
354local.revdescription.mix = notAllowed
355revdescription.mix =
356  list.class
357  | admon.class
358  | linespecific.class
359  | synop.class
360  | para.class
361  | informal.class
362  | formal.class
363  | procedure
364  | genobj.class
365  | ndxterm.class
366  | local.revdescription.mix
367local.footnote.mix = notAllowed
368footnote.mix =
369  list.class
370  | linespecific.class
371  | synop.class
372  | para.class
373  | informal.class
374  | local.footnote.mix
375local.example.mix = notAllowed
376example.mix =
377  list.class
378  | linespecific.class
379  | synop.class
380  | para.class
381  | informal.class
382  | ndxterm.class
383  | beginpage
384  | procedure
385  | forms.hook
386  | local.example.mix
387local.highlights.mix = notAllowed
388highlights.mix =
389  list.class
390  | admon.class
391  | para.class
392  | ndxterm.class
393  | local.highlights.mix
394# %formal.class; is explicitly excluded from many contexts in which
395# paragraphs are used
396local.para.mix = notAllowed
397para.mix =
398  list.class
399  | admon.class
400  | linespecific.class
401  | informal.class
402  | formal.class
403  | local.para.mix
404local.admon.mix = notAllowed
405admon.mix =
406  list.class
407  | linespecific.class
408  | synop.class
409  | para.class
410  | informal.class
411  | formal.class
412  | procedure
413  | sidebar
414  | anchor
415  | bridgehead
416  | remark
417  | ndxterm.class
418  | beginpage
419  | forms.hook
420  | local.admon.mix
421local.figure.mix = notAllowed
422figure.mix =
423  linespecific.class
424  | synop.class
425  | informal.class
426  | ndxterm.class
427  | beginpage
428  | forms.hook
429  | local.figure.mix
430local.tabentry.mix = notAllowed
431tabentry.mix =
432  list.class
433  | admon.class
434  | linespecific.class
435  | para.class
436  | graphic
437  | mediaobject
438  | forms.hook
439  | local.tabentry.mix
440local.glossdef.mix = notAllowed
441glossdef.mix =
442  list.class
443  | linespecific.class
444  | synop.class
445  | para.class
446  | informal.class
447  | formal.class
448  | remark
449  | ndxterm.class
450  | beginpage
451  | local.glossdef.mix
452local.legalnotice.mix = notAllowed
453legalnotice.mix =
454  list.class
455  | admon.class
456  | linespecific.class
457  | para.class
458  | blockquote
459  | ndxterm.class
460  | beginpage
461  | local.legalnotice.mix
462local.textobject.mix = notAllowed
463textobject.mix =
464  list.class
465  | admon.class
466  | linespecific.class
467  | para.class
468  | blockquote
469  | local.textobject.mix
470local.mediaobject.mix = notAllowed
471mediaobject.mix =
472  videoobject
473  | audioobject
474  | imageobject
475  | imageobjectco
476  | textobject
477  | local.mediaobject.mix
478local.listpreamble.mix = notAllowed
479listpreamble.mix =
480  admon.class
481  | linespecific.class
482  | synop.class
483  | para.class
484  | informal.class
485  | genobj.class
486  | descobj.class
487  | ndxterm.class
488  | beginpage
489  | forms.hook
490  | local.listpreamble.mix
491# Character-level mixtures .............................................
492
493# sgml.features
494
495# not [sgml.features[
496
497# ]] not sgml.features
498
499#                     #PCD xref word link cptr base dnfo othr inob (synop)
500# para.char.mix         X    X    X    X    X    X    X    X    X
501# title.char.mix        X    X    X    X    X    X    X    X    X
502# ndxterm.char.mix      X    X    X    X    X    X    X    X    a
503# cptr.char.mix         X              X    X    X         X    a
504# smallcptr.char.mix    X                   b                   a
505# word.char.mix         X         c    X         X         X    a
506# docinfo.char.mix      X         d    X    b              X    a
507#
508# a. Just InlineGraphic; no InlineEquation.
509# b. Just Replaceable; no other computer terms.
510# c. Just Emphasis and Trademark; no other word elements.
511# d. Just Acronym, Emphasis, and Trademark; no other word elements.
512local.para.char.mix = notAllowed
513para.char.mix =
514  text
515  | xref.char.class
516  | gen.char.class
517  | link.char.class
518  | tech.char.class
519  | base.char.class
520  | docinfo.char.class
521  | other.char.class
522  | inlineobj.char.class
523  | synop.class
524  | ndxterm.class
525  | beginpage
526  | forminlines.hook
527  | local.para.char.mix
528local.title.char.mix = notAllowed
529title.char.mix =
530  text
531  | xref.char.class
532  | gen.char.class
533  | link.char.class
534  | tech.char.class
535  | base.char.class
536  | docinfo.char.class
537  | other.char.class
538  | inlineobj.char.class
539  | ndxterm.class
540  | local.title.char.mix
541local.ndxterm.char.mix = notAllowed
542ndxterm.char.mix =
543  text
544  | xref.char.class
545  | gen.char.class
546  | link.char.class
547  | tech.char.class
548  | base.char.class
549  | docinfo.char.class
550  | other.char.class
551  | inlinegraphic
552  | inlinemediaobject
553  | local.ndxterm.char.mix
554local.cptr.char.mix = notAllowed
555cptr.char.mix =
556  text
557  | link.char.class
558  | tech.char.class
559  | base.char.class
560  | other.char.class
561  | inlinegraphic
562  | inlinemediaobject
563  | ndxterm.class
564  | beginpage
565  | local.cptr.char.mix
566local.smallcptr.char.mix = notAllowed
567smallcptr.char.mix =
568  text
569  | replaceable
570  | inlinegraphic
571  | inlinemediaobject
572  | ndxterm.class
573  | beginpage
574  | local.smallcptr.char.mix
575local.word.char.mix = notAllowed
576word.char.mix =
577  text
578  | acronym
579  | emphasis
580  | trademark
581  | link.char.class
582  | base.char.class
583  | other.char.class
584  | inlinegraphic
585  | inlinemediaobject
586  | ndxterm.class
587  | beginpage
588  | local.word.char.mix
589local.docinfo.char.mix = notAllowed
590docinfo.char.mix =
591  text
592  | link.char.class
593  | emphasis
594  | trademark
595  | replaceable
596  | other.char.class
597  | inlinegraphic
598  | inlinemediaobject
599  | ndxterm.class
600  | local.docinfo.char.mix
601# ENTITY % bibliocomponent.mix (see Bibliographic section, below)
602
603# ENTITY % person.ident.mix (see Bibliographic section, below)
604
605# ......................................................................
606
607# Entities for attributes and attribute components .....................
608
609# Effectivity attributes ...............................................
610
611# Arch: Computer or chip architecture to which element applies; no
612# default
613arch.attrib = attribute arch { text }?
614# Condition: General-purpose effectivity attribute
615condition.attrib = attribute condition { text }?
616# Conformance: Standards conformance characteristics
617conformance.attrib = attribute conformance { xsd:NMTOKENS }?
618# OS: Operating system to which element applies; no default
619os.attrib = attribute os { text }?
620# Revision: Editorial revision to which element belongs; no default
621revision.attrib = attribute revision { text }?
622# Security: Security classification; no default
623security.attrib = attribute security { text }?
624# UserLevel: Level of user experience to which element applies; no
625# default
626userlevel.attrib = attribute userlevel { text }?
627# Vendor: Computer vendor to which element applies; no default
628vendor.attrib = attribute vendor { text }?
629# Wordsize: Computer word size (32 bit, 64 bit, etc.); no default
630wordsize.attrib = attribute wordsize { text }?
631local.effectivity.attrib = empty
632effectivity.attrib =
633  arch.attrib,
634  condition.attrib,
635  conformance.attrib,
636  os.attrib,
637  revision.attrib,
638  security.attrib,
639  userlevel.attrib,
640  vendor.attrib,
641  wordsize.attrib,
642  local.effectivity.attrib
643# Common attributes ....................................................
644
645# Id: Unique identifier of element; no default
646id.attrib = attribute id { xsd:ID }?
647# Id: Unique identifier of element; a value must be supplied; no
648# default
649idreq.attrib = attribute id { xsd:ID }
650# Lang: Indicator of language in which element is written, for
651# translation, character set management, etc.; no default
652lang.attrib = attribute lang { text }?
653# Remap: Previous role of element before conversion; no default
654remap.attrib = attribute remap { text }?
655# Role: New role of element in local environment; no default
656role.attrib = attribute role { text }?
657# XRefLabel: Alternate labeling string for XRef text generation;
658# default is usually title or other appropriate label text already
659# contained in element
660xreflabel.attrib = attribute xreflabel { text }?
661# RevisionFlag: Revision status of element; default is that element
662# wasn't revised
663revisionflag.attrib =
664  attribute revisionflag { "changed" | "added" | "deleted" | "off" }?
665local.common.attrib = empty
666# dir: Bidirectional override
667dir.attrib = attribute dir { "ltr" | "rtl" | "lro" | "rlo" }?
668# xml:base: base URI
669xml-base.attrib = attribute xml:base { text }?
670# Role is included explicitly on each element
671common.attrib =
672  id.attrib,
673  lang.attrib,
674  remap.attrib,
675  xreflabel.attrib,
676  revisionflag.attrib,
677  effectivity.attrib,
678  dir.attrib,
679  xml-base.attrib,
680  local.common.attrib
681# Role is included explicitly on each element
682idreq.common.attrib =
683  idreq.attrib,
684  lang.attrib,
685  remap.attrib,
686  xreflabel.attrib,
687  revisionflag.attrib,
688  effectivity.attrib,
689  dir.attrib,
690  xml-base.attrib,
691  local.common.attrib
692# Semi-common attributes and other attribute entities ..................
693local.graphics.attrib = empty
694# EntityRef: Name of an external entity containing the content
695# of the graphic
696
697# FileRef: Filename, qualified by a pathname if desired,
698# designating the file containing the content of the graphic
699
700# Format: Notation of the element content, if any
701
702# SrcCredit: Information about the source of the Graphic
703
704# Width: Same as CALS reprowid (desired width)
705
706# Depth: Same as CALS reprodep (desired depth)
707
708# Align: Same as CALS hplace with 'none' removed; #IMPLIED means
709# application-specific
710
711# Scale: Conflation of CALS hscale and vscale
712
713# Scalefit: Same as CALS scalefit
714graphics.attrib =
715  attribute entityref { xsd:ENTITY }?,
716  attribute fileref { text }?,
717  attribute format { notation.class }?,
718  attribute srccredit { text }?,
719  attribute width { text }?,
720  attribute contentwidth { text }?,
721  attribute depth { text }?,
722  attribute contentdepth { text }?,
723  attribute align { "left" | "right" | "center" }?,
724  attribute valign { "top" | "middle" | "bottom" }?,
725  attribute scale { text }?,
726  attribute scalefit { yesorno.attvals }?,
727  local.graphics.attrib
728local.keyaction.attrib = empty
729# Action: Key combination type; default is unspecified if one
730# child element, Simul if there is more than one; if value is
731# Other, the OtherAction attribute must have a nonempty value
732
733# OtherAction: User-defined key combination type
734keyaction.attrib =
735  attribute action {
736    "click" | "double-click" | "press" | "seq" | "simul" | "other"
737  }?,
738  attribute otheraction { text }?,
739  local.keyaction.attrib
740# Label: Identifying number or string; default is usually the
741# appropriate number or string autogenerated by a formatter
742label.attrib = attribute label { text }?
743# xml:space: whitespace treatment
744xml-space.attrib = attribute xml:space { "preserve" }?
745# Format: whether element is assumed to contain significant white
746# space
747linespecific.attrib =
748  [ a:defaultValue = "linespecific" ]
749  attribute format { "linespecific" }?,
750  xml-space.attrib,
751  attribute linenumbering { "numbered" | "unnumbered" }?,
752  attribute continuation { "continues" | "restarts" }?,
753  attribute startinglinenumber { text }?,
754  attribute language { text }?
755# Linkend: link to related information; no default
756linkend.attrib = attribute linkend { xsd:IDREF }?
757# Linkend: required link to related information
758linkendreq.attrib = attribute linkend { xsd:IDREF }
759# Linkends: link to one or more sets of related information; no
760# default
761linkends.attrib = attribute linkends { xsd:IDREFS }?
762local.mark.attrib = empty
763mark.attrib =
764  attribute mark { text }?,
765  local.mark.attrib
766# MoreInfo: whether element's content has an associated RefEntry
767moreinfo.attrib =
768  [ a:defaultValue = "none" ]
769  attribute moreinfo { "refentry" | "none" }?
770# Pagenum: number of page on which element appears; no default
771pagenum.attrib = attribute pagenum { text }?
772local.status.attrib = empty
773# Status: Editorial or publication status of the element
774# it applies to, such as "in review" or "approved for distribution"
775status.attrib =
776  attribute status { text }?,
777  local.status.attrib
778# Width: width of the longest line in the element to which it
779# pertains, in number of characters
780width.attrib = attribute width { text }?
781# ......................................................................
782
783# Title elements .......................................................
784local.title.attrib = empty
785title.role.attrib = role.attrib
786# doc:The text of the title of a section of a document or of a formal block-level element.
787title = element title { title.attlist, title.char.mix* }
788# end of title.element
789title.attlist &=
790  pagenum.attrib, common.attrib, title.role.attrib, local.title.attrib
791# end of title.attlist
792
793# end of title.module
794local.titleabbrev.attrib = empty
795titleabbrev.role.attrib = role.attrib
796# doc:The abbreviation of a Title.
797titleabbrev =
798  element titleabbrev { titleabbrev.attlist, title.char.mix* }
799# end of titleabbrev.element
800titleabbrev.attlist &=
801  common.attrib, titleabbrev.role.attrib, local.titleabbrev.attrib
802# end of titleabbrev.attlist
803
804# end of titleabbrev.module
805local.subtitle.attrib = empty
806subtitle.role.attrib = role.attrib
807# doc:The subtitle of a document.
808subtitle = element subtitle { subtitle.attlist, title.char.mix* }
809# end of subtitle.element
810subtitle.attlist &=
811  common.attrib, subtitle.role.attrib, local.subtitle.attrib
812# end of subtitle.attlist
813
814# end of subtitle.module
815
816# ......................................................................
817
818# Bibliographic entities and elements ..................................
819
820# The bibliographic elements are typically used in the document
821# hierarchy. They do not appear in content models of information
822# pool elements.  See also the document information elements,
823# below.
824local.person.ident.mix = notAllowed
825person.ident.mix =
826  honorific
827  | firstname
828  | surname
829  | lineage
830  | othername
831  | affiliation
832  | authorblurb
833  | contrib
834  | local.person.ident.mix
835local.bibliocomponent.mix = notAllowed
836bibliocomponent.mix =
837  abbrev
838  | abstract
839  | address
840  | artpagenums
841  | author
842  | authorgroup
843  | authorinitials
844  | bibliomisc
845  | biblioset
846  | collab
847  | confgroup
848  | contractnum
849  | contractsponsor
850  | copyright
851  | corpauthor
852  | corpname
853  | corpcredit
854  | date
855  | edition
856  | editor
857  | invpartnumber
858  | isbn
859  | issn
860  | issuenum
861  | orgname
862  | biblioid
863  | citebiblioid
864  | bibliosource
865  | bibliorelation
866  | bibliocoverage
867  | othercredit
868  | pagenums
869  | printhistory
870  | productname
871  | productnumber
872  | pubdate
873  | publisher
874  | publishername
875  | pubsnumber
876  | releaseinfo
877  | revhistory
878  | seriesvolnums
879  | subtitle
880  | title
881  | titleabbrev
882  | volumenum
883  | citetitle
884  | personname
885  | person.ident.mix
886  | ndxterm.class
887  | local.bibliocomponent.mix
888# I don't think this is well placed, but it needs to be here because of
889
890# the reference to bibliocomponent.mix
891local.info.class = notAllowed
892info.class =
893  graphic
894  | mediaobject
895  | legalnotice
896  | modespec
897  | subjectset
898  | keywordset
899  | itermset
900  | bibliocomponent.mix
901  | local.info.class
902# BiblioList ........................
903local.bibliolist.attrib = empty
904bibliolist.role.attrib = role.attrib
905# doc:A wrapper for a set of bibliography entries.
906bibliolist =
907  element bibliolist {
908    bibliolist.attlist,
909    blockinfo?,
910    formalobject.title.content?,
911    (biblioentry | bibliomixed)+
912  }
913# end of bibliolist.element
914bibliolist.attlist &=
915  common.attrib, bibliolist.role.attrib, local.bibliolist.attrib
916# end of bibliolist.attlist
917
918# end of bibliolist.module
919local.biblioentry.attrib = empty
920biblioentry.role.attrib = role.attrib
921# doc:An entry in a Bibliography.
922biblioentry =
923  element biblioentry {
924    biblioentry.attlist, (articleinfo | bibliocomponent.mix)+
925  }
926# end of biblioentry.element
927biblioentry.attlist &=
928  common.attrib, biblioentry.role.attrib, local.biblioentry.attrib
929# end of biblioentry.attlist
930
931# end of biblioentry.module
932local.bibliomixed.attrib = empty
933bibliomixed.role.attrib = role.attrib
934# doc:An entry in a Bibliography.
935bibliomixed =
936  element bibliomixed {
937    bibliomixed.attlist, (text | bibliocomponent.mix | bibliomset)*
938  }
939# end of bibliomixed.element
940bibliomixed.attlist &=
941  common.attrib, bibliomixed.role.attrib, local.bibliomixed.attrib
942# end of bibliomixed.attlist
943
944# end of bibliomixed.module
945local.articleinfo.attrib = empty
946articleinfo.role.attrib = role.attrib
947# doc:Meta-information for an Article.
948articleinfo = element articleinfo { articleinfo.attlist, info.class+ }
949# end of articleinfo.element
950articleinfo.attlist &=
951  common.attrib, articleinfo.role.attrib, local.articleinfo.attrib
952# end of articleinfo.attlist
953
954# end of articleinfo.module
955local.biblioset.attrib = empty
956biblioset.role.attrib = role.attrib
957# doc:A "raw" container for related bibliographic information.
958biblioset =
959  element biblioset { biblioset.attlist, bibliocomponent.mix+ }
960# end of biblioset.element
961
962# Relation: Relationship of elements contained within BiblioSet
963biblioset.attlist &=
964  attribute relation { text }?,
965  common.attrib,
966  biblioset.role.attrib,
967  local.biblioset.attrib
968# end of biblioset.attlist
969
970# end of biblioset.module
971bibliomset.role.attrib = role.attrib
972local.bibliomset.attrib = empty
973# doc:A "cooked" container for related bibliographic information.
974bibliomset =
975  element bibliomset {
976    bibliomset.attlist, (text | bibliocomponent.mix | bibliomset)*
977  }
978# end of bibliomset.element
979
980# Relation: Relationship of elements contained within BiblioMSet
981bibliomset.attlist &=
982  attribute relation { text }?,
983  common.attrib,
984  bibliomset.role.attrib,
985  local.bibliomset.attrib
986# end of bibliomset.attlist
987
988# end of bibliomset.module
989local.bibliomisc.attrib = empty
990bibliomisc.role.attrib = role.attrib
991# doc:Untyped bibliographic information.
992bibliomisc = element bibliomisc { bibliomisc.attlist, para.char.mix* }
993# end of bibliomisc.element
994bibliomisc.attlist &=
995  common.attrib, bibliomisc.role.attrib, local.bibliomisc.attrib
996# end of bibliomisc.attlist
997
998# end of bibliomisc.module
999
1000# ......................................................................
1001
1002# Subject, Keyword, and ITermSet elements ..............................
1003local.subjectset.attrib = empty
1004subjectset.role.attrib = role.attrib
1005# doc:A set of terms describing the subject matter of a document.
1006subjectset = element subjectset { subjectset.attlist, subject+ }
1007# end of subjectset.element
1008
1009# Scheme: Controlled vocabulary employed in SubjectTerms
1010subjectset.attlist &=
1011  attribute scheme { xsd:NMTOKEN }?,
1012  common.attrib,
1013  subjectset.role.attrib,
1014  local.subjectset.attrib
1015# end of subjectset.attlist
1016
1017# end of subjectset.module
1018local.subject.attrib = empty
1019subject.role.attrib = role.attrib
1020# doc:One of a group of terms describing the subject matter of a document.
1021subject = element subject { subject.attlist, subjectterm+ }
1022# end of subject.element
1023
1024# Weight: Ranking of this group of SubjectTerms relative
1025# to others, 0 is low, no highest value specified
1026subject.attlist &=
1027  attribute weight { text }?,
1028  common.attrib,
1029  subject.role.attrib,
1030  local.subject.attrib
1031# end of subject.attlist
1032
1033# end of subject.module
1034local.subjectterm.attrib = empty
1035subjectterm.role.attrib = role.attrib
1036# doc:A term in a group of terms describing the subject matter of a document.
1037subjectterm = element subjectterm { subjectterm.attlist, text }
1038# end of subjectterm.element
1039subjectterm.attlist &=
1040  common.attrib, subjectterm.role.attrib, local.subjectterm.attrib
1041# end of subjectterm.attlist
1042
1043# end of subjectterm.module
1044
1045# end of subjectset.content.module
1046local.keywordset.attrib = empty
1047keywordset.role.attrib = role.attrib
1048# doc:A set of keywords describing the content of a document.
1049keywordset = element keywordset { keywordset.attlist, keyword+ }
1050# end of keywordset.element
1051keywordset.attlist &=
1052  common.attrib, keywordset.role.attrib, local.keywordset.attrib
1053# end of keywordset.attlist
1054
1055# end of keywordset.module
1056local.keyword.attrib = empty
1057keyword.role.attrib = role.attrib
1058# doc:One of a set of keywords describing the content of a document.
1059keyword = element keyword { keyword.attlist, text }
1060# end of keyword.element
1061keyword.attlist &=
1062  common.attrib, keyword.role.attrib, local.keyword.attrib
1063# end of keyword.attlist
1064
1065# end of keyword.module
1066
1067# end of keywordset.content.module
1068local.itermset.attrib = empty
1069itermset.role.attrib = role.attrib
1070# doc:A set of index terms in the meta-information of a document.
1071itermset = element itermset { itermset.attlist, indexterm+ }
1072# end of itermset.element
1073itermset.attlist &=
1074  common.attrib, itermset.role.attrib, local.itermset.attrib
1075# end of itermset.attlist
1076
1077# end of itermset.module
1078
1079# Bibliographic info for "blocks"
1080local.blockinfo.attrib = empty
1081blockinfo.role.attrib = role.attrib
1082# doc:Meta-information for a block element.
1083blockinfo = element blockinfo { blockinfo.attlist, info.class+ }
1084# end of blockinfo.element
1085blockinfo.attlist &=
1086  common.attrib, blockinfo.role.attrib, local.blockinfo.attrib
1087# end of blockinfo.attlist
1088
1089# end of blockinfo.module
1090
1091# ......................................................................
1092
1093# Compound (section-ish) elements ......................................
1094
1095# Message set ......................
1096local.msgset.attrib = empty
1097msgset.role.attrib = role.attrib
1098# doc:A detailed set of messages, usually error messages.
1099msgset =
1100  element msgset {
1101    msgset.attlist,
1102    blockinfo?,
1103    formalobject.title.content?,
1104    (msgentry+ | simplemsgentry+)
1105  }
1106# end of msgset.element
1107msgset.attlist &= common.attrib, msgset.role.attrib, local.msgset.attrib
1108# end of msgset.attlist
1109
1110# end of msgset.module
1111local.msgentry.attrib = empty
1112msgentry.role.attrib = role.attrib
1113# doc:A wrapper for an entry in a message set.
1114msgentry =
1115  element msgentry { msgentry.attlist, msg+, msginfo?, msgexplan* }
1116# end of msgentry.element
1117msgentry.attlist &=
1118  common.attrib, msgentry.role.attrib, local.msgentry.attrib
1119# end of msgentry.attlist
1120
1121# end of msgentry.module
1122local.simplemsgentry.attrib = empty
1123simplemsgentry.role.attrib = role.attrib
1124# doc:A wrapper for a simpler entry in a message set.
1125simplemsgentry =
1126  element simplemsgentry { simplemsgentry.attlist, msgtext, msgexplan+ }
1127# end of simplemsgentry.element
1128simplemsgentry.attlist &=
1129  attribute audience { text }?,
1130  attribute level { text }?,
1131  attribute origin { text }?,
1132  common.attrib,
1133  simplemsgentry.role.attrib,
1134  local.simplemsgentry.attrib
1135# end of simplemsgentry.attlist
1136
1137# end of simplemsgentry.module
1138local.msg.attrib = empty
1139msg.role.attrib = role.attrib
1140# doc:A message in a message set.
1141msg = element msg { msg.attlist, title?, msgmain, (msgsub | msgrel)* }
1142# end of msg.element
1143msg.attlist &= common.attrib, msg.role.attrib, local.msg.attrib
1144# end of msg.attlist
1145
1146# end of msg.module
1147local.msgmain.attrib = empty
1148msgmain.role.attrib = role.attrib
1149# doc:The primary component of a message in a message set.
1150msgmain = element msgmain { msgmain.attlist, title?, msgtext }
1151# end of msgmain.element
1152msgmain.attlist &=
1153  common.attrib, msgmain.role.attrib, local.msgmain.attrib
1154# end of msgmain.attlist
1155
1156# end of msgmain.module
1157local.msgsub.attrib = empty
1158msgsub.role.attrib = role.attrib
1159# doc:A subcomponent of a message in a message set.
1160msgsub = element msgsub { msgsub.attlist, title?, msgtext }
1161# end of msgsub.element
1162msgsub.attlist &= common.attrib, msgsub.role.attrib, local.msgsub.attrib
1163# end of msgsub.attlist
1164
1165# end of msgsub.module
1166local.msgrel.attrib = empty
1167msgrel.role.attrib = role.attrib
1168# doc:A related component of a message in a message set.
1169msgrel = element msgrel { msgrel.attlist, title?, msgtext }
1170# end of msgrel.element
1171msgrel.attlist &= common.attrib, msgrel.role.attrib, local.msgrel.attrib
1172# end of msgrel.attlist
1173
1174# end of msgrel.module
1175
1176# MsgText (defined in the Inlines section, below)
1177local.msginfo.attrib = empty
1178msginfo.role.attrib = role.attrib
1179# doc:Information about a message in a message set.
1180msginfo =
1181  element msginfo { msginfo.attlist, (msglevel | msgorig | msgaud)* }
1182# end of msginfo.element
1183msginfo.attlist &=
1184  common.attrib, msginfo.role.attrib, local.msginfo.attrib
1185# end of msginfo.attlist
1186
1187# end of msginfo.module
1188local.msglevel.attrib = empty
1189msglevel.role.attrib = role.attrib
1190# doc:The level of importance or severity of a message in a message set.
1191msglevel = element msglevel { msglevel.attlist, smallcptr.char.mix* }
1192# end of msglevel.element
1193msglevel.attlist &=
1194  common.attrib, msglevel.role.attrib, local.msglevel.attrib
1195# end of msglevel.attlist
1196
1197# end of msglevel.module
1198local.msgorig.attrib = empty
1199msgorig.role.attrib = role.attrib
1200# doc:The origin of a message in a message set.
1201msgorig = element msgorig { msgorig.attlist, smallcptr.char.mix* }
1202# end of msgorig.element
1203msgorig.attlist &=
1204  common.attrib, msgorig.role.attrib, local.msgorig.attrib
1205# end of msgorig.attlist
1206
1207# end of msgorig.module
1208local.msgaud.attrib = empty
1209msgaud.role.attrib = role.attrib
1210# doc:The audience to which a message in a message set is relevant.
1211msgaud = element msgaud { msgaud.attlist, para.char.mix* }
1212# end of msgaud.element
1213msgaud.attlist &= common.attrib, msgaud.role.attrib, local.msgaud.attrib
1214# end of msgaud.attlist
1215
1216# end of msgaud.module
1217local.msgexplan.attrib = empty
1218msgexplan.role.attrib = role.attrib
1219# doc:Explanatory material relating to a message in a message set.
1220msgexplan =
1221  element msgexplan { msgexplan.attlist, title?, component.mix+ }
1222# end of msgexplan.element
1223msgexplan.attlist &=
1224  common.attrib, msgexplan.role.attrib, local.msgexplan.attrib
1225# end of msgexplan.attlist
1226
1227# end of msgexplan.module
1228
1229# end of msgset.content.module
1230local.task.attrib = empty
1231task.role.attrib = role.attrib
1232# doc:A task to be completed.
1233task =
1234  element task {
1235    task.attlist,
1236    blockinfo?,
1237    ndxterm.class*,
1238    formalobject.title.content,
1239    tasksummary?,
1240    taskprerequisites?,
1241    procedure,
1242    example*,
1243    taskrelated?
1244  }
1245# end of task.element
1246task.attlist &= common.attrib, task.role.attrib, local.task.attrib
1247# end of task.attlist
1248
1249# end of task.module
1250local.tasksummary.attrib = empty
1251tasksummary.role.attrib = role.attrib
1252# doc:A summary of a task.
1253tasksummary =
1254  element tasksummary {
1255    tasksummary.attlist,
1256    blockinfo?,
1257    formalobject.title.content?,
1258    component.mix+
1259  }
1260# end of tasksummary.element
1261tasksummary.attlist &=
1262  common.attrib, tasksummary.role.attrib, local.tasksummary.attrib
1263# end of tasksummary.attlist
1264
1265# end of tasksummary.module
1266local.taskprerequisites.attrib = empty
1267taskprerequisites.role.attrib = role.attrib
1268# doc:The prerequisites for a task.
1269taskprerequisites =
1270  element taskprerequisites {
1271    taskprerequisites.attlist,
1272    blockinfo?,
1273    formalobject.title.content?,
1274    component.mix+
1275  }
1276# end of taskprerequisites.element
1277taskprerequisites.attlist &=
1278  common.attrib,
1279  taskprerequisites.role.attrib,
1280  local.taskprerequisites.attrib
1281# end of taskprerequisites.attlist
1282
1283# end of taskprerequisites.module
1284local.taskrelated.attrib = empty
1285taskrelated.role.attrib = role.attrib
1286# doc:Information related to a task.
1287taskrelated =
1288  element taskrelated {
1289    taskrelated.attlist,
1290    blockinfo?,
1291    formalobject.title.content?,
1292    component.mix+
1293  }
1294# end of taskrelated.element
1295taskrelated.attlist &=
1296  common.attrib, taskrelated.role.attrib, local.taskrelated.attrib
1297# end of taskrelated.attlist
1298
1299# end of taskrelated.module
1300
1301# end of task.content.module
1302
1303# QandASet ........................
1304local.qandaset.attrib = empty
1305qandaset.role.attrib = role.attrib
1306# doc:A question-and-answer set.
1307qandaset =
1308  element qandaset {
1309    qandaset.attlist,
1310    blockinfo?,
1311    formalobject.title.content?,
1312    qandaset.mix*,
1313    (qandadiv+ | qandaentry+)
1314  }
1315# end of qandaset.element
1316qandaset.attlist &=
1317  attribute defaultlabel { "qanda" | "number" | "none" }?,
1318  common.attrib,
1319  qandaset.role.attrib,
1320  local.qandaset.attrib
1321# end of qandaset.attlist
1322
1323# end of qandaset.module
1324local.qandadiv.attrib = empty
1325qandadiv.role.attrib = role.attrib
1326# doc:A titled division in a QandASet.
1327qandadiv =
1328  element qandadiv {
1329    qandadiv.attlist,
1330    blockinfo?,
1331    formalobject.title.content?,
1332    qandaset.mix*,
1333    (qandadiv+ | qandaentry+)
1334  }
1335# end of qandadiv.element
1336qandadiv.attlist &=
1337  common.attrib, qandadiv.role.attrib, local.qandadiv.attrib
1338# end of qandadiv.attlist
1339
1340# end of qandadiv.module
1341local.qandaentry.attrib = empty
1342qandaentry.role.attrib = role.attrib
1343# doc:A question/answer set within a QandASet.
1344qandaentry =
1345  element qandaentry {
1346    qandaentry.attlist, blockinfo?, revhistory?, question, answer*
1347  }
1348# end of qandaentry.element
1349qandaentry.attlist &=
1350  common.attrib, qandaentry.role.attrib, local.qandaentry.attrib
1351# end of qandaentry.attlist
1352
1353# end of qandaentry.module
1354local.question.attrib = empty
1355question.role.attrib = role.attrib
1356# doc:A question in a QandASet.
1357question = element question { question.attlist, label?, qandaset.mix+ }
1358# end of question.element
1359question.attlist &=
1360  common.attrib, question.role.attrib, local.question.attrib
1361# end of question.attlist
1362
1363# end of question.module
1364local.answer.attrib = empty
1365answer.role.attrib = role.attrib
1366# doc:An answer to a question posed in a QandASet.
1367answer =
1368  element answer { answer.attlist, label?, qandaset.mix*, qandaentry* }
1369# end of answer.element
1370answer.attlist &= common.attrib, answer.role.attrib, local.answer.attrib
1371# end of answer.attlist
1372
1373# end of answer.module
1374local.label.attrib = empty
1375label.role.attrib = role.attrib
1376# doc:A label on a Question or Answer.
1377label = element label { label.attlist, word.char.mix* }
1378# end of label.element
1379label.attlist &= common.attrib, label.role.attrib, local.label.attrib
1380# end of label.attlist
1381
1382# end of label.module
1383
1384# end of qandaset.content.module
1385
1386# Procedure ........................
1387local.procedure.attrib = empty
1388procedure.role.attrib = role.attrib
1389# doc:A list of operations to be performed in a well-defined sequence.
1390procedure =
1391  element procedure {
1392    procedure.attlist,
1393    blockinfo?,
1394    formalobject.title.content?,
1395    component.mix*,
1396    step+
1397  }
1398# end of procedure.element
1399procedure.attlist &=
1400  common.attrib, procedure.role.attrib, local.procedure.attrib
1401# end of procedure.attlist
1402
1403# end of procedure.module
1404local.step.attrib = empty
1405step.role.attrib = role.attrib
1406# doc:A unit of action in a procedure.
1407step =
1408  element step {
1409    step.attlist,
1410    title?,
1411    ((component.mix+,
1412      ((substeps | stepalternatives), component.mix*)?)
1413     | ((substeps | stepalternatives), component.mix*))
1414  }
1415# end of step.element
1416
1417# Performance: Whether the Step must be performed
1418
1419# not #REQUIRED!
1420step.attlist &=
1421  [ a:defaultValue = "required" ]
1422  attribute performance { "optional" | "required" }?,
1423  common.attrib,
1424  step.role.attrib,
1425  local.step.attrib
1426# end of step.attlist
1427
1428# end of step.module
1429local.substeps.attrib = empty
1430substeps.role.attrib = role.attrib
1431# doc:A wrapper for steps that occur within steps in a procedure.
1432substeps = element substeps { substeps.attlist, step+ }
1433# end of substeps.element
1434
1435# Performance: whether entire set of substeps must be performed
1436
1437# not #REQUIRED!
1438substeps.attlist &=
1439  [ a:defaultValue = "required" ]
1440  attribute performance { "optional" | "required" }?,
1441  common.attrib,
1442  substeps.role.attrib,
1443  local.substeps.attrib
1444# end of substeps.attlist
1445
1446# end of substeps.module
1447local.stepalternatives.attrib = empty
1448stepalternatives.role.attrib = role.attrib
1449# doc:Alternative steps in a procedure.
1450stepalternatives =
1451  element stepalternatives { stepalternatives.attlist, step+ }
1452# end of stepalternatives.element
1453
1454# Performance: Whether (one of) the alternatives must be performed
1455
1456# not #REQUIRED!
1457stepalternatives.attlist &=
1458  [ a:defaultValue = "required" ]
1459  attribute performance { "optional" | "required" }?,
1460  common.attrib,
1461  stepalternatives.role.attrib,
1462  local.stepalternatives.attrib
1463# end of stepalternatives.attlist
1464
1465# end of stepalternatives.module
1466
1467# end of procedure.content.module
1468
1469# Sidebar ..........................
1470local.sidebarinfo.attrib = empty
1471sidebarinfo.role.attrib = role.attrib
1472# doc:Meta-information for a Sidebar.
1473sidebarinfo = element sidebarinfo { sidebarinfo.attlist, info.class+ }
1474# end of sidebarinfo.element
1475sidebarinfo.attlist &=
1476  common.attrib, sidebarinfo.role.attrib, local.sidebarinfo.attrib
1477# end of sidebarinfo.attlist
1478
1479# end of sidebarinfo.module
1480local.sidebar.attrib = empty
1481sidebar.role.attrib = role.attrib
1482# doc:A portion of a document that is isolated from the main narrative flow.
1483sidebar =
1484  element sidebar {
1485    sidebar.attlist,
1486    sidebarinfo?,
1487    formalobject.title.content?,
1488    sidebar.mix+
1489  }
1490# end of sidebar.element
1491sidebar.attlist &=
1492  common.attrib, sidebar.role.attrib, local.sidebar.attrib
1493# end of sidebar.attlist
1494
1495# end of sidebar.module
1496
1497# end of sidebar.content.model
1498
1499# ......................................................................
1500
1501# Paragraph-related elements ...........................................
1502local.abstract.attrib = empty
1503abstract.role.attrib = role.attrib
1504# doc:A summary.
1505abstract = element abstract { abstract.attlist, title?, para.class+ }
1506# end of abstract.element
1507abstract.attlist &=
1508  common.attrib, abstract.role.attrib, local.abstract.attrib
1509# end of abstract.attlist
1510
1511# end of abstract.module
1512local.authorblurb.attrib = empty
1513authorblurb.role.attrib = role.attrib
1514# doc:A short description or note about an author.
1515authorblurb =
1516  element authorblurb { authorblurb.attlist, title?, para.class+ }
1517# end of authorblurb.element
1518authorblurb.attlist &=
1519  common.attrib, authorblurb.role.attrib, local.authorblurb.attrib
1520# end of authorblurb.attlist
1521
1522# end of authorblurb.module
1523local.personblurb.attrib = empty
1524personblurb.role.attrib = role.attrib
1525# doc:A short description or note about a person.
1526personblurb =
1527  element personblurb { personblurb.attlist, title?, para.class+ }
1528# end of personblurb.element
1529personblurb.attlist &=
1530  common.attrib, personblurb.role.attrib, local.personblurb.attrib
1531# end of personblurb.attlist
1532
1533# end of personblurb.module
1534local.blockquote.attrib = empty
1535blockquote.role.attrib = role.attrib
1536# doc:A quotation set off from the main text.
1537blockquote =
1538  element blockquote {
1539    blockquote.attlist, blockinfo?, title?, attribution?, component.mix+
1540  }
1541# end of blockquote.element
1542blockquote.attlist &=
1543  common.attrib, blockquote.role.attrib, local.blockquote.attrib
1544# end of blockquote.attlist
1545
1546# end of blockquote.module
1547local.attribution.attrib = empty
1548attribution.role.attrib = role.attrib
1549# doc:The source of a block quote or epigraph.
1550attribution =
1551  element attribution { attribution.attlist, para.char.mix* }
1552# end of attribution.element
1553attribution.attlist &=
1554  common.attrib, attribution.role.attrib, local.attribution.attrib
1555# end of attribution.attlist
1556
1557# end of attribution.module
1558local.bridgehead.attrib = empty
1559bridgehead.role.attrib = role.attrib
1560# doc:A free-floating heading.
1561bridgehead = element bridgehead { bridgehead.attlist, title.char.mix* }
1562# end of bridgehead.element
1563
1564# Renderas: Indicates the format in which the BridgeHead
1565# should appear
1566bridgehead.attlist &=
1567  attribute renderas {
1568    "other" | "sect1" | "sect2" | "sect3" | "sect4" | "sect5"
1569  }?,
1570  common.attrib,
1571  bridgehead.role.attrib,
1572  local.bridgehead.attrib
1573# end of bridgehead.attlist
1574
1575# end of bridgehead.module
1576local.remark.attrib = empty
1577remark.role.attrib = role.attrib
1578# doc:A remark (or comment) intended for presentation in a draft manuscript.
1579remark = element remark { remark.attlist, para.char.mix* }
1580# end of remark.element
1581remark.attlist &= common.attrib, remark.role.attrib, local.remark.attrib
1582# end of remark.attlist
1583
1584# end of remark.module
1585local.epigraph.attrib = empty
1586epigraph.role.attrib = role.attrib
1587# doc:A short inscription at the beginning of a document or component.
1588epigraph =
1589  element epigraph {
1590    epigraph.attlist, attribution?, (para.class | literallayout)+
1591  }
1592# end of epigraph.element
1593epigraph.attlist &=
1594  common.attrib, epigraph.role.attrib, local.epigraph.attrib
1595# end of epigraph.attlist
1596
1597# Attribution (defined above)
1598
1599# end of epigraph.module
1600local.footnote.attrib = empty
1601footnote.role.attrib = role.attrib
1602# doc:A footnote.
1603footnote = element footnote { footnote.attlist, footnote.mix+ }
1604# end of footnote.element
1605footnote.attlist &=
1606  label.attrib,
1607  common.attrib,
1608  footnote.role.attrib,
1609  local.footnote.attrib
1610# end of footnote.attlist
1611
1612# end of footnote.module
1613local.highlights.attrib = empty
1614highlights.role.attrib = role.attrib
1615# doc:A summary of the main points of the discussed component.
1616highlights = element highlights { highlights.attlist, highlights.mix+ }
1617# end of highlights.element
1618highlights.attlist &=
1619  common.attrib, highlights.role.attrib, local.highlights.attrib
1620# end of highlights.attlist
1621
1622# end of highlights.module
1623local.formalpara.attrib = empty
1624formalpara.role.attrib = role.attrib
1625# doc:A paragraph with a title.
1626formalpara =
1627  element formalpara { formalpara.attlist, title, ndxterm.class*, para }
1628# end of formalpara.element
1629formalpara.attlist &=
1630  common.attrib, formalpara.role.attrib, local.formalpara.attrib
1631# end of formalpara.attlist
1632
1633# end of formalpara.module
1634local.para.attrib = empty
1635para.role.attrib = role.attrib
1636# doc:A paragraph.
1637para = element para { para.attlist, (para.char.mix | para.mix)* }
1638# end of para.element
1639para.attlist &= common.attrib, para.role.attrib, local.para.attrib
1640# end of para.attlist
1641
1642# end of para.module
1643local.simpara.attrib = empty
1644simpara.role.attrib = role.attrib
1645# doc:A paragraph that contains only text and inline markup, no block elements.
1646simpara = element simpara { simpara.attlist, para.char.mix* }
1647# end of simpara.element
1648simpara.attlist &=
1649  common.attrib, simpara.role.attrib, local.simpara.attrib
1650# end of simpara.attlist
1651
1652# end of simpara.module
1653local.admon.attrib = empty
1654admon.role.attrib = role.attrib
1655# doc:A note of caution.
1656caution = element caution { caution.attlist, title?, admon.mix+ }
1657# end of caution.element
1658caution.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
1659# end of caution.attlist
1660
1661# doc:An admonition set off from the text.
1662important = element important { important.attlist, title?, admon.mix+ }
1663# end of important.element
1664important.attlist &=
1665  common.attrib, admon.role.attrib, local.admon.attrib
1666# end of important.attlist
1667
1668# doc:A message set off from the text.
1669note = element note { note.attlist, title?, admon.mix+ }
1670# end of note.element
1671note.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
1672# end of note.attlist
1673
1674# doc:A suggestion to the user, set off from the text.
1675tip = element tip { tip.attlist, title?, admon.mix+ }
1676# end of tip.element
1677tip.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
1678# end of tip.attlist
1679
1680# doc:An admonition set off from the text.
1681warning = element warning { warning.attlist, title?, admon.mix+ }
1682# end of warning.element
1683warning.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
1684# end of warning.attlist
1685
1686# end of admon.module
1687
1688# ......................................................................
1689
1690# Lists ................................................................
1691
1692# GlossList ........................
1693local.glosslist.attrib = empty
1694glosslist.role.attrib = role.attrib
1695# doc:A wrapper for a set of GlossEntrys.
1696glosslist =
1697  element glosslist {
1698    glosslist.attlist,
1699    blockinfo?,
1700    formalobject.title.content?,
1701    glossentry+
1702  }
1703# end of glosslist.element
1704glosslist.attlist &=
1705  common.attrib, glosslist.role.attrib, local.glosslist.attrib
1706# end of glosslist.attlist
1707
1708# end of glosslist.module
1709local.glossentry.attrib = empty
1710glossentry.role.attrib = role.attrib
1711# doc:An entry in a Glossary or GlossList.
1712glossentry =
1713  element glossentry {
1714    glossentry.attlist,
1715    glossterm,
1716    acronym?,
1717    abbrev?,
1718    ndxterm.class*,
1719    revhistory?,
1720    (glosssee | glossdef+)
1721  }
1722# end of glossentry.element
1723
1724# SortAs: String by which the GlossEntry is to be sorted
1725# (alphabetized) in lieu of its proper content
1726glossentry.attlist &=
1727  attribute sortas { text }?,
1728  common.attrib,
1729  glossentry.role.attrib,
1730  local.glossentry.attrib
1731# end of glossentry.attlist
1732
1733# end of glossentry.module
1734
1735# GlossTerm (defined in the Inlines section, below)
1736local.glossdef.attrib = empty
1737glossdef.role.attrib = role.attrib
1738# doc:A definition in a GlossEntry.
1739glossdef =
1740  element glossdef { glossdef.attlist, glossdef.mix+, glossseealso* }
1741# end of glossdef.element
1742
1743# Subject: List of subjects; keywords for the definition
1744glossdef.attlist &=
1745  attribute subject { text }?,
1746  common.attrib,
1747  glossdef.role.attrib,
1748  local.glossdef.attrib
1749# end of glossdef.attlist
1750
1751# end of glossdef.module
1752local.glosssee.attrib = empty
1753glosssee.role.attrib = role.attrib
1754# doc:A cross-reference from one GlossEntry to another.
1755glosssee = element glosssee { glosssee.attlist, para.char.mix* }
1756# end of glosssee.element
1757
1758# OtherTerm: Reference to the GlossEntry whose GlossTerm
1759# should be displayed at the point of the GlossSee
1760glosssee.attlist &=
1761  attribute otherterm { xsd:IDREF }?,
1762  common.attrib,
1763  glosssee.role.attrib,
1764  local.glosssee.attrib
1765# end of glosssee.attlist
1766
1767# end of glosssee.module
1768local.glossseealso.attrib = empty
1769glossseealso.role.attrib = role.attrib
1770# doc:A cross-reference from one GlossEntry to another.
1771glossseealso =
1772  element glossseealso { glossseealso.attlist, para.char.mix* }
1773# end of glossseealso.element
1774
1775# OtherTerm: Reference to the GlossEntry whose GlossTerm
1776# should be displayed at the point of the GlossSeeAlso
1777glossseealso.attlist &=
1778  attribute otherterm { xsd:IDREF }?,
1779  common.attrib,
1780  glossseealso.role.attrib,
1781  local.glossseealso.attrib
1782# end of glossseealso.attlist
1783
1784# end of glossseealso.module
1785
1786# end of glossentry.content.module
1787
1788# ItemizedList and OrderedList .....
1789local.itemizedlist.attrib = empty
1790itemizedlist.role.attrib = role.attrib
1791# doc:A list in which each entry is marked with a bullet or other dingbat.
1792itemizedlist =
1793  element itemizedlist {
1794    itemizedlist.attlist,
1795    blockinfo?,
1796    formalobject.title.content?,
1797    listpreamble.mix*,
1798    listitem+
1799  }
1800# end of itemizedlist.element
1801
1802# Spacing: Whether the vertical space in the list should be
1803# compressed
1804
1805# Mark: Keyword, e.g., bullet, dash, checkbox, none;
1806# list of keywords and defaults are implementation specific
1807itemizedlist.attlist &=
1808  attribute spacing { "normal" | "compact" }?,
1809  mark.attrib,
1810  common.attrib,
1811  itemizedlist.role.attrib,
1812  local.itemizedlist.attrib
1813# end of itemizedlist.attlist
1814
1815# end of itemizedlist.module
1816local.orderedlist.attrib = empty
1817orderedlist.role.attrib = role.attrib
1818# doc:A list in which each entry is marked with a sequentially incremented label.
1819orderedlist =
1820  element orderedlist {
1821    orderedlist.attlist,
1822    blockinfo?,
1823    formalobject.title.content?,
1824    listpreamble.mix*,
1825    listitem+
1826  }
1827# end of orderedlist.element
1828
1829# Numeration: Style of ListItem numbered; default is expected
1830# to be Arabic
1831
1832# InheritNum: Specifies for a nested list that the numbering
1833# of ListItems should include the number of the item
1834# within which they are nested (e.g., 1a and 1b within 1,
1835# rather than a and b)
1836
1837# Continuation: Where list numbering begins afresh (Restarts,
1838# the default) or continues that of the immediately preceding
1839# list (Continues)
1840
1841# Spacing: Whether the vertical space in the list should be
1842# compressed
1843orderedlist.attlist &=
1844  attribute numeration {
1845    "arabic" | "upperalpha" | "loweralpha" | "upperroman" | "lowerroman"
1846  }?,
1847  [ a:defaultValue = "ignore" ]
1848  attribute inheritnum { "inherit" | "ignore" }?,
1849  [ a:defaultValue = "restarts" ]
1850  attribute continuation { "continues" | "restarts" }?,
1851  attribute spacing { "normal" | "compact" }?,
1852  common.attrib,
1853  orderedlist.role.attrib,
1854  local.orderedlist.attrib
1855# end of orderedlist.attlist
1856
1857# end of orderedlist.module
1858local.listitem.attrib = empty
1859listitem.role.attrib = role.attrib
1860# doc:A wrapper for the elements of a list item.
1861listitem = element listitem { listitem.attlist, component.mix+ }
1862# end of listitem.element
1863
1864# Override: Indicates the mark to be used for this ListItem
1865# instead of the default mark or the mark specified by
1866# the Mark attribute on the enclosing ItemizedList
1867listitem.attlist &=
1868  attribute override { text }?,
1869  common.attrib,
1870  listitem.role.attrib,
1871  local.listitem.attrib
1872# end of listitem.attlist
1873
1874# end of listitem.module
1875
1876# SegmentedList ....................
1877local.segmentedlist.attrib = empty
1878segmentedlist.role.attrib = role.attrib
1879# doc:A segmented list, a list of sets of elements.
1880segmentedlist =
1881  element segmentedlist {
1882    segmentedlist.attlist,
1883    formalobject.title.content?,
1884    segtitle+,
1885    seglistitem+
1886  }
1887# end of segmentedlist.element
1888segmentedlist.attlist &=
1889  common.attrib, segmentedlist.role.attrib, local.segmentedlist.attrib
1890# end of segmentedlist.attlist
1891
1892# end of segmentedlist.module
1893local.segtitle.attrib = empty
1894segtitle.role.attrib = role.attrib
1895# doc:The title of an element of a list item in a segmented list.
1896segtitle = element segtitle { segtitle.attlist, title.char.mix* }
1897# end of segtitle.element
1898segtitle.attlist &=
1899  common.attrib, segtitle.role.attrib, local.segtitle.attrib
1900# end of segtitle.attlist
1901
1902# end of segtitle.module
1903local.seglistitem.attrib = empty
1904seglistitem.role.attrib = role.attrib
1905# doc:A list item in a segmented list.
1906seglistitem = element seglistitem { seglistitem.attlist, seg+ }
1907# end of seglistitem.element
1908seglistitem.attlist &=
1909  common.attrib, seglistitem.role.attrib, local.seglistitem.attrib
1910# end of seglistitem.attlist
1911
1912# end of seglistitem.module
1913local.seg.attrib = empty
1914seg.role.attrib = role.attrib
1915# doc:An element of a list item in a segmented list.
1916seg = element seg { seg.attlist, para.char.mix* }
1917# end of seg.element
1918seg.attlist &= common.attrib, seg.role.attrib, local.seg.attrib
1919# end of seg.attlist
1920
1921# end of seg.module
1922
1923# end of segmentedlist.content.module
1924
1925# SimpleList .......................
1926local.simplelist.attrib = empty
1927simplelist.role.attrib = role.attrib
1928# doc:An undecorated list of single words or short phrases.
1929simplelist = element simplelist { simplelist.attlist, member+ }
1930# end of simplelist.element
1931
1932# Columns: The number of columns the array should contain
1933
1934# Type: How the Members of the SimpleList should be
1935# formatted: Inline (members separated with commas etc.
1936# inline), Vert (top to bottom in n Columns), or Horiz (in
1937# the direction of text flow) in n Columns.  If Column
1938# is 1 or implied, Type=Vert and Type=Horiz give the same
1939# results.
1940simplelist.attlist &=
1941  attribute columns { text }?,
1942  [ a:defaultValue = "vert" ]
1943  attribute type { "inline" | "vert" | "horiz" }?,
1944  common.attrib,
1945  simplelist.role.attrib,
1946  local.simplelist.attrib
1947# end of simplelist.attlist
1948
1949# end of simplelist.module
1950local.member.attrib = empty
1951member.role.attrib = role.attrib
1952# doc:An element of a simple list.
1953member = element member { member.attlist, para.char.mix* }
1954# end of member.element
1955member.attlist &= common.attrib, member.role.attrib, local.member.attrib
1956# end of member.attlist
1957
1958# end of member.module
1959
1960# end of simplelist.content.module
1961
1962# VariableList .....................
1963local.variablelist.attrib = empty
1964variablelist.role.attrib = role.attrib
1965# doc:A list in which each entry is composed of a set of one or more terms and an associated description.
1966variablelist =
1967  element variablelist {
1968    variablelist.attlist,
1969    blockinfo?,
1970    formalobject.title.content?,
1971    listpreamble.mix*,
1972    varlistentry+
1973  }
1974# end of variablelist.element
1975
1976# TermLength: Length beyond which the presentation engine
1977# may consider the Term too long and select an alternate
1978# presentation of the Term and, or, its associated ListItem.
1979variablelist.attlist &=
1980  attribute termlength { text }?,
1981  attribute spacing { "normal" | "compact" }?,
1982  common.attrib,
1983  variablelist.role.attrib,
1984  local.variablelist.attrib
1985# end of variablelist.attlist
1986
1987# end of variablelist.module
1988local.varlistentry.attrib = empty
1989varlistentry.role.attrib = role.attrib
1990# doc:A wrapper for a set of terms and the associated description in a variable list.
1991varlistentry =
1992  element varlistentry { varlistentry.attlist, term+, listitem }
1993# end of varlistentry.element
1994varlistentry.attlist &=
1995  common.attrib, varlistentry.role.attrib, local.varlistentry.attrib
1996# end of varlistentry.attlist
1997
1998# end of varlistentry.module
1999local.term.attrib = empty
2000term.role.attrib = role.attrib
2001# doc:The word or phrase being defined or described in a variable list.
2002term = element term { term.attlist, para.char.mix* }
2003# end of term.element
2004term.attlist &= common.attrib, term.role.attrib, local.term.attrib
2005# end of term.attlist
2006
2007# end of term.module
2008
2009# ListItem (defined above)
2010
2011# end of variablelist.content.module
2012
2013# CalloutList ......................
2014local.calloutlist.attrib = empty
2015calloutlist.role.attrib = role.attrib
2016# doc:A list of Callouts.
2017calloutlist =
2018  element calloutlist {
2019    calloutlist.attlist, formalobject.title.content?, callout+
2020  }
2021# end of calloutlist.element
2022calloutlist.attlist &=
2023  common.attrib, calloutlist.role.attrib, local.calloutlist.attrib
2024# end of calloutlist.attlist
2025
2026# end of calloutlist.module
2027local.callout.attrib = empty
2028callout.role.attrib = role.attrib
2029# doc:A &ldquo;called out&rdquo; description of a marked Area.
2030callout = element callout { callout.attlist, component.mix+ }
2031# end of callout.element
2032
2033# AreaRefs: IDs of one or more Areas or AreaSets described
2034# by this Callout
2035callout.attlist &=
2036  attribute arearefs { xsd:IDREFS },
2037  common.attrib,
2038  callout.role.attrib,
2039  local.callout.attrib
2040# end of callout.attlist
2041
2042# end of callout.module
2043
2044# end of calloutlist.content.module
2045
2046# ......................................................................
2047
2048# Objects ..............................................................
2049
2050# Examples etc. ....................
2051local.example.attrib = empty
2052example.role.attrib = role.attrib
2053# doc:A formal example, with a title.
2054example =
2055  element example {
2056    example.attlist,
2057    blockinfo?,
2058    formalobject.title.content,
2059    example.mix+
2060  }
2061# end of example.element
2062example.attlist &=
2063  attribute floatstyle { text }?,
2064  label.attrib,
2065  width.attrib,
2066  common.attrib,
2067  example.role.attrib,
2068  local.example.attrib
2069# end of example.attlist
2070
2071# end of example.module
2072local.informalexample.attrib = empty
2073informalexample.role.attrib = role.attrib
2074# doc:A displayed example without a title.
2075informalexample =
2076  element informalexample {
2077    informalexample.attlist, blockinfo?, example.mix+
2078  }
2079# end of informalexample.element
2080informalexample.attlist &=
2081  attribute floatstyle { text }?,
2082  width.attrib,
2083  common.attrib,
2084  informalexample.role.attrib,
2085  local.informalexample.attrib
2086# end of informalexample.attlist
2087
2088# end of informalexample.module
2089local.programlistingco.attrib = empty
2090programlistingco.role.attrib = role.attrib
2091# doc:A program listing with associated areas used in callouts.
2092programlistingco =
2093  element programlistingco {
2094    programlistingco.attlist, areaspec, programlisting, calloutlist*
2095  }
2096# end of programlistingco.element
2097programlistingco.attlist &=
2098  common.attrib,
2099  programlistingco.role.attrib,
2100  local.programlistingco.attrib
2101# end of programlistingco.attlist
2102
2103# CalloutList (defined above in Lists)
2104
2105# end of informalexample.module
2106local.areaspec.attrib = empty
2107areaspec.role.attrib = role.attrib
2108# doc:A collection of regions in a graphic or code example.
2109areaspec = element areaspec { areaspec.attlist, (area | areaset)+ }
2110# end of areaspec.element
2111
2112# Units: global unit of measure in which coordinates in
2113# this spec are expressed:
2114#
2115# - CALSPair "x1,y1 x2,y2": lower-left and upper-right
2116# coordinates in a rectangle describing repro area in which
2117# graphic is placed, where X and Y dimensions are each some
2118# number 0..10000 (taken from CALS graphic attributes)
2119#
2120# - LineColumn "line column": line number and column number
2121# at which to start callout text in "linespecific" content
2122#
2123# - LineRange "startline endline": whole lines from startline
2124# to endline in "linespecific" content
2125#
2126# - LineColumnPair "line1 col1 line2 col2": starting and ending
2127# points of area in "linespecific" content that starts at
2128# first position and ends at second position (including the
2129# beginnings of any intervening lines)
2130#
2131# - Other: directive to look at value of OtherUnits attribute
2132# to get implementation-specific keyword
2133#
2134# The default is implementation-specific; usually dependent on
2135# the parent element (GraphicCO gets CALSPair, ProgramListingCO
2136# and ScreenCO get LineColumn)
2137
2138# OtherUnits: User-defined units
2139areaspec.attlist &=
2140  attribute units {
2141    "calspair" | "linecolumn" | "linerange" | "linecolumnpair" | "other"
2142  }?,
2143  attribute otherunits { xsd:NMTOKEN }?,
2144  common.attrib,
2145  areaspec.role.attrib,
2146  local.areaspec.attrib
2147# end of areaspec.attlist
2148
2149# end of areaspec.module
2150local.area.attrib = empty
2151area.role.attrib = role.attrib
2152# doc:A region defined for a Callout in a graphic or code example.
2153area = element area { area.attlist, empty }
2154# end of area.element
2155
2156# bug number/symbol override or initialization
2157
2158# to any related information
2159
2160# Units: unit of measure in which coordinates in this
2161# area are expressed; inherits from AreaSet and AreaSpec
2162
2163# OtherUnits: User-defined units
2164area.attlist &=
2165  label.attrib,
2166  linkends.attrib,
2167  attribute units {
2168    "calspair" | "linecolumn" | "linerange" | "linecolumnpair" | "other"
2169  }?,
2170  attribute otherunits { xsd:NMTOKEN }?,
2171  attribute coords { text },
2172  idreq.common.attrib,
2173  area.role.attrib,
2174  local.area.attrib
2175# end of area.attlist
2176
2177# end of area.module
2178local.areaset.attrib = empty
2179areaset.role.attrib = role.attrib
2180# doc:A set of related areas in a graphic or code example.
2181areaset = element areaset { areaset.attlist, area+ }
2182# end of areaset.element
2183
2184# bug number/symbol override or initialization
2185
2186# Units: unit of measure in which coordinates in this
2187# area are expressed; inherits from AreaSpec
2188areaset.attlist &=
2189  label.attrib,
2190  attribute units {
2191    "calspair" | "linecolumn" | "linerange" | "linecolumnpair" | "other"
2192  }?,
2193  attribute otherunits { xsd:NMTOKEN }?,
2194  attribute coords { text },
2195  idreq.common.attrib,
2196  areaset.role.attrib,
2197  local.areaset.attrib
2198# end of areaset.attlist
2199
2200# end of areaset.module
2201
2202# end of areaspec.content.module
2203local.programlisting.attrib = empty
2204programlisting.role.attrib = role.attrib
2205# doc:A literal listing of all or part of a program.
2206programlisting =
2207  element programlisting {
2208    programlisting.attlist,
2209    (para.char.mix | co | coref | lineannotation | textobject)*
2210  }
2211# end of programlisting.element
2212programlisting.attlist &=
2213  width.attrib,
2214  linespecific.attrib,
2215  common.attrib,
2216  programlisting.role.attrib,
2217  local.programlisting.attrib
2218# end of programlisting.attlist
2219
2220# end of programlisting.module
2221local.literallayout.attrib = empty
2222literallayout.role.attrib = role.attrib
2223# doc:A block of text in which line breaks and white space are to be reproduced faithfully.
2224literallayout =
2225  element literallayout {
2226    literallayout.attlist,
2227    (para.char.mix | co | coref | textobject | lineannotation)*
2228  }
2229# end of literallayout.element
2230literallayout.attlist &=
2231  width.attrib,
2232  linespecific.attrib,
2233  [ a:defaultValue = "normal" ]
2234  attribute class { "monospaced" | "normal" }?,
2235  common.attrib,
2236  literallayout.role.attrib,
2237  local.literallayout.attrib
2238# end of literallayout.attlist
2239
2240# LineAnnotation (defined in the Inlines section, below)
2241
2242# end of literallayout.module
2243local.screenco.attrib = empty
2244screenco.role.attrib = role.attrib
2245# doc:A screen with associated areas used in callouts.
2246screenco =
2247  element screenco { screenco.attlist, areaspec, screen, calloutlist* }
2248# end of screenco.element
2249screenco.attlist &=
2250  common.attrib, screenco.role.attrib, local.screenco.attrib
2251# end of screenco.attlist
2252
2253# AreaSpec (defined above)
2254
2255# CalloutList (defined above in Lists)
2256
2257# end of screenco.module
2258local.screen.attrib = empty
2259screen.role.attrib = role.attrib
2260# doc:Text that a user sees or might see on a computer screen.
2261screen =
2262  element screen {
2263    screen.attlist,
2264    (para.char.mix | co | coref | textobject | lineannotation)*
2265  }
2266# end of screen.element
2267screen.attlist &=
2268  width.attrib,
2269  linespecific.attrib,
2270  common.attrib,
2271  screen.role.attrib,
2272  local.screen.attrib
2273# end of screen.attlist
2274
2275# end of screen.module
2276local.screenshot.attrib = empty
2277screenshot.role.attrib = role.attrib
2278# doc:A representation of what the user sees or might see on a computer screen.
2279screenshot =
2280  element screenshot {
2281    screenshot.attlist,
2282    screeninfo?,
2283    (graphic | graphicco | mediaobject | mediaobjectco)
2284  }
2285# end of screenshot.element
2286screenshot.attlist &=
2287  common.attrib, screenshot.role.attrib, local.screenshot.attrib
2288# end of screenshot.attlist
2289
2290# end of screenshot.module
2291local.screeninfo.attrib = empty
2292screeninfo.role.attrib = role.attrib
2293# doc:Information about how a screen shot was produced.
2294screeninfo = element screeninfo { screeninfo.attlist, para.char.mix* }
2295# end of screeninfo.element
2296screeninfo.attlist &=
2297  common.attrib, screeninfo.role.attrib, local.screeninfo.attrib
2298# end of screeninfo.attlist
2299
2300# end of screeninfo.module
2301
2302# end of screenshot.content.module
2303
2304# Figures etc. .....................
2305local.figure.attrib = empty
2306figure.role.attrib = role.attrib
2307# doc:A formal figure, generally an illustration, with a title.
2308figure =
2309  element figure {
2310    figure.attlist,
2311    blockinfo?,
2312    formalobject.title.content,
2313    (figure.mix | link.char.class)+
2314  }
2315# end of figure.element
2316
2317# Float: Whether the Figure is supposed to be rendered
2318# where convenient (yes (1) value) or at the place it occurs
2319# in the text (no (0) value, the default)
2320figure.attlist &=
2321  [ a:defaultValue = "0" ] attribute float { yesorno.attvals }?,
2322  attribute floatstyle { text }?,
2323  attribute pgwide { yesorno.attvals }?,
2324  label.attrib,
2325  common.attrib,
2326  figure.role.attrib,
2327  local.figure.attrib
2328# end of figure.attlist
2329
2330# end of figure.module
2331local.informalfigure.attrib = empty
2332informalfigure.role.attrib = role.attrib
2333# doc:A untitled figure.
2334informalfigure =
2335  element informalfigure {
2336    informalfigure.attlist, blockinfo?, (figure.mix | link.char.class)+
2337  }
2338# end of informalfigure.element
2339
2340# Float: Whether the Figure is supposed to be rendered
2341# where convenient (yes (1) value) or at the place it occurs
2342# in the text (no (0) value, the default)
2343informalfigure.attlist &=
2344  [ a:defaultValue = "0" ] attribute float { yesorno.attvals }?,
2345  attribute floatstyle { text }?,
2346  attribute pgwide { yesorno.attvals }?,
2347  label.attrib,
2348  common.attrib,
2349  informalfigure.role.attrib,
2350  local.informalfigure.attrib
2351# end of informalfigure.attlist
2352
2353# end of informalfigure.module
2354local.graphicco.attrib = empty
2355graphicco.role.attrib = role.attrib
2356# doc:A graphic that contains callout areas.
2357graphicco =
2358  element graphicco {
2359    graphicco.attlist, areaspec, graphic, calloutlist*
2360  }
2361# end of graphicco.element
2362graphicco.attlist &=
2363  common.attrib, graphicco.role.attrib, local.graphicco.attrib
2364# end of graphicco.attlist
2365
2366# AreaSpec (defined above in Examples)
2367
2368# CalloutList (defined above in Lists)
2369
2370# end of graphicco.module
2371
2372# Graphical data can be the content of Graphic, or you can reference
2373# an external file either as an entity (Entitref) or a filename
2374# (Fileref).
2375local.graphic.attrib = empty
2376graphic.role.attrib = role.attrib
2377# doc:A displayed graphical object (not an inline).
2378graphic = element graphic { graphic.attlist, empty }
2379# end of graphic.element
2380graphic.attlist &=
2381  graphics.attrib,
2382  common.attrib,
2383  graphic.role.attrib,
2384  local.graphic.attrib
2385# end of graphic.attlist
2386
2387# end of graphic.module
2388local.inlinegraphic.attrib = empty
2389inlinegraphic.role.attrib = role.attrib
2390# doc:An object containing or pointing to graphical data that will be rendered inline.
2391inlinegraphic = element inlinegraphic { inlinegraphic.attlist, empty }
2392# end of inlinegraphic.element
2393inlinegraphic.attlist &=
2394  graphics.attrib,
2395  common.attrib,
2396  inlinegraphic.role.attrib,
2397  local.inlinegraphic.attrib
2398# end of inlinegraphic.attlist
2399
2400# end of inlinegraphic.module
2401local.mediaobject.attrib = empty
2402mediaobject.role.attrib = role.attrib
2403# doc:A displayed media object (video, audio, image, etc.).
2404mediaobject =
2405  element mediaobject {
2406    mediaobject.attlist, objectinfo?, mediaobject.mix+, caption?
2407  }
2408# end of mediaobject.element
2409mediaobject.attlist &=
2410  common.attrib, mediaobject.role.attrib, local.mediaobject.attrib
2411# end of mediaobject.attlist
2412
2413# end of mediaobject.module
2414local.inlinemediaobject.attrib = empty
2415inlinemediaobject.role.attrib = role.attrib
2416# doc:An inline media object (video, audio, image, and so on).
2417inlinemediaobject =
2418  element inlinemediaobject {
2419    inlinemediaobject.attlist, objectinfo?, mediaobject.mix+
2420  }
2421# end of inlinemediaobject.element
2422inlinemediaobject.attlist &=
2423  common.attrib,
2424  inlinemediaobject.role.attrib,
2425  local.inlinemediaobject.attrib
2426# end of inlinemediaobject.attlist
2427
2428# end of inlinemediaobject.module
2429local.videoobject.attrib = empty
2430videoobject.role.attrib = role.attrib
2431# doc:A wrapper for video data and its associated meta-information.
2432videoobject =
2433  element videoobject { videoobject.attlist, objectinfo?, videodata }
2434# end of videoobject.element
2435videoobject.attlist &=
2436  common.attrib, videoobject.role.attrib, local.videoobject.attrib
2437# end of videoobject.attlist
2438
2439# end of videoobject.module
2440local.audioobject.attrib = empty
2441audioobject.role.attrib = role.attrib
2442# doc:A wrapper for audio data and its associated meta-information.
2443audioobject =
2444  element audioobject { audioobject.attlist, objectinfo?, audiodata }
2445# end of audioobject.element
2446audioobject.attlist &=
2447  common.attrib, audioobject.role.attrib, local.audioobject.attrib
2448# end of audioobject.attlist
2449
2450# end of audioobject.module
2451local.imageobject.attrib = empty
2452imageobject.role.attrib = role.attrib
2453# doc:A wrapper for image data and its associated meta-information.
2454imageobject =
2455  element imageobject { imageobject.attlist, objectinfo?, imagedata }
2456# end of imageobject.element
2457imageobject.attlist &=
2458  common.attrib, imageobject.role.attrib, local.imageobject.attrib
2459# end of imageobject.attlist
2460
2461# end of imageobject.module
2462local.textobject.attrib = empty
2463textobject.role.attrib = role.attrib
2464# doc:A wrapper for a text description of an object and its associated meta-information.
2465textobject =
2466  element textobject {
2467    textobject.attlist,
2468    objectinfo?,
2469    (phrase | textdata | textobject.mix+)
2470  }
2471# end of textobject.element
2472textobject.attlist &=
2473  common.attrib, textobject.role.attrib, local.textobject.attrib
2474# end of textobject.attlist
2475
2476# end of textobject.module
2477local.objectinfo.attrib = empty
2478objectinfo.role.attrib = role.attrib
2479# doc:Meta-information for an object.
2480objectinfo = element objectinfo { objectinfo.attlist, info.class+ }
2481# end of objectinfo.element
2482objectinfo.attlist &=
2483  common.attrib, objectinfo.role.attrib, local.objectinfo.attrib
2484# end of objectinfo.attlist
2485
2486# end of objectinfo.module
2487
2488# EntityRef: Name of an external entity containing the content
2489# of the object data
2490
2491# FileRef: Filename, qualified by a pathname if desired,
2492# designating the file containing the content of the object data
2493
2494# Format: Notation of the element content, if any
2495
2496# SrcCredit: Information about the source of the image
2497local.objectdata.attrib = empty
2498objectdata.attrib =
2499  attribute entityref { xsd:ENTITY }?,
2500  attribute fileref { text }?,
2501  attribute format { notation.class }?,
2502  attribute srccredit { text }?,
2503  local.objectdata.attrib
2504local.videodata.attrib = empty
2505videodata.role.attrib = role.attrib
2506# doc:Pointer to external video data.
2507videodata = element videodata { videodata.attlist, empty }
2508# end of videodata.element
2509
2510# Width: Same as CALS reprowid (desired width)
2511
2512# Depth: Same as CALS reprodep (desired depth)
2513
2514# Align: Same as CALS hplace with 'none' removed; #IMPLIED means
2515# application-specific
2516
2517# Scale: Conflation of CALS hscale and vscale
2518
2519# Scalefit: Same as CALS scalefit
2520videodata.attlist &=
2521  attribute width { text }?,
2522  attribute contentwidth { text }?,
2523  attribute depth { text }?,
2524  attribute contentdepth { text }?,
2525  attribute align { "left" | "right" | "center" }?,
2526  attribute valign { "top" | "middle" | "bottom" }?,
2527  attribute scale { text }?,
2528  attribute scalefit { yesorno.attvals }?,
2529  objectdata.attrib,
2530  common.attrib,
2531  videodata.role.attrib,
2532  local.videodata.attrib
2533# end of videodata.attlist
2534
2535# end of videodata.module
2536local.audiodata.attrib = empty
2537audiodata.role.attrib = role.attrib
2538# doc:Pointer to external audio data.
2539audiodata = element audiodata { audiodata.attlist, empty }
2540# end of audiodata.element
2541audiodata.attlist &=
2542  objectdata.attrib,
2543  common.attrib,
2544  audiodata.role.attrib,
2545  local.audiodata.attrib
2546# end of audiodata.attlist
2547
2548# end of audiodata.module
2549local.imagedata.attrib = empty
2550imagedata.role.attrib = role.attrib
2551# doc:Pointer to external image data.
2552imagedata = element imagedata { imagedata.attlist, empty }
2553# end of imagedata.element
2554
2555# Width: Same as CALS reprowid (desired width)
2556
2557# Depth: Same as CALS reprodep (desired depth)
2558
2559# Align: Same as CALS hplace with 'none' removed; #IMPLIED means
2560# application-specific
2561
2562# Scale: Conflation of CALS hscale and vscale
2563
2564# Scalefit: Same as CALS scalefit
2565imagedata.attlist &=
2566  attribute width { text }?,
2567  attribute contentwidth { text }?,
2568  attribute depth { text }?,
2569  attribute contentdepth { text }?,
2570  attribute align { "left" | "right" | "center" }?,
2571  attribute valign { "top" | "middle" | "bottom" }?,
2572  attribute scale { text }?,
2573  attribute scalefit { yesorno.attvals }?,
2574  objectdata.attrib,
2575  common.attrib,
2576  imagedata.role.attrib,
2577  local.imagedata.attrib
2578# end of imagedata.attlist
2579
2580# end of imagedata.module
2581local.textdata.attrib = empty
2582textdata.role.attrib = role.attrib
2583# doc:Pointer to external text data.
2584textdata = element textdata { textdata.attlist, empty }
2585# end of textdata.element
2586textdata.attlist &=
2587  attribute encoding { text }?,
2588  objectdata.attrib,
2589  common.attrib,
2590  textdata.role.attrib,
2591  local.textdata.attrib
2592# end of textdata.attlist
2593
2594# end of textdata.module
2595local.mediaobjectco.attrib = empty
2596mediaobjectco.role.attrib = role.attrib
2597# doc:A media object that contains callouts.
2598mediaobjectco =
2599  element mediaobjectco {
2600    mediaobjectco.attlist,
2601    objectinfo?,
2602    imageobjectco,
2603    (imageobjectco | textobject)*
2604  }
2605# end of mediaobjectco.element
2606mediaobjectco.attlist &=
2607  common.attrib, mediaobjectco.role.attrib, local.mediaobjectco.attrib
2608# end of mediaobjectco.attlist
2609
2610# end of mediaobjectco.module
2611local.imageobjectco.attrib = empty
2612imageobjectco.role.attrib = role.attrib
2613# doc:A wrapper for an image object with callouts.
2614imageobjectco =
2615  element imageobjectco {
2616    imageobjectco.attlist, areaspec, imageobject, calloutlist*
2617  }
2618# end of imageobjectco.element
2619imageobjectco.attlist &=
2620  common.attrib, imageobjectco.role.attrib, local.imageobjectco.attrib
2621# end of imageobjectco.attlist
2622
2623# end of imageobjectco.module
2624
2625# end of mediaobject.content.module
2626
2627# Equations ........................
2628
2629# This PE provides a mechanism for replacing equation content,
2630
2631# perhaps adding a new or different model (e.g., MathML)
2632equation.content = alt?, (graphic+ | mediaobject+ | mathphrase+)
2633inlineequation.content =
2634  alt?, (graphic+ | inlinemediaobject+ | mathphrase+)
2635local.equation.attrib = empty
2636equation.role.attrib = role.attrib
2637# doc:A displayed mathematical equation.
2638equation =
2639  element equation {
2640    equation.attlist,
2641    blockinfo?,
2642    formalobject.title.content?,
2643    (informalequation | equation.content)
2644  }
2645# end of equation.element
2646equation.attlist &=
2647  attribute floatstyle { text }?,
2648  label.attrib,
2649  common.attrib,
2650  equation.role.attrib,
2651  local.equation.attrib
2652# end of equation.attlist
2653
2654# end of equation.module
2655local.informalequation.attrib = empty
2656informalequation.role.attrib = role.attrib
2657# doc:A displayed mathematical equation without a title.
2658informalequation =
2659  element informalequation {
2660    informalequation.attlist, blockinfo?, equation.content
2661  }
2662# end of informalequation.element
2663informalequation.attlist &=
2664  attribute floatstyle { text }?,
2665  common.attrib,
2666  informalequation.role.attrib,
2667  local.informalequation.attrib
2668# end of informalequation.attlist
2669
2670# end of informalequation.module
2671local.inlineequation.attrib = empty
2672inlineequation.role.attrib = role.attrib
2673# doc:A mathematical equation or expression occurring inline.
2674inlineequation =
2675  element inlineequation {
2676    inlineequation.attlist, inlineequation.content
2677  }
2678# end of inlineequation.element
2679inlineequation.attlist &=
2680  common.attrib, inlineequation.role.attrib, local.inlineequation.attrib
2681# end of inlineequation.attlist
2682
2683# end of inlineequation.module
2684local.alt.attrib = empty
2685alt.role.attrib = role.attrib
2686# doc:Text representation for a graphical element.
2687alt = element alt { alt.attlist, text }
2688# end of alt.element
2689alt.attlist &= common.attrib, alt.role.attrib, local.alt.attrib
2690# end of alt.attlist
2691
2692# end of alt.module
2693local.mathphrase.attrib = empty
2694mathphrase.role.attrib = role.attrib
2695# doc:A mathematical phrase, an expression that can be represented with ordinary text and a small amount of markup.
2696mathphrase =
2697  element mathphrase {
2698    mathphrase.attlist, (text | subscript | superscript | emphasis)*
2699  }
2700# end of mathphrase.element
2701mathphrase.attlist &=
2702  common.attrib, mathphrase.role.attrib, local.mathphrase.attrib
2703# end of mathphrase.attlist
2704
2705# end of mathphrase.module
2706
2707# Tables ...........................
2708
2709# Choose a table model. CALS or OASIS XML Exchange
2710
2711# Do we allow the HTML table model as well?
2712
2713# ======================================================
2714
2715# xhtmltbl.mod defines HTML tables and sets parameter
2716# entities so that, when the CALS table module is read,
2717# we end up allowing any table to be CALS or HTML.
2718# i.e. This include must come first!
2719
2720# ======================================================
2721include "htmltblx.rnc"
2722# end of allow.html.tables
2723
2724# Add label and role attributes to table and informaltable
2725
2726# Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
2727# EntryTbl, and Entry (and InformalTable element).
2728
2729# Content model for Table.
2730
2731# Allow either objects or inlines; beware of REs between elements.
2732
2733# Reference CALS Table Model
2734include "calstblx.rnc"
2735# end of table.module
2736
2737# Note that InformalTable is dependent on some of the entity
2738# declarations that customize Table.
2739local.informaltable.attrib = empty
2740# the following entity may have been declared by the XHTML table module
2741
2742# doc:A table without a title.
2743informaltable =
2744  element informaltable {
2745    informaltable.attlist, blockinfo?, informal.tbl.table.mdl
2746  }
2747# end of informaltable.element
2748
2749# Frame, Colsep, and Rowsep must be repeated because
2750# they are not in entities in the table module.
2751
2752# includes TabStyle, ToCentry, ShortEntry,
2753# Orient, PgWide
2754
2755# includes Label
2756
2757# includes common attributes
2758informaltable.attlist &=
2759  attribute frame { tbl.frame.attval }?,
2760  attribute colsep { yesorno.attvals }?,
2761  attribute rowsep { yesorno.attvals }?,
2762  common.table.attribs,
2763  tbl.table.att,
2764  local.informaltable.attrib
2765# end of informaltable.attlist
2766
2767# end of informaltable.module
2768local.caption.attrib = empty
2769caption.role.attrib = role.attrib
2770# doc:A caption.
2771caption = element caption { caption.attlist, (text | textobject.mix)* }
2772# end of caption.element
2773
2774# attrs comes from HTML tables ...
2775
2776# common.attrib, but without ID because ID is in attrs
2777caption.attlist.content =
2778  caption.role.attrib,
2779  attrs,
2780  attribute align { "top" | "bottom" | "left" | "right" }?,
2781  local.caption.attrib
2782caption.attlist &= caption.attlist.content
2783# end of caption.attlist
2784
2785# end of caption.module
2786
2787# ......................................................................
2788
2789# Synopses .............................................................
2790
2791# Synopsis .........................
2792local.synopsis.attrib = empty
2793synopsis.role.attrib = role.attrib
2794# doc:A general-purpose element for representing the syntax of commands or functions.
2795synopsis =
2796  element synopsis {
2797    synopsis.attlist,
2798    (para.char.mix
2799     | graphic
2800     | mediaobject
2801     | co
2802     | coref
2803     | textobject
2804     | lineannotation)*
2805  }
2806# end of synopsis.element
2807synopsis.attlist &=
2808  label.attrib,
2809  linespecific.attrib,
2810  common.attrib,
2811  synopsis.role.attrib,
2812  local.synopsis.attrib
2813# end of synopsis.attlist
2814
2815# LineAnnotation (defined in the Inlines section, below)
2816
2817# end of synopsis.module
2818
2819# CmdSynopsis ......................
2820local.cmdsynopsis.attrib = empty
2821cmdsynopsis.role.attrib = role.attrib
2822# doc:A syntax summary for a software command.
2823cmdsynopsis =
2824  element cmdsynopsis {
2825    cmdsynopsis.attlist, (command | arg | group | sbr)+, synopfragment*
2826  }
2827# end of cmdsynopsis.element
2828
2829# Sepchar: Character that should separate command and all
2830# top-level arguments; alternate value might be e.g., &Delta;
2831cmdsynopsis.attlist &=
2832  label.attrib,
2833  [ a:defaultValue = " " ] attribute sepchar { text }?,
2834  attribute cmdlength { text }?,
2835  common.attrib,
2836  cmdsynopsis.role.attrib,
2837  local.cmdsynopsis.attrib
2838# end of cmdsynopsis.attlist
2839
2840# end of cmdsynopsis.module
2841local.arg.attrib = empty
2842arg.role.attrib = role.attrib
2843# doc:An argument in a CmdSynopsis.
2844arg =
2845  element arg {
2846    arg.attlist,
2847    (text
2848     | arg
2849     | group
2850     | option
2851     | synopfragmentref
2852     | replaceable
2853     | sbr)*
2854  }
2855# end of arg.element
2856
2857# Choice: Whether Arg must be supplied: Opt (optional to
2858# supply, e.g. [arg]; the default), Req (required to supply,
2859# e.g. {arg}), or Plain (required to supply, e.g. arg)
2860
2861# Rep: whether Arg is repeatable: Norepeat (e.g. arg without
2862# ellipsis; the default), or Repeat (e.g. arg...)
2863arg.attlist &=
2864  [ a:defaultValue = "opt" ]
2865  attribute choice { "opt" | "req" | "plain" }?,
2866  [ a:defaultValue = "norepeat" ]
2867  attribute rep { "norepeat" | "repeat" }?,
2868  common.attrib,
2869  arg.role.attrib,
2870  local.arg.attrib
2871# end of arg.attlist
2872
2873# end of arg.module
2874local.group.attrib = empty
2875group.role.attrib = role.attrib
2876# doc:A group of elements in a CmdSynopsis.
2877group =
2878  element group {
2879    group.attlist,
2880    (arg | group | option | synopfragmentref | replaceable | sbr)+
2881  }
2882# end of group.element
2883
2884# Choice: Whether Group must be supplied: Opt (optional to
2885# supply, e.g.  [g1|g2|g3]; the default), Req (required to
2886# supply, e.g.  {g1|g2|g3}), Plain (required to supply,
2887# e.g.  g1|g2|g3), OptMult (can supply zero or more, e.g.
2888# [[g1|g2|g3]]), or ReqMult (must supply one or more, e.g.
2889# {{g1|g2|g3}})
2890
2891# Rep: whether Group is repeatable: Norepeat (e.g. group
2892# without ellipsis; the default), or Repeat (e.g. group...)
2893group.attlist &=
2894  [ a:defaultValue = "opt" ]
2895  attribute choice { "opt" | "req" | "plain" }?,
2896  [ a:defaultValue = "norepeat" ]
2897  attribute rep { "norepeat" | "repeat" }?,
2898  common.attrib,
2899  group.role.attrib,
2900  local.group.attrib
2901# end of group.attlist
2902
2903# end of group.module
2904local.sbr.attrib = empty
2905# Synopsis break
2906sbr.role.attrib = role.attrib
2907# doc:An explicit line break in a command synopsis.
2908sbr = element sbr { sbr.attlist, empty }
2909# end of sbr.element
2910sbr.attlist &= common.attrib, sbr.role.attrib, local.sbr.attrib
2911# end of sbr.attlist
2912
2913# end of sbr.module
2914local.synopfragmentref.attrib = empty
2915synopfragmentref.role.attrib = role.attrib
2916# doc:A reference to a fragment of a command synopsis.
2917synopfragmentref =
2918  element synopfragmentref { synopfragmentref.attlist, text }
2919# end of synopfragmentref.element
2920
2921# to SynopFragment of complex synopsis
2922# material for separate referencing
2923synopfragmentref.attlist &=
2924  linkendreq.attrib,
2925  common.attrib,
2926  synopfragmentref.role.attrib,
2927  local.synopfragmentref.attrib
2928# end of synopfragmentref.attlist
2929
2930# end of synopfragmentref.module
2931local.synopfragment.attrib = empty
2932synopfragment.role.attrib = role.attrib
2933# doc:A portion of a CmdSynopsis broken out from the main body of the synopsis.
2934synopfragment =
2935  element synopfragment { synopfragment.attlist, (arg | group)+ }
2936# end of synopfragment.element
2937synopfragment.attlist &=
2938  idreq.common.attrib,
2939  synopfragment.role.attrib,
2940  local.synopfragment.attrib
2941# end of synopfragment.attlist
2942
2943# end of synopfragment.module
2944
2945# Command (defined in the Inlines section, below)
2946
2947# Option (defined in the Inlines section, below)
2948
2949# Replaceable (defined in the Inlines section, below)
2950
2951# end of cmdsynopsis.content.module
2952
2953# FuncSynopsis .....................
2954local.funcsynopsis.attrib = empty
2955funcsynopsis.role.attrib = role.attrib
2956# doc:The syntax summary for a function definition.
2957funcsynopsis =
2958  element funcsynopsis {
2959    funcsynopsis.attlist, (funcsynopsisinfo | funcprototype)+
2960  }
2961# end of funcsynopsis.element
2962funcsynopsis.attlist &=
2963  label.attrib,
2964  common.attrib,
2965  funcsynopsis.role.attrib,
2966  local.funcsynopsis.attrib
2967# end of funcsynopsis.attlist
2968
2969# end of funcsynopsis.module
2970local.funcsynopsisinfo.attrib = empty
2971funcsynopsisinfo.role.attrib = role.attrib
2972# doc:Information supplementing the FuncDefs of a FuncSynopsis.
2973funcsynopsisinfo =
2974  element funcsynopsisinfo {
2975    funcsynopsisinfo.attlist,
2976    (cptr.char.mix | textobject | lineannotation)*
2977  }
2978# end of funcsynopsisinfo.element
2979funcsynopsisinfo.attlist &=
2980  linespecific.attrib,
2981  common.attrib,
2982  funcsynopsisinfo.role.attrib,
2983  local.funcsynopsisinfo.attrib
2984# end of funcsynopsisinfo.attlist
2985
2986# end of funcsynopsisinfo.module
2987local.funcprototype.attrib = empty
2988funcprototype.role.attrib = role.attrib
2989# doc:The prototype of a function.
2990funcprototype =
2991  element funcprototype {
2992    funcprototype.attlist,
2993    modifier*,
2994    funcdef,
2995    (void | varargs | (paramdef+, varargs?)),
2996    modifier*
2997  }
2998# end of funcprototype.element
2999funcprototype.attlist &=
3000  common.attrib, funcprototype.role.attrib, local.funcprototype.attrib
3001# end of funcprototype.attlist
3002
3003# end of funcprototype.module
3004local.funcdef.attrib = empty
3005funcdef.role.attrib = role.attrib
3006# doc:A function (subroutine) name and its return type.
3007funcdef =
3008  element funcdef {
3009    funcdef.attlist, (text | type | replaceable | function)*
3010  }
3011# end of funcdef.element
3012funcdef.attlist &=
3013  common.attrib, funcdef.role.attrib, local.funcdef.attrib
3014# end of funcdef.attlist
3015
3016# end of funcdef.module
3017local.void.attrib = empty
3018void.role.attrib = role.attrib
3019# doc:An empty element in a function synopsis indicating that the function in question takes no arguments.
3020void = element void { void.attlist, empty }
3021# end of void.element
3022void.attlist &= common.attrib, void.role.attrib, local.void.attrib
3023# end of void.attlist
3024
3025# end of void.module
3026local.varargs.attrib = empty
3027varargs.role.attrib = role.attrib
3028# doc:An empty element in a function synopsis indicating a variable number of arguments.
3029varargs = element varargs { varargs.attlist, empty }
3030# end of varargs.element
3031varargs.attlist &=
3032  common.attrib, varargs.role.attrib, local.varargs.attrib
3033# end of varargs.attlist
3034
3035# end of varargs.module
3036
3037# Processing assumes that only one Parameter will appear in a
3038# ParamDef, and that FuncParams will be used at most once, for
3039# providing information on the "inner parameters" for parameters that
3040# are pointers to functions.
3041local.paramdef.attrib = empty
3042paramdef.role.attrib = role.attrib
3043# doc:Information about a function parameter in a programming language.
3044paramdef =
3045  element paramdef {
3046    paramdef.attlist,
3047    (text | initializer | type | replaceable | parameter | funcparams)*
3048  }
3049# end of paramdef.element
3050paramdef.attlist &=
3051  attribute choice { "opt" | "req" }?,
3052  common.attrib,
3053  paramdef.role.attrib,
3054  local.paramdef.attrib
3055# end of paramdef.attlist
3056
3057# end of paramdef.module
3058local.funcparams.attrib = empty
3059funcparams.role.attrib = role.attrib
3060# doc:Parameters for a function referenced through a function pointer in a synopsis.
3061funcparams = element funcparams { funcparams.attlist, cptr.char.mix* }
3062# end of funcparams.element
3063funcparams.attlist &=
3064  common.attrib, funcparams.role.attrib, local.funcparams.attrib
3065# end of funcparams.attlist
3066
3067# end of funcparams.module
3068
3069# LineAnnotation (defined in the Inlines section, below)
3070
3071# Replaceable (defined in the Inlines section, below)
3072
3073# Function (defined in the Inlines section, below)
3074
3075# Parameter (defined in the Inlines section, below)
3076
3077# end of funcsynopsis.content.module
3078
3079# ClassSynopsis .....................
3080local.classsynopsis.attrib = empty
3081classsynopsis.role.attrib = role.attrib
3082# doc:The syntax summary for a class definition.
3083classsynopsis =
3084  element classsynopsis {
3085    classsynopsis.attlist,
3086    (ooclass | oointerface | ooexception)+,
3087    (classsynopsisinfo | fieldsynopsis | method.synop.class)*
3088  }
3089# end of classsynopsis.element
3090classsynopsis.attlist &=
3091  attribute language { text }?,
3092  [ a:defaultValue = "class" ]
3093  attribute class { "class" | "interface" }?,
3094  common.attrib,
3095  classsynopsis.role.attrib,
3096  local.classsynopsis.attrib
3097# end of classsynopsis.attlist
3098
3099# end of classsynopsis.module
3100local.classsynopsisinfo.attrib = empty
3101classsynopsisinfo.role.attrib = role.attrib
3102# doc:Information supplementing the contents of a ClassSynopsis.
3103classsynopsisinfo =
3104  element classsynopsisinfo {
3105    classsynopsisinfo.attlist,
3106    (cptr.char.mix | textobject | lineannotation)*
3107  }
3108# end of classsynopsisinfo.element
3109classsynopsisinfo.attlist &=
3110  linespecific.attrib,
3111  common.attrib,
3112  classsynopsisinfo.role.attrib,
3113  local.classsynopsisinfo.attrib
3114# end of classsynopsisinfo.attlist
3115
3116# end of classsynopsisinfo.module
3117local.ooclass.attrib = empty
3118ooclass.role.attrib = role.attrib
3119# doc:A class in an object-oriented programming language.
3120ooclass =
3121  element ooclass { ooclass.attlist, (modifier | package)*, classname }
3122# end of ooclass.element
3123ooclass.attlist &=
3124  common.attrib, ooclass.role.attrib, local.ooclass.attrib
3125# end of ooclass.attlist
3126
3127# end of ooclass.module
3128local.oointerface.attrib = empty
3129oointerface.role.attrib = role.attrib
3130# doc:An interface in an object-oriented programming language.
3131oointerface =
3132  element oointerface {
3133    oointerface.attlist, (modifier | package)*, interfacename
3134  }
3135# end of oointerface.element
3136oointerface.attlist &=
3137  common.attrib, oointerface.role.attrib, local.oointerface.attrib
3138# end of oointerface.attlist
3139
3140# end of oointerface.module
3141local.ooexception.attrib = empty
3142ooexception.role.attrib = role.attrib
3143# doc:An exception in an object-oriented programming language.
3144ooexception =
3145  element ooexception {
3146    ooexception.attlist, (modifier | package)*, exceptionname
3147  }
3148# end of ooexception.element
3149ooexception.attlist &=
3150  common.attrib, ooexception.role.attrib, local.ooexception.attrib
3151# end of ooexception.attlist
3152
3153# end of ooexception.module
3154local.modifier.attrib = empty
3155modifier.role.attrib = role.attrib
3156# doc:Modifiers in a synopsis.
3157modifier = element modifier { modifier.attlist, smallcptr.char.mix* }
3158# end of modifier.element
3159modifier.attlist &=
3160  common.attrib, modifier.role.attrib, local.modifier.attrib
3161# end of modifier.attlist
3162
3163# end of modifier.module
3164local.interfacename.attrib = empty
3165interfacename.role.attrib = role.attrib
3166# doc:The name of an interface.
3167interfacename =
3168  element interfacename { interfacename.attlist, cptr.char.mix* }
3169# end of interfacename.element
3170interfacename.attlist &=
3171  common.attrib, interfacename.role.attrib, local.interfacename.attrib
3172# end of interfacename.attlist
3173
3174# end of interfacename.module
3175local.exceptionname.attrib = empty
3176exceptionname.role.attrib = role.attrib
3177# doc:The name of an exception.
3178exceptionname =
3179  element exceptionname { exceptionname.attlist, smallcptr.char.mix* }
3180# end of exceptionname.element
3181exceptionname.attlist &=
3182  common.attrib, exceptionname.role.attrib, local.exceptionname.attrib
3183# end of exceptionname.attlist
3184
3185# end of exceptionname.module
3186local.fieldsynopsis.attrib = empty
3187fieldsynopsis.role.attrib = role.attrib
3188# doc:The name of a field in a class definition.
3189fieldsynopsis =
3190  element fieldsynopsis {
3191    fieldsynopsis.attlist, modifier*, type?, varname, initializer?
3192  }
3193# end of fieldsynopsis.element
3194fieldsynopsis.attlist &=
3195  attribute language { text }?,
3196  common.attrib,
3197  fieldsynopsis.role.attrib,
3198  local.fieldsynopsis.attrib
3199# end of fieldsynopsis.attlist
3200
3201# end of fieldsynopsis.module
3202local.initializer.attrib = empty
3203initializer.role.attrib = role.attrib
3204# doc:The initializer for a FieldSynopsis.
3205initializer =
3206  element initializer { initializer.attlist, smallcptr.char.mix* }
3207# end of initializer.element
3208initializer.attlist &=
3209  common.attrib, initializer.role.attrib, local.initializer.attrib
3210# end of initializer.attlist
3211
3212# end of initializer.module
3213local.constructorsynopsis.attrib = empty
3214constructorsynopsis.role.attrib = role.attrib
3215# doc:A syntax summary for a constructor.
3216constructorsynopsis =
3217  element constructorsynopsis {
3218    constructorsynopsis.attlist,
3219    modifier*,
3220    methodname?,
3221    (methodparam+ | void?),
3222    exceptionname*
3223  }
3224# end of constructorsynopsis.element
3225constructorsynopsis.attlist &=
3226  attribute language { text }?,
3227  common.attrib,
3228  constructorsynopsis.role.attrib,
3229  local.constructorsynopsis.attrib
3230# end of constructorsynopsis.attlist
3231
3232# end of constructorsynopsis.module
3233local.destructorsynopsis.attrib = empty
3234destructorsynopsis.role.attrib = role.attrib
3235# doc:A syntax summary for a destructor.
3236destructorsynopsis =
3237  element destructorsynopsis {
3238    destructorsynopsis.attlist,
3239    modifier*,
3240    methodname?,
3241    (methodparam+ | void?),
3242    exceptionname*
3243  }
3244# end of destructorsynopsis.element
3245destructorsynopsis.attlist &=
3246  attribute language { text }?,
3247  common.attrib,
3248  destructorsynopsis.role.attrib,
3249  local.destructorsynopsis.attrib
3250# end of destructorsynopsis.attlist
3251
3252# end of destructorsynopsis.module
3253local.methodsynopsis.attrib = empty
3254methodsynopsis.role.attrib = role.attrib
3255# doc:A syntax summary for a method.
3256methodsynopsis =
3257  element methodsynopsis {
3258    methodsynopsis.attlist,
3259    modifier*,
3260    (type | void)?,
3261    methodname,
3262    (methodparam+ | void?),
3263    exceptionname*,
3264    modifier*
3265  }
3266# end of methodsynopsis.element
3267methodsynopsis.attlist &=
3268  attribute language { text }?,
3269  common.attrib,
3270  methodsynopsis.role.attrib,
3271  local.methodsynopsis.attrib
3272# end of methodsynopsis.attlist
3273
3274# end of methodsynopsis.module
3275local.methodname.attrib = empty
3276methodname.role.attrib = role.attrib
3277# doc:The name of a method.
3278methodname =
3279  element methodname { methodname.attlist, smallcptr.char.mix* }
3280# end of methodname.element
3281methodname.attlist &=
3282  common.attrib, methodname.role.attrib, local.methodname.attrib
3283# end of methodname.attlist
3284
3285# end of methodname.module
3286local.methodparam.attrib = empty
3287methodparam.role.attrib = role.attrib
3288# doc:Parameters to a method.
3289methodparam =
3290  element methodparam {
3291    methodparam.attlist,
3292    modifier*,
3293    type?,
3294    ((parameter, initializer?) | funcparams),
3295    modifier*
3296  }
3297# end of methodparam.element
3298methodparam.attlist &=
3299  [ a:defaultValue = "req" ]
3300  attribute choice { "opt" | "req" | "plain" }?,
3301  [ a:defaultValue = "norepeat" ]
3302  attribute rep { "norepeat" | "repeat" }?,
3303  common.attrib,
3304  methodparam.role.attrib,
3305  local.methodparam.attrib
3306# end of methodparam.attlist
3307
3308# end of methodparam.module
3309
3310# end of classsynopsis.content.module
3311
3312# ......................................................................
3313
3314# Document information entities and elements ...........................
3315
3316# The document information elements include some elements that are
3317# currently used only in the document hierarchy module. They are
3318# defined here so that they will be available for use in customized
3319# document hierarchies.
3320
3321# ..................................
3322
3323# Ackno ............................
3324local.ackno.attrib = empty
3325ackno.role.attrib = role.attrib
3326# doc:Acknowledgements in an Article.
3327ackno = element ackno { ackno.attlist, docinfo.char.mix* }
3328# end of ackno.element
3329ackno.attlist &= common.attrib, ackno.role.attrib, local.ackno.attrib
3330# end of ackno.attlist
3331
3332# end of ackno.module
3333
3334# Address ..........................
3335local.address.attrib = empty
3336address.role.attrib = role.attrib
3337# doc:A real-world address, generally a postal address.
3338address =
3339  element address {
3340    address.attlist,
3341    (text
3342     | personname
3343     | person.ident.mix
3344     | street
3345     | pob
3346     | postcode
3347     | city
3348     | state
3349     | country
3350     | phone
3351     | fax
3352     | email
3353     | otheraddr)*
3354  }
3355# end of address.element
3356address.attlist &=
3357  linespecific.attrib,
3358  common.attrib,
3359  address.role.attrib,
3360  local.address.attrib
3361# end of address.attlist
3362
3363# end of address.module
3364local.street.attrib = empty
3365street.role.attrib = role.attrib
3366# doc:A street address in an address.
3367street = element street { street.attlist, docinfo.char.mix* }
3368# end of street.element
3369street.attlist &= common.attrib, street.role.attrib, local.street.attrib
3370# end of street.attlist
3371
3372# end of street.module
3373local.pob.attrib = empty
3374pob.role.attrib = role.attrib
3375# doc:A post office box in an address.
3376pob = element pob { pob.attlist, docinfo.char.mix* }
3377# end of pob.element
3378pob.attlist &= common.attrib, pob.role.attrib, local.pob.attrib
3379# end of pob.attlist
3380
3381# end of pob.module
3382local.postcode.attrib = empty
3383postcode.role.attrib = role.attrib
3384# doc:A postal code in an address.
3385postcode = element postcode { postcode.attlist, docinfo.char.mix* }
3386# end of postcode.element
3387postcode.attlist &=
3388  common.attrib, postcode.role.attrib, local.postcode.attrib
3389# end of postcode.attlist
3390
3391# end of postcode.module
3392local.city.attrib = empty
3393city.role.attrib = role.attrib
3394# doc:The name of a city in an address.
3395city = element city { city.attlist, docinfo.char.mix* }
3396# end of city.element
3397city.attlist &= common.attrib, city.role.attrib, local.city.attrib
3398# end of city.attlist
3399
3400# end of city.module
3401local.state.attrib = empty
3402state.role.attrib = role.attrib
3403# doc:A state or province in an address.
3404state = element state { state.attlist, docinfo.char.mix* }
3405# end of state.element
3406state.attlist &= common.attrib, state.role.attrib, local.state.attrib
3407# end of state.attlist
3408
3409# end of state.module
3410local.country.attrib = empty
3411country.role.attrib = role.attrib
3412# doc:The name of a country.
3413country = element country { country.attlist, docinfo.char.mix* }
3414# end of country.element
3415country.attlist &=
3416  common.attrib, country.role.attrib, local.country.attrib
3417# end of country.attlist
3418
3419# end of country.module
3420local.phone.attrib = empty
3421phone.role.attrib = role.attrib
3422# doc:A telephone number.
3423phone = element phone { phone.attlist, docinfo.char.mix* }
3424# end of phone.element
3425phone.attlist &= common.attrib, phone.role.attrib, local.phone.attrib
3426# end of phone.attlist
3427
3428# end of phone.module
3429local.fax.attrib = empty
3430fax.role.attrib = role.attrib
3431# doc:A fax number.
3432fax = element fax { fax.attlist, docinfo.char.mix* }
3433# end of fax.element
3434fax.attlist &= common.attrib, fax.role.attrib, local.fax.attrib
3435# end of fax.attlist
3436
3437# end of fax.module
3438
3439# Email (defined in the Inlines section, below)
3440local.otheraddr.attrib = empty
3441otheraddr.role.attrib = role.attrib
3442# doc:Uncategorized information in address.
3443otheraddr = element otheraddr { otheraddr.attlist, docinfo.char.mix* }
3444# end of otheraddr.element
3445otheraddr.attlist &=
3446  common.attrib, otheraddr.role.attrib, local.otheraddr.attrib
3447# end of otheraddr.attlist
3448
3449# end of otheraddr.module
3450
3451# end of address.content.module
3452
3453# Affiliation ......................
3454local.affiliation.attrib = empty
3455affiliation.role.attrib = role.attrib
3456# doc:The institutional affiliation of an individual.
3457affiliation =
3458  element affiliation {
3459    affiliation.attlist,
3460    shortaffil?,
3461    jobtitle*,
3462    orgname?,
3463    orgdiv*,
3464    address*
3465  }
3466# end of affiliation.element
3467affiliation.attlist &=
3468  common.attrib, affiliation.role.attrib, local.affiliation.attrib
3469# end of affiliation.attlist
3470
3471# end of affiliation.module
3472local.shortaffil.attrib = empty
3473shortaffil.role.attrib = role.attrib
3474# doc:A brief description of an affiliation.
3475shortaffil =
3476  element shortaffil { shortaffil.attlist, docinfo.char.mix* }
3477# end of shortaffil.element
3478shortaffil.attlist &=
3479  common.attrib, shortaffil.role.attrib, local.shortaffil.attrib
3480# end of shortaffil.attlist
3481
3482# end of shortaffil.module
3483local.jobtitle.attrib = empty
3484jobtitle.role.attrib = role.attrib
3485# doc:The title of an individual in an organization.
3486jobtitle = element jobtitle { jobtitle.attlist, docinfo.char.mix* }
3487# end of jobtitle.element
3488jobtitle.attlist &=
3489  common.attrib, jobtitle.role.attrib, local.jobtitle.attrib
3490# end of jobtitle.attlist
3491
3492# end of jobtitle.module
3493
3494# OrgName (defined elsewhere in this section)
3495local.orgdiv.attrib = empty
3496orgdiv.role.attrib = role.attrib
3497# doc:A division of an organization.
3498orgdiv = element orgdiv { orgdiv.attlist, docinfo.char.mix* }
3499# end of orgdiv.element
3500orgdiv.attlist &= common.attrib, orgdiv.role.attrib, local.orgdiv.attrib
3501# end of orgdiv.attlist
3502
3503# end of orgdiv.module
3504
3505# Address (defined elsewhere in this section)
3506
3507# end of affiliation.content.module
3508
3509# ArtPageNums ......................
3510local.artpagenums.attrib = empty
3511artpagenums.role.attrib = role.attrib
3512# doc:The page numbers of an article as published.
3513artpagenums =
3514  element artpagenums { artpagenums.attlist, docinfo.char.mix* }
3515# end of artpagenums.element
3516artpagenums.attlist &=
3517  common.attrib, artpagenums.role.attrib, local.artpagenums.attrib
3518# end of artpagenums.attlist
3519
3520# end of artpagenums.module
3521
3522# PersonName
3523local.personname.attrib = empty
3524personname.role.attrib = role.attrib
3525# doc:The personal name of an individual.
3526personname =
3527  element personname {
3528    personname.attlist,
3529    (honorific | firstname | surname | lineage | othername)+
3530  }
3531# end of personname.element
3532personname.attlist &=
3533  common.attrib, personname.role.attrib, local.personname.attrib
3534# end of personname.attlist
3535
3536# end of personname.module
3537
3538# Author ...........................
3539local.author.attrib = empty
3540author.role.attrib = role.attrib
3541# doc:The name of an individual author.
3542author =
3543  element author {
3544    author.attlist,
3545    (personname | person.ident.mix+),
3546    (personblurb | email | address)*
3547  }
3548# end of author.element
3549author.attlist &= common.attrib, author.role.attrib, local.author.attrib
3550# end of author.attlist
3551
3552# (see "Personal identity elements" for %person.ident.mix;)
3553
3554# end of author.module
3555
3556# AuthorGroup ......................
3557local.authorgroup.attrib = empty
3558authorgroup.role.attrib = role.attrib
3559# doc:Wrapper for author information when a document has multiple authors or collabarators.
3560authorgroup =
3561  element authorgroup {
3562    authorgroup.attlist,
3563    (author | editor | collab | corpauthor | corpcredit | othercredit)+
3564  }
3565# end of authorgroup.element
3566authorgroup.attlist &=
3567  common.attrib, authorgroup.role.attrib, local.authorgroup.attrib
3568# end of authorgroup.attlist
3569
3570# end of authorgroup.module
3571
3572# Author (defined elsewhere in this section)
3573
3574# Editor (defined elsewhere in this section)
3575local.collab.attrib = empty
3576collab.role.attrib = role.attrib
3577# doc:Identifies a collaborator.
3578collab = element collab { collab.attlist, collabname, affiliation* }
3579# end of collab.element
3580collab.attlist &= common.attrib, collab.role.attrib, local.collab.attrib
3581# end of collab.attlist
3582
3583# end of collab.module
3584local.collabname.attrib = empty
3585collabname.role.attrib = role.attrib
3586# doc:The name of a collaborator.
3587collabname =
3588  element collabname { collabname.attlist, docinfo.char.mix* }
3589# end of collabname.element
3590collabname.attlist &=
3591  common.attrib, collabname.role.attrib, local.collabname.attrib
3592# end of collabname.attlist
3593
3594# end of collabname.module
3595
3596# Affiliation (defined elsewhere in this section)
3597
3598# end of collab.content.module
3599
3600# CorpAuthor (defined elsewhere in this section)
3601
3602# OtherCredit (defined elsewhere in this section)
3603
3604# end of authorgroup.content.module
3605
3606# AuthorInitials ...................
3607local.authorinitials.attrib = empty
3608authorinitials.role.attrib = role.attrib
3609# doc:The initials or other short identifier for an author.
3610authorinitials =
3611  element authorinitials { authorinitials.attlist, docinfo.char.mix* }
3612# end of authorinitials.element
3613authorinitials.attlist &=
3614  common.attrib, authorinitials.role.attrib, local.authorinitials.attrib
3615# end of authorinitials.attlist
3616
3617# end of authorinitials.module
3618
3619# ConfGroup ........................
3620local.confgroup.attrib = empty
3621confgroup.role.attrib = role.attrib
3622# doc:A wrapper for document meta-information about a conference.
3623confgroup =
3624  element confgroup {
3625    confgroup.attlist,
3626    (confdates | conftitle | confnum | address | confsponsor)*
3627  }
3628# end of confgroup.element
3629confgroup.attlist &=
3630  common.attrib, confgroup.role.attrib, local.confgroup.attrib
3631# end of confgroup.attlist
3632
3633# end of confgroup.module
3634local.confdates.attrib = empty
3635confdates.role.attrib = role.attrib
3636# doc:The dates of a conference for which a document was written.
3637confdates = element confdates { confdates.attlist, docinfo.char.mix* }
3638# end of confdates.element
3639confdates.attlist &=
3640  common.attrib, confdates.role.attrib, local.confdates.attrib
3641# end of confdates.attlist
3642
3643# end of confdates.module
3644local.conftitle.attrib = empty
3645conftitle.role.attrib = role.attrib
3646# doc:The title of a conference for which a document was written.
3647conftitle = element conftitle { conftitle.attlist, docinfo.char.mix* }
3648# end of conftitle.element
3649conftitle.attlist &=
3650  common.attrib, conftitle.role.attrib, local.conftitle.attrib
3651# end of conftitle.attlist
3652
3653# end of conftitle.module
3654local.confnum.attrib = empty
3655confnum.role.attrib = role.attrib
3656# doc:An identifier, frequently numerical, associated with a conference for which a document was written.
3657confnum = element confnum { confnum.attlist, docinfo.char.mix* }
3658# end of confnum.element
3659confnum.attlist &=
3660  common.attrib, confnum.role.attrib, local.confnum.attrib
3661# end of confnum.attlist
3662
3663# end of confnum.module
3664
3665# Address (defined elsewhere in this section)
3666local.confsponsor.attrib = empty
3667confsponsor.role.attrib = role.attrib
3668# doc:The sponsor of a conference for which a document was written.
3669confsponsor =
3670  element confsponsor { confsponsor.attlist, docinfo.char.mix* }
3671# end of confsponsor.element
3672confsponsor.attlist &=
3673  common.attrib, confsponsor.role.attrib, local.confsponsor.attrib
3674# end of confsponsor.attlist
3675
3676# end of confsponsor.module
3677
3678# end of confgroup.content.module
3679
3680# ContractNum ......................
3681local.contractnum.attrib = empty
3682contractnum.role.attrib = role.attrib
3683# doc:The contract number of a document.
3684contractnum =
3685  element contractnum { contractnum.attlist, docinfo.char.mix* }
3686# end of contractnum.element
3687contractnum.attlist &=
3688  common.attrib, contractnum.role.attrib, local.contractnum.attrib
3689# end of contractnum.attlist
3690
3691# end of contractnum.module
3692
3693# ContractSponsor ..................
3694local.contractsponsor.attrib = empty
3695contractsponsor.role.attrib = role.attrib
3696# doc:The sponsor of a contract.
3697contractsponsor =
3698  element contractsponsor { contractsponsor.attlist, docinfo.char.mix* }
3699# end of contractsponsor.element
3700contractsponsor.attlist &=
3701  common.attrib,
3702  contractsponsor.role.attrib,
3703  local.contractsponsor.attrib
3704# end of contractsponsor.attlist
3705
3706# end of contractsponsor.module
3707
3708# Copyright ........................
3709local.copyright.attrib = empty
3710copyright.role.attrib = role.attrib
3711# doc:Copyright information about a document.
3712copyright = element copyright { copyright.attlist, year+, holder* }
3713# end of copyright.element
3714copyright.attlist &=
3715  common.attrib, copyright.role.attrib, local.copyright.attrib
3716# end of copyright.attlist
3717
3718# end of copyright.module
3719local.year.attrib = empty
3720year.role.attrib = role.attrib
3721# doc:The year of publication of a document.
3722year = element year { year.attlist, docinfo.char.mix* }
3723# end of year.element
3724year.attlist &= common.attrib, year.role.attrib, local.year.attrib
3725# end of year.attlist
3726
3727# end of year.module
3728local.holder.attrib = empty
3729holder.role.attrib = role.attrib
3730# doc:The name of the individual or organization that holds a copyright.
3731holder = element holder { holder.attlist, docinfo.char.mix* }
3732# end of holder.element
3733holder.attlist &= common.attrib, holder.role.attrib, local.holder.attrib
3734# end of holder.attlist
3735
3736# end of holder.module
3737
3738# end of copyright.content.module
3739
3740# CorpAuthor .......................
3741local.corpauthor.attrib = empty
3742corpauthor.role.attrib = role.attrib
3743# doc:A corporate author, as opposed to an individual.
3744corpauthor =
3745  element corpauthor { corpauthor.attlist, docinfo.char.mix* }
3746# end of corpauthor.element
3747corpauthor.attlist &=
3748  common.attrib, corpauthor.role.attrib, local.corpauthor.attrib
3749# end of corpauthor.attlist
3750
3751# end of corpauthor.module
3752
3753# CorpCredit ......................
3754local.corpcredit.attrib = empty
3755corpcredit.role.attrib = role.attrib
3756# doc:A corporation or organization credited in a document.
3757corpcredit =
3758  element corpcredit { corpcredit.attlist, docinfo.char.mix* }
3759# end of corpcredit.element
3760corpcredit.attlist &=
3761  attribute class {
3762    "graphicdesigner"
3763    | "productioneditor"
3764    | "copyeditor"
3765    | "technicaleditor"
3766    | "translator"
3767    | "other"
3768  }?,
3769  common.attrib,
3770  corpcredit.role.attrib,
3771  local.corpcredit.attrib
3772# end of corpcredit.attlist
3773
3774# end of corpcredit.module
3775
3776# CorpName .........................
3777local.corpname.attrib = empty
3778# doc:The name of a corporation.
3779corpname = element corpname { corpname.attlist, docinfo.char.mix* }
3780# end of corpname.element
3781corpname.role.attrib = role.attrib
3782corpname.attlist &=
3783  common.attrib, corpname.role.attrib, local.corpname.attrib
3784# end of corpname.attlist
3785
3786# end of corpname.module
3787
3788# Date .............................
3789local.date.attrib = empty
3790date.role.attrib = role.attrib
3791# doc:The date of publication or revision of a document.
3792date = element date { date.attlist, docinfo.char.mix* }
3793# end of date.element
3794date.attlist &= common.attrib, date.role.attrib, local.date.attrib
3795# end of date.attlist
3796
3797# end of date.module
3798
3799# Edition ..........................
3800local.edition.attrib = empty
3801edition.role.attrib = role.attrib
3802# doc:The name or number of an edition of a document.
3803edition = element edition { edition.attlist, docinfo.char.mix* }
3804# end of edition.element
3805edition.attlist &=
3806  common.attrib, edition.role.attrib, local.edition.attrib
3807# end of edition.attlist
3808
3809# end of edition.module
3810
3811# Editor ...........................
3812local.editor.attrib = empty
3813editor.role.attrib = role.attrib
3814# doc:The name of the editor of a document.
3815editor =
3816  element editor {
3817    editor.attlist,
3818    (personname | person.ident.mix+),
3819    (personblurb | email | address)*
3820  }
3821# end of editor.element
3822editor.attlist &= common.attrib, editor.role.attrib, local.editor.attrib
3823# end of editor.attlist
3824
3825# (see "Personal identity elements" for %person.ident.mix;)
3826
3827# end of editor.module
3828
3829# ISBN .............................
3830local.isbn.attrib = empty
3831isbn.role.attrib = role.attrib
3832# doc:The International Standard Book Number of a document.
3833isbn = element isbn { isbn.attlist, docinfo.char.mix* }
3834# end of isbn.element
3835isbn.attlist &= common.attrib, isbn.role.attrib, local.isbn.attrib
3836# end of isbn.attlist
3837
3838# end of isbn.module
3839
3840# ISSN .............................
3841local.issn.attrib = empty
3842issn.role.attrib = role.attrib
3843# doc:The International Standard Serial Number of a periodical.
3844issn = element issn { issn.attlist, docinfo.char.mix* }
3845# end of issn.element
3846issn.attlist &= common.attrib, issn.role.attrib, local.issn.attrib
3847# end of issn.attlist
3848
3849# end of issn.module
3850
3851# BiblioId .................
3852biblio.class.attrib =
3853  attribute class {
3854    "uri"
3855    | "doi"
3856    | "isbn"
3857    | "isrn"
3858    | "issn"
3859    | "libraryofcongress"
3860    | "pubnumber"
3861    | "other"
3862  }?,
3863  attribute otherclass { text }?
3864local.biblioid.attrib = empty
3865biblioid.role.attrib = role.attrib
3866# doc:An identifier for a document.
3867biblioid = element biblioid { biblioid.attlist, docinfo.char.mix* }
3868# end of biblioid.element
3869biblioid.attlist &=
3870  biblio.class.attrib,
3871  common.attrib,
3872  biblioid.role.attrib,
3873  local.biblioid.attrib
3874# end of biblioid.attlist
3875
3876# end of biblioid.module
3877
3878# CiteBiblioId .................
3879local.citebiblioid.attrib = empty
3880citebiblioid.role.attrib = role.attrib
3881# doc:A citation of a bibliographic identifier.
3882citebiblioid =
3883  element citebiblioid { citebiblioid.attlist, docinfo.char.mix* }
3884# end of citebiblioid.element
3885citebiblioid.attlist &=
3886  biblio.class.attrib,
3887  common.attrib,
3888  citebiblioid.role.attrib,
3889  local.citebiblioid.attrib
3890# end of citebiblioid.attlist
3891
3892# end of citebiblioid.module
3893
3894# BiblioSource .................
3895local.bibliosource.attrib = empty
3896bibliosource.role.attrib = role.attrib
3897# doc:The source of a document.
3898bibliosource =
3899  element bibliosource { bibliosource.attlist, docinfo.char.mix* }
3900# end of bibliosource.element
3901bibliosource.attlist &=
3902  biblio.class.attrib,
3903  common.attrib,
3904  bibliosource.role.attrib,
3905  local.bibliosource.attrib
3906# end of bibliosource.attlist
3907
3908# end of bibliosource.module
3909
3910# BiblioRelation .................
3911local.bibliorelation.attrib = empty
3912local.bibliorelation.types = notAllowed
3913bibliorelation.type.attrib =
3914  attribute type {
3915    "isversionof"
3916    | "hasversion"
3917    | "isreplacedby"
3918    | "replaces"
3919    | "isrequiredby"
3920    | "requires"
3921    | "ispartof"
3922    | "haspart"
3923    | "isreferencedby"
3924    | "references"
3925    | "isformatof"
3926    | "hasformat"
3927    | "othertype"
3928    | local.bibliorelation.types
3929  }?,
3930  attribute othertype { text }?
3931bibliorelation.role.attrib = role.attrib
3932# doc:The relationship of a document to another.
3933bibliorelation =
3934  element bibliorelation { bibliorelation.attlist, docinfo.char.mix* }
3935# end of bibliorelation.element
3936bibliorelation.attlist &=
3937  biblio.class.attrib,
3938  bibliorelation.type.attrib,
3939  common.attrib,
3940  bibliorelation.role.attrib,
3941  local.bibliorelation.attrib
3942# end of bibliorelation.attlist
3943
3944# end of bibliorelation.module
3945
3946# BiblioCoverage .................
3947local.bibliocoverage.attrib = empty
3948bibliocoverage.role.attrib = role.attrib
3949# doc:The spatial or temporal coverage of a document.
3950bibliocoverage =
3951  element bibliocoverage { bibliocoverage.attlist, docinfo.char.mix* }
3952# end of bibliocoverage.element
3953bibliocoverage.attlist &=
3954  attribute spatial {
3955    "dcmipoint" | "iso3166" | "dcmibox" | "tgn" | "otherspatial"
3956  }?,
3957  attribute otherspatial { text }?,
3958  attribute temporal { "dcmiperiod" | "w3c-dtf" | "othertemporal" }?,
3959  attribute othertemporal { text }?,
3960  common.attrib,
3961  bibliocoverage.role.attrib,
3962  local.bibliocoverage.attrib
3963# end of bibliocoverage.attlist
3964
3965# end of bibliocoverage.module
3966
3967# InvPartNumber ....................
3968local.invpartnumber.attrib = empty
3969invpartnumber.role.attrib = role.attrib
3970# doc:An inventory part number.
3971invpartnumber =
3972  element invpartnumber { invpartnumber.attlist, docinfo.char.mix* }
3973# end of invpartnumber.element
3974invpartnumber.attlist &=
3975  common.attrib, invpartnumber.role.attrib, local.invpartnumber.attrib
3976# end of invpartnumber.attlist
3977
3978# end of invpartnumber.module
3979
3980# IssueNum .........................
3981local.issuenum.attrib = empty
3982issuenum.role.attrib = role.attrib
3983# doc:The number of an issue of a journal.
3984issuenum = element issuenum { issuenum.attlist, docinfo.char.mix* }
3985# end of issuenum.element
3986issuenum.attlist &=
3987  common.attrib, issuenum.role.attrib, local.issuenum.attrib
3988# end of issuenum.attlist
3989
3990# end of issuenum.module
3991
3992# LegalNotice ......................
3993local.legalnotice.attrib = empty
3994legalnotice.role.attrib = role.attrib
3995# doc:A statement of legal obligations or requirements.
3996legalnotice =
3997  element legalnotice {
3998    legalnotice.attlist, blockinfo?, title?, legalnotice.mix+
3999  }
4000# end of legalnotice.element
4001legalnotice.attlist &=
4002  common.attrib, legalnotice.role.attrib, local.legalnotice.attrib
4003# end of legalnotice.attlist
4004
4005# end of legalnotice.module
4006
4007# ModeSpec .........................
4008local.modespec.attrib = empty
4009modespec.role.attrib = role.attrib
4010# doc:Application-specific information necessary for the completion of an OLink.
4011modespec = element modespec { modespec.attlist, docinfo.char.mix* }
4012# end of modespec.element
4013
4014# Application: Type of action required for completion
4015# of the links to which the ModeSpec is relevant (e.g.,
4016# retrieval query)
4017modespec.attlist &=
4018  attribute application { notation.class }?,
4019  common.attrib,
4020  modespec.role.attrib,
4021  local.modespec.attrib
4022# end of modespec.attlist
4023
4024# end of modespec.module
4025
4026# OrgName ..........................
4027local.orgname.attrib = empty
4028orgname.role.attrib = role.attrib
4029# doc:The name of an organization other than a corporation.
4030orgname = element orgname { orgname.attlist, docinfo.char.mix* }
4031# end of orgname.element
4032orgname.attlist &=
4033  common.attrib,
4034  attribute class {
4035    "corporation" | "nonprofit" | "consortium" | "informal" | "other"
4036  }?,
4037  attribute otherclass { text }?,
4038  orgname.role.attrib,
4039  local.orgname.attrib
4040# end of orgname.attlist
4041
4042# end of orgname.module
4043
4044# OtherCredit ......................
4045local.othercredit.attrib = empty
4046othercredit.role.attrib = role.attrib
4047# doc:A person or entity, other than an author or editor, credited in a document.
4048othercredit =
4049  element othercredit {
4050    othercredit.attlist,
4051    (personname | person.ident.mix+),
4052    (personblurb | email | address)*
4053  }
4054# end of othercredit.element
4055othercredit.attlist &=
4056  attribute class {
4057    "graphicdesigner"
4058    | "productioneditor"
4059    | "copyeditor"
4060    | "technicaleditor"
4061    | "translator"
4062    | "other"
4063  }?,
4064  common.attrib,
4065  othercredit.role.attrib,
4066  local.othercredit.attrib
4067# end of othercredit.attlist
4068
4069# (see "Personal identity elements" for %person.ident.mix;)
4070
4071# end of othercredit.module
4072
4073# PageNums .........................
4074local.pagenums.attrib = empty
4075pagenums.role.attrib = role.attrib
4076# doc:The numbers of the pages in a book, for use in a bibliographic entry.
4077pagenums = element pagenums { pagenums.attlist, docinfo.char.mix* }
4078# end of pagenums.element
4079pagenums.attlist &=
4080  common.attrib, pagenums.role.attrib, local.pagenums.attrib
4081# end of pagenums.attlist
4082
4083# end of pagenums.module
4084
4085# Personal identity elements .......
4086
4087# These elements are used only within Author, Editor, and
4088# OtherCredit.
4089local.contrib.attrib = empty
4090contrib.role.attrib = role.attrib
4091# doc:A summary of the contributions made to a document by a credited source.
4092contrib = element contrib { contrib.attlist, docinfo.char.mix* }
4093# end of contrib.element
4094contrib.attlist &=
4095  common.attrib, contrib.role.attrib, local.contrib.attrib
4096# end of contrib.attlist
4097
4098# end of contrib.module
4099local.firstname.attrib = empty
4100firstname.role.attrib = role.attrib
4101# doc:The first name of a person.
4102firstname = element firstname { firstname.attlist, docinfo.char.mix* }
4103# end of firstname.element
4104firstname.attlist &=
4105  common.attrib, firstname.role.attrib, local.firstname.attrib
4106# end of firstname.attlist
4107
4108# end of firstname.module
4109local.honorific.attrib = empty
4110honorific.role.attrib = role.attrib
4111# doc:The title of a person.
4112honorific = element honorific { honorific.attlist, docinfo.char.mix* }
4113# end of honorific.element
4114honorific.attlist &=
4115  common.attrib, honorific.role.attrib, local.honorific.attrib
4116# end of honorific.attlist
4117
4118# end of honorific.module
4119local.lineage.attrib = empty
4120lineage.role.attrib = role.attrib
4121# doc:The portion of a person's name indicating a relationship to ancestors.
4122lineage = element lineage { lineage.attlist, docinfo.char.mix* }
4123# end of lineage.element
4124lineage.attlist &=
4125  common.attrib, lineage.role.attrib, local.lineage.attrib
4126# end of lineage.attlist
4127
4128# end of lineage.module
4129local.othername.attrib = empty
4130othername.role.attrib = role.attrib
4131# doc:A component of a persons name that is not a first name, surname, or lineage.
4132othername = element othername { othername.attlist, docinfo.char.mix* }
4133# end of othername.element
4134othername.attlist &=
4135  common.attrib, othername.role.attrib, local.othername.attrib
4136# end of othername.attlist
4137
4138# end of othername.module
4139local.surname.attrib = empty
4140surname.role.attrib = role.attrib
4141# doc:A family name; in western cultures the last name.
4142surname = element surname { surname.attlist, docinfo.char.mix* }
4143# end of surname.element
4144surname.attlist &=
4145  common.attrib, surname.role.attrib, local.surname.attrib
4146# end of surname.attlist
4147
4148# end of surname.module
4149
4150# end of person.ident.module
4151
4152# PrintHistory .....................
4153local.printhistory.attrib = empty
4154printhistory.role.attrib = role.attrib
4155# doc:The printing history of a document.
4156printhistory =
4157  element printhistory { printhistory.attlist, para.class+ }
4158# end of printhistory.element
4159printhistory.attlist &=
4160  common.attrib, printhistory.role.attrib, local.printhistory.attrib
4161# end of printhistory.attlist
4162
4163# end of printhistory.module
4164
4165# ProductName ......................
4166local.productname.attrib = empty
4167productname.role.attrib = role.attrib
4168# doc:The formal name of a product.
4169productname =
4170  element productname { productname.attlist, para.char.mix* }
4171# end of productname.element
4172
4173# Class: More precisely identifies the item the element names
4174productname.attlist &=
4175  [ a:defaultValue = "trade" ]
4176  attribute class { "service" | "trade" | "registered" | "copyright" }?,
4177  common.attrib,
4178  productname.role.attrib,
4179  local.productname.attrib
4180# end of productname.attlist
4181
4182# end of productname.module
4183
4184# ProductNumber ....................
4185local.productnumber.attrib = empty
4186productnumber.role.attrib = role.attrib
4187# doc:A number assigned to a product.
4188productnumber =
4189  element productnumber { productnumber.attlist, docinfo.char.mix* }
4190# end of productnumber.element
4191productnumber.attlist &=
4192  common.attrib, productnumber.role.attrib, local.productnumber.attrib
4193# end of productnumber.attlist
4194
4195# end of productnumber.module
4196
4197# PubDate ..........................
4198local.pubdate.attrib = empty
4199pubdate.role.attrib = role.attrib
4200# doc:The date of publication of a document.
4201pubdate = element pubdate { pubdate.attlist, docinfo.char.mix* }
4202# end of pubdate.element
4203pubdate.attlist &=
4204  common.attrib, pubdate.role.attrib, local.pubdate.attrib
4205# end of pubdate.attlist
4206
4207# end of pubdate.module
4208
4209# Publisher ........................
4210local.publisher.attrib = empty
4211publisher.role.attrib = role.attrib
4212# doc:The publisher of a document.
4213publisher =
4214  element publisher { publisher.attlist, publishername, address* }
4215# end of publisher.element
4216publisher.attlist &=
4217  common.attrib, publisher.role.attrib, local.publisher.attrib
4218# end of publisher.attlist
4219
4220# end of publisher.module
4221local.publishername.attrib = empty
4222publishername.role.attrib = role.attrib
4223# doc:The name of the publisher of a document.
4224publishername =
4225  element publishername { publishername.attlist, docinfo.char.mix* }
4226# end of publishername.element
4227publishername.attlist &=
4228  common.attrib, publishername.role.attrib, local.publishername.attrib
4229# end of publishername.attlist
4230
4231# end of publishername.module
4232
4233# Address (defined elsewhere in this section)
4234
4235# end of publisher.content.module
4236
4237# PubsNumber .......................
4238local.pubsnumber.attrib = empty
4239pubsnumber.role.attrib = role.attrib
4240# doc:A number assigned to a publication other than an ISBN or ISSN or inventory part number.
4241pubsnumber =
4242  element pubsnumber { pubsnumber.attlist, docinfo.char.mix* }
4243# end of pubsnumber.element
4244pubsnumber.attlist &=
4245  common.attrib, pubsnumber.role.attrib, local.pubsnumber.attrib
4246# end of pubsnumber.attlist
4247
4248# end of pubsnumber.module
4249
4250# ReleaseInfo ......................
4251local.releaseinfo.attrib = empty
4252releaseinfo.role.attrib = role.attrib
4253# doc:Information about a particular release of a document.
4254releaseinfo =
4255  element releaseinfo { releaseinfo.attlist, docinfo.char.mix* }
4256# end of releaseinfo.element
4257releaseinfo.attlist &=
4258  common.attrib, releaseinfo.role.attrib, local.releaseinfo.attrib
4259# end of releaseinfo.attlist
4260
4261# end of releaseinfo.module
4262
4263# RevHistory .......................
4264local.revhistory.attrib = empty
4265revhistory.role.attrib = role.attrib
4266# doc:A history of the revisions to a document.
4267revhistory = element revhistory { revhistory.attlist, revision+ }
4268# end of revhistory.element
4269revhistory.attlist &=
4270  common.attrib, revhistory.role.attrib, local.revhistory.attrib
4271# end of revhistory.attlist
4272
4273# end of revhistory.module
4274local.revision.attrib = empty
4275revision.role.attrib = role.attrib
4276# doc:An entry describing a single revision in the history of the revisions to a document.
4277revision =
4278  element revision {
4279    revision.attlist,
4280    revnumber?,
4281    date,
4282    (author | authorinitials)*,
4283    (revremark | revdescription)?
4284  }
4285# end of revision.element
4286revision.attlist &=
4287  common.attrib, revision.role.attrib, local.revision.attrib
4288# end of revision.attlist
4289
4290# end of revision.module
4291local.revnumber.attrib = empty
4292revnumber.role.attrib = role.attrib
4293# doc:A document revision number.
4294revnumber = element revnumber { revnumber.attlist, docinfo.char.mix* }
4295# end of revnumber.element
4296revnumber.attlist &=
4297  common.attrib, revnumber.role.attrib, local.revnumber.attrib
4298# end of revnumber.attlist
4299
4300# end of revnumber.module
4301
4302# Date (defined elsewhere in this section)
4303
4304# AuthorInitials (defined elsewhere in this section)
4305local.revremark.attrib = empty
4306revremark.role.attrib = role.attrib
4307# doc:A description of a revision to a document.
4308revremark = element revremark { revremark.attlist, docinfo.char.mix* }
4309# end of revremark.element
4310revremark.attlist &=
4311  common.attrib, revremark.role.attrib, local.revremark.attrib
4312# end of revremark.attlist
4313
4314# end of revremark.module
4315local.revdescription.attrib = empty
4316revdescription.role.attrib = role.attrib
4317# doc:A extended description of a revision to a document.
4318revdescription =
4319  element revdescription { revdescription.attlist, revdescription.mix+ }
4320# end of revdescription.element
4321revdescription.attlist &=
4322  common.attrib, revdescription.role.attrib, local.revdescription.attrib
4323# end of revdescription.attlist
4324
4325# end of revdescription.module
4326
4327# end of revhistory.content.module
4328
4329# SeriesVolNums ....................
4330local.seriesvolnums.attrib = empty
4331seriesvolnums.role.attrib = role.attrib
4332# doc:Numbers of the volumes in a series of books.
4333seriesvolnums =
4334  element seriesvolnums { seriesvolnums.attlist, docinfo.char.mix* }
4335# end of seriesvolnums.element
4336seriesvolnums.attlist &=
4337  common.attrib, seriesvolnums.role.attrib, local.seriesvolnums.attrib
4338# end of seriesvolnums.attlist
4339
4340# end of seriesvolnums.module
4341
4342# VolumeNum ........................
4343local.volumenum.attrib = empty
4344volumenum.role.attrib = role.attrib
4345# doc:The volume number of a document in a set (as of books in a set or articles in a journal).
4346volumenum = element volumenum { volumenum.attlist, docinfo.char.mix* }
4347# end of volumenum.element
4348volumenum.attlist &=
4349  common.attrib, volumenum.role.attrib, local.volumenum.attrib
4350# end of volumenum.attlist
4351
4352# end of volumenum.module
4353
4354# ..................................
4355
4356# end of docinfo.content.module
4357
4358# ......................................................................
4359
4360# Inline, link, and ubiquitous elements ................................
4361
4362# Technical and computer terms .........................................
4363local.accel.attrib = empty
4364accel.role.attrib = role.attrib
4365# doc:A graphical user interface (GUI) keyboard shortcut.
4366accel = element accel { accel.attlist, smallcptr.char.mix* }
4367# end of accel.element
4368accel.attlist &= common.attrib, accel.role.attrib, local.accel.attrib
4369# end of accel.attlist
4370
4371# end of accel.module
4372local.action.attrib = empty
4373action.role.attrib = role.attrib
4374# doc:A response to a user event.
4375action = element action { action.attlist, cptr.char.mix* }
4376# end of action.element
4377action.attlist &=
4378  moreinfo.attrib,
4379  common.attrib,
4380  action.role.attrib,
4381  local.action.attrib
4382# end of action.attlist
4383
4384# end of action.module
4385local.application.attrib = empty
4386application.role.attrib = role.attrib
4387# doc:The name of a software program.
4388application =
4389  element application { application.attlist, para.char.mix* }
4390# end of application.element
4391application.attlist &=
4392  attribute class { "hardware" | "software" }?,
4393  moreinfo.attrib,
4394  common.attrib,
4395  application.role.attrib,
4396  local.application.attrib
4397# end of application.attlist
4398
4399# end of application.module
4400local.classname.attrib = empty
4401classname.role.attrib = role.attrib
4402# doc:The name of a class, in the object-oriented programming sense.
4403classname = element classname { classname.attlist, smallcptr.char.mix* }
4404# end of classname.element
4405classname.attlist &=
4406  common.attrib, classname.role.attrib, local.classname.attrib
4407# end of classname.attlist
4408
4409# end of classname.module
4410local.package.attrib = empty
4411package.role.attrib = role.attrib
4412# doc:A package.
4413package = element package { package.attlist, smallcptr.char.mix* }
4414# end of package.element
4415package.attlist &=
4416  common.attrib, package.role.attrib, local.package.attrib
4417# end of package.attlist
4418
4419# end of package.module
4420local.co.attrib = empty
4421# CO is a callout area of the LineColumn unit type (a single character
4422# position); the position is directly indicated by the location of CO.
4423co.role.attrib = role.attrib
4424# doc:The location of a callout embedded in text.
4425co = element co { co.attlist, empty }
4426# end of co.element
4427
4428# bug number/symbol override or initialization
4429
4430# to any related information
4431co.attlist &=
4432  label.attrib,
4433  linkends.attrib,
4434  idreq.common.attrib,
4435  co.role.attrib,
4436  local.co.attrib
4437# end of co.attlist
4438
4439# end of co.module
4440local.coref.attrib = empty
4441# COREF is a reference to a CO
4442coref.role.attrib = role.attrib
4443# doc:A cross reference to a co.
4444coref = element coref { coref.attlist, empty }
4445# end of coref.element
4446
4447# bug number/symbol override or initialization
4448
4449# to any related information
4450coref.attlist &=
4451  label.attrib,
4452  linkendreq.attrib,
4453  common.attrib,
4454  coref.role.attrib,
4455  local.coref.attrib
4456# end of coref.attlist
4457
4458# end of coref.module
4459local.command.attrib = empty
4460command.role.attrib = role.attrib
4461# doc:The name of an executable program or other software command.
4462command = element command { command.attlist, cptr.char.mix* }
4463# end of command.element
4464command.attlist &=
4465  moreinfo.attrib,
4466  common.attrib,
4467  command.role.attrib,
4468  local.command.attrib
4469# end of command.attlist
4470
4471# end of command.module
4472local.computeroutput.attrib = empty
4473computeroutput.role.attrib = role.attrib
4474# doc:Data, generally text, displayed or presented by a computer.
4475computeroutput =
4476  element computeroutput {
4477    computeroutput.attlist, (cptr.char.mix | co)*
4478  }
4479# end of computeroutput.element
4480computeroutput.attlist &=
4481  moreinfo.attrib,
4482  common.attrib,
4483  computeroutput.role.attrib,
4484  local.computeroutput.attrib
4485# end of computeroutput.attlist
4486
4487# end of computeroutput.module
4488local.database.attrib = empty
4489database.role.attrib = role.attrib
4490# doc:The name of a database, or part of a database.
4491database = element database { database.attlist, cptr.char.mix* }
4492# end of database.element
4493
4494# Class: Type of database the element names; no default
4495database.attlist &=
4496  attribute class {
4497    "name"
4498    | "table"
4499    | "field"
4500    | "key1"
4501    | "key2"
4502    | "record"
4503    | "index"
4504    | "view"
4505    | "primarykey"
4506    | "secondarykey"
4507    | "foreignkey"
4508    | "altkey"
4509    | "procedure"
4510    | "datatype"
4511    | "constraint"
4512    | "rule"
4513    | "user"
4514    | "group"
4515  }?,
4516  moreinfo.attrib,
4517  common.attrib,
4518  database.role.attrib,
4519  local.database.attrib
4520# end of database.attlist
4521
4522# end of database.module
4523local.email.attrib = empty
4524email.role.attrib = role.attrib
4525# doc:An email address.
4526email = element email { email.attlist, docinfo.char.mix* }
4527# end of email.element
4528email.attlist &= common.attrib, email.role.attrib, local.email.attrib
4529# end of email.attlist
4530
4531# end of email.module
4532local.envar.attrib = empty
4533envar.role.attrib = role.attrib
4534# doc:A software environment variable.
4535envar = element envar { envar.attlist, smallcptr.char.mix* }
4536# end of envar.element
4537envar.attlist &= common.attrib, envar.role.attrib, local.envar.attrib
4538# end of envar.attlist
4539
4540# end of envar.module
4541local.errorcode.attrib = empty
4542errorcode.role.attrib = role.attrib
4543# doc:An error code.
4544errorcode = element errorcode { errorcode.attlist, smallcptr.char.mix* }
4545# end of errorcode.element
4546errorcode.attlist &=
4547  moreinfo.attrib,
4548  common.attrib,
4549  errorcode.role.attrib,
4550  local.errorcode.attrib
4551# end of errorcode.attlist
4552
4553# end of errorcode.module
4554local.errorname.attrib = empty
4555errorname.role.attrib = role.attrib
4556# doc:An error name.
4557errorname = element errorname { errorname.attlist, smallcptr.char.mix* }
4558# end of errorname.element
4559errorname.attlist &=
4560  common.attrib, errorname.role.attrib, local.errorname.attrib
4561# end of errorname.attlist
4562
4563# end of errorname.module
4564local.errortext.attrib = empty
4565errortext.role.attrib = role.attrib
4566# doc:An error message..
4567errortext = element errortext { errortext.attlist, smallcptr.char.mix* }
4568# end of errortext.element
4569errortext.attlist &=
4570  common.attrib, errortext.role.attrib, local.errortext.attrib
4571# end of errortext.attlist
4572
4573# end of errortext.module
4574local.errortype.attrib = empty
4575errortype.role.attrib = role.attrib
4576# doc:The classification of an error message.
4577errortype = element errortype { errortype.attlist, smallcptr.char.mix* }
4578# end of errortype.element
4579errortype.attlist &=
4580  common.attrib, errortype.role.attrib, local.errortype.attrib
4581# end of errortype.attlist
4582
4583# end of errortype.module
4584local.filename.attrib = empty
4585filename.role.attrib = role.attrib
4586# doc:The name of a file.
4587filename = element filename { filename.attlist, cptr.char.mix* }
4588# end of filename.element
4589
4590# Class: Type of filename the element names; no default
4591
4592# Path: Search path (possibly system-specific) in which
4593# file can be found
4594filename.attlist &=
4595  attribute class {
4596    "headerfile"
4597    | "partition"
4598    | "devicefile"
4599    | "libraryfile"
4600    | "directory"
4601    | "extension"
4602    | "symlink"
4603  }?,
4604  attribute path { text }?,
4605  moreinfo.attrib,
4606  common.attrib,
4607  filename.role.attrib,
4608  local.filename.attrib
4609# end of filename.attlist
4610
4611# end of filename.module
4612local.function.attrib = empty
4613function.role.attrib = role.attrib
4614# doc:The name of a function or subroutine, as in a programming language.
4615function = element function { function.attlist, cptr.char.mix* }
4616# end of function.element
4617function.attlist &=
4618  moreinfo.attrib,
4619  common.attrib,
4620  function.role.attrib,
4621  local.function.attrib
4622# end of function.attlist
4623
4624# end of function.module
4625local.guibutton.attrib = empty
4626guibutton.role.attrib = role.attrib
4627# doc:The text on a button in a GUI.
4628guibutton =
4629  element guibutton {
4630    guibutton.attlist,
4631    (smallcptr.char.mix | accel | superscript | subscript)*
4632  }
4633# end of guibutton.element
4634guibutton.attlist &=
4635  moreinfo.attrib,
4636  common.attrib,
4637  guibutton.role.attrib,
4638  local.guibutton.attrib
4639# end of guibutton.attlist
4640
4641# end of guibutton.module
4642local.guiicon.attrib = empty
4643guiicon.role.attrib = role.attrib
4644# doc:Graphic and/or text appearing as a icon in a GUI.
4645guiicon =
4646  element guiicon {
4647    guiicon.attlist,
4648    (smallcptr.char.mix | accel | superscript | subscript)*
4649  }
4650# end of guiicon.element
4651guiicon.attlist &=
4652  moreinfo.attrib,
4653  common.attrib,
4654  guiicon.role.attrib,
4655  local.guiicon.attrib
4656# end of guiicon.attlist
4657
4658# end of guiicon.module
4659local.guilabel.attrib = empty
4660guilabel.role.attrib = role.attrib
4661# doc:The text of a label in a GUI.
4662guilabel =
4663  element guilabel {
4664    guilabel.attlist,
4665    (smallcptr.char.mix | accel | superscript | subscript)*
4666  }
4667# end of guilabel.element
4668guilabel.attlist &=
4669  moreinfo.attrib,
4670  common.attrib,
4671  guilabel.role.attrib,
4672  local.guilabel.attrib
4673# end of guilabel.attlist
4674
4675# end of guilabel.module
4676local.guimenu.attrib = empty
4677guimenu.role.attrib = role.attrib
4678# doc:The name of a menu in a GUI.
4679guimenu =
4680  element guimenu {
4681    guimenu.attlist,
4682    (smallcptr.char.mix | accel | superscript | subscript)*
4683  }
4684# end of guimenu.element
4685guimenu.attlist &=
4686  moreinfo.attrib,
4687  common.attrib,
4688  guimenu.role.attrib,
4689  local.guimenu.attrib
4690# end of guimenu.attlist
4691
4692# end of guimenu.module
4693local.guimenuitem.attrib = empty
4694guimenuitem.role.attrib = role.attrib
4695# doc:The name of a terminal menu item in a GUI.
4696guimenuitem =
4697  element guimenuitem {
4698    guimenuitem.attlist,
4699    (smallcptr.char.mix | accel | superscript | subscript)*
4700  }
4701# end of guimenuitem.element
4702guimenuitem.attlist &=
4703  moreinfo.attrib,
4704  common.attrib,
4705  guimenuitem.role.attrib,
4706  local.guimenuitem.attrib
4707# end of guimenuitem.attlist
4708
4709# end of guimenuitem.module
4710local.guisubmenu.attrib = empty
4711guisubmenu.role.attrib = role.attrib
4712# doc:The name of a submenu in a GUI.
4713guisubmenu =
4714  element guisubmenu {
4715    guisubmenu.attlist,
4716    (smallcptr.char.mix | accel | superscript | subscript)*
4717  }
4718# end of guisubmenu.element
4719guisubmenu.attlist &=
4720  moreinfo.attrib,
4721  common.attrib,
4722  guisubmenu.role.attrib,
4723  local.guisubmenu.attrib
4724# end of guisubmenu.attlist
4725
4726# end of guisubmenu.module
4727local.hardware.attrib = empty
4728hardware.role.attrib = role.attrib
4729# doc:A physical part of a computer system.
4730hardware = element hardware { hardware.attlist, cptr.char.mix* }
4731# end of hardware.element
4732hardware.attlist &=
4733  moreinfo.attrib,
4734  common.attrib,
4735  hardware.role.attrib,
4736  local.hardware.attrib
4737# end of hardware.attlist
4738
4739# end of hardware.module
4740local.interface.attrib = empty
4741interface.role.attrib = role.attrib
4742# doc:An element of a GUI.
4743interface =
4744  element interface { interface.attlist, (smallcptr.char.mix | accel)* }
4745# end of interface.element
4746
4747# Class: Type of the Interface item; no default
4748interface.attlist &=
4749  moreinfo.attrib,
4750  common.attrib,
4751  interface.role.attrib,
4752  local.interface.attrib
4753# end of interface.attlist
4754
4755# end of interface.module
4756local.keycap.attrib = empty
4757keycap.role.attrib = role.attrib
4758# doc:The text printed on a key on a keyboard.
4759keycap = element keycap { keycap.attlist, cptr.char.mix* }
4760# end of keycap.element
4761keycap.attlist &=
4762  attribute function {
4763    "alt"
4764    | "control"
4765    | "shift"
4766    | "meta"
4767    | "escape"
4768    | "enter"
4769    | "tab"
4770    | "backspace"
4771    | "command"
4772    | "option"
4773    | "space"
4774    | "delete"
4775    | "insert"
4776    | "up"
4777    | "down"
4778    | "left"
4779    | "right"
4780    | "home"
4781    | "end"
4782    | "pageup"
4783    | "pagedown"
4784    | "other"
4785  }?,
4786  attribute otherfunction { text }?,
4787  moreinfo.attrib,
4788  common.attrib,
4789  keycap.role.attrib,
4790  local.keycap.attrib
4791# end of keycap.attlist
4792
4793# end of keycap.module
4794local.keycode.attrib = empty
4795keycode.role.attrib = role.attrib
4796# doc:The internal, frequently numeric, identifier for a key on a keyboard.
4797keycode = element keycode { keycode.attlist, smallcptr.char.mix* }
4798# end of keycode.element
4799keycode.attlist &=
4800  common.attrib, keycode.role.attrib, local.keycode.attrib
4801# end of keycode.attlist
4802
4803# end of keycode.module
4804local.keycombo.attrib = empty
4805keycombo.role.attrib = role.attrib
4806# doc:A combination of input actions.
4807keycombo =
4808  element keycombo {
4809    keycombo.attlist, (keycap | keycombo | keysym | mousebutton)+
4810  }
4811# end of keycombo.element
4812keycombo.attlist &=
4813  keyaction.attrib,
4814  moreinfo.attrib,
4815  common.attrib,
4816  keycombo.role.attrib,
4817  local.keycombo.attrib
4818# end of keycombo.attlist
4819
4820# end of keycombo.module
4821local.keysym.attrib = empty
4822keysysm.role.attrib = role.attrib
4823# doc:The symbolic name of a key on a keyboard.
4824keysym = element keysym { keysym.attlist, smallcptr.char.mix* }
4825# end of keysym.element
4826keysym.attlist &=
4827  common.attrib, keysysm.role.attrib, local.keysym.attrib
4828# end of keysym.attlist
4829
4830# end of keysym.module
4831local.lineannotation.attrib = empty
4832lineannotation.role.attrib = role.attrib
4833# doc:A comment on a line in a verbatim listing.
4834lineannotation =
4835  element lineannotation { lineannotation.attlist, para.char.mix* }
4836# end of lineannotation.element
4837lineannotation.attlist &=
4838  common.attrib, lineannotation.role.attrib, local.lineannotation.attrib
4839# end of lineannotation.attlist
4840
4841# end of lineannotation.module
4842local.literal.attrib = empty
4843literal.role.attrib = role.attrib
4844# doc:Inline text that is some literal value.
4845literal = element literal { literal.attlist, cptr.char.mix* }
4846# end of literal.element
4847literal.attlist &=
4848  moreinfo.attrib,
4849  common.attrib,
4850  literal.role.attrib,
4851  local.literal.attrib
4852# end of literal.attlist
4853
4854# end of literal.module
4855local.code.attrib = empty
4856code.role.attrib = role.attrib
4857# doc:An inline code fragment.
4858code = element code { code.attlist, cptr.char.mix* }
4859# end of code.element
4860code.attlist &=
4861  attribute language { text }?,
4862  common.attrib,
4863  code.role.attrib,
4864  local.code.attrib
4865# end of code.attlist
4866
4867# end of code.module
4868local.constant.attrib = empty
4869constant.role.attrib = role.attrib
4870# doc:A programming or system constant.
4871constant = element constant { constant.attlist, smallcptr.char.mix* }
4872# end of constant.element
4873constant.attlist &=
4874  attribute class { "limit" }?,
4875  common.attrib,
4876  constant.role.attrib,
4877  local.constant.attrib
4878# end of constant.attlist
4879
4880# end of constant.module
4881local.varname.attrib = empty
4882varname.role.attrib = role.attrib
4883# doc:The name of a variable.
4884varname = element varname { varname.attlist, smallcptr.char.mix* }
4885# end of varname.element
4886varname.attlist &=
4887  common.attrib, varname.role.attrib, local.varname.attrib
4888# end of varname.attlist
4889
4890# end of varname.module
4891local.markup.attrib = empty
4892markup.role.attrib = role.attrib
4893# doc:A string of formatting markup in text that is to be represented literally.
4894markup = element markup { markup.attlist, smallcptr.char.mix* }
4895# end of markup.element
4896markup.attlist &= common.attrib, markup.role.attrib, local.markup.attrib
4897# end of markup.attlist
4898
4899# end of markup.module
4900local.medialabel.attrib = empty
4901medialabel.role.attrib = role.attrib
4902# doc:A name that identifies the physical medium on which some information resides.
4903medialabel =
4904  element medialabel { medialabel.attlist, smallcptr.char.mix* }
4905# end of medialabel.element
4906
4907# Class: Type of medium named by the element; no default
4908medialabel.attlist &=
4909  attribute class { "cartridge" | "cdrom" | "disk" | "tape" }?,
4910  common.attrib,
4911  medialabel.role.attrib,
4912  local.medialabel.attrib
4913# end of medialabel.attlist
4914
4915# end of medialabel.module
4916local.menuchoice.attrib = empty
4917menuchoice.role.attrib = role.attrib
4918# doc:A selection or series of selections from a menu.
4919menuchoice =
4920  element menuchoice {
4921    menuchoice.attlist,
4922    shortcut?,
4923    (guibutton
4924     | guiicon
4925     | guilabel
4926     | guimenu
4927     | guimenuitem
4928     | guisubmenu
4929     | interface)+
4930  }
4931# end of menuchoice.element
4932menuchoice.attlist &=
4933  moreinfo.attrib,
4934  common.attrib,
4935  menuchoice.role.attrib,
4936  local.menuchoice.attrib
4937# end of menuchoice.attlist
4938
4939# end of menuchoice.module
4940
4941# See also KeyCombo
4942local.shortcut.attrib = empty
4943shortcut.role.attrib = role.attrib
4944# doc:A key combination for an action that is also accessible through a menu.
4945shortcut =
4946  element shortcut {
4947    shortcut.attlist, (keycap | keycombo | keysym | mousebutton)+
4948  }
4949# end of shortcut.element
4950shortcut.attlist &=
4951  keyaction.attrib,
4952  moreinfo.attrib,
4953  common.attrib,
4954  shortcut.role.attrib,
4955  local.shortcut.attrib
4956# end of shortcut.attlist
4957
4958# end of shortcut.module
4959
4960# end of menuchoice.content.module
4961local.mousebutton.attrib = empty
4962mousebutton.role.attrib = role.attrib
4963# doc:The conventional name of a mouse button.
4964mousebutton =
4965  element mousebutton { mousebutton.attlist, smallcptr.char.mix* }
4966# end of mousebutton.element
4967mousebutton.attlist &=
4968  moreinfo.attrib,
4969  common.attrib,
4970  mousebutton.role.attrib,
4971  local.mousebutton.attrib
4972# end of mousebutton.attlist
4973
4974# end of mousebutton.module
4975local.msgtext.attrib = empty
4976msgtext.role.attrib = role.attrib
4977# doc:The actual text of a message component in a message set.
4978msgtext = element msgtext { msgtext.attlist, component.mix+ }
4979# end of msgtext.element
4980msgtext.attlist &=
4981  common.attrib, msgtext.role.attrib, local.msgtext.attrib
4982# end of msgtext.attlist
4983
4984# end of msgtext.module
4985local.option.attrib = empty
4986option.role.attrib = role.attrib
4987# doc:An option for a software command.
4988option = element option { option.attlist, cptr.char.mix* }
4989# end of option.element
4990option.attlist &= common.attrib, option.role.attrib, local.option.attrib
4991# end of option.attlist
4992
4993# end of option.module
4994local.optional.attrib = empty
4995optional.role.attrib = role.attrib
4996# doc:Optional information.
4997optional = element optional { optional.attlist, cptr.char.mix* }
4998# end of optional.element
4999optional.attlist &=
5000  common.attrib, optional.role.attrib, local.optional.attrib
5001# end of optional.attlist
5002
5003# end of optional.module
5004local.parameter.attrib = empty
5005parameter.role.attrib = role.attrib
5006# doc:A value or a symbolic reference to a value.
5007parameter = element parameter { parameter.attlist, cptr.char.mix* }
5008# end of parameter.element
5009
5010# Class: Type of the Parameter; no default
5011parameter.attlist &=
5012  attribute class { "command" | "function" | "option" }?,
5013  moreinfo.attrib,
5014  common.attrib,
5015  parameter.role.attrib,
5016  local.parameter.attrib
5017# end of parameter.attlist
5018
5019# end of parameter.module
5020local.prompt.attrib = empty
5021prompt.role.attrib = role.attrib
5022# doc:A character or string indicating the start of an input field in a  computer display.
5023prompt = element prompt { prompt.attlist, (smallcptr.char.mix | co)* }
5024# end of prompt.element
5025prompt.attlist &=
5026  moreinfo.attrib,
5027  common.attrib,
5028  prompt.role.attrib,
5029  local.prompt.attrib
5030# end of prompt.attlist
5031
5032# end of prompt.module
5033local.property.attrib = empty
5034property.role.attrib = role.attrib
5035# doc:A unit of data associated with some part of a computer system.
5036property = element property { property.attlist, cptr.char.mix* }
5037# end of property.element
5038property.attlist &=
5039  moreinfo.attrib,
5040  common.attrib,
5041  property.role.attrib,
5042  local.property.attrib
5043# end of property.attlist
5044
5045# end of property.module
5046local.replaceable.attrib = empty
5047replaceable.role.attrib = role.attrib
5048# doc:Content that may or must be replaced by the user.
5049replaceable =
5050  element replaceable {
5051    replaceable.attlist,
5052    (text
5053     | link.char.class
5054     | optional
5055     | base.char.class
5056     | other.char.class
5057     | inlinegraphic
5058     | inlinemediaobject
5059     | co)*
5060  }
5061# end of replaceable.element
5062
5063# Class: Type of information the element represents; no
5064# default
5065replaceable.attlist &=
5066  attribute class { "command" | "function" | "option" | "parameter" }?,
5067  common.attrib,
5068  replaceable.role.attrib,
5069  local.replaceable.attrib
5070# end of replaceable.attlist
5071
5072# end of replaceable.module
5073local.returnvalue.attrib = empty
5074returnvalue.role.attrib = role.attrib
5075# doc:The value returned by a function.
5076returnvalue =
5077  element returnvalue { returnvalue.attlist, smallcptr.char.mix* }
5078# end of returnvalue.element
5079returnvalue.attlist &=
5080  common.attrib, returnvalue.role.attrib, local.returnvalue.attrib
5081# end of returnvalue.attlist
5082
5083# end of returnvalue.module
5084local.sgmltag.attrib = empty
5085sgmltag.role.attrib = role.attrib
5086# doc:A component of SGML markup.
5087sgmltag = element sgmltag { sgmltag.attlist, smallcptr.char.mix* }
5088# end of sgmltag.element
5089
5090# Class: Type of SGML construct the element names; no default
5091sgmltag.attlist &=
5092  attribute class {
5093    "attribute"
5094    | "attvalue"
5095    | "element"
5096    | "endtag"
5097    | "emptytag"
5098    | "genentity"
5099    | "numcharref"
5100    | "paramentity"
5101    | "pi"
5102    | "xmlpi"
5103    | "starttag"
5104    | "sgmlcomment"
5105    | "prefix"
5106    | "namespace"
5107    | "localname"
5108  }?,
5109  attribute namespace { text }?,
5110  common.attrib,
5111  sgmltag.role.attrib,
5112  local.sgmltag.attrib
5113# end of sgmltag.attlist
5114
5115# end of sgmltag.module
5116local.structfield.attrib = empty
5117structfield.role.attrib = role.attrib
5118# doc:A field in a structure (in the programming language sense).
5119structfield =
5120  element structfield { structfield.attlist, smallcptr.char.mix* }
5121# end of structfield.element
5122structfield.attlist &=
5123  common.attrib, structfield.role.attrib, local.structfield.attrib
5124# end of structfield.attlist
5125
5126# end of structfield.module
5127local.structname.attrib = empty
5128structname.role.attrib = role.attrib
5129# doc:The name of a structure (in the programming language sense).
5130structname =
5131  element structname { structname.attlist, smallcptr.char.mix* }
5132# end of structname.element
5133structname.attlist &=
5134  common.attrib, structname.role.attrib, local.structname.attrib
5135# end of structname.attlist
5136
5137# end of structname.module
5138local.symbol.attrib = empty
5139symbol.role.attrib = role.attrib
5140# doc:A name that is replaced by a value before processing.
5141symbol = element symbol { symbol.attlist, smallcptr.char.mix* }
5142# end of symbol.element
5143
5144# Class: Type of symbol; no default
5145symbol.attlist &=
5146  attribute class { "limit" }?,
5147  common.attrib,
5148  symbol.role.attrib,
5149  local.symbol.attrib
5150# end of symbol.attlist
5151
5152# end of symbol.module
5153local.systemitem.attrib = empty
5154systemitem.role.attrib = role.attrib
5155# doc:A system-related item or term.
5156systemitem =
5157  element systemitem {
5158    systemitem.attlist, (cptr.char.mix | acronym | co)*
5159  }
5160# end of systemitem.element
5161
5162# Class: Type of system item the element names; no default
5163systemitem.attlist &=
5164  attribute class {
5165    "constant"
5166    | "daemon"
5167    | "domainname"
5168    | "etheraddress"
5169    | "event"
5170    | "eventhandler"
5171    | "filesystem"
5172    | "fqdomainname"
5173    | "groupname"
5174    | "ipaddress"
5175    | "library"
5176    | "macro"
5177    | "netmask"
5178    | "newsgroup"
5179    | "osname"
5180    | "protocol"
5181    | "resource"
5182    | "systemname"
5183    | "username"
5184    | "process"
5185    | "server"
5186    | "service"
5187  }?,
5188  moreinfo.attrib,
5189  common.attrib,
5190  systemitem.role.attrib,
5191  local.systemitem.attrib
5192# end of systemitem.attlist
5193
5194# end of systemitem.module
5195local.uri.attrib = empty
5196uri.role.attrib = role.attrib
5197# doc:A Uniform Resource Identifier.
5198uri = element uri { uri.attlist, smallcptr.char.mix* }
5199# end of uri.element
5200
5201# Type: Type of URI; no default
5202uri.attlist &=
5203  attribute type { text }?,
5204  common.attrib,
5205  uri.role.attrib,
5206  local.uri.attrib
5207# end of uri.attlist
5208
5209# end of uri.module
5210local.token.attrib = empty
5211token.role.attrib = role.attrib
5212# doc:A unit of information.
5213\token = element token { token.attlist, smallcptr.char.mix* }
5214# end of token.element
5215token.attlist &= common.attrib, token.role.attrib, local.token.attrib
5216# end of token.attlist
5217
5218# end of token.module
5219local.type.attrib = empty
5220type.role.attrib = role.attrib
5221# doc:The classification of a value.
5222type = element type { type.attlist, smallcptr.char.mix* }
5223# end of type.element
5224type.attlist &= common.attrib, type.role.attrib, local.type.attrib
5225# end of type.attlist
5226
5227# end of type.module
5228local.userinput.attrib = empty
5229userinput.role.attrib = role.attrib
5230# doc:Data entered by the user.
5231userinput =
5232  element userinput { userinput.attlist, (cptr.char.mix | co)* }
5233# end of userinput.element
5234userinput.attlist &=
5235  moreinfo.attrib,
5236  common.attrib,
5237  userinput.role.attrib,
5238  local.userinput.attrib
5239# end of userinput.attlist
5240
5241# end of userinput.module
5242local.termdef.attrib = empty
5243termdef.role.attrib = role.attrib
5244# doc:An inline definition of a term.
5245termdef = element termdef { termdef.attlist, para.char.mix* }
5246# end of termdef.element
5247termdef.attlist &=
5248  common.attrib, termdef.role.attrib, local.termdef.attrib
5249# end of termdef.attlist
5250
5251# end of termdef.module
5252
5253# General words and phrases ............................................
5254local.abbrev.attrib = empty
5255abbrev.role.attrib = role.attrib
5256# doc:An abbreviation, especially one followed by a period.
5257abbrev = element abbrev { abbrev.attlist, word.char.mix* }
5258# end of abbrev.element
5259abbrev.attlist &= common.attrib, abbrev.role.attrib, local.abbrev.attrib
5260# end of abbrev.attlist
5261
5262# end of abbrev.module
5263local.acronym.attrib = empty
5264acronym.role.attrib = role.attrib
5265# doc:An often pronounceable word made from the initial (or selected) letters of a name or phrase.
5266acronym = element acronym { acronym.attlist, word.char.mix* }
5267# end of acronym.element
5268acronym.attlist &=
5269  common.attrib, acronym.role.attrib, local.acronym.attrib
5270# end of acronym.attlist
5271
5272# end of acronym.module
5273local.citation.attrib = empty
5274citation.role.attrib = role.attrib
5275# doc:An inline bibliographic reference to another published work.
5276citation = element citation { citation.attlist, para.char.mix* }
5277# end of citation.element
5278citation.attlist &=
5279  common.attrib, citation.role.attrib, local.citation.attrib
5280# end of citation.attlist
5281
5282# end of citation.module
5283local.citerefentry.attrib = empty
5284citerefentry.role.attrib = role.attrib
5285# doc:A citation to a reference page.
5286citerefentry =
5287  element citerefentry {
5288    citerefentry.attlist, refentrytitle, manvolnum?
5289  }
5290# end of citerefentry.element
5291citerefentry.attlist &=
5292  common.attrib, citerefentry.role.attrib, local.citerefentry.attrib
5293# end of citerefentry.attlist
5294
5295# end of citerefentry.module
5296local.refentrytitle.attrib = empty
5297refentrytitle.role.attrib = role.attrib
5298# doc:The title of a reference page.
5299refentrytitle =
5300  element refentrytitle { refentrytitle.attlist, para.char.mix* }
5301# end of refentrytitle.element
5302refentrytitle.attlist &=
5303  common.attrib, refentrytitle.role.attrib, local.refentrytitle.attrib
5304# end of refentrytitle.attlist
5305
5306# end of refentrytitle.module
5307local.manvolnum.attrib = empty
5308namvolnum.role.attrib = role.attrib
5309# doc:A reference volume number.
5310manvolnum = element manvolnum { manvolnum.attlist, word.char.mix* }
5311# end of manvolnum.element
5312manvolnum.attlist &=
5313  common.attrib, namvolnum.role.attrib, local.manvolnum.attrib
5314# end of manvolnum.attlist
5315
5316# end of manvolnum.module
5317local.citetitle.attrib = empty
5318citetitle.role.attrib = role.attrib
5319# doc:The title of a cited work.
5320citetitle = element citetitle { citetitle.attlist, para.char.mix* }
5321# end of citetitle.element
5322
5323# Pubwork: Genre of published work cited; no default
5324citetitle.attlist &=
5325  attribute pubwork {
5326    "article"
5327    | "book"
5328    | "chapter"
5329    | "part"
5330    | "refentry"
5331    | "section"
5332    | "journal"
5333    | "series"
5334    | "set"
5335    | "manuscript"
5336    | "cdrom"
5337    | "dvd"
5338    | "wiki"
5339    | "gopher"
5340    | "bbs"
5341    | "emailmessage"
5342    | "webpage"
5343    | "newsposting"
5344  }?,
5345  common.attrib,
5346  citetitle.role.attrib,
5347  local.citetitle.attrib
5348# end of citetitle.attlist
5349
5350# end of citetitle.module
5351local.emphasis.attrib = empty
5352emphasis.role.attrib = role.attrib
5353# doc:Emphasized text.
5354emphasis = element emphasis { emphasis.attlist, para.char.mix* }
5355# end of emphasis.element
5356emphasis.attlist &=
5357  common.attrib, emphasis.role.attrib, local.emphasis.attrib
5358# end of emphasis.attlist
5359
5360# end of emphasis.module
5361local.foreignphrase.attrib = empty
5362foreignphrase.role.attrib = role.attrib
5363# doc:A word or phrase in a language other than the primary language of the document.
5364foreignphrase =
5365  element foreignphrase { foreignphrase.attlist, para.char.mix* }
5366# end of foreignphrase.element
5367foreignphrase.attlist &=
5368  common.attrib, foreignphrase.role.attrib, local.foreignphrase.attrib
5369# end of foreignphrase.attlist
5370
5371# end of foreignphrase.module
5372local.glossterm.attrib = empty
5373glossterm.role.attrib = role.attrib
5374# doc:A glossary term.
5375glossterm = element glossterm { glossterm.attlist, para.char.mix* }
5376# end of glossterm.element
5377
5378# to GlossEntry if Glossterm used in text
5379
5380# BaseForm: Provides the form of GlossTerm to be used
5381# for indexing
5382glossterm.attlist &=
5383  attribute baseform { text }?,
5384  linkend.attrib,
5385  common.attrib,
5386  glossterm.role.attrib,
5387  local.glossterm.attrib
5388# end of glossterm.attlist
5389
5390# end of glossterm.module
5391local.firstterm.attrib = empty
5392firstterm.role.attrib = role.attrib
5393# doc:The first occurrence of a term.
5394firstterm = element firstterm { firstterm.attlist, para.char.mix* }
5395# end of firstterm.element
5396
5397# to GlossEntry or other explanation
5398firstterm.attlist &=
5399  attribute baseform { text }?,
5400  linkend.attrib,
5401  common.attrib,
5402  firstterm.role.attrib,
5403  local.firstterm.attrib
5404# end of firstterm.attlist
5405
5406# end of firstterm.module
5407local.phrase.attrib = empty
5408phrase.role.attrib = role.attrib
5409# doc:A span of text.
5410phrase = element phrase { phrase.attlist, para.char.mix* }
5411# end of phrase.element
5412phrase.attlist &= common.attrib, phrase.role.attrib, local.phrase.attrib
5413# end of phrase.attlist
5414
5415# end of phrase.module
5416local.quote.attrib = empty
5417quote.role.attrib = role.attrib
5418# doc:An inline quotation.
5419quote = element quote { quote.attlist, para.char.mix* }
5420# end of quote.element
5421quote.attlist &= common.attrib, quote.role.attrib, local.quote.attrib
5422# end of quote.attlist
5423
5424# end of quote.module
5425local.ssscript.attrib = empty
5426ssscript.role.attrib = role.attrib
5427# doc:A subscript (as in H{^2}O, the molecular formula for water).
5428subscript =
5429  element subscript {
5430    subscript.attlist,
5431    (text
5432     | link.char.class
5433     | emphasis
5434     | replaceable
5435     | symbol
5436     | inlinegraphic
5437     | inlinemediaobject
5438     | base.char.class
5439     | other.char.class)*
5440  }
5441# end of subscript.element
5442subscript.attlist &=
5443  common.attrib, ssscript.role.attrib, local.ssscript.attrib
5444# end of subscript.attlist
5445
5446# doc:A superscript (as in x^2, the mathematical notation for x multiplied by itself).
5447superscript =
5448  element superscript {
5449    superscript.attlist,
5450    (text
5451     | link.char.class
5452     | emphasis
5453     | replaceable
5454     | symbol
5455     | inlinegraphic
5456     | inlinemediaobject
5457     | base.char.class
5458     | other.char.class)*
5459  }
5460# end of superscript.element
5461superscript.attlist &=
5462  common.attrib, ssscript.role.attrib, local.ssscript.attrib
5463# end of superscript.attlist
5464
5465# end of ssscript.module
5466local.trademark.attrib = empty
5467trademark.role.attrib = role.attrib
5468# doc:A trademark.
5469trademark =
5470  element trademark {
5471    trademark.attlist,
5472    (text
5473     | link.char.class
5474     | tech.char.class
5475     | base.char.class
5476     | other.char.class
5477     | inlinegraphic
5478     | inlinemediaobject
5479     | emphasis)*
5480  }
5481# end of trademark.element
5482
5483# Class: More precisely identifies the item the element names
5484trademark.attlist &=
5485  [ a:defaultValue = "trade" ]
5486  attribute class { "service" | "trade" | "registered" | "copyright" }?,
5487  common.attrib,
5488  trademark.role.attrib,
5489  local.trademark.attrib
5490# end of trademark.attlist
5491
5492# end of trademark.module
5493local.wordasword.attrib = empty
5494wordasword.role.attrib = role.attrib
5495# doc:A word meant specifically as a word and not representing anything else.
5496wordasword = element wordasword { wordasword.attlist, word.char.mix* }
5497# end of wordasword.element
5498wordasword.attlist &=
5499  common.attrib, wordasword.role.attrib, local.wordasword.attrib
5500# end of wordasword.attlist
5501
5502# end of wordasword.module
5503
5504# Links and cross-references ...........................................
5505local.link.attrib = empty
5506link.role.attrib = role.attrib
5507# doc:A hypertext link.
5508link = element link { link.attlist, para.char.mix* }
5509# end of link.element
5510
5511# Endterm: ID of element containing text that is to be
5512# fetched from elsewhere in the document to appear as
5513# the content of this element
5514
5515# to linked-to object
5516
5517# Type: Freely assignable parameter
5518link.attlist &=
5519  attribute endterm { xsd:IDREF }?,
5520  attribute xrefstyle { text }?,
5521  attribute type { text }?,
5522  linkendreq.attrib,
5523  common.attrib,
5524  link.role.attrib,
5525  local.link.attrib
5526# end of link.attlist
5527
5528# end of link.module
5529local.olink.attrib = empty
5530olink.role.attrib = role.attrib
5531# doc:A link that addresses its target indirectly, through an entity.
5532olink = element olink { olink.attlist, para.char.mix* }
5533# end of olink.element
5534
5535# TargetDocEnt: Name of an entity to be the target of the link
5536
5537# LinkMode: ID of a ModeSpec containing instructions for
5538# operating on the entity named by TargetDocEnt
5539
5540# LocalInfo: Information that may be passed to ModeSpec
5541
5542# Type: Freely assignable parameter
5543olink.attlist &=
5544  attribute targetdocent { xsd:ENTITY }?,
5545  attribute linkmode { xsd:IDREF }?,
5546  attribute localinfo { text }?,
5547  attribute type { text }?,
5548  attribute targetdoc { text }?,
5549  attribute targetptr { text }?,
5550  attribute xrefstyle { text }?,
5551  common.attrib,
5552  olink.role.attrib,
5553  local.olink.attrib
5554# end of olink.attlist
5555
5556# end of olink.module
5557local.ulink.attrib = empty
5558ulink.role.attrib = role.attrib
5559# doc:A link that addresses its target by means of a URL (Uniform Resource Locator).
5560ulink = element ulink { ulink.attlist, para.char.mix* }
5561# end of ulink.element
5562
5563# URL: uniform resource locator; the target of the ULink
5564
5565# Type: Freely assignable parameter
5566ulink.attlist &=
5567  attribute url { text },
5568  attribute type { text }?,
5569  attribute xrefstyle { text }?,
5570  common.attrib,
5571  ulink.role.attrib,
5572  local.ulink.attrib
5573# end of ulink.attlist
5574
5575# end of ulink.module
5576local.footnoteref.attrib = empty
5577footnoteref.role.attrib = role.attrib
5578# doc:A cross reference to a footnote (a footnote mark).
5579footnoteref = element footnoteref { footnoteref.attlist, empty }
5580# end of footnoteref.element
5581
5582# to footnote content supplied elsewhere
5583footnoteref.attlist &=
5584  linkendreq.attrib,
5585  label.attrib,
5586  common.attrib,
5587  footnoteref.role.attrib,
5588  local.footnoteref.attrib
5589# end of footnoteref.attlist
5590
5591# end of footnoteref.module
5592local.xref.attrib = empty
5593xref.role.attrib = role.attrib
5594# doc:A cross reference to another part of the document.
5595xref = element xref { xref.attlist, empty }
5596# end of xref.element
5597
5598# Endterm: ID of element containing text that is to be
5599# fetched from elsewhere in the document to appear as
5600# the content of this element
5601
5602# to linked-to object
5603xref.attlist &=
5604  attribute endterm { xsd:IDREF }?,
5605  attribute xrefstyle { text }?,
5606  common.attrib,
5607  linkendreq.attrib,
5608  xref.role.attrib,
5609  local.xref.attrib
5610# end of xref.attlist
5611
5612# end of xref.module
5613local.biblioref.attrib = empty
5614biblioref.role.attrib = role.attrib
5615# doc:A cross reference to a bibliographic entry.
5616biblioref = element biblioref { biblioref.attlist, empty }
5617# end of biblioref.element
5618biblioref.attlist &=
5619  attribute endterm { xsd:IDREF }?,
5620  attribute xrefstyle { text }?,
5621  attribute units { text }?,
5622  attribute begin { text }?,
5623  attribute end { text }?,
5624  common.attrib,
5625  linkendreq.attrib,
5626  biblioref.role.attrib,
5627  local.biblioref.attrib
5628# end of biblioref.attlist
5629
5630# end of biblioref.module
5631
5632# Ubiquitous elements ..................................................
5633local.anchor.attrib = empty
5634anchor.role.attrib = role.attrib
5635# doc:A spot in the document.
5636anchor = element anchor { anchor.attlist, empty }
5637# end of anchor.element
5638
5639# required
5640
5641# replaces Lang
5642anchor.attlist &=
5643  idreq.attrib,
5644  pagenum.attrib,
5645  remap.attrib,
5646  xreflabel.attrib,
5647  revisionflag.attrib,
5648  effectivity.attrib,
5649  anchor.role.attrib,
5650  local.anchor.attrib
5651# end of anchor.attlist
5652
5653# end of anchor.module
5654local.beginpage.attrib = empty
5655beginpage.role.attrib = role.attrib
5656# doc:The location of a page break in a print version of the document.
5657beginpage = element beginpage { beginpage.attlist, empty }
5658# end of beginpage.element
5659
5660# PageNum: Number of page that begins at this point
5661beginpage.attlist &=
5662  pagenum.attrib,
5663  common.attrib,
5664  beginpage.role.attrib,
5665  local.beginpage.attrib
5666# end of beginpage.attlist
5667
5668# end of beginpage.module
5669
5670# IndexTerms appear in the text flow for generating or linking an
5671# index.
5672local.indexterm.attrib = empty
5673indexterm.role.attrib = role.attrib
5674# doc:A wrapper for terms to be indexed.
5675indexterm =
5676  element indexterm {
5677    indexterm.attlist,
5678    primary?,
5679    ((secondary,
5680      ((tertiary, (see | seealso+)?)
5681       | see
5682       | seealso+)?)
5683     | see
5684     | seealso+)?
5685  }
5686# end of indexterm.element
5687
5688# Scope: Indicates which generated indices the IndexTerm
5689# should appear in: Global (whole document set), Local (this
5690# document only), or All (both)
5691
5692# Significance: Whether this IndexTerm is the most pertinent
5693# of its series (Preferred) or not (Normal, the default)
5694
5695# Class: Indicates type of IndexTerm; default is Singular,
5696# or EndOfRange if StartRef is supplied; StartOfRange value
5697# must be supplied explicitly on starts of ranges
5698
5699# StartRef: ID of the IndexTerm that starts the indexing
5700# range ended by this IndexTerm
5701
5702# Zone: IDs of the elements to which the IndexTerm applies,
5703# and indicates that the IndexTerm applies to those entire
5704# elements rather than the point at which the IndexTerm
5705# occurs
5706indexterm.attlist &=
5707  pagenum.attrib,
5708  attribute scope { "all" | "global" | "local" }?,
5709  [ a:defaultValue = "normal" ]
5710  attribute significance { "preferred" | "normal" }?,
5711  attribute class { "singular" | "startofrange" | "endofrange" }?,
5712  attribute startref { xsd:IDREF }?,
5713  attribute zone { xsd:IDREFS }?,
5714  attribute type { text }?,
5715  common.attrib,
5716  indexterm.role.attrib,
5717  local.indexterm.attrib
5718# end of indexterm.attlist
5719
5720# end of indexterm.module
5721local.primsecter.attrib = empty
5722primsecter.role.attrib = role.attrib
5723# doc:The primary word or phrase under which an index term should be sorted.
5724primary = element primary { primary.attlist, ndxterm.char.mix* }
5725# end of primary.element
5726
5727# SortAs: Alternate sort string for index sorting, e.g.,
5728# "fourteen" for an element containing "14"
5729primary.attlist &=
5730  attribute sortas { text }?,
5731  common.attrib,
5732  primsecter.role.attrib,
5733  local.primsecter.attrib
5734# end of primary.attlist
5735
5736# doc:A secondary word or phrase in an index term.
5737secondary = element secondary { secondary.attlist, ndxterm.char.mix* }
5738# end of secondary.element
5739
5740# SortAs: Alternate sort string for index sorting, e.g.,
5741# "fourteen" for an element containing "14"
5742secondary.attlist &=
5743  attribute sortas { text }?,
5744  common.attrib,
5745  primsecter.role.attrib,
5746  local.primsecter.attrib
5747# end of secondary.attlist
5748
5749# doc:A tertiary word or phrase in an index term.
5750tertiary = element tertiary { tertiary.attlist, ndxterm.char.mix* }
5751# end of tertiary.element
5752
5753# SortAs: Alternate sort string for index sorting, e.g.,
5754# "fourteen" for an element containing "14"
5755tertiary.attlist &=
5756  attribute sortas { text }?,
5757  common.attrib,
5758  primsecter.role.attrib,
5759  local.primsecter.attrib
5760# end of tertiary.attlist
5761
5762# end of primsecter.module
5763local.seeseealso.attrib = empty
5764seeseealso.role.attrib = role.attrib
5765# doc:Part of an index term directing the reader instead to another entry in the index.
5766see = element see { see.attlist, ndxterm.char.mix* }
5767# end of see.element
5768see.attlist &=
5769  common.attrib, seeseealso.role.attrib, local.seeseealso.attrib
5770# end of see.attlist
5771
5772# doc:Part of an index term directing the reader also to another entry in the index.
5773seealso = element seealso { seealso.attlist, ndxterm.char.mix* }
5774# end of seealso.element
5775seealso.attlist &=
5776  common.attrib, seeseealso.role.attrib, local.seeseealso.attrib
5777# end of seealso.attlist
5778
5779# end of seeseealso.module
5780
5781# end of indexterm.content.module
5782
5783# End of DocBook XML information pool module V4.5 ......................
5784
5785# ......................................................................
Note: See TracBrowser for help on using the repository browser.