view etc/schema/dbhier.rnc @ 94414:d86cb59eea9f

2008-04-27 Carsten Dominik <dominik@science.uva.nl> * org/org.el (org-html-level-start): Always have id's in HTML (org-export-as-html): Use `org-link-protocols' to retrieve the export form of the link. (org-add-link-type): Final parameter renamed from PUBLISH. Better documentation of how it is to be used. Avoid double entries for the same link type. (org-add-link-props): New function. (org-modules-loaded): New variable. (org-load-modules-maybe, org-set-modules): New function. (org-modules): New option. (org-mode, org-cycle, orgstruct-mode, org-run-like-in-org-mode) (orgtbl-mode, org-store-link, org-insert-link-global) (org-open-at-point): Call `org-load-modules-maybe'. (org-search-view): Add more text properties. (org-agenda-schedule, org-agenda-deadline): Allow also in search-type agendas. (org-search-view): Order of arguments has been changed. Interpret prefix-arg as TODO-ONLY. (org-agenda, org-run-agenda-series, org-agenda-manipulate-query): Take new argument order of `org-search-view' into account. (org-todo-only): New variable. (org-search-syntax-table): New variable and function. (org-search-view): Do the search with the special syntax table. (define-obsolete-function-alias): Make work with XEmacs. (org-add-planning-info): Use old date as default when modifying an existing deadline or scheduled item. (org-agenda-compute-time-span): Make argument N optional. (org-agenda-format-date-aligned): Require `cal-iso'. (org-agenda-list): Include week into into agenda heading, don't list it at each date (only on Mondays). (org-read-date-analyze): Define local variable `iso-date'. (org-agenda-format-date-aligned): Remove dependency on `calendar-time-from-absolute'. (org-remember-apply-template, org-go-to-remember-target): Interpret filenames relative to `org-directory'. (org-complete): Silently fail when trying to complete keywords that don't have a default value. (org-get-current-options): Added a #+DATE: option. (org-additional-option-like-keywords): Removed "DATE:" from the list of additional keywords. (org-export-as-html): Removed (current-time) as unnecessary second argument of `format-time-string'. (org-clock-find-position): Handle special case at end of buffer. (org-agenda-day-view): New argument DAY-OF-YEAR, pass it on to `org-agenda-change-time-span'. (org-agenda-week-view): New argument ISO-WEEK, pass it on to `org-agenda-change-time-span'. (org-agenda-month-view): New argument MONTH, pass it on to `org-agenda-change-time-span'. (org-agenda-year-view): New argument YEAR, pass it on to `org-agenda-change-time-span'. (org-agenda-change-time-span): New optional argument N, pass it on to `org-agenda-compute-time-span'. (org-agenda-compute-time-span): New argument N, interpret it by changing the starting day. (org-small-year-to-year): New function. (org-scheduled-past-days): Respect `org-scheduled-past-days'. (org-auto-repeat-maybe): Make sure that repeating dates are pushed into the future, and that the shift is at least one interval, never 0. (org-update-checkbox-count): Fix bug with checkbox counting. (org-add-note): New command. (org-add-log-setup): Renamed from `org-add-log-maybe'. (org-log-note-headings): New entry for plain notes (i.e. notes not related to state changes or clocking). (org-get-org-file): Check for availability of `remember-data-file'. (org-cached-entry-get): Allow a regexp value for `org-use-property-inheritance'. (org-use-property-inheritance): Allow regexp value. Fix bug in customization type. (org-use-tag-inheritance): Allow a list and a regexp value for this variable. (org-scan-tags, org-get-tags-at): Implement selective tag inheritance. (org-entry-get): Respect value `selective' for the INHERIT argument. (org-tag-inherit-p, org-property-inherit-p): New functions. (org-agenda-format-date-aligned): Allow 10 characters for weekday, to acomodate German locale. (org-add-archive-files): New function. (org-agenda-files): New argument `ext', to get archive files as well. (org-tbl-menu): Protect the use of variables that are only available when org-table.el gets loaded. (org-read-agenda-file-list): Error if `org-agenda-files' is a single directory. (org-open-file): Allow a batch process to trigger waiting after executing a system command. (org-store-link): Link to headline when there is not target and no region in an org-mode buffer when creating a link. (org-link-types-re): New variable. (org-make-link-regexps): Compute `org-link-types-re'. (org-make-link-description-function): New option. (org-agenda-date, org-agenda-date-weekend): New faces. (org-archive-sibling-heading): New option. (org-archive-to-archive-sibling): New function. (org-iswitchb): New command. (org-buffer-list): New function. (org-agenda-columns): Also try the #+COLUMNS line in the buffer associated with the entry at point (or with the first entry in the agenda view). (org-modules): Add entry for org-bibtex.el. (org-completion-fallback-command): Moved into `org-completion' group. (org-clock-heading-function): Moved to `org-progress' group. (org-auto-repeat-maybe): Make sure that a note can be enforces if `org-log-repeat' is `note'. (org-modules): Allow additional symbols for external packages. (org-ctrl-c-ctrl-c): Allow for `org-clock-overlays' to be undefined. (org-clock-goto): Hide drawers after showing an entry with `org-clock-goto.' (org-shiftup, org-shiftdown, org-shiftright, org-shiftleft): Try also a clocktable block shift. (org-clocktable-try-shift): New function. (org-columns-hscoll-title): New function. (org-columns-previous-hscroll): New variable. (org-columns-full-header-line-format): New variable. (org-columns-display-here-title, org-columns-remove-overlays): Install `org-columns-hscoll-title' in post-command-hook. * org/org.el: Split into many small files. * org/org-agenda.el: New file, split off from org.el. * org/org-archive.el: New file, split off from org.el. * org/org-bbdb.el: New file. * org/org-bibtex.el: New file, split off from org.el. * org/org-clock.el: New file, split off from org.el. * org/org-colview.el: New file, split off from org.el. * org/org-compat.el: New file, split off from org.el. * org/org-exp.el: New file, split off from org.el. * org/org-faces.el: New file, split off from org.el. * org/org-gnus.el: New file, split off from org.el. * org/org-info.el: New file, split off from org.el. * org/org-infojs.el: New file. * org/org-irc.el: New file. * org/org-macs.el: New file, split off from org.el. * org/org-mew.el: New file. * org/org-mhe.el: New file, split off from org.el. * org/org-publish.el: New file, split off from org.el. * org/org-remember.el: New file, split off from org.el. * org/org-rmail.el: New file, split off from org.el. * org/org-table.el: New file, split off from org.el. * org/org-vm.el: New file, split off from org.el. * org/org-wl.el: New file, split off from org.el. 2008-04-27 Jason Riedy <jason@acm.org> * lisp/org-table.el (orgtbl-to-generic): Add a :remove-nil-lines parameter that supresses lines that evaluate to NIL. (orgtbl-get-fmt): New inline function for picking apart formats that may be lists. (orgtbl-apply-fmt): New inline function for applying formats that may be functions. (orgtbl-eval-str): New inline function for strings that may be functions. (orgtbl-format-line, orgtbl-to-generic): Use and document. (orgtbl-to-latex, orgtbl-to-texinfo): Document. (*orgtbl-llfmt*, *orgtbl-llstart*) (*orgtbl-llend*): Dynamic variables for last-line formatting. (orgtbl-format-section): Shift formatting to support detecting the last line and formatting it specially. (orgtbl-to-generic): Document :ll* formats. Set to the non-ll formats unless overridden. (orgtbl-to-latex): Suggest using :llend to suppress the final \\. (*orgtbl-table*, *orgtbl-rtn*): Dynamically bound variables to hold the input collection of lines and output formatted text. (*orgtbl-hline*, *orgtbl-sep*, *orgtbl-fmt*, *orgtbl-efmt*, (*orgtbl-lfmt*, *orgtbl-lstart*, *orgtbl-lend*): Dynamically bound format parameters. (orgtbl-format-line): New function encapsulating formatting for a single line. (orgtbl-format-section): Similar for each section. Rebinding the dynamic vars customizes the formatting for each section. (orgtbl-to-generic): Use orgtbl-format-line and orgtbl-format-section. (org-get-param): Now unused, so delete. (orgtbl-gather-send-defs): New function to gather all the SEND definitions before a table. (orgtbl-send-replace-tbl): New function to find the RECEIVE corresponding to the current name. (orgtbl-send-table): Use the previous two functions and implement multiple destinations for each table. * doc/org.texi (A LaTeX example): Note that fmt may be a one-argument function, and efmt may be a two-argument function. (Radio tables): Document multiple destinations. 2008-04-27 Carsten Dominik <dominik@science.uva.nl> * org/org-agenda.el (org-add-to-diary-list): New function. (org-prefix-has-effort): New variable. (org-sort-agenda-noeffort-is-high): New option. (org-agenda-columns-show-summaries) (org-agenda-columns-compute-summary-properties): New options. (org-format-agenda-item): Compute the duration of the item. (org-agenda-weekend-days): New variable. (org-agenda-list, org-timeline): Use the proper faces for dates in the agenda and timeline buffers. (org-agenda-archive-to-archive-sibling): New command. (org-agenda-start-with-clockreport-mode): New option. (org-agenda-clockreport-parameter-plist): New option. (org-agenda-clocktable-mode): New variable. (org-agenda-deadline-leaders): Allow a function value for the deadline leader. (org-agenda-get-deadlines): Deal with new function value. * lisp/org-clock.el (org-clock): New customization group. (org-clock-into-drawer, org-clock-out-when-done) (org-clock-in-switch-to-state, org-clock-heading-function): Moved into the new group. (org-clock-out-remove-zero-time-clocks): New option. (org-clock-out): Use `org-clock-out-remove-zero-time-clocks'. (org-dblock-write:clocktable): Allow a Lisp form for the scope parameter. (org-dblock-write:clocktable): Fixed bug with total time calculation. (org-dblock-write:clocktable): Request the unrestricted list of files. (org-get-clocktable): New function. (org-dblock-write:clocktable): Make sure :tstart and :tend can not only be strings but also integers (an absolute day number) and lists (m d y). * org/org-colview.el (org-columns-next-allowed-value) (org-columns-edit-value): Limit the effort for updatig in the agenda to recomputing a single file. (org-columns-compute): Only write property value if it has changed. This avoids raising the buffer-change-flag unnecessarily. (org-agenda-colview-summarize) (org-agenda-colview-compute): New functions. (org-agenda-columns): Call `org-agenda-colview-summarize'. * org/org-exp.el (org-export-run-in-background): New option. (org-export-icalendar): Allow a batch process to trigger waiting after executing a system command. (org-export-preprocess-string): Renamed-from `org-cleaned-string-for-export'. (org-export-html-style): Made target class look like normal text. (org-export-as-html): Make use of the better proprocessing in `org-cleaned-string-for-export'. (org-cleaned-string-for-export): Better treatment of heuristic targets, many more internal links will now work in HTML export. (org-get-current-options): Incorporate LINK_UP, LINK_HOME, and INFOJS. (org-export-inbuffer-options-extra): New variable. (org-export-options-filters): New hook. (org-infile-export-plist): Find also the settings keywords in `org-export-inbuffer-options-extra'. (org-infile-export-plist): Allow multiple #+OPTIONS lines and multiple #+INFOJS_OPT lines. (org-export-html-handle-js-options): New function. (org-export-html-infojs-setup): New option. (org-export-as-html): Call `org-export-html-handle-js-options'. Add autoload to all entry points. (org-skip-comments): Function removed. * org/org-table.el (org-table-make-reference): Extra parenthesis around single fields, to make sure that algebraic formulas get correctly interpreted by calc. (org-table-current-column): No longer interactive. * org/org-export-latex.el (org-export-latex-preprocess): Renamed from `org-export-latex-cleaned-string'. 2008-04-27 Bastien Guerry <bzg@altern.org> * org/org-publish.el (org-publish-get-base-files-1): New function. (org-publish-get-base-files): Use it. (org-publish-temp-files): New variable. Don't require 'dired-aux anymore. (org-publish-initial-buffer): New variable. (org-publish-org-to, org-publish): Use it. (org-publish-get-base-files-1): Bug fix: get the proper list of files when recursing thru a directory. (org-publish-get-base-files): Use the :exclude property to skip both files and directories.
author Carsten Dominik <dominik@science.uva.nl>
date Sun, 27 Apr 2008 18:33:39 +0000
parents 38f93f3d00a2
children 53108e6cea98
line wrap: on
line source

# ......................................................................

# DocBook document hierarchy module V4.2 ...............................

# File dbhierx.mod .....................................................

# Copyright 1992-2002 HaL Computer Systems, Inc.,
# O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
# Corporation, Norman Walsh, Sun Microsystems, Inc., and the
# Organization for the Advancement of Structured Information
# Standards (OASIS).
# 
# $Id: dbhier.rnc,v 1.1 2003/08/30 04:19:27 jjc Exp $
# 
# Permission to use, copy, modify and distribute the DocBook DTD
# and its accompanying documentation for any purpose and without fee
# is hereby granted in perpetuity, provided that the above copyright
# notice and this paragraph appear in all copies.  The copyright
# holders make no representation about the suitability of the DTD for
# any purpose.  It is provided "as is" without expressed or implied
# warranty.
# 
# If you modify the DocBook DTD in any way, except for declaring and
# referencing additional sets of general entities and declaring
# additional notations, label your DTD as a variant of DocBook.  See
# the maintenance documentation for more information.
# 
# Please direct all questions, bug reports, or suggestions for
# changes to the docbook@lists.oasis-open.org mailing list. For more
# information, see http://www.oasis-open.org/docbook/.

# ......................................................................

# This module contains the definitions for the overall document
# hierarchies of DocBook documents.  It covers computer documentation
# manuals and manual fragments, as well as reference entries (such as
# man pages) and technical journals or anthologies containing
# articles.
# 
# This module depends on the DocBook information pool module.  All
# elements and entities referenced but not defined here are assumed
# to be defined in the information pool module.
# 
# In DTD driver files referring to this module, please use an entity
# declaration that uses the public identifier shown below:
# 
# <!ENTITY % dbhier PUBLIC
# "-//OASIS//ELEMENTS DocBook Document Hierarchy V4.2//EN"
# "dbhierx.mod">
# %dbhier;
# 
# See the documentation for detailed information on the parameter
# entity and module scheme used in DocBook, customizing DocBook and
# planning for interchange, and changes made since the last release
# of DocBook.

# ......................................................................

# Entities for module inclusions .......................................

# ......................................................................

# Entities for element classes .........................................

local.appendix.class = notAllowed
appendix.class = appendix | local.appendix.class
local.article.class = notAllowed
article.class = article | local.article.class
local.book.class = notAllowed
book.class = book | local.book.class
local.chapter.class = notAllowed
chapter.class = chapter | local.chapter.class
local.index.class = notAllowed
index.class = index | setindex | local.index.class
local.refentry.class = notAllowed
refentry.class = refentry | local.refentry.class
local.section.class = notAllowed
section.class = section | local.section.class
local.nav.class = notAllowed
nav.class =
  toc | lot | index | glossary | bibliography | local.nav.class
# Redeclaration placeholder ............................................

# For redeclaring entities that are declared after this point while
# retaining their references to the entities that are declared before
# this point

# ......................................................................

# Entities for element mixtures ........................................

# The DocBook TC may produce an official forms module for DocBook.

# This PE provides the hook by which it can be inserted into the DTD.
forms.hook = notAllowed
local.divcomponent.mix = notAllowed
divcomponent.mix =
  list.class
  | admon.class
  | linespecific.class
  | synop.class
  | para.class
  | informal.class
  | formal.class
  | compound.class
  | genobj.class
  | descobj.class
  | ndxterm.class
  | beginpage
  | forms.hook
  | local.divcomponent.mix
local.refcomponent.mix = notAllowed
refcomponent.mix =
  list.class
  | admon.class
  | linespecific.class
  | synop.class
  | para.class
  | informal.class
  | formal.class
  | compound.class
  | genobj.class
  | descobj.class
  | ndxterm.class
  | beginpage
  | local.refcomponent.mix
local.indexdivcomponent.mix = notAllowed
indexdivcomponent.mix =
  itemizedlist
  | orderedlist
  | variablelist
  | simplelist
  | linespecific.class
  | synop.class
  | para.class
  | informal.class
  | anchor
  | remark
  | link.char.class
  | beginpage
  | local.indexdivcomponent.mix
local.refname.char.mix = notAllowed
refname.char.mix = text | tech.char.class | local.refname.char.mix
local.partcontent.mix = notAllowed
partcontent.mix =
  appendix.class
  | chapter.class
  | nav.class
  | article.class
  | preface
  | refentry.class
  | reference
  | local.partcontent.mix
local.refinline.char.mix = notAllowed
refinline.char.mix =
  text
  | xref.char.class
  | gen.char.class
  | link.char.class
  | tech.char.class
  | base.char.class
  | docinfo.char.class
  | other.char.class
  | ndxterm.class
  | beginpage
  | local.refinline.char.mix
local.refclass.char.mix = notAllowed
refclass.char.mix = text | application | local.refclass.char.mix
# Redeclaration placeholder 2 ..........................................

# For redeclaring entities that are declared after this point while
# retaining their references to the entities that are declared before
# this point

# ......................................................................

# Entities for content models ..........................................
div.title.content = title, subtitle?, titleabbrev?
bookcomponent.title.content = title, subtitle?, titleabbrev?
sect.title.content = title, subtitle?, titleabbrev?
refsect.title.content = title, subtitle?, titleabbrev?
bookcomponent.content =
  (divcomponent.mix+,
   (sect1* | refentry.class* | simplesect* | section.class*))
  | (sect1+ | refentry.class+ | simplesect+ | section.class+)
# ......................................................................

# Set and SetInfo ......................................................
local.set.attrib = empty
set.role.attrib = role.attrib
set =
  element set {
    set.attlist,
    div.title.content?,
    setinfo?,
    toc?,
    book.class+,
    setindex?
  }
# end of set.element

# FPI: SGML formal public identifier
set.attlist &=
  attribute fpi { text }?,
  status.attrib,
  common.attrib,
  set.role.attrib,
  local.set.attrib
# end of set.attlist

# end of set.module
local.setinfo.attrib = empty
setinfo.role.attrib = role.attrib
setinfo = element setinfo { setinfo.attlist, info.class+ }
# end of setinfo.element

# Contents: IDs of the ToC, Books, and SetIndex that comprise
# the set, in the order of their appearance
setinfo.attlist &=
  attribute contents { xsd:IDREFS }?,
  common.attrib,
  setinfo.role.attrib,
  local.setinfo.attrib
# end of setinfo.attlist

# end of setinfo.module

# end of set.content.module

# ......................................................................

# Book and BookInfo ....................................................
local.book.attrib = empty
book.role.attrib = role.attrib
book =
  element book {
    book.attlist,
    div.title.content?,
    bookinfo?,
    (dedication
     | toc
     | lot
     | glossary
     | bibliography
     | preface
     | chapter.class
     | reference
     | part
     | article.class
     | appendix.class
     | index.class
     | colophon)*
  }
# end of book.element

# FPI: SGML formal public identifier
book.attlist &=
  attribute fpi { text }?,
  label.attrib,
  status.attrib,
  common.attrib,
  book.role.attrib,
  local.book.attrib
# end of book.attlist

# end of book.module
local.bookinfo.attrib = empty
bookinfo.role.attrib = role.attrib
bookinfo = element bookinfo { bookinfo.attlist, info.class+ }
# end of bookinfo.element

# Contents: IDs of the ToC, LoTs, Prefaces, Parts, Chapters,
# Appendixes, References, GLossary, Bibliography, and indexes
# comprising the Book, in the order of their appearance
bookinfo.attlist &=
  attribute contents { xsd:IDREFS }?,
  common.attrib,
  bookinfo.role.attrib,
  local.bookinfo.attrib
# end of bookinfo.attlist

# end of bookinfo.module

# end of book.content.module

# ......................................................................

# Dedication, ToC, and LoT .............................................
local.dedication.attrib = empty
dedication.role.attrib = role.attrib
dedication =
  element dedication {
    dedication.attlist, sect.title.content?, legalnotice.mix+
  }
# end of dedication.element
dedication.attlist &=
  status.attrib,
  common.attrib,
  dedication.role.attrib,
  local.dedication.attrib
# end of dedication.attlist

# end of dedication.module
local.colophon.attrib = empty
colophon.role.attrib = role.attrib
colophon =
  element colophon {
    colophon.attlist, sect.title.content?, textobject.mix+
  }
# end of colophon.element
colophon.attlist &=
  status.attrib,
  common.attrib,
  colophon.role.attrib,
  local.colophon.attrib
# end of colophon.attlist

# end of colophon.module
local.toc.attrib = empty
toc.role.attrib = role.attrib
toc =
  element toc {
    toc.attlist,
    beginpage?,
    bookcomponent.title.content?,
    tocfront*,
    (tocpart | tocchap)*,
    tocback*
  }
# end of toc.element
toc.attlist &=
  pagenum.attrib, common.attrib, toc.role.attrib, local.toc.attrib
# end of toc.attlist

# end of toc.module
local.tocfront.attrib = empty
tocfront.role.attrib = role.attrib
tocfront = element tocfront { tocfront.attlist, para.char.mix* }
# end of tocfront.element

# to element that this entry represents
tocfront.attlist &=
  label.attrib,
  linkend.attrib,
  pagenum.attrib,
  common.attrib,
  tocfront.role.attrib,
  local.tocfront.attrib
# end of tocfront.attlist

# end of tocfront.module
local.tocentry.attrib = empty
tocentry.role.attrib = role.attrib
tocentry = element tocentry { tocentry.attlist, para.char.mix* }
# end of tocentry.element

# to element that this entry represents
tocentry.attlist &=
  linkend.attrib,
  pagenum.attrib,
  common.attrib,
  tocentry.role.attrib,
  local.tocentry.attrib
# end of tocentry.attlist

# end of tocentry.module
local.tocpart.attrib = empty
tocpart.role.attrib = role.attrib
tocpart = element tocpart { tocpart.attlist, tocentry+, tocchap* }
# end of tocpart.element
tocpart.attlist &=
  common.attrib, tocpart.role.attrib, local.tocpart.attrib
# end of tocpart.attlist

# end of tocpart.module
local.tocchap.attrib = empty
tocchap.role.attrib = role.attrib
tocchap = element tocchap { tocchap.attlist, tocentry+, toclevel1* }
# end of tocchap.element
tocchap.attlist &=
  label.attrib, common.attrib, tocchap.role.attrib, local.tocchap.attrib
# end of tocchap.attlist

# end of tocchap.module
local.toclevel1.attrib = empty
toclevel1.role.attrib = role.attrib
toclevel1 =
  element toclevel1 { toclevel1.attlist, tocentry+, toclevel2* }
# end of toclevel1.element
toclevel1.attlist &=
  common.attrib, toclevel1.role.attrib, local.toclevel1.attrib
# end of toclevel1.attlist

# end of toclevel1.module
local.toclevel2.attrib = empty
toclevel2.role.attrib = role.attrib
toclevel2 =
  element toclevel2 { toclevel2.attlist, tocentry+, toclevel3* }
# end of toclevel2.element
toclevel2.attlist &=
  common.attrib, toclevel2.role.attrib, local.toclevel2.attrib
# end of toclevel2.attlist

# end of toclevel2.module
local.toclevel3.attrib = empty
toclevel3.role.attrib = role.attrib
toclevel3 =
  element toclevel3 { toclevel3.attlist, tocentry+, toclevel4* }
# end of toclevel3.element
toclevel3.attlist &=
  common.attrib, toclevel3.role.attrib, local.toclevel3.attrib
# end of toclevel3.attlist

# end of toclevel3.module
local.toclevel4.attrib = empty
toclevel4.role.attrib = role.attrib
toclevel4 =
  element toclevel4 { toclevel4.attlist, tocentry+, toclevel5* }
# end of toclevel4.element
toclevel4.attlist &=
  common.attrib, toclevel4.role.attrib, local.toclevel4.attrib
# end of toclevel4.attlist

# end of toclevel4.module
local.toclevel5.attrib = empty
toclevel5.role.attrib = role.attrib
toclevel5 = element toclevel5 { toclevel5.attlist, tocentry+ }
# end of toclevel5.element
toclevel5.attlist &=
  common.attrib, toclevel5.role.attrib, local.toclevel5.attrib
# end of toclevel5.attlist

# end of toclevel5.module
local.tocback.attrib = empty
tocback.role.attrib = role.attrib
tocback = element tocback { tocback.attlist, para.char.mix* }
# end of tocback.element

# to element that this entry represents
tocback.attlist &=
  label.attrib,
  linkend.attrib,
  pagenum.attrib,
  common.attrib,
  tocback.role.attrib,
  local.tocback.attrib
# end of tocback.attlist

# end of tocback.module

# end of toc.content.module
local.lot.attrib = empty
lot.role.attrib = role.attrib
lot =
  element lot {
    lot.attlist, beginpage?, bookcomponent.title.content?, lotentry*
  }
# end of lot.element
lot.attlist &=
  label.attrib, common.attrib, lot.role.attrib, local.lot.attrib
# end of lot.attlist

# end of lot.module
local.lotentry.attrib = empty
lotentry.role.attrib = role.attrib
lotentry = element lotentry { lotentry.attlist, para.char.mix* }
# end of lotentry.element

# SrcCredit: Information about the source of the entry,
# as for a list of illustrations

#  linkend: to element that this entry represents
lotentry.attlist &=
  linkend.attrib,
  pagenum.attrib,
  attribute srccredit { text }?,
  common.attrib,
  lotentry.role.attrib,
  local.lotentry.attrib
# end of lotentry.attlist

# end of lotentry.module

# end of lot.content.module

# ......................................................................

# Appendix, Chapter, Part, Preface, Reference, PartIntro ...............
local.appendix.attrib = empty
appendix.role.attrib = role.attrib
appendix =
  element appendix {
    appendix.attlist,
    beginpage?,
    appendixinfo?,
    bookcomponent.title.content,
    nav.class*,
    tocchap?,
    bookcomponent.content,
    nav.class*
  }
# end of appendix.element
appendix.attlist &=
  label.attrib,
  status.attrib,
  common.attrib,
  appendix.role.attrib,
  local.appendix.attrib
# end of appendix.attlist

# end of appendix.module
local.chapter.attrib = empty
chapter.role.attrib = role.attrib
chapter =
  element chapter {
    chapter.attlist,
    beginpage?,
    chapterinfo?,
    bookcomponent.title.content,
    nav.class*,
    tocchap?,
    bookcomponent.content,
    nav.class*
  }
# end of chapter.element
chapter.attlist &=
  label.attrib,
  status.attrib,
  common.attrib,
  chapter.role.attrib,
  local.chapter.attrib
# end of chapter.attlist

# end of chapter.module

# Note that Part was to have its content model reduced in V4.2.  This
# change will not be made after all.
local.part.attrib = empty
part.role.attrib = role.attrib
part =
  element part {
    part.attlist,
    beginpage?,
    partinfo?,
    bookcomponent.title.content,
    partintro?,
    partcontent.mix+
  }
# end of part.element
part.attlist &=
  label.attrib,
  status.attrib,
  common.attrib,
  part.role.attrib,
  local.part.attrib
# end of part.attlist

# ELEMENT PartIntro (defined below)

# end of part.module
local.preface.attrib = empty
preface.role.attrib = role.attrib
preface =
  element preface {
    preface.attlist,
    beginpage?,
    prefaceinfo?,
    bookcomponent.title.content,
    nav.class*,
    tocchap?,
    bookcomponent.content,
    nav.class*
  }
# end of preface.element
preface.attlist &=
  status.attrib,
  common.attrib,
  preface.role.attrib,
  local.preface.attrib
# end of preface.attlist

# end of preface.module
local.reference.attrib = empty
reference.role.attrib = role.attrib
reference =
  element reference {
    reference.attlist,
    beginpage?,
    referenceinfo?,
    bookcomponent.title.content,
    partintro?,
    refentry.class+
  }
# end of reference.element
reference.attlist &=
  label.attrib,
  status.attrib,
  common.attrib,
  reference.role.attrib,
  local.reference.attrib
# end of reference.attlist

# ELEMENT PartIntro (defined below)

# end of reference.module
local.partintro.attrib = empty
partintro.role.attrib = role.attrib
partintro =
  element partintro {
    partintro.attlist, div.title.content?, bookcomponent.content
  }
# end of partintro.element
partintro.attlist &=
  label.attrib,
  common.attrib,
  partintro.role.attrib,
  local.partintro.attrib
# end of partintro.attlist

# end of partintro.module

# ......................................................................

# Other Info elements ..................................................
local.appendixinfo.attrib = empty
appendixinfo.role.attrib = role.attrib
appendixinfo =
  element appendixinfo { appendixinfo.attlist, info.class+ }
# end of appendixinfo.element
appendixinfo.attlist &=
  common.attrib, appendixinfo.role.attrib, local.appendixinfo.attrib
# end of appendixinfo.attlist

# end of appendixinfo.module
local.bibliographyinfo.attrib = empty
bibliographyinfo.role.attrib = role.attrib
bibliographyinfo =
  element bibliographyinfo { bibliographyinfo.attlist, info.class+ }
# end of bibliographyinfo.element
bibliographyinfo.attlist &=
  common.attrib,
  bibliographyinfo.role.attrib,
  local.bibliographyinfo.attrib
# end of bibliographyinfo.attlist

# end of bibliographyinfo.module
local.chapterinfo.attrib = empty
chapterinfo.role.attrib = role.attrib
chapterinfo = element chapterinfo { chapterinfo.attlist, info.class+ }
# end of chapterinfo.element
chapterinfo.attlist &=
  common.attrib, chapterinfo.role.attrib, local.chapterinfo.attrib
# end of chapterinfo.attlist

# end of chapterinfo.module
local.glossaryinfo.attrib = empty
glossaryinfo.role.attrib = role.attrib
glossaryinfo =
  element glossaryinfo { glossaryinfo.attlist, info.class+ }
# end of glossaryinfo.element
glossaryinfo.attlist &=
  common.attrib, glossaryinfo.role.attrib, local.glossaryinfo.attrib
# end of glossaryinfo.attlist

# end of glossaryinfo.module
local.indexinfo.attrib = empty
indexinfo.role.attrib = role.attrib
indexinfo = element indexinfo { indexinfo.attlist, info.class+ }
# end of indexinfo.element
indexinfo.attlist &=
  common.attrib, indexinfo.role.attrib, local.indexinfo.attrib
# end of indexinfo.attlist

# end of indexinfo.module
local.setindexinfo.attrib = empty
setindexinfo.role.attrib = role.attrib
setindexinfo =
  element setindexinfo { setindexinfo.attlist, info.class+ }
# end of setindexinfo.element
setindexinfo.attlist &=
  common.attrib, setindexinfo.role.attrib, local.setindexinfo.attrib
# end of setindexinfo.attlist

# end of setindexinfo.module
local.partinfo.attrib = empty
partinfo.role.attrib = role.attrib
partinfo = element partinfo { partinfo.attlist, info.class+ }
# end of partinfo.element
partinfo.attlist &=
  common.attrib, partinfo.role.attrib, local.partinfo.attrib
# end of partinfo.attlist

# end of partinfo.module
local.prefaceinfo.attrib = empty
prefaceinfo.role.attrib = role.attrib
prefaceinfo = element prefaceinfo { prefaceinfo.attlist, info.class+ }
# end of prefaceinfo.element
prefaceinfo.attlist &=
  common.attrib, prefaceinfo.role.attrib, local.prefaceinfo.attrib
# end of prefaceinfo.attlist

# end of prefaceinfo.module
local.refentryinfo.attrib = empty
refentryinfo.role.attrib = role.attrib
refentryinfo =
  element refentryinfo { refentryinfo.attlist, info.class+ }
# end of refentryinfo.element
refentryinfo.attlist &=
  common.attrib, refentryinfo.role.attrib, local.refentryinfo.attrib
# end of refentryinfo.attlist

# end of refentryinfo.module
local.refsectioninfo.attrib = empty
refsectioninfo.role.attrib = role.attrib
refsectioninfo =
  element refsectioninfo { refsectioninfo.attlist, info.class+ }
# end of refsectioninfo.element
refsectioninfo.attlist &=
  common.attrib, refsectioninfo.role.attrib, local.refsectioninfo.attrib
# end of refsectioninfo.attlist

# end of refsectioninfo.module
local.refsect1info.attrib = empty
refsect1info.role.attrib = role.attrib
refsect1info =
  element refsect1info { refsect1info.attlist, info.class+ }
# end of refsect1info.element
refsect1info.attlist &=
  common.attrib, refsect1info.role.attrib, local.refsect1info.attrib
# end of refsect1info.attlist

# end of refsect1info.module
local.refsect2info.attrib = empty
refsect2info.role.attrib = role.attrib
refsect2info =
  element refsect2info { refsect2info.attlist, info.class+ }
# end of refsect2info.element
refsect2info.attlist &=
  common.attrib, refsect2info.role.attrib, local.refsect2info.attrib
# end of refsect2info.attlist

# end of refsect2info.module
local.refsect3info.attrib = empty
refsect3info.role.attrib = role.attrib
refsect3info =
  element refsect3info { refsect3info.attlist, info.class+ }
# end of refsect3info.element
refsect3info.attlist &=
  common.attrib, refsect3info.role.attrib, local.refsect3info.attrib
# end of refsect3info.attlist

# end of refsect3info.module
local.refsynopsisdivinfo.attrib = empty
refsynopsisdivinfo.role.attrib = role.attrib
refsynopsisdivinfo =
  element refsynopsisdivinfo { refsynopsisdivinfo.attlist, info.class+ }
# end of refsynopsisdivinfo.element
refsynopsisdivinfo.attlist &=
  common.attrib,
  refsynopsisdivinfo.role.attrib,
  local.refsynopsisdivinfo.attrib
# end of refsynopsisdivinfo.attlist

# end of refsynopsisdivinfo.module
local.referenceinfo.attrib = empty
referenceinfo.role.attrib = role.attrib
referenceinfo =
  element referenceinfo { referenceinfo.attlist, info.class+ }
# end of referenceinfo.element
referenceinfo.attlist &=
  common.attrib, referenceinfo.role.attrib, local.referenceinfo.attrib
# end of referenceinfo.attlist

# end of referenceinfo.module
local.sect1info.attrib = empty
sect1info.role.attrib = role.attrib
sect1info = element sect1info { sect1info.attlist, info.class+ }
# end of sect1info.element
sect1info.attlist &=
  common.attrib, sect1info.role.attrib, local.sect1info.attrib
# end of sect1info.attlist
local.sect2info.attrib = empty
sect2info.role.attrib = role.attrib
sect2info = element sect2info { sect2info.attlist, info.class+ }
# end of sect2info.element
sect2info.attlist &=
  common.attrib, sect2info.role.attrib, local.sect2info.attrib
# end of sect2info.attlist
local.sect3info.attrib = empty
sect3info.role.attrib = role.attrib
sect3info = element sect3info { sect3info.attlist, info.class+ }
# end of sect3info.element
sect3info.attlist &=
  common.attrib, sect3info.role.attrib, local.sect3info.attrib
# end of sect3info.attlist
local.sect4info.attrib = empty
sect4info.role.attrib = role.attrib
sect4info = element sect4info { sect4info.attlist, info.class+ }
# end of sect4info.element
sect4info.attlist &=
  common.attrib, sect4info.role.attrib, local.sect4info.attrib
# end of sect4info.attlist
local.sect5info.attrib = empty
sect5info.role.attrib = role.attrib
sect5info = element sect5info { sect5info.attlist, info.class+ }
# end of sect5info.element
sect5info.attlist &=
  common.attrib, sect5info.role.attrib, local.sect5info.attrib
# end of sect5info.attlist

# ......................................................................

# Section (parallel to Sect*) .........................................
local.section.attrib = empty
section.role.attrib = role.attrib
section =
  element section {
    section.attlist,
    sectioninfo?,
    sect.title.content,
    nav.class*,
    ((divcomponent.mix+,
      (refentry.class* | section.class* | simplesect*))
     | refentry.class+
     | section.class+
     | simplesect+),
    nav.class*
  }
# end of section.element
section.attlist &=
  label.attrib,
  status.attrib,
  common.attrib,
  section.role.attrib,
  local.section.attrib
# end of section.attlist

# end of section.module
sectioninfo.role.attrib = role.attrib
local.sectioninfo.attrib = empty
sectioninfo = element sectioninfo { sectioninfo.attlist, info.class+ }
# end of sectioninfo.element
sectioninfo.attlist &=
  common.attrib, sectioninfo.role.attrib, local.sectioninfo.attrib
# end of sectioninfo.attlist

# end of sectioninfo.module

# end of section.content.module

# ......................................................................

# Sect1, Sect2, Sect3, Sect4, Sect5 ....................................
local.sect1.attrib = empty
sect1.role.attrib = role.attrib
sect1 =
  element sect1 {
    sect1.attlist,
    sect1info?,
    sect.title.content,
    nav.class*,
    ((divcomponent.mix+, (refentry.class* | sect2* | simplesect*))
     | refentry.class+
     | sect2+
     | simplesect+),
    nav.class*
  }
# end of sect1.element

# Renderas: Indicates the format in which the heading should
# appear
sect1.attlist &=
  attribute renderas { "sect2" | "sect3" | "sect4" | "sect5" }?,
  label.attrib,
  status.attrib,
  common.attrib,
  sect1.role.attrib,
  local.sect1.attrib
# end of sect1.attlist

# end of sect1.module
local.sect2.attrib = empty
sect2.role.attrib = role.attrib
sect2 =
  element sect2 {
    sect2.attlist,
    sect2info?,
    sect.title.content,
    nav.class*,
    ((divcomponent.mix+, (refentry.class* | sect3* | simplesect*))
     | refentry.class+
     | sect3+
     | simplesect+),
    nav.class*
  }
# end of sect2.element

# Renderas: Indicates the format in which the heading should
# appear
sect2.attlist &=
  attribute renderas { "sect1" | "sect3" | "sect4" | "sect5" }?,
  label.attrib,
  status.attrib,
  common.attrib,
  sect2.role.attrib,
  local.sect2.attrib
# end of sect2.attlist

# end of sect2.module
local.sect3.attrib = empty
sect3.role.attrib = role.attrib
sect3 =
  element sect3 {
    sect3.attlist,
    sect3info?,
    sect.title.content,
    nav.class*,
    ((divcomponent.mix+, (refentry.class* | sect4* | simplesect*))
     | refentry.class+
     | sect4+
     | simplesect+),
    nav.class*
  }
# end of sect3.element

# Renderas: Indicates the format in which the heading should
# appear
sect3.attlist &=
  attribute renderas { "sect1" | "sect2" | "sect4" | "sect5" }?,
  label.attrib,
  status.attrib,
  common.attrib,
  sect3.role.attrib,
  local.sect3.attrib
# end of sect3.attlist

# end of sect3.module
local.sect4.attrib = empty
sect4.role.attrib = role.attrib
sect4 =
  element sect4 {
    sect4.attlist,
    sect4info?,
    sect.title.content,
    nav.class*,
    ((divcomponent.mix+, (refentry.class* | sect5* | simplesect*))
     | refentry.class+
     | sect5+
     | simplesect+),
    nav.class*
  }
# end of sect4.element

# Renderas: Indicates the format in which the heading should
# appear
sect4.attlist &=
  attribute renderas { "sect1" | "sect2" | "sect3" | "sect5" }?,
  label.attrib,
  status.attrib,
  common.attrib,
  sect4.role.attrib,
  local.sect4.attrib
# end of sect4.attlist

# end of sect4.module
local.sect5.attrib = empty
sect5.role.attrib = role.attrib
sect5 =
  element sect5 {
    sect5.attlist,
    sect5info?,
    sect.title.content,
    nav.class*,
    ((divcomponent.mix+, (refentry.class* | simplesect*))
     | refentry.class+
     | simplesect+),
    nav.class*
  }
# end of sect5.element

# Renderas: Indicates the format in which the heading should
# appear
sect5.attlist &=
  attribute renderas { "sect1" | "sect2" | "sect3" | "sect4" }?,
  label.attrib,
  status.attrib,
  common.attrib,
  sect5.role.attrib,
  local.sect5.attrib
# end of sect5.attlist

# end of sect5.module
local.simplesect.attrib = empty
simplesect.role.attrib = role.attrib
simplesect =
  element simplesect {
    simplesect.attlist, sect.title.content, divcomponent.mix+
  }
# end of simplesect.element
simplesect.attlist &=
  common.attrib, simplesect.role.attrib, local.simplesect.attrib
# end of simplesect.attlist

# end of simplesect.module

# ......................................................................

# Bibliography .........................................................
local.bibliography.attrib = empty
bibliography.role.attrib = role.attrib
bibliography =
  element bibliography {
    bibliography.attlist,
    bibliographyinfo?,
    bookcomponent.title.content?,
    component.mix*,
    (bibliodiv+ | (biblioentry | bibliomixed)+)
  }
# end of bibliography.element
bibliography.attlist &=
  status.attrib,
  common.attrib,
  bibliography.role.attrib,
  local.bibliography.attrib
# end of bibliography.attlist

# end of bibliography.module
local.bibliodiv.attrib = empty
bibliodiv.role.attrib = role.attrib
bibliodiv =
  element bibliodiv {
    bibliodiv.attlist,
    sect.title.content?,
    component.mix*,
    (biblioentry | bibliomixed)+
  }
# end of bibliodiv.element
bibliodiv.attlist &=
  status.attrib,
  common.attrib,
  bibliodiv.role.attrib,
  local.bibliodiv.attrib
# end of bibliodiv.attlist

# end of bibliodiv.module

# end of bibliography.content.module

# ......................................................................

# Glossary .............................................................
local.glossary.attrib = empty
glossary.role.attrib = role.attrib
glossary =
  element glossary {
    glossary.attlist,
    glossaryinfo?,
    bookcomponent.title.content?,
    component.mix*,
    (glossdiv+ | glossentry+),
    bibliography?
  }
# end of glossary.element
glossary.attlist &=
  status.attrib,
  common.attrib,
  glossary.role.attrib,
  local.glossary.attrib
# end of glossary.attlist

# end of glossary.module
local.glossdiv.attrib = empty
glossdiv.role.attrib = role.attrib
glossdiv =
  element glossdiv {
    glossdiv.attlist, sect.title.content, component.mix*, glossentry+
  }
# end of glossdiv.element
glossdiv.attlist &=
  status.attrib,
  common.attrib,
  glossdiv.role.attrib,
  local.glossdiv.attrib
# end of glossdiv.attlist

# end of glossdiv.module

# end of glossary.content.module

# ......................................................................

# Index and SetIndex ...................................................
local.indexes.attrib = empty
indexes.role.attrib = role.attrib
index =
  element index {
    index.attlist,
    indexinfo?,
    bookcomponent.title.content?,
    component.mix*,
    (indexdiv* | indexentry*)
  }
# end of index.element
index.attlist &=
  common.attrib, indexes.role.attrib, local.indexes.attrib
# end of index.attlist
setindex =
  element setindex {
    setindex.attlist,
    setindexinfo?,
    bookcomponent.title.content?,
    component.mix*,
    (indexdiv* | indexentry*)
  }
# end of setindex.element
setindex.attlist &=
  common.attrib, indexes.role.attrib, local.indexes.attrib
# end of setindex.attlist

# end of indexes.module

# SegmentedList in this content is useful for marking up permuted
# indices.
local.indexdiv.attrib = empty
indexdiv.role.attrib = role.attrib
indexdiv =
  element indexdiv {
    indexdiv.attlist,
    sect.title.content?,
    (indexdivcomponent.mix*, (indexentry+ | segmentedlist))
  }
# end of indexdiv.element
indexdiv.attlist &=
  common.attrib, indexdiv.role.attrib, local.indexdiv.attrib
# end of indexdiv.attlist

# end of indexdiv.module

# Index entries appear in the index, not the text.
local.indexentry.attrib = empty
indexentry.role.attrib = role.attrib
indexentry =
  element indexentry {
    indexentry.attlist,
    primaryie,
    (seeie | seealsoie)*,
    (secondaryie, (seeie | seealsoie | tertiaryie)*)*
  }
# end of indexentry.element
indexentry.attlist &=
  common.attrib, indexentry.role.attrib, local.indexentry.attrib
# end of indexentry.attlist

# end of indexentry.module
local.primsecterie.attrib = empty
primsecterie.role.attrib = role.attrib
primaryie = element primaryie { primaryie.attlist, ndxterm.char.mix* }
# end of primaryie.element

# to IndexTerms that these entries represent
primaryie.attlist &=
  linkends.attrib,
  common.attrib,
  primsecterie.role.attrib,
  local.primsecterie.attrib
# end of primaryie.attlist
secondaryie =
  element secondaryie { secondaryie.attlist, ndxterm.char.mix* }
# end of secondaryie.element

# to IndexTerms that these entries represent
secondaryie.attlist &=
  linkends.attrib,
  common.attrib,
  primsecterie.role.attrib,
  local.primsecterie.attrib
# end of secondaryie.attlist
tertiaryie =
  element tertiaryie { tertiaryie.attlist, ndxterm.char.mix* }
# end of tertiaryie.element

# to IndexTerms that these entries represent
tertiaryie.attlist &=
  linkends.attrib,
  common.attrib,
  primsecterie.role.attrib,
  local.primsecterie.attrib
# end of tertiaryie.attlist

# end of primsecterie.module
local.seeie.attrib = empty
seeie.role.attrib = role.attrib
seeie = element seeie { seeie.attlist, ndxterm.char.mix* }
# end of seeie.element

# to IndexEntry to look up
seeie.attlist &=
  linkend.attrib, common.attrib, seeie.role.attrib, local.seeie.attrib
# end of seeie.attlist

# end of seeie.module
local.seealsoie.attrib = empty
seealsoie.role.attrib = role.attrib
seealsoie = element seealsoie { seealsoie.attlist, ndxterm.char.mix* }
# end of seealsoie.element

# to related IndexEntries
seealsoie.attlist &=
  linkends.attrib,
  common.attrib,
  seealsoie.role.attrib,
  local.seealsoie.attrib
# end of seealsoie.attlist

# end of seealsoie.module

# end of index.content.module

# ......................................................................

# RefEntry .............................................................
local.refentry.attrib = empty
refentry.role.attrib = role.attrib
refentry =
  element refentry {
    refentry.attlist,
    beginpage?,
    ndxterm.class*,
    refentryinfo?,
    refmeta?,
    (remark | link.char.class)*,
    refnamediv,
    refsynopsisdiv?,
    (refsect1+ | refsection+)
  }
# end of refentry.element
refentry.attlist &=
  status.attrib,
  common.attrib,
  refentry.role.attrib,
  local.refentry.attrib
# end of refentry.attlist

# end of refentry.module
local.refmeta.attrib = empty
refmeta.role.attrib = role.attrib
refmeta =
  element refmeta {
    refmeta.attlist,
    ndxterm.class*,
    refentrytitle,
    manvolnum?,
    refmiscinfo*,
    ndxterm.class*
  }
# end of refmeta.element
refmeta.attlist &=
  common.attrib, refmeta.role.attrib, local.refmeta.attrib
# end of refmeta.attlist

# end of refmeta.module
local.refmiscinfo.attrib = empty
refmiscinfo.role.attrib = role.attrib
refmiscinfo =
  element refmiscinfo { refmiscinfo.attlist, docinfo.char.mix* }
# end of refmiscinfo.element

# Class: Freely assignable parameter; no default
refmiscinfo.attlist &=
  attribute class { text }?,
  common.attrib,
  refmiscinfo.role.attrib,
  local.refmiscinfo.attrib
# end of refmiscinfo.attlist

# end of refmiscinfo.module
local.refnamediv.attrib = empty
refnamediv.role.attrib = role.attrib
refnamediv =
  element refnamediv {
    refnamediv.attlist,
    refdescriptor?,
    refname+,
    refpurpose,
    refclass*,
    (remark | link.char.class)*
  }
# end of refnamediv.element
refnamediv.attlist &=
  common.attrib, refnamediv.role.attrib, local.refnamediv.attrib
# end of refnamediv.attlist

# end of refnamediv.module
local.refdescriptor.attrib = empty
refdescriptor.role.attrib = role.attrib
refdescriptor =
  element refdescriptor { refdescriptor.attlist, refname.char.mix* }
# end of refdescriptor.element
refdescriptor.attlist &=
  common.attrib, refdescriptor.role.attrib, local.refdescriptor.attrib
# end of refdescriptor.attlist

# end of refdescriptor.module
local.refname.attrib = empty
refname.role.attrib = role.attrib
refname = element refname { refname.attlist, refname.char.mix* }
# end of refname.element
refname.attlist &=
  common.attrib, refname.role.attrib, local.refname.attrib
# end of refname.attlist

# end of refname.module
local.refpurpose.attrib = empty
refpurpose.role.attrib = role.attrib
refpurpose =
  element refpurpose { refpurpose.attlist, refinline.char.mix* }
# end of refpurpose.element
refpurpose.attlist &=
  common.attrib, refpurpose.role.attrib, local.refpurpose.attrib
# end of refpurpose.attlist

# end of refpurpose.module
local.refclass.attrib = empty
refclass.role.attrib = role.attrib
refclass = element refclass { refclass.attlist, refclass.char.mix* }
# end of refclass.element
refclass.attlist &=
  common.attrib, refclass.role.attrib, local.refclass.attrib
# end of refclass.attlist

# end of refclass.module
local.refsynopsisdiv.attrib = empty
refsynopsisdiv.role.attrib = role.attrib
refsynopsisdiv =
  element refsynopsisdiv {
    refsynopsisdiv.attlist,
    refsynopsisdivinfo?,
    refsect.title.content?,
    ((refcomponent.mix+, refsect2*) | refsect2+)
  }
# end of refsynopsisdiv.element
refsynopsisdiv.attlist &=
  common.attrib, refsynopsisdiv.role.attrib, local.refsynopsisdiv.attrib
# end of refsynopsisdiv.attlist

# end of refsynopsisdiv.module
local.refsection.attrib = empty
refsection.role.attrib = role.attrib
refsection =
  element refsection {
    refsection.attlist,
    refsectioninfo?,
    refsect.title.content,
    ((refcomponent.mix+, refsection*) | refsection+)
  }
# end of refsection.element
refsection.attlist &=
  status.attrib,
  common.attrib,
  refsection.role.attrib,
  local.refsection.attrib
# end of refsection.attlist

# end of refsection.module
local.refsect1.attrib = empty
refsect1.role.attrib = role.attrib
refsect1 =
  element refsect1 {
    refsect1.attlist,
    refsect1info?,
    refsect.title.content,
    ((refcomponent.mix+, refsect2*) | refsect2+)
  }
# end of refsect1.element
refsect1.attlist &=
  status.attrib,
  common.attrib,
  refsect1.role.attrib,
  local.refsect1.attrib
# end of refsect1.attlist

# end of refsect1.module
local.refsect2.attrib = empty
refsect2.role.attrib = role.attrib
refsect2 =
  element refsect2 {
    refsect2.attlist,
    refsect2info?,
    refsect.title.content,
    ((refcomponent.mix+, refsect3*) | refsect3+)
  }
# end of refsect2.element
refsect2.attlist &=
  status.attrib,
  common.attrib,
  refsect2.role.attrib,
  local.refsect2.attrib
# end of refsect2.attlist

# end of refsect2.module
local.refsect3.attrib = empty
refsect3.role.attrib = role.attrib
refsect3 =
  element refsect3 {
    refsect3.attlist,
    refsect3info?,
    refsect.title.content,
    refcomponent.mix+
  }
# end of refsect3.element
refsect3.attlist &=
  status.attrib,
  common.attrib,
  refsect3.role.attrib,
  local.refsect3.attrib
# end of refsect3.attlist

# end of refsect3.module

# end of refentry.content.module

# ......................................................................

# Article ..............................................................

# An Article is a chapter-level, stand-alone document that is often,
# but need not be, collected into a Book.
local.article.attrib = empty
article.role.attrib = role.attrib
article =
  element article {
    article.attlist,
    div.title.content?,
    articleinfo?,
    tocchap?,
    lot*,
    bookcomponent.content,
    (nav.class | appendix.class | ackno)*
  }
# end of article.element

# Class: Indicates the type of a particular article;
# all articles have the same structure and general purpose.
# No default.

# ParentBook: ID of the enclosing Book
article.attlist &=
  attribute class {
    "journalarticle"
    | "productsheet"
    | "whitepaper"
    | "techreport"
    | "specification"
    | "faq"
  }?,
  attribute parentbook { xsd:IDREF }?,
  status.attrib,
  common.attrib,
  article.role.attrib,
  local.article.attrib
# end of article.attlist

# end of article.module

# End of DocBook document hierarchy module V4.2 ........................

# ......................................................................