From 03b61e04ebac5ec2395e7465e7f02e5ecfff8536 Mon Sep 17 00:00:00 2001 From: Norman Walsh Date: Fri, 28 Sep 2007 18:34:15 +0000 Subject: [PATCH] Refactor to make the work of the Publishing Subcommitee easier --- docbook/relaxng/docbook/src/admonitions.rnc | 162 + docbook/relaxng/docbook/src/core.rnc | 45 + docbook/relaxng/docbook/src/docbook.rnc | 21 +- docbook/relaxng/docbook/src/error.rnc | 130 + docbook/relaxng/docbook/src/gui.rnc | 228 + docbook/relaxng/docbook/src/keyboard.rnc | 294 ++ docbook/relaxng/docbook/src/markup.rnc | 278 ++ docbook/relaxng/docbook/src/os.rnc | 446 ++ docbook/relaxng/docbook/src/pool.rnc | 4139 ++++--------------- docbook/relaxng/docbook/src/product.rnc | 233 ++ docbook/relaxng/docbook/src/programming.rnc | 832 ++++ docbook/relaxng/docbook/src/technical.rnc | 184 + 12 files changed, 3687 insertions(+), 3305 deletions(-) create mode 100644 docbook/relaxng/docbook/src/admonitions.rnc create mode 100644 docbook/relaxng/docbook/src/core.rnc create mode 100644 docbook/relaxng/docbook/src/error.rnc create mode 100644 docbook/relaxng/docbook/src/gui.rnc create mode 100644 docbook/relaxng/docbook/src/keyboard.rnc create mode 100644 docbook/relaxng/docbook/src/markup.rnc create mode 100644 docbook/relaxng/docbook/src/os.rnc create mode 100644 docbook/relaxng/docbook/src/product.rnc create mode 100644 docbook/relaxng/docbook/src/programming.rnc create mode 100644 docbook/relaxng/docbook/src/technical.rnc diff --git a/docbook/relaxng/docbook/src/admonitions.rnc b/docbook/relaxng/docbook/src/admonitions.rnc new file mode 100644 index 000000000..4f3ee24f5 --- /dev/null +++ b/docbook/relaxng/docbook/src/admonitions.rnc @@ -0,0 +1,162 @@ +# This file is part of DocBook V5.0CR6 +# +# Copyright 1992-2005 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). +# +# Release: $Id: pool.rnc 7466 2007-09-27 14:03:55Z nwalsh $ +# +# Permission to use, copy, modify and distribute the DocBook schema +# 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 schema +# for any purpose. It is provided "as is" without expressed or implied +# warranty. +# +# If you modify the DocBook schema in any way, label your schema as a +# variant of DocBook. See the reference documentation +# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook) +# 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/. +# +# ====================================================================== + +default namespace = "http://docbook.org/ns/docbook" +namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" +namespace rng = "http://relaxng.org/ns/structure/1.0" +namespace s = "http://www.ascc.net/xml/schematron" +namespace db = "http://docbook.org/ns/docbook" + +db.nopara.blocks |= db.admonition.blocks + +# ====================================================================== + +ctrl:exclude [ from="db.formal.blocks" exclude="db.admonition.blocks" ] +ctrl:exclude [ from="db.admonition.blocks" exclude="db.admonition.blocks" ] +ctrl:exclude [ from="db.footnote" exclude="db.admonition.blocks" ] +ctrl:exclude [ from="db.caption" exclude="db.admonition.blocks" ] + +db.admonition.blocks = + db.caution + | db.important + | db.note + | db.tip + | db.warning + +db.admonition.contentmodel = db._info.title.only, db.all.blocks+ + +# ====================================================================== + +[ + db:refname [ "caution" ] + db:refpurpose [ "A note of caution" ] +] +div { + + db.caution.role.attribute = attribute role { text } + + db.caution.attlist = + db.caution.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.caution = + element caution { + db.caution.attlist, + db.admonition.contentmodel + } +} + +# ====================================================================== + +[ + db:refname [ "important" ] + db:refpurpose [ "An admonition set off from the text" ] +] +div { + + db.important.role.attribute = attribute role { text } + + db.important.attlist = + db.important.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.important = + element important { + db.important.attlist, + db.admonition.contentmodel + } +} + +# ====================================================================== + +[ + db:refname [ "note" ] + db:refpurpose [ "A message set off from the text" ] +] +div { + + db.note.role.attribute = attribute role { text } + + db.note.attlist = + db.note.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.note = + element note { + db.note.attlist, + db.admonition.contentmodel + } +} + +# ====================================================================== + +[ + db:refname [ "tip" ] + db:refpurpose [ "A suggestion to the user, set off from the text" ] +] +div { + + db.tip.role.attribute = attribute role { text } + + db.tip.attlist = + db.tip.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.tip = + element tip { + db.tip.attlist, + db.admonition.contentmodel + } +} + +# ====================================================================== + +[ + db:refname [ "warning" ] + db:refpurpose [ "An admonition set off from the text" ] +] +div { + + db.warning.role.attribute = attribute role { text } + + db.warning.attlist = + db.warning.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.warning = + element warning { + db.warning.attlist, + db.admonition.contentmodel + } +} diff --git a/docbook/relaxng/docbook/src/core.rnc b/docbook/relaxng/docbook/src/core.rnc new file mode 100644 index 000000000..1d1b4334e --- /dev/null +++ b/docbook/relaxng/docbook/src/core.rnc @@ -0,0 +1,45 @@ +# This file is part of DocBook V5.0CR6 +# +# Copyright 1992-2005 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). +# +# Release: $Id: docbook.rnc 7466 2007-09-27 14:03:55Z nwalsh $ +# +# Permission to use, copy, modify and distribute the DocBook schema +# 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 schema +# for any purpose. It is provided "as is" without expressed or implied +# warranty. +# +# If you modify the DocBook schema in any way, label your schema as a +# variant of DocBook. See the reference documentation +# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook) +# 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/. +# +# ====================================================================== + +namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" +namespace rng = "http://relaxng.org/ns/structure/1.0" +namespace s = "http://www.ascc.net/xml/schematron" +namespace db = "http://docbook.org/ns/docbook" +default namespace = "http://docbook.org/ns/docbook" + +start = db.set + | db.book + | db.divisions + | db.components + | db.navigation.components + | db.section + | db.para + +include "pool.rnc" +include "hier.rnc" diff --git a/docbook/relaxng/docbook/src/docbook.rnc b/docbook/relaxng/docbook/src/docbook.rnc index 4e1ebeaaa..031f18d95 100644 --- a/docbook/relaxng/docbook/src/docbook.rnc +++ b/docbook/relaxng/docbook/src/docbook.rnc @@ -33,18 +33,9 @@ namespace s = "http://www.ascc.net/xml/schematron" namespace db = "http://docbook.org/ns/docbook" default namespace = "http://docbook.org/ns/docbook" -start = db.set - | db.book - | db.divisions - | db.components - | db.navigation.components - | db.section - | db.para - -include "pool.rnc" +include "core.rnc" include "annotations.rnc" include "xlink.rnc" -include "hier.rnc" include "sect1.rnc" include "refentry.rnc" include "refsect1.rnc" @@ -62,4 +53,12 @@ include "qandaset.rnc" include "math.rnc" include "mathml.rnc" include "svg.rnc" - +include "markup.rnc" +include "product.rnc" +include "gui.rnc" +include "keyboard.rnc" +include "os.rnc" +include "programming.rnc" +include "admonitions.rnc" +include "error.rnc" +include "technical.rnc" diff --git a/docbook/relaxng/docbook/src/error.rnc b/docbook/relaxng/docbook/src/error.rnc new file mode 100644 index 000000000..347b3ddec --- /dev/null +++ b/docbook/relaxng/docbook/src/error.rnc @@ -0,0 +1,130 @@ +# This file is part of DocBook V5.0CR6 +# +# Copyright 1992-2005 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). +# +# Release: $Id: pool.rnc 7466 2007-09-27 14:03:55Z nwalsh $ +# +# Permission to use, copy, modify and distribute the DocBook schema +# 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 schema +# for any purpose. It is provided "as is" without expressed or implied +# warranty. +# +# If you modify the DocBook schema in any way, label your schema as a +# variant of DocBook. See the reference documentation +# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook) +# 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/. +# +# ====================================================================== + +default namespace = "http://docbook.org/ns/docbook" +namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" +namespace rng = "http://relaxng.org/ns/structure/1.0" +namespace s = "http://www.ascc.net/xml/schematron" +namespace db = "http://docbook.org/ns/docbook" + +db.domain.inlines |= db.error.inlines + +db.error.inlines = + db.errorcode + | db.errortext + | db.errorname + | db.errortype + +# ====================================================================== + +[ + db:refname [ "errorcode" ] + db:refpurpose [ "An error code" ] +] +div { + + db.errorcode.role.attribute = attribute role { text } + + db.errorcode.attlist = + db.errorcode.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.errorcode = + element errorcode { + db.errorcode.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "errorname" ] + db:refpurpose [ "An error name" ] +] +div { + + db.errorname.role.attribute = attribute role { text } + + db.errorname.attlist = + db.errorname.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.errorname = + element errorname { + db.errorname.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "errortext" ] + db:refpurpose [ "An error message." ] +] +div { + + db.errortext.role.attribute = attribute role { text } + + db.errortext.attlist = + db.errortext.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.errortext = + element errortext { + db.errortext.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "errortype" ] + db:refpurpose [ "The classification of an error message" ] +] +div { + + db.errortype.role.attribute = attribute role { text } + + db.errortype.attlist = + db.errortype.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.errortype = + element errortype { + db.errortype.attlist, + db._text + } +} diff --git a/docbook/relaxng/docbook/src/gui.rnc b/docbook/relaxng/docbook/src/gui.rnc new file mode 100644 index 000000000..ead419568 --- /dev/null +++ b/docbook/relaxng/docbook/src/gui.rnc @@ -0,0 +1,228 @@ +# This file is part of DocBook V5.0CR6 +# +# Copyright 1992-2005 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). +# +# Release: $Id: pool.rnc 7466 2007-09-27 14:03:55Z nwalsh $ +# +# Permission to use, copy, modify and distribute the DocBook schema +# 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 schema +# for any purpose. It is provided "as is" without expressed or implied +# warranty. +# +# If you modify the DocBook schema in any way, label your schema as a +# variant of DocBook. See the reference documentation +# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook) +# 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/. +# +# ====================================================================== + +default namespace = "http://docbook.org/ns/docbook" +namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" +namespace rng = "http://relaxng.org/ns/structure/1.0" +namespace s = "http://www.ascc.net/xml/schematron" +namespace db = "http://docbook.org/ns/docbook" + +db.domain.inlines |= db.gui.inlines + +db.userinput.inlines |= db.gui.inlines + +db.keycombination.contentmodel |= db.mousebutton + +db.gui.inlines = + db.guiicon + | db.guibutton + | db.guimenuitem + | db.guimenu + | db.guisubmenu + | db.guilabel + | db.menuchoice + | db.mousebutton + +# ====================================================================== + +[ + db:refname [ "guibutton" ] + db:refpurpose [ "The text on a button in a GUI" ] +] +div { + + db.guibutton.role.attribute = attribute role { text } + + db.guibutton.attlist = + db.guibutton.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.guibutton = + element guibutton { + db.guibutton.attlist, + (db._text | db.accel | db.superscript | db.subscript)* + } +} + +# ====================================================================== + +[ + db:refname [ "guiicon" ] + db:refpurpose [ "Graphic and/or text appearing as a icon in a GUI" ] +] +div { + + db.guiicon.role.attribute = attribute role { text } + + db.guiicon.attlist = + db.guiicon.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.guiicon = + element guiicon { + db.guiicon.attlist, + (db._text | db.accel | db.superscript | db.subscript)* + } +} + +# ====================================================================== + +[ + db:refname [ "guilabel" ] + db:refpurpose [ "The text of a label in a GUI" ] +] +div { + + db.guilabel.role.attribute = attribute role { text } + + db.guilabel.attlist = + db.guilabel.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.guilabel = + element guilabel { + db.guilabel.attlist, + (db._text | db.accel | db.superscript | db.subscript)* + } +} + +# ====================================================================== + +[ + db:refname [ "guimenu" ] + db:refpurpose [ "The name of a menu in a GUI" ] +] +div { + + db.guimenu.role.attribute = attribute role { text } + + db.guimenu.attlist = + db.guimenu.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.guimenu = + element guimenu { + db.guimenu.attlist, + (db._text | db.accel | db.superscript | db.subscript)* + } +} + +# ====================================================================== + +[ + db:refname [ "guimenuitem" ] + db:refpurpose [ "The name of a terminal menu item in a GUI" ] +] +div { + + db.guimenuitem.role.attribute = attribute role { text } + + db.guimenuitem.attlist = + db.guimenuitem.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.guimenuitem = + element guimenuitem { + db.guimenuitem.attlist, + (db._text | db.accel | db.superscript | db.subscript)* + } +} + +# ====================================================================== + +[ + db:refname [ "guisubmenu" ] + db:refpurpose [ "The name of a submenu in a GUI" ] +] +div { + + db.guisubmenu.role.attribute = attribute role { text } + + db.guisubmenu.attlist = + db.guisubmenu.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.guisubmenu = + element guisubmenu { + db.guisubmenu.attlist, + (db._text | db.accel | db.superscript | db.subscript)* + } +} + +# ====================================================================== + +[ + db:refname [ "menuchoice" ] + db:refpurpose [ "A selection or series of selections from a menu" ] +] +div { + + db.menuchoice.role.attribute = attribute role { text } + + db.menuchoice.attlist = + db.menuchoice.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.menuchoice = + element menuchoice { + db.menuchoice.attlist, + db.shortcut?, + (db.guibutton|db.guiicon|db.guilabel|db.guimenu|db.guimenuitem|db.guisubmenu)+ + } +} + +# ====================================================================== + +[ + db:refname [ "mousebutton" ] + db:refpurpose [ "The conventional name of a mouse button" ] +] +div { + + db.mousebutton.role.attribute = attribute role { text } + + db.mousebutton.attlist = + db.mousebutton.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.mousebutton = + element mousebutton { + db.mousebutton.attlist, + db._text + } +} + diff --git a/docbook/relaxng/docbook/src/keyboard.rnc b/docbook/relaxng/docbook/src/keyboard.rnc new file mode 100644 index 000000000..114e448dc --- /dev/null +++ b/docbook/relaxng/docbook/src/keyboard.rnc @@ -0,0 +1,294 @@ +# This file is part of DocBook V5.0CR6 +# +# Copyright 1992-2005 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). +# +# Release: $Id: pool.rnc 7466 2007-09-27 14:03:55Z nwalsh $ +# +# Permission to use, copy, modify and distribute the DocBook schema +# 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 schema +# for any purpose. It is provided "as is" without expressed or implied +# warranty. +# +# If you modify the DocBook schema in any way, label your schema as a +# variant of DocBook. See the reference documentation +# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook) +# 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/. +# +# ====================================================================== + +default namespace = "http://docbook.org/ns/docbook" +namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" +namespace rng = "http://relaxng.org/ns/structure/1.0" +namespace s = "http://www.ascc.net/xml/schematron" +namespace db = "http://docbook.org/ns/docbook" + +db.domain.inlines |= db.keyboard.inlines + +db.userinput.inlines |= db.keyboard.inlines + +db.keyboard.inlines = + db.keycombo + | db.keycap + | db.keycode + | db.keysym + | db.shortcut + | db.accel + +# ====================================================================== + +[ + db:refname [ "keycap" ] + db:refpurpose [ "The text printed on a key on a keyboard" ] +] +div { + + ctrl:other-attribute [ name="db.keycap.function.attrib" + enum-name="db.keycap.function-enum.attribute" + other-name="db.keycap.function-other.attributes" ] + + db.keycap.function.enumeration = + ## The "Alt" key + "alt" + | ## The "Backspace" key + "backspace" + | ## The "Command" key + "command" + | ## The "Control" key + "control" + | ## The "Delete" key + "delete" + | ## The down arrow + "down" + | ## The "End" key + "end" + | ## The "Enter" or "Return" key + "enter" + | ## The "Escape" key + "escape" + | ## The "Home" key + "home" + | ## The "Insert" key + "insert" + | ## The left arrow + "left" + | ## The "Meta" key + "meta" + | ## The "Option" key + "option" + | ## The page down key + "pagedown" + | ## The page up key + "pageup" + | ## The right arrow + "right" + | ## The "Shift" key + "shift" + | ## The spacebar + "space" + | ## The "Tab" key + "tab" + | ## The up arrow + "up" + + db.keycap.function-enum.attribute = + [ + db:refpurpose [ "Identifies the function key" ] + ] + attribute function { db.keycap.function.enumeration }? + + db.keycap.function-other.attributes = + [ + db:refpurpose [ "Identifies the function key" ] + ] + attribute function { + ## Indicates a non-standard function key + "other" + }?, + [ + db:refpurpose [ "Specifies a keyword that identifies the non-standard key" ] + ] + attribute otherfunction { text } + + db.keycap.function.attrib = + (db.keycap.function-enum.attribute | db.keycap.function-other.attributes) + + db.keycap.role.attribute = attribute role { text } + + db.keycap.attlist = + db.keycap.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.keycap.function.attrib + + db.keycap = + element keycap { + db.keycap.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "keycode" ] + db:refpurpose [ "The internal, frequently numeric, identifier for a key on a keyboard" ] +] +div { + + db.keycode.role.attribute = attribute role { text } + + db.keycode.attlist = + db.keycode.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.keycode = + element keycode { + db.keycode.attlist, + db._text + } +} + +# ====================================================================== + +db.keycombination.contentmodel = db.keycap|db.keycombo|db.keysym + +[ + db:refname [ "keycombo" ] + db:refpurpose [ "A combination of input actions" ] +] +div { + + ctrl:other-attribute [ name="db.keycombo.action.attrib" + enum-name="db.keycombo.action-enum.attribute" + other-name="db.keycombo.action-other.attributes" ] + + db.keycombo.action.enumeration = + ## A (single) mouse click. + "click" + | ## A double mouse click. + "double-click" + | ## A mouse or key press. + "press" + | ## Sequential clicks or presses. + "seq" + | ## Simultaneous clicks or presses. + "simul" + + db.keycombo.action-enum.attribute = + [ + db:refpurpose [ "Identifies the nature of the action taken. If " db:tag [ "keycombo" ] " contains more than one element, " db:tag [ class="attvalue" "simul" ] " is the default, otherwise there is no default." ] + ] + attribute action { db.keycombo.action.enumeration }? + + db.keycombo.action-other.attributes = + [ + db:refpurpose [ "Identifies the nature of the action taken" ] + ] + attribute action { + ## Indicates a non-standard action + "other" + }?, + [ + db:refpurpose [ "Identifies the non-standard action in some unspecified way." ] + ] + attribute otheraction { text } + + db.keycombo.action.attrib = + (db.keycombo.action-enum.attribute | db.keycombo.action-other.attributes) + + db.keycombo.role.attribute = attribute role { text } + + db.keycombo.attlist = + db.keycombo.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.keycombo.action.attrib + + db.keycombo = + element keycombo { + db.keycombo.attlist, + (db.keycombination.contentmodel)+ + } +} + +# ====================================================================== + +[ + db:refname [ "keysym" ] + db:refpurpose [ "The symbolic name of a key on a keyboard" ] +] +div { + + db.keysym.role.attribute = attribute role { text } + + db.keysym.attlist = + db.keysym.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.keysym = + element keysym { + db.keysym.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "accel" ] + db:refpurpose [ "A graphical user interface (GUI) keyboard shortcut" ] +] +div { + + db.accel.role.attribute = attribute role { text } + + db.accel.attlist = + db.accel.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.accel = + element accel { + db.accel.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "shortcut" ] + db:refpurpose [ "A key combination for an action that is also accessible through a menu" ] +] +div { + + db.shortcut.action.attrib = db.keycombo.action.attrib + + db.shortcut.role.attribute = attribute role { text } + + db.shortcut.attlist = + db.shortcut.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.shortcut.action.attrib + + db.shortcut = + element shortcut { + db.shortcut.attlist, + (db.keycombination.contentmodel)+ + } +} + diff --git a/docbook/relaxng/docbook/src/markup.rnc b/docbook/relaxng/docbook/src/markup.rnc new file mode 100644 index 000000000..b0e2c153a --- /dev/null +++ b/docbook/relaxng/docbook/src/markup.rnc @@ -0,0 +1,278 @@ +# This file is part of DocBook V5.0CR6 +# +# Copyright 1992-2005 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). +# +# Release: $Id: pool.rnc 7466 2007-09-27 14:03:55Z nwalsh $ +# +# Permission to use, copy, modify and distribute the DocBook schema +# 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 schema +# for any purpose. It is provided "as is" without expressed or implied +# warranty. +# +# If you modify the DocBook schema in any way, label your schema as a +# variant of DocBook. See the reference documentation +# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook) +# 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/. +# +# ====================================================================== + +default namespace = "http://docbook.org/ns/docbook" +namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" +namespace rng = "http://relaxng.org/ns/structure/1.0" +namespace s = "http://www.ascc.net/xml/schematron" +namespace db = "http://docbook.org/ns/docbook" + +db.domain.inlines |= db.markup.inlines + +db.userinput.inlines |= db.markup.inlines + +db.computeroutput.inlines |= db.markup.inlines + +db.markup.inlines = + db.tag + | db.markup + | db.token + | db.symbol + | db.literal + | db.code + | db.constant + | db.email + | db.uri + +# ====================================================================== + +[ + db:refname [ "markup" ] + db:refpurpose [ "A string of formatting markup in text that is to be represented literally" ] +] +div { + + db.markup.role.attribute = attribute role { text } + + db.markup.attlist = + db.markup.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.markup = + element markup { + db.markup.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "tag" ] + db:refpurpose [ "A component of XML (or SGML) markup" ] +] +div { + + db.tag.role.attribute = attribute role { text } + + db.tag.class.enumeration = + ## An attribute + "attribute" + | ## An attribute value + "attvalue" + | ## An element + "element" + | ## An empty element tag + "emptytag" + | ## An end tag + "endtag" + | ## A general entity + "genentity" + | ## The local name part of a qualified name + "localname" + | ## A namespace + "namespace" + | ## A numeric character reference + "numcharref" + | ## A parameter entity + "paramentity" + | ## A processing instruction + "pi" + | ## The prefix part of a qualified name + "prefix" + | ## An SGML comment + "comment" + | ## A start tag + "starttag" + | ## An XML processing instruction + "xmlpi" + + db.tag.class.attribute = + [ + db:refpurpose [ "Identifies the nature of the tag content" ] + ] + attribute class { db.tag.class.enumeration } + + db.tag.namespace.attribute = + [ + db:refpurpose [ "Identifies the namespace of the tag content" ] + ] + attribute namespace { xsd:anyURI } + + db.tag.attlist = + db.tag.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.tag.class.attribute? + & db.tag.namespace.attribute? + + db.tag = + element tag { + db.tag.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "symbol" ] + db:refpurpose [ "A name that is replaced by a value before processing" ] +] +div { + + db.symbol.class.attribute = + [ + db:refpurpose [ "Identifies the class of symbol" ] + ] + attribute class { + ## The value is a limit of some kind + "limit" + } + + db.symbol.role.attribute = attribute role { text } + + db.symbol.attlist = + db.symbol.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.symbol.class.attribute? + + db.symbol = + element symbol { + db.symbol.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "token" ] + db:refpurpose [ "A unit of information" ] +] +div { + + db.token.role.attribute = attribute role { text } + + db.token.attlist = + db.token.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.token = + element token { + db.token.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "literal" ] + db:refpurpose [ "Inline text that is some literal value" ] +] +div { + + db.literal.role.attribute = attribute role { text } + + db.literal.attlist = + db.literal.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.literal = + element literal { + db.literal.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "code" ] + db:refpurpose [ "An inline code fragment" ] +] +div { + + code.language.attribute = + [ + db:refpurpose [ "Identifies the (computer) language of the code fragment" ] + ] + attribute language { text } + + db.code.role.attribute = attribute role { text } + + db.code.attlist = + db.code.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & code.language.attribute? + + db.code = + element code { + db.code.attlist, + (db.programming.inlines | db._text)* + } +} + +# ====================================================================== + +[ + db:refname [ "constant" ] + db:refpurpose [ "A programming or system constant" ] +] +div { + + db.constant.class.attribute = + [ + db:refpurpose [ "Identifies the class of constant" ] + ] + attribute class { + ## The value is a limit of some kind + "limit" + } + + db.constant.role.attribute = attribute role { text } + + db.constant.attlist = + db.constant.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.constant.class.attribute? + + db.constant = + element constant { + db.constant.attlist, + db._text + } +} diff --git a/docbook/relaxng/docbook/src/os.rnc b/docbook/relaxng/docbook/src/os.rnc new file mode 100644 index 000000000..7411f68bf --- /dev/null +++ b/docbook/relaxng/docbook/src/os.rnc @@ -0,0 +1,446 @@ +# This file is part of DocBook V5.0CR6 +# +# Copyright 1992-2005 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). +# +# Release: $Id: pool.rnc 7466 2007-09-27 14:03:55Z nwalsh $ +# +# Permission to use, copy, modify and distribute the DocBook schema +# 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 schema +# for any purpose. It is provided "as is" without expressed or implied +# warranty. +# +# If you modify the DocBook schema in any way, label your schema as a +# variant of DocBook. See the reference documentation +# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook) +# 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/. +# +# ====================================================================== + +default namespace = "http://docbook.org/ns/docbook" +namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" +namespace rng = "http://relaxng.org/ns/structure/1.0" +namespace s = "http://www.ascc.net/xml/schematron" +namespace db = "http://docbook.org/ns/docbook" +namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" + +db.domain.inlines |= db.os.inlines + +db.synopsis.blocks |= db.cmdsynopsis + +db.os.inlines = + db.prompt + | db.envar + | db.filename + | db.command + | db.computeroutput + | db.userinput + +db.computeroutput.inlines = + text + | db.ubiq.inlines + | db.os.inlines + | db.technical.inlines + +db.userinput.inlines = + text + | db.ubiq.inlines + | db.os.inlines + | db.technical.inlines + +# ====================================================================== + +db.prompt.inlines = db._text + +# ====================================================================== + +[ + db:refname [ "prompt" ] + db:refpurpose [ "A character or string indicating the start of an input field in a computer display" ] +] +div { + + + db.prompt.role.attribute = attribute role { text } + + db.prompt.attlist = + db.prompt.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.prompt = + element prompt { + db.prompt.attlist, + db.prompt.inlines* + } +} + +# ====================================================================== + +[ + db:refname [ "envar" ] + db:refpurpose [ "A software environment variable" ] +] +div { + + db.envar.role.attribute = attribute role { text } + + db.envar.attlist = + db.envar.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.envar = + element envar { + db.envar.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "filename" ] + db:refpurpose [ "The name of a file" ] +] +div { + + db.filename.class.enumeration = + ## A device + "devicefile" + | ## A directory + "directory" + | ## A filename extension + "extension" + | ## A header file (as for a programming language) + "headerfile" + | ## A library file + "libraryfile" + | ## A partition (as of a hard disk) + "partition" + | ## A symbolic link + "symlink" + + db.filename.class.attribute = + [ + db:refpurpose [ "Identifies the class of filename" ] + ] + attribute class { db.filename.class.enumeration } + + db.filename.path.attribute = + [ + db:refpurpose [ "Specifies the path of the filename" ] + ] + attribute path { text } + + db.filename.role.attribute = attribute role { text } + + db.filename.attlist = + db.filename.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.filename.path.attribute? + & db.filename.class.attribute? + + db.filename = + element filename { + db.filename.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "command" ] + db:refpurpose [ "The name of an executable program or other software command" ] +] +div { + + db.command.role.attribute = attribute role { text } + + db.command.attlist = + db.command.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.command = + element command { + db.command.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "computeroutput" ] + db:refpurpose [ "Data, generally text, displayed or presented by a computer" ] +] +div { + + db.computeroutput.role.attribute = attribute role { text } + + db.computeroutput.attlist = + db.computeroutput.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.computeroutput = + element computeroutput { + db.computeroutput.attlist, + db.computeroutput.inlines* + } +} + +# ====================================================================== + +[ + db:refname [ "userinput" ] + db:refpurpose [ "Data entered by the user" ] +] +div { + + db.userinput.role.attribute = attribute role { text } + + db.userinput.attlist = + db.userinput.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.userinput = + element userinput { + db.userinput.attlist, + db.userinput.inlines* + } +} + +# ====================================================================== + +[ + db:refname [ "cmdsynopsis" ] + db:refpurpose [ "A syntax summary for a software command" ] +] +div { + + db.cmdsynopsis.role.attribute = attribute role { text } + + db.cmdsynopsis.sepchar.attribute = + [ + db:refpurpose [ "Specifies the character that should separate the command and its top-level arguments" ] + ] + attribute sepchar { text } + + db.cmdsynopsis.cmdlength.attribute = + [ + db:refpurpose [ "Indicates the displayed length of the command; this information may be used to intelligently indent command synopses which extend beyond one line" ] + ] + attribute cmdlength { text } + + db.cmdsynopsis.label.attribute = db.label.attribute + + db.cmdsynopsis.attlist = + db.cmdsynopsis.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.cmdsynopsis.sepchar.attribute? + & db.cmdsynopsis.cmdlength.attribute? + & db.cmdsynopsis.label.attribute? + + db.cmdsynopsis.info = db._info.title.forbidden + + db.cmdsynopsis = + element cmdsynopsis { + db.cmdsynopsis.attlist, + db.cmdsynopsis.info, + (db.command | db.arg | db.group | db.sbr)+, + db.synopfragment* + } +} + +# ====================================================================== + +db.rep.enumeration = + ## Can not be repeated. + "norepeat" + | ## Can be repeated. + "repeat" + +db.rep.attribute = + [ + a:defaultValue="norepeat" + db:refpurpose [ "Indicates whether or not repetition is possible." ] + ] + attribute rep { db.rep.enumeration } + +db.choice.enumeration = + ## Formatted to indicate that it is optional. + "opt" + | ## Formatted without indication. + "plain" + | ## Formatted to indicate that it is required. + "req" + +db.choice.opt.attribute = + [ + a:defaultValue="opt" + db:refpurpose [ "Indicates optionality." ] + ] + attribute choice { db.choice.enumeration } + +db.choice.req.attribute = + [ + a:defaultValue="req" + db:refpurpose [ "Indicates optionality." ] + ] + attribute choice { db.choice.enumeration } + +# ====================================================================== + +[ + db:refname [ "arg" ] + db:refpurpose [ "An argument in a CmdSynopsis" ] +] +div { + + db.arg.role.attribute = attribute role { text } + db.arg.rep.attribute = db.rep.attribute + db.arg.choice.attribute = db.choice.opt.attribute + + db.arg.attlist = + db.arg.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.arg.rep.attribute? + & db.arg.choice.attribute? + + db.arg = + element arg { + db.arg.attlist, + (db._text + | db.arg + | db.group + | db.option + | db.synopfragmentref + | db.sbr)* + } +} + +# ====================================================================== + +[ + db:refname [ "group" ] + db:refpurpose [ "A group of elements in a CmdSynopsis" ] +] +div { + + db.group.role.attribute = attribute role { text } + db.group.rep.attribute = db.rep.attribute + db.group.choice.attribute = db.choice.opt.attribute + + db.group.attlist = + db.group.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.group.rep.attribute? + & db.group.choice.attribute? + + db.group = + element group { + db.group.attlist, + (db.arg + | db.group + | db.option + | db.synopfragmentref + | db.replaceable + | db.sbr)+ + } +} + +# ====================================================================== + +[ + db:refname [ "sbr" ] + db:refpurpose [ "An explicit line break in a command synopsis" ] +] +div { + + db.sbr.role.attribute = attribute role { text } + + db.sbr.attlist = + db.sbr.role.attribute? + & db.common.attributes + + db.sbr = + element sbr { + db.sbr.attlist, + empty + } +} + +# ====================================================================== + +[ + db:refname [ "synopfragment" ] + db:refpurpose [ "A portion of a CmdSynopsis broken out from the main body of the synopsis" ] +] +div { + + db.synopfragment.role.attribute = attribute role { text } + + db.synopfragment.attlist = + db.synopfragment.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.synopfragment = + element synopfragment { + db.synopfragment.attlist, + (db.arg | db.group)+ + } +} + +# ====================================================================== + +[ + db:refname [ "synopfragmentref" ] + db:refpurpose [ "A reference to a fragment of a command synopsis" ] +] +div { + + db.synopfragmentref.role.attribute = attribute role { text } + + db.synopfragmentref.attlist = + db.synopfragmentref.role.attribute? + & db.common.attributes + & db.linkend.attribute + + db.synopfragmentref = + [ + s:pattern [ + name = "Synopsis fragment type constraint" + s:rule [ + context = "db:synopfragmentref" + s:assert [ + test = "local-name(//*[@xml:id=current()/@linkend]) = 'synopfragment' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'" + "@linkend on synopfragmentref must point to a synopfragment." + ] + ] + ] + ] + element synopfragmentref { + db.synopfragmentref.attlist, + text + } +} + diff --git a/docbook/relaxng/docbook/src/pool.rnc b/docbook/relaxng/docbook/src/pool.rnc index a9a817d6c..db98fe528 100644 --- a/docbook/relaxng/docbook/src/pool.rnc +++ b/docbook/relaxng/docbook/src/pool.rnc @@ -653,73 +653,14 @@ db.general.inlines = db.domain.inlines = db.technical.inlines - | db.error.inlines - | db.os.inlines - | db.programming.inlines - | db.markup.inlines - | db.gui.inlines - | db.keyboard.inlines db.technical.inlines = db.replaceable - | db.systemitem - | db.option - | db.optional | db.package | db.parameter - | db.property - -db.error.inlines = - db.errorcode - | db.errortext - | db.errorname - | db.errortype - -db.oo.inlines = - db.ooclass - | db.ooexception - | db.oointerface - -db.programming.inlines = - db.function - | db.parameter - | db.varname - | db.returnvalue - | db.type - | db.classname - | db.exceptionname - | db.interfacename - | db.methodname - | db.modifier - | db.initializer - | db.oo.inlines db.product.inlines = - db.productnumber - | db.productname - | db.database - | db.application - | db.hardware - | db.trademark - -db.os.inlines = - db.prompt - | db.envar - | db.filename - | db.command - | db.computeroutput - | db.userinput - -db.markup.inlines = - db.tag - | db.markup - | db.token - | db.symbol - | db.literal - | db.code - | db.constant - | db.email - | db.uri + db.trademark db.bibliography.inlines = db.citation @@ -752,24 +693,6 @@ db.graphic.inlines = db.inlinemediaobject db.indexing.inlines = notAllowed -db.gui.inlines = - db.guiicon - | db.guibutton - | db.guimenuitem - | db.guimenu - | db.guisubmenu - | db.guilabel - | db.menuchoice - | db.mousebutton - -db.keyboard.inlines = - db.keycombo - | db.keycap - | db.keycode - | db.keysym - | db.shortcut - | db.accel - db.link.inlines = db.xref | db.link @@ -782,14 +705,12 @@ db.extension.inlines = notAllowed db.nopara.blocks = db.list.blocks - | db.admonition.blocks | db.formal.blocks | db.informal.blocks | db.publishing.blocks | db.graphic.blocks | db.technical.blocks | db.verbatim.blocks - | db.synopsis.blocks | db.bridgehead | db.remark | db.revhistory @@ -806,7 +727,6 @@ db.all.blocks = | db.extension.blocks ctrl:exclude [ from="db.formal.blocks" exclude="db.formal.blocks" ] -ctrl:exclude [ from="db.formal.blocks" exclude="db.admonition.blocks" ] db.formal.blocks = db.example @@ -830,15 +750,6 @@ db.graphic.blocks = db.technical.blocks = db.procedure -ctrl:exclude [ from="db.admonition.blocks" exclude="db.admonition.blocks" ] - -db.admonition.blocks = - db.caution - | db.important - | db.note - | db.tip - | db.warning - db.list.blocks = db.itemizedlist | db.orderedlist @@ -848,19 +759,8 @@ db.list.blocks = | db.segmentedlist db.verbatim.blocks = - db.programlisting - | db.screen + db.screen | db.literallayout - | db.synopsis - -db.synopsis.blocks = - db.cmdsynopsis - | db.funcsynopsis - | db.classsynopsis - | db.methodsynopsis - | db.constructorsynopsis - | db.destructorsynopsis - | db.fieldsynopsis db.extension.blocks = notAllowed @@ -896,8 +796,6 @@ db.info.elements = | db.othercredit | db.pagenums | db.printhistory - | db.productname - | db.productnumber | db.pubdate | db.publisher | db.publishername @@ -1569,7 +1467,6 @@ div { ctrl:exclude [ from="db.footnote" exclude="db.footnote" ] ctrl:exclude [ from="db.footnote" exclude="db.formal.blocks" ] - ctrl:exclude [ from="db.footnote" exclude="db.admonition.blocks" ] ctrl:exclude [ from="db.footnote" exclude="db.indexterm" ] ctrl:exclude [ from="db.footnote" exclude="db.sidebar" ] ctrl:exclude [ from="db.footnote" exclude="db.task" ] @@ -1674,120 +1571,6 @@ div { # ====================================================================== -db.admonition.contentmodel = db._info.title.only, db.all.blocks+ - -# ====================================================================== - -[ - db:refname [ "caution" ] - db:refpurpose [ "A note of caution" ] -] -div { - - db.caution.role.attribute = attribute role { text } - - db.caution.attlist = - db.caution.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.caution = - element caution { - db.caution.attlist, - db.admonition.contentmodel - } -} - -# ====================================================================== - -[ - db:refname [ "important" ] - db:refpurpose [ "An admonition set off from the text" ] -] -div { - - db.important.role.attribute = attribute role { text } - - db.important.attlist = - db.important.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.important = - element important { - db.important.attlist, - db.admonition.contentmodel - } -} - -# ====================================================================== - -[ - db:refname [ "note" ] - db:refpurpose [ "A message set off from the text" ] -] -div { - - db.note.role.attribute = attribute role { text } - - db.note.attlist = - db.note.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.note = - element note { - db.note.attlist, - db.admonition.contentmodel - } -} - -# ====================================================================== - -[ - db:refname [ "tip" ] - db:refpurpose [ "A suggestion to the user, set off from the text" ] -] -div { - - db.tip.role.attribute = attribute role { text } - - db.tip.attlist = - db.tip.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.tip = - element tip { - db.tip.attlist, - db.admonition.contentmodel - } -} - -# ====================================================================== - -[ - db:refname [ "warning" ] - db:refpurpose [ "An admonition set off from the text" ] -] -div { - - db.warning.role.attribute = attribute role { text } - - db.warning.attlist = - db.warning.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.warning = - element warning { - db.warning.attlist, - db.admonition.contentmodel - } -} - -# ====================================================================== - [ db:refname [ "itemizedlist" ] db:refpurpose [ "A list in which each entry is marked with a bullet or other dingbat" ] @@ -2250,32 +2033,6 @@ db.verbatim.contentmodel = # ====================================================================== -[ - db:refname [ "programlisting" ] - db:refpurpose [ "A literal listing of all or part of a program" ] -] -div { - - db.programlisting.role.attribute = attribute role { text } - - db.programlisting.width.attribute = db.width.characters.attribute - - db.programlisting.attlist = - db.programlisting.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.verbatim.attributes - & db.programlisting.width.attribute? - - db.programlisting = - element programlisting { - db.programlisting.attlist, - db.verbatim.contentmodel - } -} - -# ====================================================================== - [ db:refname [ "literallayout" ] db:refpurpose [ "A block of text in which line breaks and white space are to be reproduced faithfully" ] @@ -2771,7 +2528,6 @@ div { ] div { ctrl:exclude [ from="db.caption" exclude="db.formal.blocks" ] - ctrl:exclude [ from="db.caption" exclude="db.admonition.blocks" ] ctrl:exclude [ from="db.caption" exclude="db.sidebar" ] ctrl:exclude [ from="db.caption" exclude="db.task" ] @@ -2795,617 +2551,541 @@ div { # ====================================================================== [ - db:refname [ "synopsis" ] - db:refpurpose [ "A general-purpose element for representing the syntax of commands or functions" ] + db:refname [ "address" ] + db:refpurpose [ "A real-world address, generally a postal address" ] ] div { - db.synopsis.role.attribute = attribute role { text } - db.synopsis.label.attribute = db.label.attribute + db.address.role.attribute = attribute role { text } - db.synopsis.attlist = - db.synopsis.role.attribute? + db.address.attlist = + db.address.role.attribute? & db.common.attributes & db.common.linking.attributes & db.verbatim.attributes - & db.synopsis.label.attribute? - db.synopsis = - element synopsis { - db.synopsis.attlist, - db.verbatim.contentmodel + db.address = + element address { + db.address.attlist, + (db._text + | db.personname + | db.pob + | db.street + | db.city + | db.state + | db.postcode + | db.country + | db.phone + | db.fax + | db.email + | db.uri + | db.otheraddr)* } } # ====================================================================== [ - db:refname [ "cmdsynopsis" ] - db:refpurpose [ "A syntax summary for a software command" ] + db:refname [ "street" ] + db:refpurpose [ "A street address in an address" ] ] div { - db.cmdsynopsis.role.attribute = attribute role { text } - - db.cmdsynopsis.sepchar.attribute = - [ - db:refpurpose [ "Specifies the character that should separate the command and its top-level arguments" ] - ] - attribute sepchar { text } - - db.cmdsynopsis.cmdlength.attribute = - [ - db:refpurpose [ "Indicates the displayed length of the command; this information may be used to intelligently indent command synopses which extend beyond one line" ] - ] - attribute cmdlength { text } - - db.cmdsynopsis.label.attribute = db.label.attribute + db.street.role.attribute = attribute role { text } - db.cmdsynopsis.attlist = - db.cmdsynopsis.role.attribute? + db.street.attlist = + db.street.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.cmdsynopsis.sepchar.attribute? - & db.cmdsynopsis.cmdlength.attribute? - & db.cmdsynopsis.label.attribute? - db.cmdsynopsis.info = db._info.title.forbidden - - db.cmdsynopsis = - element cmdsynopsis { - db.cmdsynopsis.attlist, - db.cmdsynopsis.info, - (db.command | db.arg | db.group | db.sbr)+, - db.synopfragment* + db.street = + element street { + db.street.attlist, + db._text } } # ====================================================================== -db.rep.enumeration = - ## Can not be repeated. - "norepeat" - | ## Can be repeated. - "repeat" - -db.rep.attribute = - [ - a:defaultValue="norepeat" - db:refpurpose [ "Indicates whether or not repetition is possible." ] - ] - attribute rep { db.rep.enumeration } - -db.choice.enumeration = - ## Formatted to indicate that it is optional. - "opt" - | ## Formatted without indication. - "plain" - | ## Formatted to indicate that it is required. - "req" - -db.choice.opt.attribute = - [ - a:defaultValue="opt" - db:refpurpose [ "Indicates optionality." ] - ] - attribute choice { db.choice.enumeration } - -db.choice.req.attribute = - [ - a:defaultValue="req" - db:refpurpose [ "Indicates optionality." ] - ] - attribute choice { db.choice.enumeration } - -# ====================================================================== - [ - db:refname [ "arg" ] - db:refpurpose [ "An argument in a CmdSynopsis" ] + db:refname [ "pob" ] + db:refpurpose [ "A post office box in an address" ] ] div { - db.arg.role.attribute = attribute role { text } - db.arg.rep.attribute = db.rep.attribute - db.arg.choice.attribute = db.choice.opt.attribute + db.pob.role.attribute = attribute role { text } - db.arg.attlist = - db.arg.role.attribute? + db.pob.attlist = + db.pob.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.arg.rep.attribute? - & db.arg.choice.attribute? - db.arg = - element arg { - db.arg.attlist, - (db._text - | db.arg - | db.group - | db.option - | db.synopfragmentref - | db.sbr)* + db.pob = + element pob { + db.pob.attlist, + db._text } } # ====================================================================== [ - db:refname [ "group" ] - db:refpurpose [ "A group of elements in a CmdSynopsis" ] + db:refname [ "postcode" ] + db:refpurpose [ "A postal code in an address" ] ] div { - db.group.role.attribute = attribute role { text } - db.group.rep.attribute = db.rep.attribute - db.group.choice.attribute = db.choice.opt.attribute + db.postcode.role.attribute = attribute role { text } - db.group.attlist = - db.group.role.attribute? + db.postcode.attlist = + db.postcode.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.group.rep.attribute? - & db.group.choice.attribute? - db.group = - element group { - db.group.attlist, - (db.arg - | db.group - | db.option - | db.synopfragmentref - | db.replaceable - | db.sbr)+ + db.postcode = + element postcode { + db.postcode.attlist, + db._text } } # ====================================================================== [ - db:refname [ "sbr" ] - db:refpurpose [ "An explicit line break in a command synopsis" ] + db:refname [ "city" ] + db:refpurpose [ "The name of a city in an address" ] ] div { - db.sbr.role.attribute = attribute role { text } + db.city.role.attribute = attribute role { text } - db.sbr.attlist = - db.sbr.role.attribute? + db.city.attlist = + db.city.role.attribute? & db.common.attributes + & db.common.linking.attributes - db.sbr = - element sbr { - db.sbr.attlist, - empty + db.city = + element city { + db.city.attlist, + db._text } } # ====================================================================== [ - db:refname [ "synopfragment" ] - db:refpurpose [ "A portion of a CmdSynopsis broken out from the main body of the synopsis" ] + db:refname [ "state" ] + db:refpurpose [ "A state or province in an address" ] ] div { - db.synopfragment.role.attribute = attribute role { text } + db.state.role.attribute = attribute role { text } - db.synopfragment.attlist = - db.synopfragment.role.attribute? + db.state.attlist = + db.state.role.attribute? & db.common.attributes & db.common.linking.attributes - db.synopfragment = - element synopfragment { - db.synopfragment.attlist, - (db.arg | db.group)+ + db.state = + element state { + db.state.attlist, + db._text } } # ====================================================================== [ - db:refname [ "synopfragmentref" ] - db:refpurpose [ "A reference to a fragment of a command synopsis" ] + db:refname [ "country" ] + db:refpurpose [ "The name of a country" ] ] div { - db.synopfragmentref.role.attribute = attribute role { text } + db.country.role.attribute = attribute role { text } - db.synopfragmentref.attlist = - db.synopfragmentref.role.attribute? + db.country.attlist = + db.country.role.attribute? & db.common.attributes - & db.linkend.attribute + & db.common.linking.attributes - db.synopfragmentref = - [ - s:pattern [ - name = "Synopsis fragment type constraint" - s:rule [ - context = "db:synopfragmentref" - s:assert [ - test = "local-name(//*[@xml:id=current()/@linkend]) = 'synopfragment' and namespace-uri(//*[@xml:id=current()/@linkend]) = 'http://docbook.org/ns/docbook'" - "@linkend on synopfragmentref must point to a synopfragment." - ] - ] - ] - ] - element synopfragmentref { - db.synopfragmentref.attlist, - text + db.country = + element country { + db.country.attlist, + db._text } } # ====================================================================== [ - db:refname [ "funcsynopsis" ] - db:refpurpose [ "The syntax summary for a function definition" ] + db:refname [ "phone" ] + db:refpurpose [ "A telephone number" ] ] div { - db.funcsynopsis.role.attribute = attribute role { text } + db.phone.role.attribute = attribute role { text } - db.funcsynopsis.attlist = - db.funcsynopsis.role.attribute? + db.phone.attlist = + db.phone.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.language.attribute? - db.funcsynopsis.info = db._info.title.forbidden - - db.funcsynopsis = - element funcsynopsis { - db.funcsynopsis.attlist, - db.funcsynopsis.info, - (db.funcsynopsisinfo | db.funcprototype)+ + db.phone = + element phone { + db.phone.attlist, + db._text } } # ====================================================================== [ - db:refname [ "funcsynopsisinfo" ] - db:refpurpose [ "Information supplementing the FuncDefs of a FuncSynopsis" ] + db:refname [ "fax" ] + db:refpurpose [ "A fax number" ] ] div { - db.funcsynopsisinfo.role.attribute = attribute role { text } + db.fax.role.attribute = attribute role { text } - db.funcsynopsisinfo.attlist = - db.funcsynopsisinfo.role.attribute? + db.fax.attlist = + db.fax.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.verbatim.attributes - db.funcsynopsisinfo = - element funcsynopsisinfo { - db.funcsynopsisinfo.attlist, - db.verbatim.contentmodel + db.fax = + element fax { + db.fax.attlist, + db._text } } # ====================================================================== [ - db:refname [ "funcprototype" ] - db:refpurpose [ "The prototype of a function" ] + db:refname [ "otheraddr" ] + db:refpurpose [ "Uncategorized information in address" ] ] div { - db.funcprototype.role.attribute = attribute role { text } + db.otheraddr.role.attribute = attribute role { text } - db.funcprototype.attlist = - db.funcprototype.role.attribute? + db.otheraddr.attlist = + db.otheraddr.role.attribute? & db.common.attributes & db.common.linking.attributes - db.funcprototype = - element funcprototype { - db.funcprototype.attlist, - db.modifier*, - db.funcdef, - (db.void | db.varargs | (db.paramdef+, db.varargs?)), - db.modifier* + db.otheraddr = + element otheraddr { + db.otheraddr.attlist, + db._text } } # ====================================================================== [ - db:refname [ "funcdef" ] - db:refpurpose [ "A function (subroutine) name and its return type" ] + db:refname [ "affiliation" ] + db:refpurpose [ "The institutional affiliation of an individual" ] ] div { - db.funcdef.role.attribute = attribute role { text } + db.affiliation.role.attribute = attribute role { text } - db.funcdef.attlist = - db.funcdef.role.attribute? + db.affiliation.attlist = + db.affiliation.role.attribute? & db.common.attributes & db.common.linking.attributes - db.funcdef = - element funcdef { - db.funcdef.attlist, - (db._text | db.type | db.function)* + db.affiliation = + element affiliation { + db.affiliation.attlist, + db.shortaffil?, + db.jobtitle*, + (db.org? | (db.orgname?, db.orgdiv*, db.address*)) } } # ====================================================================== [ - db:refname [ "void" ] - db:refpurpose [ "An empty element in a function synopsis indicating that the function in question takes no arguments" ] + db:refname [ "shortaffil" ] + db:refpurpose [ "A brief description of an affiliation" ] ] div { - db.void.role.attribute = attribute role { text } + db.shortaffil.role.attribute = attribute role { text } - db.void.attlist = - db.void.role.attribute? + db.shortaffil.attlist = + db.shortaffil.role.attribute? & db.common.attributes & db.common.linking.attributes - db.void = - element void { - db.void.attlist, - empty + db.shortaffil = + element shortaffil { + db.shortaffil.attlist, + db._text } } # ====================================================================== [ - db:refname [ "varargs" ] - db:refpurpose [ "An empty element in a function synopsis indicating a variable number of arguments" ] + db:refname [ "jobtitle" ] + db:refpurpose [ "The title of an individual in an organization" ] ] div { - db.varargs.role.attribute = attribute role { text } + db.jobtitle.role.attribute = attribute role { text } - db.varargs.attlist = - db.varargs.role.attribute? + db.jobtitle.attlist = + db.jobtitle.role.attribute? & db.common.attributes & db.common.linking.attributes - db.varargs = - element varargs { - db.varargs.attlist, - empty + db.jobtitle = + element jobtitle { + db.jobtitle.attlist, + db._text } } # ====================================================================== [ - db:refname [ "paramdef" ] - db:refpurpose [ "Information about a function parameter in a programming language" ] + db:refname [ "orgname" ] + db:refpurpose [ "The name of an organization other than a corporation " ] ] div { - db.paramdef.role.attribute = attribute role { text } + ctrl:other-attribute [ name="db.orgname.class.attrib" + enum-name="db.orgname.class-enum.attribute" + other-name="db.orgname.class-other.attributes" ] + + db.orgname.class.enumeration = + ## A consortium + "consortium" + | ## A corporation + "corporation" + | ## An informal organization + "informal" + | ## A non-profit organization + "nonprofit" - db.paramdef.choice.enumeration = - ## Formatted to indicate that it is optional. - "opt" - | ## Formatted to indicate that it is required. - "req" + db.orgname.class-enum.attribute = + [ + db:refpurpose [ "Specifies the nature of the organization" ] + ] + attribute class { db.orgname.class.enumeration } - db.paramdef.choice.attribute = + db.orgname.class-other.attributes = + [ + db:refpurpose [ "Specifies the nature of the organization" ] + ] + attribute class { + ## Indicates a non-standard organization class + "other" + }, [ - a:defaultValue="opt" - db:refpurpose [ "Indicates optionality." ] + db:refpurpose [ "Identifies the non-standard nature of the organization" ] ] - attribute choice { db.paramdef.choice.enumeration } + attribute otherclass { text } + + db.orgname.class.attribute = + (db.orgname.class-enum.attribute | db.orgname.class-other.attributes) + db.orgname.role.attribute = attribute role { text } - db.paramdef.attlist = - db.paramdef.role.attribute? + db.orgname.attlist = + db.orgname.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.paramdef.choice.attribute? + & db.orgname.class.attribute? - db.paramdef = - element paramdef { - db.paramdef.attlist, - (db._text | db.initializer | db.type | db.parameter | db.funcparams)* + db.orgname = + element orgname { + db.orgname.attlist, + db._text } } # ====================================================================== [ - db:refname [ "funcparams" ] - db:refpurpose [ "Parameters for a function referenced through a function pointer in a synopsis" ] + db:refname [ "orgdiv" ] + db:refpurpose [ "A division of an organization" ] ] div { - db.funcparams.role.attribute = attribute role { text } + db.orgdiv.role.attribute = attribute role { text } - db.funcparams.attlist = - db.funcparams.role.attribute? + db.orgdiv.attlist = + db.orgdiv.role.attribute? & db.common.attributes & db.common.linking.attributes - db.funcparams = - element funcparams { - db.funcparams.attlist, - db._text + db.orgdiv = + element orgdiv { + db.orgdiv.attlist, + db.all.inlines* } } # ====================================================================== [ - db:refname [ "classsynopsis" ] - db:refpurpose [ "The syntax summary for a class definition" ] + db:refname [ "artpagenums" ] + db:refpurpose [ "The page numbers of an article as published" ] ] div { - db.classsynopsis.role.attribute = attribute role { text } - - db.classsynopsis.class.enumeration = - ## This is the synopsis of a class - "class" - | ## This is the synopsis of an interface - "interface" - - db.classsynopsis.class.attribute = - [ - db:refpurpose [ "Specifies the nature of the synopsis" ] - ] - attribute class { db.classsynopsis.class.enumeration } + db.artpagenums.role.attribute = attribute role { text } - db.classsynopsis.attlist = - db.classsynopsis.role.attribute? + db.artpagenums.attlist = + db.artpagenums.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.language.attribute? - & db.classsynopsis.class.attribute? - db.classsynopsis = - element classsynopsis { - db.classsynopsis.attlist, - db.oo.inlines+, - (db.classsynopsisinfo - | db.methodsynopsis - | db.constructorsynopsis - | db.destructorsynopsis - | db.fieldsynopsis)* + db.artpagenums = + element artpagenums { + db.artpagenums.attlist, + db._text } } # ====================================================================== [ - db:refname [ "classsynopsisinfo" ] - db:refpurpose [ "Information supplementing the contents of a ClassSynopsis" ] + db:refname [ "personname" ] + db:refpurpose [ "The personal name of an individual" ] ] div { - db.classsynopsisinfo.role.attribute = attribute role { text } + db.personname.role.attribute = attribute role { text } - db.classsynopsisinfo.attlist = - db.classsynopsisinfo.role.attribute? + db.personname.attlist = + db.personname.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.verbatim.attributes - db.classsynopsisinfo = - element classsynopsisinfo { - db.classsynopsisinfo.attlist, - db.verbatim.contentmodel + db.personname = + element personname { + db.personname.attlist, + (db._text + | (db.honorific + | db.firstname + | db.surname + | db.lineage + | db.othername)+) } } # ====================================================================== +db.person.author.contentmodel = + db.personname, + (db.personblurb + | db.affiliation + | db.email + | db.uri + | db.address + | db.contrib)* + +db.org.author.contentmodel = + db.orgname, + (db.orgdiv + | db.affiliation + | db.email + | db.uri + | db.address + | db.contrib)* + +db.credit.contentmodel = db.person.author.contentmodel | db.org.author.contentmodel + +# ====================================================================== + [ - db:refname [ "ooclass" ] - db:refpurpose [ "A class in an object-oriented programming language" ] + db:refname [ "author" ] + db:refpurpose [ "The name of an individual author" ] ] div { - db.ooclass.role.attribute = attribute role { text } + db.author.role.attribute = attribute role { text } - db.ooclass.attlist = - db.ooclass.role.attribute? + db.author.attlist = + db.author.role.attribute? & db.common.attributes & db.common.linking.attributes - db.ooclass = - element ooclass { - db.ooclass.attlist, - (db.package|db.modifier)*, - db.classname + db.author = + element author { + db.author.attlist, + db.credit.contentmodel } } # ====================================================================== [ - db:refname [ "oointerface" ] - db:refpurpose [ "An interface in an object-oriented programming language" ] + db:refname [ "authorgroup" ] + db:refpurpose [ "Wrapper for author information when a document has multiple authors or collabarators" ] ] div { - db.oointerface.role.attribute = attribute role { text } + db.authorgroup.role.attribute = attribute role { text } - db.oointerface.attlist = - db.oointerface.role.attribute? + db.authorgroup.attlist = + db.authorgroup.role.attribute? & db.common.attributes & db.common.linking.attributes - db.oointerface = - element oointerface { - db.oointerface.attlist, - (db.package|db.modifier)*, - db.interfacename + db.authorgroup = + element authorgroup { + db.authorgroup.attlist, + (db.author | db.editor | db.othercredit)+ } } # ====================================================================== [ - db:refname [ "ooexception" ] - db:refpurpose [ "An exception in an object-oriented programming language" ] + db:refname [ "collab" ] + db:refpurpose [ "Identifies a collaborator" ] ] div { - db.ooexception.role.attribute = attribute role { text } + db.collab.role.attribute = attribute role { text } - db.ooexception.attlist = - db.ooexception.role.attribute? + db.collab.attlist = + db.collab.role.attribute? & db.common.attributes & db.common.linking.attributes - db.ooexception = - element ooexception { - db.ooexception.attlist, - (db.package|db.modifier)*, - db.exceptionname + db.collab = + element collab { + db.collab.attlist, + (db.person | db.personname | db.org | db.orgname)+, + db.affiliation* } } # ====================================================================== -db.modifier.xml.space.attribute = - [ - db:refpurpose [ "Can be used to indicate that whitespace in the modifier should be preserved (for multi-line annotations, for example)." ] - ] - attribute xml:space { - ## Extra whitespace and line breaks must be preserved. - "preserve" -# Ideally the definition of xml:space used on modifier would be -# different from the definition used on the verbatim elements. The -# verbatim elements forbid the use of xml:space="default" which -# wouldn't be a problem on modifier. But doing that causes the -# generated XSD schemas to be broken so I'm just reusing the existing -# definition for now. It won't be backwards incompatible to fix this -# problem in the future. -# | ## Extra whitespace and line breaks are not preserved. -# "default" - } - [ - db:refname [ "modifier" ] - db:refpurpose [ "Modifiers in a synopsis" ] + db:refname [ "authorinitials" ] + db:refpurpose [ "The initials or other short identifier for an author" ] ] div { - db.modifier.role.attribute = attribute role { text } - + db.authorinitials.role.attribute = attribute role { text } - db.modifier.attlist = - db.modifier.xml.space.attribute? - & db.modifier.role.attribute? + db.authorinitials.attlist = + db.authorinitials.role.attribute? & db.common.attributes & db.common.linking.attributes - db.modifier = - element modifier { - db.modifier.attlist, + db.authorinitials = + element authorinitials { + db.authorinitials.attlist, db._text } } @@ -3413,91 +3093,93 @@ div { # ====================================================================== [ - db:refname [ "interfacename" ] - db:refpurpose [ "The name of an interface" ] + db:refname [ "person" ] + db:refpurpose [ "A person and associated metadata" ] ] div { - db.interfacename.role.attribute = attribute role { text } + db.person.role.attribute = attribute role { text } - db.interfacename.attlist = - db.interfacename.role.attribute? + db.person.attlist = + db.person.role.attribute? & db.common.attributes & db.common.linking.attributes - db.interfacename = - element interfacename { - db.interfacename.attlist, - db._text + db.person = + element person { + db.person.attlist, + db.personname, + (db.address|db.affiliation|db.email|db.uri|db.personblurb)* } } # ====================================================================== [ - db:refname [ "exceptionname" ] - db:refpurpose [ "The name of an exception" ] + db:refname [ "org" ] + db:refpurpose [ "An organization and associated metadata" ] ] div { - db.exceptionname.role.attribute = attribute role { text } + db.org.role.attribute = attribute role { text } - db.exceptionname.attlist = - db.exceptionname.role.attribute? + db.org.attlist = + db.org.role.attribute? & db.common.attributes & db.common.linking.attributes - db.exceptionname = - element exceptionname { - db.exceptionname.attlist, - db._text + db.org = + element org { + db.org.attlist, + db.orgname, + (db.address|db.affiliation|db.email|db.uri|db.orgdiv)* } } # ====================================================================== [ - db:refname [ "fieldsynopsis" ] - db:refpurpose [ "The name of a field in a class definition" ] + db:refname [ "confgroup" ] + db:refpurpose [ "A wrapper for document meta-information about a conference" ] ] div { - db.fieldsynopsis.role.attribute = attribute role { text } + db.confgroup.role.attribute = attribute role { text } - db.fieldsynopsis.attlist = - db.fieldsynopsis.role.attribute? + db.confgroup.attlist = + db.confgroup.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.language.attribute? - db.fieldsynopsis = - element fieldsynopsis { - db.fieldsynopsis.attlist, - db.modifier*, - db.type?, - db.varname, - db.initializer? + db.confgroup = + element confgroup { + db.confgroup.attlist, + (db.confdates + | db.conftitle + | db.confnum + | db.confsponsor + | db.address)* } } # ====================================================================== [ - db:refname [ "initializer" ] - db:refpurpose [ "The initializer for a FieldSynopsis" ] + db:refname [ "confdates" ] + db:refpurpose [ "The dates of a conference for which a document was written" ] ] div { - db.initializer.role.attribute = attribute role { text } + db.confdates.role.attribute = attribute role { text } - db.initializer.attlist = - db.initializer.role.attribute? + db.confdates.attlist = + db.confdates.role.attribute? & db.common.attributes & db.common.linking.attributes - db.initializer = - element initializer { - db.initializer.attlist, + db.confdates = + element confdates { + db.confdates.attlist, db._text } } @@ -3505,101 +3187,87 @@ div { # ====================================================================== [ - db:refname [ "constructorsynopsis" ] - db:refpurpose [ "A syntax summary for a constructor" ] + db:refname [ "conftitle" ] + db:refpurpose [ "The title of a conference for which a document was written" ] ] div { - db.constructorsynopsis.role.attribute = attribute role { text } + db.conftitle.role.attribute = attribute role { text } - db.constructorsynopsis.attlist = - db.constructorsynopsis.role.attribute? + db.conftitle.attlist = + db.conftitle.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.language.attribute? - db.constructorsynopsis = - element constructorsynopsis { - db.constructorsynopsis.attlist, - db.modifier*, - db.methodname?, - (db.methodparam+ | db.void?), - db.exceptionname* + db.conftitle = + element conftitle { + db.conftitle.attlist, + db._text } } # ====================================================================== [ - db:refname [ "destructorsynopsis" ] - db:refpurpose [ "A syntax summary for a destructor" ] + db:refname [ "confnum" ] + db:refpurpose [ "An identifier, frequently numerical, associated with a conference for which a document was written" ] ] div { - db.destructorsynopsis.role.attribute = attribute role { text } + db.confnum.role.attribute = attribute role { text } - db.destructorsynopsis.attlist = - db.destructorsynopsis.role.attribute? + db.confnum.attlist = + db.confnum.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.language.attribute? - db.destructorsynopsis = - element destructorsynopsis { - db.destructorsynopsis.attlist, - db.modifier*, - db.methodname?, - (db.methodparam+ | db.void?), - db.exceptionname* + db.confnum = + element confnum { + db.confnum.attlist, + db._text } } # ====================================================================== [ - db:refname [ "methodsynopsis" ] - db:refpurpose [ "A syntax summary for a method" ] + db:refname [ "confsponsor" ] + db:refpurpose [ "The sponsor of a conference for which a document was written" ] ] div { - db.methodsynopsis.role.attribute = attribute role { text } + db.confsponsor.role.attribute = attribute role { text } - db.methodsynopsis.attlist = - db.methodsynopsis.role.attribute? + db.confsponsor.attlist = + db.confsponsor.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.language.attribute? - db.methodsynopsis = - element methodsynopsis { - db.methodsynopsis.attlist, - db.modifier*, - (db.type | db.void)?, - db.methodname, - (db.methodparam+ | db.void), - db.exceptionname*, - db.modifier* + db.confsponsor = + element confsponsor { + db.confsponsor.attlist, + db._text } } # ====================================================================== [ - db:refname [ "methodname" ] - db:refpurpose [ "The name of a method" ] + db:refname [ "contractnum" ] + db:refpurpose [ "The contract number of a document" ] ] div { - db.methodname.role.attribute = attribute role { text } + db.contractnum.role.attribute = attribute role { text } - db.methodname.attlist = - db.methodname.role.attribute? + db.contractnum.attlist = + db.contractnum.role.attribute? & db.common.attributes & db.common.linking.attributes - db.methodname = - element methodname { - db.methodname.attlist, + db.contractnum = + element contractnum { + db.contractnum.attlist, db._text } } @@ -3607,1745 +3275,66 @@ div { # ====================================================================== [ - db:refname [ "methodparam" ] - db:refpurpose [ "Parameters to a method" ] + db:refname [ "contractsponsor" ] + db:refpurpose [ "The sponsor of a contract" ] ] div { - db.methodparam.role.attribute = attribute role { text } - db.methodparam.rep.attribute = db.rep.attribute - db.methodparam.choice.attribute = db.choice.req.attribute + db.contractsponsor.role.attribute = attribute role { text } - db.methodparam.attlist = - db.methodparam.role.attribute? + db.contractsponsor.attlist = + db.contractsponsor.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.methodparam.rep.attribute? - & db.methodparam.choice.attribute? - db.methodparam = - element methodparam { - db.methodparam.attlist, - db.modifier*, - db.type?, - ((db.modifier*, db.parameter, db.initializer?) - | db.funcparams), - db.modifier* + db.contractsponsor = + element contractsponsor { + db.contractsponsor.attlist, + db._text } } # ====================================================================== [ - db:refname [ "address" ] - db:refpurpose [ "A real-world address, generally a postal address" ] + db:refname [ "copyright" ] + db:refpurpose [ "Copyright information about a document" ] ] div { - db.address.role.attribute = attribute role { text } + db.copyright.role.attribute = attribute role { text } - db.address.attlist = - db.address.role.attribute? + db.copyright.attlist = + db.copyright.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.verbatim.attributes - db.address = - element address { - db.address.attlist, - (db._text - | db.personname - | db.pob - | db.street - | db.city - | db.state - | db.postcode - | db.country - | db.phone - | db.fax - | db.email - | db.uri - | db.otheraddr)* - } -} - -# ====================================================================== - -[ - db:refname [ "street" ] - db:refpurpose [ "A street address in an address" ] -] -div { - - db.street.role.attribute = attribute role { text } - - db.street.attlist = - db.street.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.street = - element street { - db.street.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "pob" ] - db:refpurpose [ "A post office box in an address" ] -] -div { - - db.pob.role.attribute = attribute role { text } - - db.pob.attlist = - db.pob.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.pob = - element pob { - db.pob.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "postcode" ] - db:refpurpose [ "A postal code in an address" ] -] -div { - - db.postcode.role.attribute = attribute role { text } - - db.postcode.attlist = - db.postcode.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.postcode = - element postcode { - db.postcode.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "city" ] - db:refpurpose [ "The name of a city in an address" ] -] -div { - - db.city.role.attribute = attribute role { text } - - db.city.attlist = - db.city.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.city = - element city { - db.city.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "state" ] - db:refpurpose [ "A state or province in an address" ] -] -div { - - db.state.role.attribute = attribute role { text } - - db.state.attlist = - db.state.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.state = - element state { - db.state.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "country" ] - db:refpurpose [ "The name of a country" ] -] -div { - - db.country.role.attribute = attribute role { text } - - db.country.attlist = - db.country.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.country = - element country { - db.country.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "phone" ] - db:refpurpose [ "A telephone number" ] -] -div { - - db.phone.role.attribute = attribute role { text } - - db.phone.attlist = - db.phone.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.phone = - element phone { - db.phone.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "fax" ] - db:refpurpose [ "A fax number" ] -] -div { - - db.fax.role.attribute = attribute role { text } - - db.fax.attlist = - db.fax.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.fax = - element fax { - db.fax.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "otheraddr" ] - db:refpurpose [ "Uncategorized information in address" ] -] -div { - - db.otheraddr.role.attribute = attribute role { text } - - db.otheraddr.attlist = - db.otheraddr.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.otheraddr = - element otheraddr { - db.otheraddr.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "affiliation" ] - db:refpurpose [ "The institutional affiliation of an individual" ] -] -div { - - db.affiliation.role.attribute = attribute role { text } - - db.affiliation.attlist = - db.affiliation.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.affiliation = - element affiliation { - db.affiliation.attlist, - db.shortaffil?, - db.jobtitle*, - (db.org? | (db.orgname?, db.orgdiv*, db.address*)) - } -} - -# ====================================================================== - -[ - db:refname [ "shortaffil" ] - db:refpurpose [ "A brief description of an affiliation" ] -] -div { - - db.shortaffil.role.attribute = attribute role { text } - - db.shortaffil.attlist = - db.shortaffil.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.shortaffil = - element shortaffil { - db.shortaffil.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "jobtitle" ] - db:refpurpose [ "The title of an individual in an organization" ] -] -div { - - db.jobtitle.role.attribute = attribute role { text } - - db.jobtitle.attlist = - db.jobtitle.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.jobtitle = - element jobtitle { - db.jobtitle.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "orgname" ] - db:refpurpose [ "The name of an organization other than a corporation " ] -] -div { - - ctrl:other-attribute [ name="db.orgname.class.attrib" - enum-name="db.orgname.class-enum.attribute" - other-name="db.orgname.class-other.attributes" ] - - db.orgname.class.enumeration = - ## A consortium - "consortium" - | ## A corporation - "corporation" - | ## An informal organization - "informal" - | ## A non-profit organization - "nonprofit" - - db.orgname.class-enum.attribute = - [ - db:refpurpose [ "Specifies the nature of the organization" ] - ] - attribute class { db.orgname.class.enumeration } - - db.orgname.class-other.attributes = - [ - db:refpurpose [ "Specifies the nature of the organization" ] - ] - attribute class { - ## Indicates a non-standard organization class - "other" - }, - [ - db:refpurpose [ "Identifies the non-standard nature of the organization" ] - ] - attribute otherclass { text } - - db.orgname.class.attribute = - (db.orgname.class-enum.attribute | db.orgname.class-other.attributes) - - db.orgname.role.attribute = attribute role { text } - - db.orgname.attlist = - db.orgname.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.orgname.class.attribute? - - db.orgname = - element orgname { - db.orgname.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "orgdiv" ] - db:refpurpose [ "A division of an organization" ] -] -div { - - db.orgdiv.role.attribute = attribute role { text } - - db.orgdiv.attlist = - db.orgdiv.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.orgdiv = - element orgdiv { - db.orgdiv.attlist, - db.all.inlines* - } -} - -# ====================================================================== - -[ - db:refname [ "artpagenums" ] - db:refpurpose [ "The page numbers of an article as published" ] -] -div { - - db.artpagenums.role.attribute = attribute role { text } - - db.artpagenums.attlist = - db.artpagenums.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.artpagenums = - element artpagenums { - db.artpagenums.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "personname" ] - db:refpurpose [ "The personal name of an individual" ] -] -div { - - db.personname.role.attribute = attribute role { text } - - db.personname.attlist = - db.personname.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.personname = - element personname { - db.personname.attlist, - (db._text - | (db.honorific - | db.firstname - | db.surname - | db.lineage - | db.othername)+) - } -} - -# ====================================================================== - -db.person.author.contentmodel = - db.personname, - (db.personblurb - | db.affiliation - | db.email - | db.uri - | db.address - | db.contrib)* - -db.org.author.contentmodel = - db.orgname, - (db.orgdiv - | db.affiliation - | db.email - | db.uri - | db.address - | db.contrib)* - -db.credit.contentmodel = db.person.author.contentmodel | db.org.author.contentmodel - -# ====================================================================== - -[ - db:refname [ "author" ] - db:refpurpose [ "The name of an individual author" ] -] -div { - - db.author.role.attribute = attribute role { text } - - db.author.attlist = - db.author.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.author = - element author { - db.author.attlist, - db.credit.contentmodel - } -} - -# ====================================================================== - -[ - db:refname [ "authorgroup" ] - db:refpurpose [ "Wrapper for author information when a document has multiple authors or collabarators" ] -] -div { - - db.authorgroup.role.attribute = attribute role { text } - - db.authorgroup.attlist = - db.authorgroup.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.authorgroup = - element authorgroup { - db.authorgroup.attlist, - (db.author | db.editor | db.othercredit)+ - } -} - -# ====================================================================== - -[ - db:refname [ "collab" ] - db:refpurpose [ "Identifies a collaborator" ] -] -div { - - db.collab.role.attribute = attribute role { text } - - db.collab.attlist = - db.collab.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.collab = - element collab { - db.collab.attlist, - (db.person | db.personname | db.org | db.orgname)+, - db.affiliation* - } -} - -# ====================================================================== - -[ - db:refname [ "authorinitials" ] - db:refpurpose [ "The initials or other short identifier for an author" ] -] -div { - - db.authorinitials.role.attribute = attribute role { text } - - db.authorinitials.attlist = - db.authorinitials.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.authorinitials = - element authorinitials { - db.authorinitials.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "person" ] - db:refpurpose [ "A person and associated metadata" ] -] -div { - - db.person.role.attribute = attribute role { text } - - db.person.attlist = - db.person.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.person = - element person { - db.person.attlist, - db.personname, - (db.address|db.affiliation|db.email|db.uri|db.personblurb)* - } -} - -# ====================================================================== - -[ - db:refname [ "org" ] - db:refpurpose [ "An organization and associated metadata" ] -] -div { - - db.org.role.attribute = attribute role { text } - - db.org.attlist = - db.org.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.org = - element org { - db.org.attlist, - db.orgname, - (db.address|db.affiliation|db.email|db.uri|db.orgdiv)* - } -} - -# ====================================================================== - -[ - db:refname [ "confgroup" ] - db:refpurpose [ "A wrapper for document meta-information about a conference" ] -] -div { - - db.confgroup.role.attribute = attribute role { text } - - db.confgroup.attlist = - db.confgroup.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.confgroup = - element confgroup { - db.confgroup.attlist, - (db.confdates - | db.conftitle - | db.confnum - | db.confsponsor - | db.address)* - } -} - -# ====================================================================== - -[ - db:refname [ "confdates" ] - db:refpurpose [ "The dates of a conference for which a document was written" ] -] -div { - - db.confdates.role.attribute = attribute role { text } - - db.confdates.attlist = - db.confdates.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.confdates = - element confdates { - db.confdates.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "conftitle" ] - db:refpurpose [ "The title of a conference for which a document was written" ] -] -div { - - db.conftitle.role.attribute = attribute role { text } - - db.conftitle.attlist = - db.conftitle.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.conftitle = - element conftitle { - db.conftitle.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "confnum" ] - db:refpurpose [ "An identifier, frequently numerical, associated with a conference for which a document was written" ] -] -div { - - db.confnum.role.attribute = attribute role { text } - - db.confnum.attlist = - db.confnum.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.confnum = - element confnum { - db.confnum.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "confsponsor" ] - db:refpurpose [ "The sponsor of a conference for which a document was written" ] -] -div { - - db.confsponsor.role.attribute = attribute role { text } - - db.confsponsor.attlist = - db.confsponsor.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.confsponsor = - element confsponsor { - db.confsponsor.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "contractnum" ] - db:refpurpose [ "The contract number of a document" ] -] -div { - - db.contractnum.role.attribute = attribute role { text } - - db.contractnum.attlist = - db.contractnum.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.contractnum = - element contractnum { - db.contractnum.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "contractsponsor" ] - db:refpurpose [ "The sponsor of a contract" ] -] -div { - - db.contractsponsor.role.attribute = attribute role { text } - - db.contractsponsor.attlist = - db.contractsponsor.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.contractsponsor = - element contractsponsor { - db.contractsponsor.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "copyright" ] - db:refpurpose [ "Copyright information about a document" ] -] -div { - - db.copyright.role.attribute = attribute role { text } - - db.copyright.attlist = - db.copyright.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.copyright = - element copyright { - db.copyright.attlist, - db.year+, - db.holder* - } -} - -# ====================================================================== - -[ - db:refname [ "year" ] - db:refpurpose [ "The year of publication of a document" ] -] -div { - - db.year.role.attribute = attribute role { text } - - db.year.attlist = - db.year.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.year = - element year { - db.year.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "holder" ] - db:refpurpose [ "The name of the individual or organization that holds a copyright" ] -] -div { - - db.holder.role.attribute = attribute role { text } - - db.holder.attlist = - db.holder.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.holder = - element holder { - db.holder.attlist, - db._text - } -} - -# ====================================================================== - -db.cover.contentmodel = - (db.para.blocks - | db.extension.blocks - | db.list.blocks - | db.informal.blocks - | db.publishing.blocks - | db.graphic.blocks - | db.technical.blocks - | db.verbatim.blocks - | db.bridgehead - | db.synopsis.blocks - | db.remark - | db.revhistory)+ - -[ - db:refname [ "cover" ] - db:refpurpose [ "Additional content for the cover of a publication" ] -] -div { - - db.cover.role.attribute = attribute role { text } - - db.cover.attlist = - db.cover.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.cover = - element cover { - db.cover.attlist, - db.cover.contentmodel - } -} - -# ====================================================================== - -db.date.contentmodel = (xsd:date|xsd:dateTime|xsd:gYearMonth|xsd:gYear|text) - -# ====================================================================== - -[ - db:refname [ "date" ] - db:refpurpose [ "The date of publication or revision of a document" ] -] -div { - - db.date.role.attribute = attribute role { text } - - db.date.attlist = - db.date.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.date = - element date { - db.date.attlist, - db.date.contentmodel - } -} - -# ====================================================================== - -[ - db:refname [ "edition" ] - db:refpurpose [ "The name or number of an edition of a document" ] -] -div { - - db.edition.role.attribute = attribute role { text } - - db.edition.attlist = - db.edition.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.edition = - element edition { - db.edition.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "editor" ] - db:refpurpose [ "The name of the editor of a document" ] -] -div { - - db.editor.role.attribute = attribute role { text } - - db.editor.attlist = - db.editor.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.editor = - element editor { - db.editor.attlist, - db.credit.contentmodel - } -} - -# ====================================================================== - -[ - db:refname [ "biblioid" ] - db:refpurpose [ "An identifier for a document" ] -] -div { - - db.biblioid.role.attribute = attribute role { text } - - db.biblioid.attlist = - db.biblioid.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.biblio.class.attribute - - db.biblioid = - element biblioid { - db.biblioid.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "citebiblioid" ] - db:refpurpose [ "A citation of a bibliographic identifier" ] -] -div { - - db.citebiblioid.role.attribute = attribute role { text } - - db.citebiblioid.attlist = - db.citebiblioid.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.biblio.class.attribute - - db.citebiblioid = - element citebiblioid { - db.citebiblioid.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "bibliosource" ] - db:refpurpose [ "The source of a document" ] -] -div { - - db.bibliosource.role.attribute = attribute role { text } - - db.bibliosource.attlist = - db.bibliosource.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.biblio.class.attribute - - db.bibliosource = - element bibliosource { - db.bibliosource.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "bibliorelation" ] - db:refpurpose [ "The relationship of a document to another" ] -] -div { - - ctrl:other-attribute [ name="db.bibliorelation.type.attrib" - enum-name="db.bibliorelation.type-enum.attribute" - other-name="db.bibliorelation.type-other.attributes" ] - - db.bibliorelation.type.enumeration = - ## The described resource pre-existed the referenced resource, which is essentially the same intellectual content presented in another format - "hasformat" - | ## The described resource includes the referenced resource either physically or logically - "haspart" - | ## The described resource has a version, edition, or adaptation, namely, the referenced resource - "hasversion" - | ## The described resource is the same intellectual content of the referenced resource, but presented in another format - "isformatof" - | ## The described resource is a physical or logical part of the referenced resource - "ispartof" - | ## The described resource is referenced, cited, or otherwise pointed to by the referenced resource - "isreferencedby" - | ## The described resource is supplanted, displaced, or superceded by the referenced resource - "isreplacedby" - | ## The described resource is required by the referenced resource, either physically or logically - "isrequiredby" - | ## The described resource is a version, edition, or adaptation of the referenced resource; changes in version imply substantive changes in content rather than differences in format - "isversionof" - | ## The described resource references, cites, or otherwise points to the referenced resource - "references" - | ## The described resource supplants, displaces, or supersedes the referenced resource - "replaces" - | ## The described resource requires the referenced resource to support its function, delivery, or coherence of content - "requires" - - db.bibliorelation.type-enum.attribute = - [ - db:refpurpose [ "Identifies the type of relationship" ] - ] - attribute type { db.bibliorelation.type.enumeration }? - - db.bibliorelation.type-other.attributes = - [ - db:refpurpose [ "Identifies the type of relationship" ] - ] - attribute type { - ## The described resource has a non-standard relationship with the referenced resource - "othertype" - }?, - [ - db:refpurpose [ "A keyword that identififes the type of the non-standard relationship" ] - ] - attribute othertype { xsd:NMTOKEN } - - db.bibliorelation.type.attribute = - (db.bibliorelation.type-enum.attribute | db.bibliorelation.type-other.attributes) - - db.bibliorelation.role.attribute = attribute role { text } - - db.bibliorelation.attlist = - db.bibliorelation.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.biblio.class.attribute - & db.bibliorelation.type.attribute - - db.bibliorelation = - element bibliorelation { - db.bibliorelation.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "bibliocoverage" ] - db:refpurpose [ "The spatial or temporal coverage of a document" ] -] -div { - - ctrl:other-attribute [ name="db.bibliocoverage.spatial.attrib" - enum-name="db.bibliocoverage.spatial-enum.attribute" - other-name="db.bibliocoverage.spatial-other.attributes" ] - - db.bibliocoverage.spacial.enumeration = - ## The DCMI Point identifies a point in space using its geographic coordinates - "dcmipoint" - | ## ISO 3166 Codes for the representation of names of countries - "iso3166" - | ## The DCMI Box identifies a region of space using its geographic limits - "dcmibox" - | ## The Getty Thesaurus of Geographic Names - "tgn" - - db.bibliocoverage.spatial-enum.attribute = - [ - db:refpurpose [ "Specifies the type of spatial coverage" ] - ] - attribute spatial { db.bibliocoverage.spacial.enumeration }? - - db.bibliocoverage.spatial-other.attributes = - [ - db:refpurpose [ "Specifies the type of spatial coverage" ] - ] - attribute spatial { - ## Identifies a non-standard type of coverage - "otherspatial" - }?, - [ - db:refpurpose [ "A keyword that identifies the type of non-standard coverage" ] - ] - attribute otherspatial { xsd:NMTOKEN } - - db.bibliocoverage.spatial.attribute = - (db.bibliocoverage.spatial-enum.attribute - | db.bibliocoverage.spatial-other.attributes) - - ctrl:other-attribute [ name="db.bibliocoverage.temporal.attrib" - enum-name="db.bibliocoverage.temporal-enum.attribute" - other-name="db.bibliocoverage.temporal-other.attributes" ] - - db.bibliocoverage.temporal.enumeration = - ## A specification of the limits of a time interval - "dcmiperiod" - | ## W3C Encoding rules for dates and times—a profile based on ISO 8601 - "w3c-dtf" - - db.bibliocoverage.temporal-enum.attribute = - [ - db:refpurpose [ "Specifies the type of temporal coverage" ] - ] - attribute temporal { db.bibliocoverage.temporal.enumeration }? - - db.bibliocoverage.temporal-other.attributes = - [ - db:refpurpose [ "Specifies the type of temporal coverage" ] - ] - attribute temporal { - ## Specifies a non-standard type of coverage - "othertemporal" - }?, - [ - db:refpurpose [ "A keyword that identifies the type of non-standard coverage" ] - ] - attribute othertemporal { xsd:NMTOKEN } - - db.bibliocoverage.temporal.attribute = - (db.bibliocoverage.temporal-enum.attribute - | db.bibliocoverage.temporal-other.attributes) - - db.bibliocoverage.coverage.attrib = - db.bibliocoverage.spatial.attribute & db.bibliocoverage.temporal.attribute - - db.bibliocoverage.role.attribute = attribute role { text } - - db.bibliocoverage.attlist = - db.bibliocoverage.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.bibliocoverage.coverage.attrib - - db.bibliocoverage = - element bibliocoverage { - db.bibliocoverage.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "legalnotice" ] - db:refpurpose [ "A statement of legal obligations or requirements" ] -] -div { - - db.legalnotice.role.attribute = attribute role { text } - - db.legalnotice.attlist = - db.legalnotice.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.legalnotice.info = db._info.title.only - - db.legalnotice = - element legalnotice { - db.legalnotice.attlist, - db.legalnotice.info, - db.all.blocks+ - } -} - -# ====================================================================== - -[ - db:refname [ "othercredit" ] - db:refpurpose [ "A person or entity, other than an author or editor, credited in a document" ] -] -div { - - ctrl:other-attribute [ name="db.othercredit.class.attribute" - enum-name="db.othercredit.class-enum.attribute" - other-name="db.othercredit.class-other.attributes" ] - - db.othercredit.class.enumeration = - ## A copy editor - "copyeditor" - | ## A graphic designer - "graphicdesigner" - | ## Some other contributor - "other" - | ## A production editor - "productioneditor" - | ## A technical editor - "technicaleditor" - | ## A translator - "translator" - - db.othercredit.class-enum.attribute = - [ - db:refpurpose [ "Identifies the nature of the contributor" ] - ] - attribute class { db.othercredit.class.enumeration } ? - - db.othercredit.class-other.attribute = - [ - db:refpurpose [ "Identifies the nature of the non-standard contribution" ] - ] - attribute otherclass { xsd:NMTOKEN } - - db.othercredit.class-other.attributes = - [ - db:refpurpose [ "Identifies the nature of the contributor" ] - ] - attribute class { - ## Identifies a non-standard contribution - "other" - } - & db.othercredit.class-other.attribute - - db.othercredit.class.attribute = - (db.othercredit.class-enum.attribute - | db.othercredit.class-other.attributes) - - db.othercredit.role.attribute = attribute role { text } - - db.othercredit.attlist = - db.othercredit.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.othercredit.class.attribute - - db.othercredit = - element othercredit { - db.othercredit.attlist, - db.credit.contentmodel - } -} - -# ====================================================================== - -[ - db:refname [ "pagenums" ] - db:refpurpose [ "The numbers of the pages in a book, for use in a bibliographic entry" ] -] -div { - - db.pagenums.role.attribute = attribute role { text } - - db.pagenums.attlist = - db.pagenums.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.pagenums = - element pagenums { - db.pagenums.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "contrib" ] - db:refpurpose [ "A summary of the contributions made to a document by a credited source" ] -] -div { - - db.contrib.role.attribute = attribute role { text } - - db.contrib.attlist = - db.contrib.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.contrib = - element contrib { - db.contrib.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "honorific" ] - db:refpurpose [ "The title of a person" ] -] -div { - - db.honorific.role.attribute = attribute role { text } - - db.honorific.attlist = - db.honorific.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.honorific = - element honorific { - db.honorific.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "firstname" ] - db:refpurpose [ "The first name of a person" ] -] -div { - - db.firstname.role.attribute = attribute role { text } - - db.firstname.attlist = - db.firstname.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.firstname = - element firstname { - db.firstname.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "surname" ] - db:refpurpose [ "A family name; in western cultures the last name" ] -] -div { - - db.surname.role.attribute = attribute role { text } - - db.surname.attlist = - db.surname.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.surname = - element surname { - db.surname.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "lineage" ] - db:refpurpose [ "The portion of a person's name indicating a relationship to ancestors" ] -] -div { - - db.lineage.role.attribute = attribute role { text } - - db.lineage.attlist = - db.lineage.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.lineage = - element lineage { - db.lineage.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "othername" ] - db:refpurpose [ "A component of a persons name that is not a first name, surname, or lineage" ] -] -div { - - db.othername.role.attribute = attribute role { text } - - db.othername.attlist = - db.othername.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.othername = - element othername { - db.othername.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "printhistory" ] - db:refpurpose [ "The printing history of a document" ] -] -div { - - db.printhistory.role.attribute = attribute role { text } - - db.printhistory.attlist = - db.printhistory.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.printhistory = - element printhistory { - db.printhistory.attlist, - db.para.blocks+ - } -} - -# ====================================================================== - -[ - db:refname [ "productname" ] - db:refpurpose [ "The formal name of a product" ] -] -div { - - db.productname.role.attribute = attribute role { text } - - db.productname.class.enumeration = - ## A name with a copyright - "copyright" - | ## A name with a registered copyright - "registered" - | ## A name of a service - "service" - | ## A name which is trademarked - "trade" - - db.productname.class.attribute = - [ - db:refpurpose [ "Specifies the class of product name" ] - ] - attribute class { db.productname.class.enumeration } - - db.productname.attlist = - db.productname.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.productname.class.attribute? - - db.productname = - element productname { - db.productname.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "productnumber" ] - db:refpurpose [ "A number assigned to a product" ] -] -div { - - db.productnumber.role.attribute = attribute role { text } - - db.productnumber.attlist = - db.productnumber.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.productnumber = - element productnumber { - db.productnumber.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "pubdate" ] - db:refpurpose [ "The date of publication of a document" ] -] -div { - - db.pubdate.role.attribute = attribute role { text } - - db.pubdate.attlist = - db.pubdate.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.pubdate = - element pubdate { - db.pubdate.attlist, - db.date.contentmodel - } -} - -# ====================================================================== - -[ - db:refname [ "publisher" ] - db:refpurpose [ "The publisher of a document" ] -] -div { - - db.publisher.role.attribute = attribute role { text } - - db.publisher.attlist = - db.publisher.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.publisher = - element publisher { - db.publisher.attlist, - db.publishername, - db.address* - } -} - -# ====================================================================== - -[ - db:refname [ "publishername" ] - db:refpurpose [ "The name of the publisher of a document" ] -] -div { - - db.publishername.role.attribute = attribute role { text } - - db.publishername.attlist = - db.publishername.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.publishername = - element publishername { - db.publishername.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "releaseinfo" ] - db:refpurpose [ "Information about a particular release of a document" ] -] -div { - - db.releaseinfo.role.attribute = attribute role { text } - - db.releaseinfo.attlist = - db.releaseinfo.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.releaseinfo = - element releaseinfo { - db.releaseinfo.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "revhistory" ] - db:refpurpose [ "A history of the revisions to a document" ] -] -div { - - db.revhistory.role.attribute = attribute role { text } - - db.revhistory.attlist = - db.revhistory.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.revhistory.info = db._info.title.only - - db.revhistory = - element revhistory { - db.revhistory.attlist, - db.revhistory.info, - db.revision+ - } -} - -# ====================================================================== - -[ - db:refname [ "revision" ] - db:refpurpose [ "An entry describing a single revision in the history of the revisions to a document" ] -] -div { - - db.revision.role.attribute = attribute role { text } - - db.revision.attlist = - db.revision.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.revision = - element revision { - db.revision.attlist, - db.revnumber?, - db.date, - (db.authorinitials | db.author)*, - (db.revremark | db.revdescription)? - } -} - -# ====================================================================== - -[ - db:refname [ "revnumber" ] - db:refpurpose [ "A document revision number" ] -] -div { - - db.revnumber.role.attribute = attribute role { text } - - db.revnumber.attlist = - db.revnumber.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.revnumber = - element revnumber { - db.revnumber.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "revremark" ] - db:refpurpose [ "A description of a revision to a document" ] -] -div { - - db.revremark.role.attribute = attribute role { text } - - db.revremark.attlist = - db.revremark.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.revremark = - element revremark { - db.revremark.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "revdescription" ] - db:refpurpose [ "A extended description of a revision to a document" ] -] -div { - - db.revdescription.role.attribute = attribute role { text } - - db.revdescription.attlist = - db.revdescription.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.revdescription = - element revdescription { - db.revdescription.attlist, - db.all.blocks* + db.copyright = + element copyright { + db.copyright.attlist, + db.year+, + db.holder* } } # ====================================================================== [ - db:refname [ "seriesvolnums" ] - db:refpurpose [ "Numbers of the volumes in a series of books" ] + db:refname [ "year" ] + db:refpurpose [ "The year of publication of a document" ] ] div { - db.seriesvolnums.role.attribute = attribute role { text } + db.year.role.attribute = attribute role { text } - db.seriesvolnums.attlist = - db.seriesvolnums.role.attribute? + db.year.attlist = + db.year.role.attribute? & db.common.attributes & db.common.linking.attributes - db.seriesvolnums = - element seriesvolnums { - db.seriesvolnums.attlist, + db.year = + element year { + db.year.attlist, db._text } } @@ -5353,122 +3342,104 @@ div { # ====================================================================== [ - db:refname [ "volumenum" ] - db:refpurpose [ "The volume number of a document in a set (as of books in a set or articles in a journal)" ] + db:refname [ "holder" ] + db:refpurpose [ "The name of the individual or organization that holds a copyright" ] ] div { - db.volumenum.role.attribute = attribute role { text } + db.holder.role.attribute = attribute role { text } - db.volumenum.attlist = - db.volumenum.role.attribute? + db.holder.attlist = + db.holder.role.attribute? & db.common.attributes & db.common.linking.attributes - db.volumenum = - element volumenum { - db.volumenum.attlist, + db.holder = + element holder { + db.holder.attlist, db._text } } # ====================================================================== +db.cover.contentmodel = + db.para.blocks + | db.extension.blocks + | db.list.blocks + | db.informal.blocks + | db.publishing.blocks + | db.graphic.blocks + | db.technical.blocks + | db.verbatim.blocks + | db.bridgehead + | db.remark + | db.revhistory + [ - db:refname [ "issuenum" ] - db:refpurpose [ "The number of an issue of a journal" ] + db:refname [ "cover" ] + db:refpurpose [ "Additional content for the cover of a publication" ] ] div { - db.issuenum.role.attribute = attribute role { text } + db.cover.role.attribute = attribute role { text } - db.issuenum.attlist = - db.issuenum.role.attribute? + db.cover.attlist = + db.cover.role.attribute? & db.common.attributes & db.common.linking.attributes - db.issuenum = - element issuenum { - db.issuenum.attlist, - db._text + db.cover = + element cover { + db.cover.attlist, + (db.cover.contentmodel)+ } } # ====================================================================== -[ - db:refname [ "accel" ] - db:refpurpose [ "A graphical user interface (GUI) keyboard shortcut" ] -] -div { - - db.accel.role.attribute = attribute role { text } - - db.accel.attlist = - db.accel.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.accel = - element accel { - db.accel.attlist, - db._text - } -} +db.date.contentmodel = (xsd:date|xsd:dateTime|xsd:gYearMonth|xsd:gYear|text) # ====================================================================== [ - db:refname [ "application" ] - db:refpurpose [ "The name of a software program" ] + db:refname [ "date" ] + db:refpurpose [ "The date of publication or revision of a document" ] ] div { - db.application.class.enumeration = - ## A hardware application - "hardware" - | ## A software application - "software" - - db.application.class.attribute = - [ - db:refpurpose [ "Identifies the class of application" ] - ] - attribute class { db.application.class.enumeration } - - db.application.role.attribute = attribute role { text } + db.date.role.attribute = attribute role { text } - db.application.attlist = - db.application.role.attribute? + db.date.attlist = + db.date.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.application.class.attribute? - db.application = - element application { - db.application.attlist, - db._text + db.date = + element date { + db.date.attlist, + db.date.contentmodel } } # ====================================================================== [ - db:refname [ "package" ] - db:refpurpose [ "A software or application package" ] + db:refname [ "edition" ] + db:refpurpose [ "The name or number of an edition of a document" ] ] div { - db.package.role.attribute = attribute role { text } + db.edition.role.attribute = attribute role { text } - db.package.attlist = - db.package.role.attribute? + db.edition.attlist = + db.edition.role.attribute? & db.common.attributes & db.common.linking.attributes - db.package = - element package { - db.package.attlist, + db.edition = + element edition { + db.edition.attlist, db._text } } @@ -5476,141 +3447,90 @@ div { # ====================================================================== [ - db:refname [ "classname" ] - db:refpurpose [ "The name of a class, in the object-oriented programming sense" ] + db:refname [ "editor" ] + db:refpurpose [ "The name of the editor of a document" ] ] div { - db.classname.role.attribute = attribute role { text } + db.editor.role.attribute = attribute role { text } - db.classname.attlist = - db.classname.role.attribute? + db.editor.attlist = + db.editor.role.attribute? & db.common.attributes & db.common.linking.attributes - db.classname = - element classname { - db.classname.attlist, - db._text + db.editor = + element editor { + db.editor.attlist, + db.credit.contentmodel } } # ====================================================================== [ - db:refname [ "command" ] - db:refpurpose [ "The name of an executable program or other software command" ] + db:refname [ "biblioid" ] + db:refpurpose [ "An identifier for a document" ] ] div { - db.command.role.attribute = attribute role { text } + db.biblioid.role.attribute = attribute role { text } - db.command.attlist = - db.command.role.attribute? + db.biblioid.attlist = + db.biblioid.role.attribute? & db.common.attributes & db.common.linking.attributes + & db.biblio.class.attribute - db.command = - element command { - db.command.attlist, + db.biblioid = + element biblioid { + db.biblioid.attlist, db._text } } # ====================================================================== -db.computeroutput.inlines = - text - | db.ubiq.inlines - | db.os.inlines - | db.technical.inlines - | db.markup.inlines - -# ====================================================================== - [ - db:refname [ "computeroutput" ] - db:refpurpose [ "Data, generally text, displayed or presented by a computer" ] + db:refname [ "citebiblioid" ] + db:refpurpose [ "A citation of a bibliographic identifier" ] ] div { - db.computeroutput.role.attribute = attribute role { text } + db.citebiblioid.role.attribute = attribute role { text } - db.computeroutput.attlist = - db.computeroutput.role.attribute? + db.citebiblioid.attlist = + db.citebiblioid.role.attribute? & db.common.attributes & db.common.linking.attributes + & db.biblio.class.attribute - db.computeroutput = - element computeroutput { - db.computeroutput.attlist, - db.computeroutput.inlines* + db.citebiblioid = + element citebiblioid { + db.citebiblioid.attlist, + db._text } } # ====================================================================== [ - db:refname [ "database" ] - db:refpurpose [ "The name of a database, or part of a database" ] + db:refname [ "bibliosource" ] + db:refpurpose [ "The source of a document" ] ] div { - db.database.class.enumeration = - ## An alternate or secondary key - "altkey" - | ## A constraint - "constraint" - | ## A data type - "datatype" - | ## A field - "field" - | ## A foreign key - "foreignkey" - | ## A group - "group" - | ## An index - "index" - | ## The first or primary key - "key1" - | ## An alternate or secondary key - "key2" - | ## A name - "name" - | ## The primary key - "primarykey" - | ## A (stored) procedure - "procedure" - | ## A record - "record" - | ## A rule - "rule" - | ## The secondary key - "secondarykey" - | ## A table - "table" - | ## A user - "user" - | ## A view - "view" - - db.database.class.attribute = - [ - db:refpurpose [ "Identifies the class of database artifact" ] - ] - attribute class { db.database.class.enumeration } - - db.database.role.attribute = attribute role { text } + db.bibliosource.role.attribute = attribute role { text } - db.database.attlist = - db.database.role.attribute? + db.bibliosource.attlist = + db.bibliosource.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.database.class.attribute? + & db.biblio.class.attribute - db.database = - element database { - db.database.attlist, + db.bibliosource = + element bibliosource { + db.bibliosource.attlist, db._text } } @@ -5618,43 +3538,75 @@ div { # ====================================================================== [ - db:refname [ "email" ] - db:refpurpose [ "An email address" ] + db:refname [ "bibliorelation" ] + db:refpurpose [ "The relationship of a document to another" ] ] div { - db.email.role.attribute = attribute role { text } + ctrl:other-attribute [ name="db.bibliorelation.type.attrib" + enum-name="db.bibliorelation.type-enum.attribute" + other-name="db.bibliorelation.type-other.attributes" ] - db.email.attlist = - db.email.role.attribute? - & db.common.attributes - & db.common.linking.attributes + db.bibliorelation.type.enumeration = + ## The described resource pre-existed the referenced resource, which is essentially the same intellectual content presented in another format + "hasformat" + | ## The described resource includes the referenced resource either physically or logically + "haspart" + | ## The described resource has a version, edition, or adaptation, namely, the referenced resource + "hasversion" + | ## The described resource is the same intellectual content of the referenced resource, but presented in another format + "isformatof" + | ## The described resource is a physical or logical part of the referenced resource + "ispartof" + | ## The described resource is referenced, cited, or otherwise pointed to by the referenced resource + "isreferencedby" + | ## The described resource is supplanted, displaced, or superceded by the referenced resource + "isreplacedby" + | ## The described resource is required by the referenced resource, either physically or logically + "isrequiredby" + | ## The described resource is a version, edition, or adaptation of the referenced resource; changes in version imply substantive changes in content rather than differences in format + "isversionof" + | ## The described resource references, cites, or otherwise points to the referenced resource + "references" + | ## The described resource supplants, displaces, or supersedes the referenced resource + "replaces" + | ## The described resource requires the referenced resource to support its function, delivery, or coherence of content + "requires" - db.email = - element email { - db.email.attlist, - db._text - } -} + db.bibliorelation.type-enum.attribute = + [ + db:refpurpose [ "Identifies the type of relationship" ] + ] + attribute type { db.bibliorelation.type.enumeration }? -# ====================================================================== + db.bibliorelation.type-other.attributes = + [ + db:refpurpose [ "Identifies the type of relationship" ] + ] + attribute type { + ## The described resource has a non-standard relationship with the referenced resource + "othertype" + }?, + [ + db:refpurpose [ "A keyword that identififes the type of the non-standard relationship" ] + ] + attribute othertype { xsd:NMTOKEN } -[ - db:refname [ "envar" ] - db:refpurpose [ "A software environment variable" ] -] -div { + db.bibliorelation.type.attribute = + (db.bibliorelation.type-enum.attribute | db.bibliorelation.type-other.attributes) - db.envar.role.attribute = attribute role { text } + db.bibliorelation.role.attribute = attribute role { text } - db.envar.attlist = - db.envar.role.attribute? + db.bibliorelation.attlist = + db.bibliorelation.role.attribute? & db.common.attributes & db.common.linking.attributes + & db.biblio.class.attribute + & db.bibliorelation.type.attribute - db.envar = - element envar { - db.envar.attlist, + db.bibliorelation = + element bibliorelation { + db.bibliorelation.attlist, db._text } } @@ -5662,65 +3614,95 @@ div { # ====================================================================== [ - db:refname [ "errorcode" ] - db:refpurpose [ "An error code" ] + db:refname [ "bibliocoverage" ] + db:refpurpose [ "The spatial or temporal coverage of a document" ] ] div { - db.errorcode.role.attribute = attribute role { text } + ctrl:other-attribute [ name="db.bibliocoverage.spatial.attrib" + enum-name="db.bibliocoverage.spatial-enum.attribute" + other-name="db.bibliocoverage.spatial-other.attributes" ] - db.errorcode.attlist = - db.errorcode.role.attribute? - & db.common.attributes - & db.common.linking.attributes + db.bibliocoverage.spacial.enumeration = + ## The DCMI Point identifies a point in space using its geographic coordinates + "dcmipoint" + | ## ISO 3166 Codes for the representation of names of countries + "iso3166" + | ## The DCMI Box identifies a region of space using its geographic limits + "dcmibox" + | ## The Getty Thesaurus of Geographic Names + "tgn" - db.errorcode = - element errorcode { - db.errorcode.attlist, - db._text - } -} + db.bibliocoverage.spatial-enum.attribute = + [ + db:refpurpose [ "Specifies the type of spatial coverage" ] + ] + attribute spatial { db.bibliocoverage.spacial.enumeration }? + + db.bibliocoverage.spatial-other.attributes = + [ + db:refpurpose [ "Specifies the type of spatial coverage" ] + ] + attribute spatial { + ## Identifies a non-standard type of coverage + "otherspatial" + }?, + [ + db:refpurpose [ "A keyword that identifies the type of non-standard coverage" ] + ] + attribute otherspatial { xsd:NMTOKEN } -# ====================================================================== + db.bibliocoverage.spatial.attribute = + (db.bibliocoverage.spatial-enum.attribute + | db.bibliocoverage.spatial-other.attributes) -[ - db:refname [ "errorname" ] - db:refpurpose [ "An error name" ] -] -div { + ctrl:other-attribute [ name="db.bibliocoverage.temporal.attrib" + enum-name="db.bibliocoverage.temporal-enum.attribute" + other-name="db.bibliocoverage.temporal-other.attributes" ] - db.errorname.role.attribute = attribute role { text } + db.bibliocoverage.temporal.enumeration = + ## A specification of the limits of a time interval + "dcmiperiod" + | ## W3C Encoding rules for dates and times—a profile based on ISO 8601 + "w3c-dtf" - db.errorname.attlist = - db.errorname.role.attribute? - & db.common.attributes - & db.common.linking.attributes + db.bibliocoverage.temporal-enum.attribute = + [ + db:refpurpose [ "Specifies the type of temporal coverage" ] + ] + attribute temporal { db.bibliocoverage.temporal.enumeration }? - db.errorname = - element errorname { - db.errorname.attlist, - db._text - } -} + db.bibliocoverage.temporal-other.attributes = + [ + db:refpurpose [ "Specifies the type of temporal coverage" ] + ] + attribute temporal { + ## Specifies a non-standard type of coverage + "othertemporal" + }?, + [ + db:refpurpose [ "A keyword that identifies the type of non-standard coverage" ] + ] + attribute othertemporal { xsd:NMTOKEN } -# ====================================================================== + db.bibliocoverage.temporal.attribute = + (db.bibliocoverage.temporal-enum.attribute + | db.bibliocoverage.temporal-other.attributes) -[ - db:refname [ "errortext" ] - db:refpurpose [ "An error message." ] -] -div { + db.bibliocoverage.coverage.attrib = + db.bibliocoverage.spatial.attribute & db.bibliocoverage.temporal.attribute - db.errortext.role.attribute = attribute role { text } + db.bibliocoverage.role.attribute = attribute role { text } - db.errortext.attlist = - db.errortext.role.attribute? + db.bibliocoverage.attlist = + db.bibliocoverage.role.attribute? & db.common.attributes & db.common.linking.attributes + & db.bibliocoverage.coverage.attrib - db.errortext = - element errortext { - db.errortext.attlist, + db.bibliocoverage = + element bibliocoverage { + db.bibliocoverage.attlist, db._text } } @@ -5728,249 +3710,245 @@ div { # ====================================================================== [ - db:refname [ "errortype" ] - db:refpurpose [ "The classification of an error message" ] + db:refname [ "legalnotice" ] + db:refpurpose [ "A statement of legal obligations or requirements" ] ] div { - db.errortype.role.attribute = attribute role { text } + db.legalnotice.role.attribute = attribute role { text } - db.errortype.attlist = - db.errortype.role.attribute? + db.legalnotice.attlist = + db.legalnotice.role.attribute? & db.common.attributes & db.common.linking.attributes - db.errortype = - element errortype { - db.errortype.attlist, - db._text + db.legalnotice.info = db._info.title.only + + db.legalnotice = + element legalnotice { + db.legalnotice.attlist, + db.legalnotice.info, + db.all.blocks+ } } # ====================================================================== [ - db:refname [ "filename" ] - db:refpurpose [ "The name of a file" ] + db:refname [ "othercredit" ] + db:refpurpose [ "A person or entity, other than an author or editor, credited in a document" ] ] div { - db.filename.class.enumeration = - ## A device - "devicefile" - | ## A directory - "directory" - | ## A filename extension - "extension" - | ## A header file (as for a programming language) - "headerfile" - | ## A library file - "libraryfile" - | ## A partition (as of a hard disk) - "partition" - | ## A symbolic link - "symlink" + ctrl:other-attribute [ name="db.othercredit.class.attribute" + enum-name="db.othercredit.class-enum.attribute" + other-name="db.othercredit.class-other.attributes" ] + + db.othercredit.class.enumeration = + ## A copy editor + "copyeditor" + | ## A graphic designer + "graphicdesigner" + | ## Some other contributor + "other" + | ## A production editor + "productioneditor" + | ## A technical editor + "technicaleditor" + | ## A translator + "translator" - db.filename.class.attribute = + db.othercredit.class-enum.attribute = [ - db:refpurpose [ "Identifies the class of filename" ] + db:refpurpose [ "Identifies the nature of the contributor" ] ] - attribute class { db.filename.class.enumeration } + attribute class { db.othercredit.class.enumeration } ? - db.filename.path.attribute = + db.othercredit.class-other.attribute = [ - db:refpurpose [ "Specifies the path of the filename" ] + db:refpurpose [ "Identifies the nature of the non-standard contribution" ] ] - attribute path { text } - - db.filename.role.attribute = attribute role { text } - - db.filename.attlist = - db.filename.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.filename.path.attribute? - & db.filename.class.attribute? + attribute otherclass { xsd:NMTOKEN } - db.filename = - element filename { - db.filename.attlist, - db._text + db.othercredit.class-other.attributes = + [ + db:refpurpose [ "Identifies the nature of the contributor" ] + ] + attribute class { + ## Identifies a non-standard contribution + "other" } -} - -# ====================================================================== + & db.othercredit.class-other.attribute -[ - db:refname [ "function" ] - db:refpurpose [ "The name of a function or subroutine, as in a programming language" ] -] -div { + db.othercredit.class.attribute = + (db.othercredit.class-enum.attribute + | db.othercredit.class-other.attributes) - db.function.role.attribute = attribute role { text } + db.othercredit.role.attribute = attribute role { text } - db.function.attlist = - db.function.role.attribute? + db.othercredit.attlist = + db.othercredit.role.attribute? & db.common.attributes & db.common.linking.attributes + & db.othercredit.class.attribute - db.function = - element function { - db.function.attlist, - db._text + db.othercredit = + element othercredit { + db.othercredit.attlist, + db.credit.contentmodel } } # ====================================================================== [ - db:refname [ "guibutton" ] - db:refpurpose [ "The text on a button in a GUI" ] + db:refname [ "pagenums" ] + db:refpurpose [ "The numbers of the pages in a book, for use in a bibliographic entry" ] ] div { - db.guibutton.role.attribute = attribute role { text } + db.pagenums.role.attribute = attribute role { text } - db.guibutton.attlist = - db.guibutton.role.attribute? + db.pagenums.attlist = + db.pagenums.role.attribute? & db.common.attributes & db.common.linking.attributes - db.guibutton = - element guibutton { - db.guibutton.attlist, - (db._text | db.accel | db.superscript | db.subscript)* + db.pagenums = + element pagenums { + db.pagenums.attlist, + db._text } } # ====================================================================== [ - db:refname [ "guiicon" ] - db:refpurpose [ "Graphic and/or text appearing as a icon in a GUI" ] + db:refname [ "contrib" ] + db:refpurpose [ "A summary of the contributions made to a document by a credited source" ] ] div { - db.guiicon.role.attribute = attribute role { text } + db.contrib.role.attribute = attribute role { text } - db.guiicon.attlist = - db.guiicon.role.attribute? + db.contrib.attlist = + db.contrib.role.attribute? & db.common.attributes & db.common.linking.attributes - db.guiicon = - element guiicon { - db.guiicon.attlist, - (db._text | db.accel | db.superscript | db.subscript)* + db.contrib = + element contrib { + db.contrib.attlist, + db._text } } # ====================================================================== [ - db:refname [ "guilabel" ] - db:refpurpose [ "The text of a label in a GUI" ] + db:refname [ "honorific" ] + db:refpurpose [ "The title of a person" ] ] div { - db.guilabel.role.attribute = attribute role { text } + db.honorific.role.attribute = attribute role { text } - db.guilabel.attlist = - db.guilabel.role.attribute? + db.honorific.attlist = + db.honorific.role.attribute? & db.common.attributes & db.common.linking.attributes - db.guilabel = - element guilabel { - db.guilabel.attlist, - (db._text | db.accel | db.superscript | db.subscript)* + db.honorific = + element honorific { + db.honorific.attlist, + db._text } } # ====================================================================== [ - db:refname [ "guimenu" ] - db:refpurpose [ "The name of a menu in a GUI" ] + db:refname [ "firstname" ] + db:refpurpose [ "The first name of a person" ] ] div { - db.guimenu.role.attribute = attribute role { text } + db.firstname.role.attribute = attribute role { text } - db.guimenu.attlist = - db.guimenu.role.attribute? + db.firstname.attlist = + db.firstname.role.attribute? & db.common.attributes & db.common.linking.attributes - db.guimenu = - element guimenu { - db.guimenu.attlist, - (db._text | db.accel | db.superscript | db.subscript)* + db.firstname = + element firstname { + db.firstname.attlist, + db._text } } # ====================================================================== [ - db:refname [ "guimenuitem" ] - db:refpurpose [ "The name of a terminal menu item in a GUI" ] + db:refname [ "surname" ] + db:refpurpose [ "A family name; in western cultures the last name" ] ] div { - db.guimenuitem.role.attribute = attribute role { text } + db.surname.role.attribute = attribute role { text } - db.guimenuitem.attlist = - db.guimenuitem.role.attribute? + db.surname.attlist = + db.surname.role.attribute? & db.common.attributes & db.common.linking.attributes - db.guimenuitem = - element guimenuitem { - db.guimenuitem.attlist, - (db._text | db.accel | db.superscript | db.subscript)* + db.surname = + element surname { + db.surname.attlist, + db._text } } # ====================================================================== [ - db:refname [ "guisubmenu" ] - db:refpurpose [ "The name of a submenu in a GUI" ] + db:refname [ "lineage" ] + db:refpurpose [ "The portion of a person's name indicating a relationship to ancestors" ] ] div { - db.guisubmenu.role.attribute = attribute role { text } + db.lineage.role.attribute = attribute role { text } - db.guisubmenu.attlist = - db.guisubmenu.role.attribute? + db.lineage.attlist = + db.lineage.role.attribute? & db.common.attributes & db.common.linking.attributes - db.guisubmenu = - element guisubmenu { - db.guisubmenu.attlist, - (db._text | db.accel | db.superscript | db.subscript)* + db.lineage = + element lineage { + db.lineage.attlist, + db._text } } # ====================================================================== [ - db:refname [ "hardware" ] - db:refpurpose [ "A physical part of a computer system" ] + db:refname [ "othername" ] + db:refpurpose [ "A component of a persons name that is not a first name, surname, or lineage" ] ] div { - db.hardware.role.attribute = attribute role { text } + db.othername.role.attribute = attribute role { text } - db.hardware.attlist = - db.hardware.role.attribute? + db.othername.attlist = + db.othername.role.attribute? & db.common.attributes & db.common.linking.attributes - db.hardware = - element hardware { - db.hardware.attlist, + db.othername = + element othername { + db.othername.attlist, db._text } } @@ -5978,219 +3956,110 @@ div { # ====================================================================== [ - db:refname [ "keycap" ] - db:refpurpose [ "The text printed on a key on a keyboard" ] + db:refname [ "printhistory" ] + db:refpurpose [ "The printing history of a document" ] ] div { - ctrl:other-attribute [ name="db.keycap.function.attrib" - enum-name="db.keycap.function-enum.attribute" - other-name="db.keycap.function-other.attributes" ] - - db.keycap.function.enumeration = - ## The "Alt" key - "alt" - | ## The "Backspace" key - "backspace" - | ## The "Command" key - "command" - | ## The "Control" key - "control" - | ## The "Delete" key - "delete" - | ## The down arrow - "down" - | ## The "End" key - "end" - | ## The "Enter" or "Return" key - "enter" - | ## The "Escape" key - "escape" - | ## The "Home" key - "home" - | ## The "Insert" key - "insert" - | ## The left arrow - "left" - | ## The "Meta" key - "meta" - | ## The "Option" key - "option" - | ## The page down key - "pagedown" - | ## The page up key - "pageup" - | ## The right arrow - "right" - | ## The "Shift" key - "shift" - | ## The spacebar - "space" - | ## The "Tab" key - "tab" - | ## The up arrow - "up" - - db.keycap.function-enum.attribute = - [ - db:refpurpose [ "Identifies the function key" ] - ] - attribute function { db.keycap.function.enumeration }? - - db.keycap.function-other.attributes = - [ - db:refpurpose [ "Identifies the function key" ] - ] - attribute function { - ## Indicates a non-standard function key - "other" - }?, - [ - db:refpurpose [ "Specifies a keyword that identifies the non-standard key" ] - ] - attribute otherfunction { text } - - db.keycap.function.attrib = - (db.keycap.function-enum.attribute | db.keycap.function-other.attributes) - - db.keycap.role.attribute = attribute role { text } + db.printhistory.role.attribute = attribute role { text } - db.keycap.attlist = - db.keycap.role.attribute? + db.printhistory.attlist = + db.printhistory.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.keycap.function.attrib - db.keycap = - element keycap { - db.keycap.attlist, - db._text + db.printhistory = + element printhistory { + db.printhistory.attlist, + db.para.blocks+ } } # ====================================================================== [ - db:refname [ "keycode" ] - db:refpurpose [ "The internal, frequently numeric, identifier for a key on a keyboard" ] + db:refname [ "pubdate" ] + db:refpurpose [ "The date of publication of a document" ] ] div { - db.keycode.role.attribute = attribute role { text } + db.pubdate.role.attribute = attribute role { text } - db.keycode.attlist = - db.keycode.role.attribute? + db.pubdate.attlist = + db.pubdate.role.attribute? & db.common.attributes & db.common.linking.attributes - db.keycode = - element keycode { - db.keycode.attlist, - db._text + db.pubdate = + element pubdate { + db.pubdate.attlist, + db.date.contentmodel } } # ====================================================================== [ - db:refname [ "keycombo" ] - db:refpurpose [ "A combination of input actions" ] + db:refname [ "publisher" ] + db:refpurpose [ "The publisher of a document" ] ] div { - ctrl:other-attribute [ name="db.keycombo.action.attrib" - enum-name="db.keycombo.action-enum.attribute" - other-name="db.keycombo.action-other.attributes" ] - - db.keycombo.action.enumeration = - ## A (single) mouse click. - "click" - | ## A double mouse click. - "double-click" - | ## A mouse or key press. - "press" - | ## Sequential clicks or presses. - "seq" - | ## Simultaneous clicks or presses. - "simul" - - db.keycombo.action-enum.attribute = - [ - db:refpurpose [ "Identifies the nature of the action taken. If " db:tag [ "keycombo" ] " contains more than one element, " db:tag [ class="attvalue" "simul" ] " is the default, otherwise there is no default." ] - ] - attribute action { db.keycombo.action.enumeration }? - - db.keycombo.action-other.attributes = - [ - db:refpurpose [ "Identifies the nature of the action taken" ] - ] - attribute action { - ## Indicates a non-standard action - "other" - }?, - [ - db:refpurpose [ "Identifies the non-standard action in some unspecified way." ] - ] - attribute otheraction { text } - - db.keycombo.action.attrib = - (db.keycombo.action-enum.attribute | db.keycombo.action-other.attributes) - - db.keycombo.role.attribute = attribute role { text } + db.publisher.role.attribute = attribute role { text } - db.keycombo.attlist = - db.keycombo.role.attribute? + db.publisher.attlist = + db.publisher.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.keycombo.action.attrib - db.keycombo = - element keycombo { - db.keycombo.attlist, - (db.keycap|db.keycombo|db.keysym|db.mousebutton)+ + db.publisher = + element publisher { + db.publisher.attlist, + db.publishername, + db.address* } } # ====================================================================== [ - db:refname [ "keysym" ] - db:refpurpose [ "The symbolic name of a key on a keyboard" ] + db:refname [ "publishername" ] + db:refpurpose [ "The name of the publisher of a document" ] ] div { - db.keysym.role.attribute = attribute role { text } + db.publishername.role.attribute = attribute role { text } - db.keysym.attlist = - db.keysym.role.attribute? + db.publishername.attlist = + db.publishername.role.attribute? & db.common.attributes & db.common.linking.attributes - db.keysym = - element keysym { - db.keysym.attlist, + db.publishername = + element publishername { + db.publishername.attlist, db._text } } # ====================================================================== -[ - db:refname [ "lineannotation" ] - db:refpurpose [ "A comment on a line in a verbatim listing" ] +[ + db:refname [ "releaseinfo" ] + db:refpurpose [ "Information about a particular release of a document" ] ] div { - db.lineannotation.role.attribute = attribute role { text } + db.releaseinfo.role.attribute = attribute role { text } - db.lineannotation.attlist = - db.lineannotation.role.attribute? + db.releaseinfo.attlist = + db.releaseinfo.role.attribute? & db.common.attributes & db.common.linking.attributes - db.lineannotation = - element lineannotation { - db.lineannotation.attlist, + db.releaseinfo = + element releaseinfo { + db.releaseinfo.attlist, db._text } } @@ -6198,82 +4067,71 @@ div { # ====================================================================== [ - db:refname [ "literal" ] - db:refpurpose [ "Inline text that is some literal value" ] + db:refname [ "revhistory" ] + db:refpurpose [ "A history of the revisions to a document" ] ] div { - db.literal.role.attribute = attribute role { text } + db.revhistory.role.attribute = attribute role { text } - db.literal.attlist = - db.literal.role.attribute? + db.revhistory.attlist = + db.revhistory.role.attribute? & db.common.attributes & db.common.linking.attributes - db.literal = - element literal { - db.literal.attlist, - db._text + db.revhistory.info = db._info.title.only + + db.revhistory = + element revhistory { + db.revhistory.attlist, + db.revhistory.info, + db.revision+ } } # ====================================================================== [ - db:refname [ "code" ] - db:refpurpose [ "An inline code fragment" ] + db:refname [ "revision" ] + db:refpurpose [ "An entry describing a single revision in the history of the revisions to a document" ] ] div { - code.language.attribute = - [ - db:refpurpose [ "Identifies the (computer) language of the code fragment" ] - ] - attribute language { text } - - db.code.role.attribute = attribute role { text } + db.revision.role.attribute = attribute role { text } - db.code.attlist = - db.code.role.attribute? + db.revision.attlist = + db.revision.role.attribute? & db.common.attributes & db.common.linking.attributes - & code.language.attribute? - db.code = - element code { - db.code.attlist, - (db.programming.inlines | db._text)* + db.revision = + element revision { + db.revision.attlist, + db.revnumber?, + db.date, + (db.authorinitials | db.author)*, + (db.revremark | db.revdescription)? } } # ====================================================================== [ - db:refname [ "constant" ] - db:refpurpose [ "A programming or system constant" ] + db:refname [ "revnumber" ] + db:refpurpose [ "A document revision number" ] ] div { - db.constant.class.attribute = - [ - db:refpurpose [ "Identifies the class of constant" ] - ] - attribute class { - ## The value is a limit of some kind - "limit" - } - - db.constant.role.attribute = attribute role { text } + db.revnumber.role.attribute = attribute role { text } - db.constant.attlist = - db.constant.role.attribute? + db.revnumber.attlist = + db.revnumber.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.constant.class.attribute? - db.constant = - element constant { - db.constant.attlist, + db.revnumber = + element revnumber { + db.revnumber.attlist, db._text } } @@ -6281,21 +4139,21 @@ div { # ====================================================================== [ - db:refname [ "varname" ] - db:refpurpose [ "The name of a variable" ] + db:refname [ "revremark" ] + db:refpurpose [ "A description of a revision to a document" ] ] div { - db.varname.role.attribute = attribute role { text } + db.revremark.role.attribute = attribute role { text } - db.varname.attlist = - db.varname.role.attribute? + db.revremark.attlist = + db.revremark.role.attribute? & db.common.attributes & db.common.linking.attributes - db.varname = - element varname { - db.varname.attlist, + db.revremark = + element revremark { + db.revremark.attlist, db._text } } @@ -6303,91 +4161,87 @@ div { # ====================================================================== [ - db:refname [ "markup" ] - db:refpurpose [ "A string of formatting markup in text that is to be represented literally" ] + db:refname [ "revdescription" ] + db:refpurpose [ "A extended description of a revision to a document" ] ] div { - db.markup.role.attribute = attribute role { text } + db.revdescription.role.attribute = attribute role { text } - db.markup.attlist = - db.markup.role.attribute? + db.revdescription.attlist = + db.revdescription.role.attribute? & db.common.attributes & db.common.linking.attributes - db.markup = - element markup { - db.markup.attlist, - db._text + db.revdescription = + element revdescription { + db.revdescription.attlist, + db.all.blocks* } } # ====================================================================== [ - db:refname [ "menuchoice" ] - db:refpurpose [ "A selection or series of selections from a menu" ] + db:refname [ "seriesvolnums" ] + db:refpurpose [ "Numbers of the volumes in a series of books" ] ] div { - db.menuchoice.role.attribute = attribute role { text } + db.seriesvolnums.role.attribute = attribute role { text } - db.menuchoice.attlist = - db.menuchoice.role.attribute? + db.seriesvolnums.attlist = + db.seriesvolnums.role.attribute? & db.common.attributes & db.common.linking.attributes - db.menuchoice = - element menuchoice { - db.menuchoice.attlist, - db.shortcut?, - (db.guibutton|db.guiicon|db.guilabel|db.guimenu|db.guimenuitem|db.guisubmenu)+ + db.seriesvolnums = + element seriesvolnums { + db.seriesvolnums.attlist, + db._text } } # ====================================================================== [ - db:refname [ "shortcut" ] - db:refpurpose [ "A key combination for an action that is also accessible through a menu" ] + db:refname [ "volumenum" ] + db:refpurpose [ "The volume number of a document in a set (as of books in a set or articles in a journal)" ] ] div { - db.shortcut.action.attrib = db.keycombo.action.attrib - - db.shortcut.role.attribute = attribute role { text } + db.volumenum.role.attribute = attribute role { text } - db.shortcut.attlist = - db.shortcut.role.attribute? + db.volumenum.attlist = + db.volumenum.role.attribute? & db.common.attributes & db.common.linking.attributes - & db.shortcut.action.attrib - db.shortcut = - element shortcut { - db.shortcut.attlist, - (db.keycap|db.keycombo|db.keysym|db.mousebutton)+ + db.volumenum = + element volumenum { + db.volumenum.attlist, + db._text } } # ====================================================================== [ - db:refname [ "mousebutton" ] - db:refpurpose [ "The conventional name of a mouse button" ] + db:refname [ "issuenum" ] + db:refpurpose [ "The number of an issue of a journal" ] ] div { - db.mousebutton.role.attribute = attribute role { text } + db.issuenum.role.attribute = attribute role { text } - db.mousebutton.attlist = - db.mousebutton.role.attribute? + db.issuenum.attlist = + db.issuenum.role.attribute? & db.common.attributes & db.common.linking.attributes - db.mousebutton = - element mousebutton { - db.mousebutton.attlist, + db.issuenum = + element issuenum { + db.issuenum.attlist, db._text } } @@ -6395,21 +4249,21 @@ div { # ====================================================================== [ - db:refname [ "option" ] - db:refpurpose [ "An option for a software command" ] + db:refname [ "package" ] + db:refpurpose [ "A software or application package" ] ] div { - db.option.role.attribute = attribute role { text } + db.package.role.attribute = attribute role { text } - db.option.attlist = - db.option.role.attribute? + db.package.attlist = + db.package.role.attribute? & db.common.attributes & db.common.linking.attributes - db.option = - element option { - db.option.attlist, + db.package = + element package { + db.package.attlist, db._text } } @@ -6417,21 +4271,21 @@ div { # ====================================================================== [ - db:refname [ "optional" ] - db:refpurpose [ "Optional information" ] + db:refname [ "email" ] + db:refpurpose [ "An email address" ] ] div { - db.optional.role.attribute = attribute role { text } + db.email.role.attribute = attribute role { text } - db.optional.attlist = - db.optional.role.attribute? + db.email.attlist = + db.email.role.attribute? & db.common.attributes & db.common.linking.attributes - db.optional = - element optional { - db.optional.attlist, + db.email = + element email { + db.email.attlist, db._text } } @@ -6439,21 +4293,21 @@ div { # ====================================================================== [ - db:refname [ "property" ] - db:refpurpose [ "A unit of data associated with some part of a computer system" ] + db:refname [ "lineannotation" ] + db:refpurpose [ "A comment on a line in a verbatim listing" ] ] div { - db.property.role.attribute = attribute role { text } + db.lineannotation.role.attribute = attribute role { text } - db.property.attlist = - db.property.role.attribute? + db.lineannotation.attlist = + db.lineannotation.role.attribute? & db.common.attributes & db.common.linking.attributes - db.property = - element property { - db.property.attlist, + db.lineannotation = + element lineannotation { + db.lineannotation.attlist, db._text } } @@ -6497,33 +4351,6 @@ div { # ====================================================================== -db.prompt.inlines = db._text - -# ====================================================================== - -[ - db:refname [ "prompt" ] - db:refpurpose [ "A character or string indicating the start of an input field in a computer display" ] -] -div { - - - db.prompt.role.attribute = attribute role { text } - - db.prompt.attlist = - db.prompt.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.prompt = - element prompt { - db.prompt.attlist, - db.prompt.inlines* - } -} - -# ====================================================================== - db.replaceable.inlines = db._text # ====================================================================== @@ -6567,205 +4394,6 @@ div { # ====================================================================== -[ - db:refname [ "returnvalue" ] - db:refpurpose [ "The value returned by a function" ] -] -div { - - db.returnvalue.role.attribute = attribute role { text } - - db.returnvalue.attlist = - db.returnvalue.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.returnvalue = - element returnvalue { - db.returnvalue.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "tag" ] - db:refpurpose [ "A component of XML (or SGML) markup" ] -] -div { - - db.tag.role.attribute = attribute role { text } - - db.tag.class.enumeration = - ## An attribute - "attribute" - | ## An attribute value - "attvalue" - | ## An element - "element" - | ## An empty element tag - "emptytag" - | ## An end tag - "endtag" - | ## A general entity - "genentity" - | ## The local name part of a qualified name - "localname" - | ## A namespace - "namespace" - | ## A numeric character reference - "numcharref" - | ## A parameter entity - "paramentity" - | ## A processing instruction - "pi" - | ## The prefix part of a qualified name - "prefix" - | ## An SGML comment - "comment" - | ## A start tag - "starttag" - | ## An XML processing instruction - "xmlpi" - - db.tag.class.attribute = - [ - db:refpurpose [ "Identifies the nature of the tag content" ] - ] - attribute class { db.tag.class.enumeration } - - db.tag.namespace.attribute = - [ - db:refpurpose [ "Identifies the namespace of the tag content" ] - ] - attribute namespace { xsd:anyURI } - - db.tag.attlist = - db.tag.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.tag.class.attribute? - & db.tag.namespace.attribute? - - db.tag = - element tag { - db.tag.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "symbol" ] - db:refpurpose [ "A name that is replaced by a value before processing" ] -] -div { - - db.symbol.class.attribute = - [ - db:refpurpose [ "Identifies the class of symbol" ] - ] - attribute class { - ## The value is a limit of some kind - "limit" - } - - db.symbol.role.attribute = attribute role { text } - - db.symbol.attlist = - db.symbol.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.symbol.class.attribute? - - db.symbol = - element symbol { - db.symbol.attlist, - db._text - } -} - -# ====================================================================== - -db.systemitem.inlines = db._text - -# ====================================================================== - -[ - db:refname [ "systemitem" ] - db:refpurpose [ "A system-related item or term" ] -] -div { - - db.systemitem.class.enumeration = - ## A daemon or other system process (syslogd) - "daemon" - | ## A domain name (example.com) - "domainname" - | ## An ethernet address (00:05:4E:49:FD:8E) - "etheraddress" - | ## An event of some sort (SIGHUP) - "event" - | ## An event handler of some sort (hangup) - "eventhandler" - | ## A filesystem (ext3) - "filesystem" - | ## A fully qualified domain name (my.example.com) - "fqdomainname" - | ## A group name (wheel) - "groupname" - | ## An IP address (127.0.0.1) - "ipaddress" - | ## A library (libncurses) - "library" - | ## A macro - "macro" - | ## A netmask (255.255.255.192) - "netmask" - | ## A newsgroup (comp.text.xml) - "newsgroup" - | ## An operating system name (Hurd) - "osname" - | ## A process (gnome-cups-icon) - "process" - | ## A protocol (ftp) - "protocol" - | ## A resource - "resource" - | ## A server (mail.example.com) - "server" - | ## A service (ppp) - "service" - | ## A system name (hephaistos) - "systemname" - | ## A user name (ndw) - "username" - - db.systemitem.class.attribute = - [ - db:refpurpose [ "Identifies the nature of the system item" ] - ] - attribute class { db.systemitem.class.enumeration } - - db.systemitem.role.attribute = attribute role { text } - - db.systemitem.attlist = - db.systemitem.role.attribute? - & db.common.attributes - & db.common.linking.attributes - & db.systemitem.class.attribute? - - db.systemitem = - element systemitem { - db.systemitem.attlist, - db.systemitem.inlines* - } -} - -# ====================================================================== - [ db:refname [ "uri" ] db:refpurpose [ "A Uniform Resource Identifier" ] @@ -6795,83 +4423,6 @@ div { # ====================================================================== -[ - db:refname [ "token" ] - db:refpurpose [ "A unit of information" ] -] -div { - - db.token.role.attribute = attribute role { text } - - db.token.attlist = - db.token.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.token = - element token { - db.token.attlist, - db._text - } -} - -# ====================================================================== - -[ - db:refname [ "type" ] - db:refpurpose [ "The classification of a value" ] -] -div { - - db.type.role.attribute = attribute role { text } - - db.type.attlist = - db.type.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.type = - element type { - db.type.attlist, - db._text - } -} - -# ====================================================================== - -db.userinput.inlines = - text - | db.ubiq.inlines - | db.os.inlines - | db.technical.inlines - | db.markup.inlines - | db.keyboard.inlines - | db.gui.inlines - -# ====================================================================== - -[ - db:refname [ "userinput" ] - db:refpurpose [ "Data entered by the user" ] -] -div { - - db.userinput.role.attribute = attribute role { text } - - db.userinput.attlist = - db.userinput.role.attribute? - & db.common.attributes - & db.common.linking.attributes - - db.userinput = - element userinput { - db.userinput.attlist, - db.userinput.inlines* - } -} - -# ====================================================================== - [ db:refname [ "abbrev" ] db:refpurpose [ "An abbreviation, especially one followed by a period" ] diff --git a/docbook/relaxng/docbook/src/product.rnc b/docbook/relaxng/docbook/src/product.rnc new file mode 100644 index 000000000..375e58da4 --- /dev/null +++ b/docbook/relaxng/docbook/src/product.rnc @@ -0,0 +1,233 @@ +# This file is part of DocBook V5.0CR6 +# +# Copyright 1992-2005 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). +# +# Release: $Id: pool.rnc 7466 2007-09-27 14:03:55Z nwalsh $ +# +# Permission to use, copy, modify and distribute the DocBook schema +# 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 schema +# for any purpose. It is provided "as is" without expressed or implied +# warranty. +# +# If you modify the DocBook schema in any way, label your schema as a +# variant of DocBook. See the reference documentation +# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook) +# 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/. +# +# ====================================================================== + +default namespace = "http://docbook.org/ns/docbook" +namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" +namespace rng = "http://relaxng.org/ns/structure/1.0" +namespace s = "http://www.ascc.net/xml/schematron" +namespace db = "http://docbook.org/ns/docbook" + +db.info.elements |= + db.productname + | db.productnumber + + +db.product.inlines |= + db.productnumber + | db.productname + | db.database + | db.application + | db.hardware + +# ====================================================================== + +[ + db:refname [ "productname" ] + db:refpurpose [ "The formal name of a product" ] +] +div { + + db.productname.role.attribute = attribute role { text } + + db.productname.class.enumeration = + ## A name with a copyright + "copyright" + | ## A name with a registered copyright + "registered" + | ## A name of a service + "service" + | ## A name which is trademarked + "trade" + + db.productname.class.attribute = + [ + db:refpurpose [ "Specifies the class of product name" ] + ] + attribute class { db.productname.class.enumeration } + + db.productname.attlist = + db.productname.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.productname.class.attribute? + + db.productname = + element productname { + db.productname.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "productnumber" ] + db:refpurpose [ "A number assigned to a product" ] +] +div { + + db.productnumber.role.attribute = attribute role { text } + + db.productnumber.attlist = + db.productnumber.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.productnumber = + element productnumber { + db.productnumber.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "database" ] + db:refpurpose [ "The name of a database, or part of a database" ] +] +div { + + db.database.class.enumeration = + ## An alternate or secondary key + "altkey" + | ## A constraint + "constraint" + | ## A data type + "datatype" + | ## A field + "field" + | ## A foreign key + "foreignkey" + | ## A group + "group" + | ## An index + "index" + | ## The first or primary key + "key1" + | ## An alternate or secondary key + "key2" + | ## A name + "name" + | ## The primary key + "primarykey" + | ## A (stored) procedure + "procedure" + | ## A record + "record" + | ## A rule + "rule" + | ## The secondary key + "secondarykey" + | ## A table + "table" + | ## A user + "user" + | ## A view + "view" + + db.database.class.attribute = + [ + db:refpurpose [ "Identifies the class of database artifact" ] + ] + attribute class { db.database.class.enumeration } + + db.database.role.attribute = attribute role { text } + + db.database.attlist = + db.database.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.database.class.attribute? + + db.database = + element database { + db.database.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "application" ] + db:refpurpose [ "The name of a software program" ] +] +div { + + db.application.class.enumeration = + ## A hardware application + "hardware" + | ## A software application + "software" + + db.application.class.attribute = + [ + db:refpurpose [ "Identifies the class of application" ] + ] + attribute class { db.application.class.enumeration } + + db.application.role.attribute = attribute role { text } + + db.application.attlist = + db.application.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.application.class.attribute? + + db.application = + element application { + db.application.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "hardware" ] + db:refpurpose [ "A physical part of a computer system" ] +] +div { + + db.hardware.role.attribute = attribute role { text } + + db.hardware.attlist = + db.hardware.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.hardware = + element hardware { + db.hardware.attlist, + db._text + } +} + + diff --git a/docbook/relaxng/docbook/src/programming.rnc b/docbook/relaxng/docbook/src/programming.rnc new file mode 100644 index 000000000..ef9a60ed7 --- /dev/null +++ b/docbook/relaxng/docbook/src/programming.rnc @@ -0,0 +1,832 @@ +# This file is part of DocBook V5.0CR6 +# +# Copyright 1992-2005 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). +# +# Release: $Id: pool.rnc 7466 2007-09-27 14:03:55Z nwalsh $ +# +# Permission to use, copy, modify and distribute the DocBook schema +# 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 schema +# for any purpose. It is provided "as is" without expressed or implied +# warranty. +# +# If you modify the DocBook schema in any way, label your schema as a +# variant of DocBook. See the reference documentation +# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook) +# 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/. +# +# ====================================================================== + +default namespace = "http://docbook.org/ns/docbook" +namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" +namespace rng = "http://relaxng.org/ns/structure/1.0" +namespace s = "http://www.ascc.net/xml/schematron" +namespace db = "http://docbook.org/ns/docbook" +namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" + +db.domain.inlines |= db.programming.inlines + +db.nopara.blocks |= db.synopsis.blocks + +db.cover.contentmodel |= db.synopsis.blocks + +db.verbatim.blocks |= + db.programlisting + | db.synopsis + +db.programming.inlines = + db.function + | db.parameter + | db.varname + | db.returnvalue + | db.type + | db.classname + | db.exceptionname + | db.interfacename + | db.methodname + | db.modifier + | db.initializer + | db.oo.inlines + +db.oo.inlines = + db.ooclass + | db.ooexception + | db.oointerface + +db.synopsis.blocks = + db.funcsynopsis + | db.classsynopsis + | db.methodsynopsis + | db.constructorsynopsis + | db.destructorsynopsis + | db.fieldsynopsis + +# ====================================================================== + +[ + db:refname [ "synopsis" ] + db:refpurpose [ "A general-purpose element for representing the syntax of commands or functions" ] +] +div { + + db.synopsis.role.attribute = attribute role { text } + db.synopsis.label.attribute = db.label.attribute + + db.synopsis.attlist = + db.synopsis.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.verbatim.attributes + & db.synopsis.label.attribute? + + db.synopsis = + element synopsis { + db.synopsis.attlist, + db.verbatim.contentmodel + } +} + +# ====================================================================== + +[ + db:refname [ "funcsynopsis" ] + db:refpurpose [ "The syntax summary for a function definition" ] +] +div { + + db.funcsynopsis.role.attribute = attribute role { text } + + db.funcsynopsis.attlist = + db.funcsynopsis.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.language.attribute? + + db.funcsynopsis.info = db._info.title.forbidden + + db.funcsynopsis = + element funcsynopsis { + db.funcsynopsis.attlist, + db.funcsynopsis.info, + (db.funcsynopsisinfo | db.funcprototype)+ + } +} + +# ====================================================================== + +[ + db:refname [ "funcsynopsisinfo" ] + db:refpurpose [ "Information supplementing the FuncDefs of a FuncSynopsis" ] +] +div { + + db.funcsynopsisinfo.role.attribute = attribute role { text } + + db.funcsynopsisinfo.attlist = + db.funcsynopsisinfo.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.verbatim.attributes + + db.funcsynopsisinfo = + element funcsynopsisinfo { + db.funcsynopsisinfo.attlist, + db.verbatim.contentmodel + } +} + +# ====================================================================== + +[ + db:refname [ "funcprototype" ] + db:refpurpose [ "The prototype of a function" ] +] +div { + + db.funcprototype.role.attribute = attribute role { text } + + db.funcprototype.attlist = + db.funcprototype.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.funcprototype = + element funcprototype { + db.funcprototype.attlist, + db.modifier*, + db.funcdef, + (db.void | db.varargs | (db.paramdef+, db.varargs?)), + db.modifier* + } +} + +# ====================================================================== + +[ + db:refname [ "funcdef" ] + db:refpurpose [ "A function (subroutine) name and its return type" ] +] +div { + + db.funcdef.role.attribute = attribute role { text } + + db.funcdef.attlist = + db.funcdef.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.funcdef = + element funcdef { + db.funcdef.attlist, + (db._text | db.type | db.function)* + } +} + +# ====================================================================== + +[ + db:refname [ "function" ] + db:refpurpose [ "The name of a function or subroutine, as in a programming language" ] +] +div { + + db.function.role.attribute = attribute role { text } + + db.function.attlist = + db.function.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.function = + element function { + db.function.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "void" ] + db:refpurpose [ "An empty element in a function synopsis indicating that the function in question takes no arguments" ] +] +div { + + db.void.role.attribute = attribute role { text } + + db.void.attlist = + db.void.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.void = + element void { + db.void.attlist, + empty + } +} + +# ====================================================================== + +[ + db:refname [ "varargs" ] + db:refpurpose [ "An empty element in a function synopsis indicating a variable number of arguments" ] +] +div { + + db.varargs.role.attribute = attribute role { text } + + db.varargs.attlist = + db.varargs.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.varargs = + element varargs { + db.varargs.attlist, + empty + } +} + +# ====================================================================== + +[ + db:refname [ "paramdef" ] + db:refpurpose [ "Information about a function parameter in a programming language" ] +] +div { + + db.paramdef.role.attribute = attribute role { text } + + db.paramdef.choice.enumeration = + ## Formatted to indicate that it is optional. + "opt" + | ## Formatted to indicate that it is required. + "req" + + db.paramdef.choice.attribute = + [ + a:defaultValue="opt" + db:refpurpose [ "Indicates optionality." ] + ] + attribute choice { db.paramdef.choice.enumeration } + + + db.paramdef.attlist = + db.paramdef.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.paramdef.choice.attribute? + + db.paramdef = + element paramdef { + db.paramdef.attlist, + (db._text | db.initializer | db.type | db.parameter | db.funcparams)* + } +} + +# ====================================================================== + +[ + db:refname [ "funcparams" ] + db:refpurpose [ "Parameters for a function referenced through a function pointer in a synopsis" ] +] +div { + + db.funcparams.role.attribute = attribute role { text } + + db.funcparams.attlist = + db.funcparams.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.funcparams = + element funcparams { + db.funcparams.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "classsynopsis" ] + db:refpurpose [ "The syntax summary for a class definition" ] +] +div { + + db.classsynopsis.role.attribute = attribute role { text } + + db.classsynopsis.class.enumeration = + ## This is the synopsis of a class + "class" + | ## This is the synopsis of an interface + "interface" + + db.classsynopsis.class.attribute = + [ + db:refpurpose [ "Specifies the nature of the synopsis" ] + ] + attribute class { db.classsynopsis.class.enumeration } + + db.classsynopsis.attlist = + db.classsynopsis.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.language.attribute? + & db.classsynopsis.class.attribute? + + db.classsynopsis = + element classsynopsis { + db.classsynopsis.attlist, + db.oo.inlines+, + (db.classsynopsisinfo + | db.methodsynopsis + | db.constructorsynopsis + | db.destructorsynopsis + | db.fieldsynopsis)* + } +} + +# ====================================================================== + +[ + db:refname [ "classsynopsisinfo" ] + db:refpurpose [ "Information supplementing the contents of a ClassSynopsis" ] +] +div { + + db.classsynopsisinfo.role.attribute = attribute role { text } + + db.classsynopsisinfo.attlist = + db.classsynopsisinfo.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.verbatim.attributes + + db.classsynopsisinfo = + element classsynopsisinfo { + db.classsynopsisinfo.attlist, + db.verbatim.contentmodel + } +} + +# ====================================================================== + +[ + db:refname [ "ooclass" ] + db:refpurpose [ "A class in an object-oriented programming language" ] +] +div { + + db.ooclass.role.attribute = attribute role { text } + + db.ooclass.attlist = + db.ooclass.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.ooclass = + element ooclass { + db.ooclass.attlist, + (db.package|db.modifier)*, + db.classname + } +} + +# ====================================================================== + +[ + db:refname [ "oointerface" ] + db:refpurpose [ "An interface in an object-oriented programming language" ] +] +div { + + db.oointerface.role.attribute = attribute role { text } + + db.oointerface.attlist = + db.oointerface.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.oointerface = + element oointerface { + db.oointerface.attlist, + (db.package|db.modifier)*, + db.interfacename + } +} + +# ====================================================================== + +[ + db:refname [ "ooexception" ] + db:refpurpose [ "An exception in an object-oriented programming language" ] +] +div { + + db.ooexception.role.attribute = attribute role { text } + + db.ooexception.attlist = + db.ooexception.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.ooexception = + element ooexception { + db.ooexception.attlist, + (db.package|db.modifier)*, + db.exceptionname + } +} + +# ====================================================================== + +db.modifier.xml.space.attribute = + [ + db:refpurpose [ "Can be used to indicate that whitespace in the modifier should be preserved (for multi-line annotations, for example)." ] + ] + attribute xml:space { + ## Extra whitespace and line breaks must be preserved. + "preserve" +# Ideally the definition of xml:space used on modifier would be +# different from the definition used on the verbatim elements. The +# verbatim elements forbid the use of xml:space="default" which +# wouldn't be a problem on modifier. But doing that causes the +# generated XSD schemas to be broken so I'm just reusing the existing +# definition for now. It won't be backwards incompatible to fix this +# problem in the future. +# | ## Extra whitespace and line breaks are not preserved. +# "default" + } + +[ + db:refname [ "modifier" ] + db:refpurpose [ "Modifiers in a synopsis" ] +] +div { + + db.modifier.role.attribute = attribute role { text } + + + db.modifier.attlist = + db.modifier.xml.space.attribute? + & db.modifier.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.modifier = + element modifier { + db.modifier.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "interfacename" ] + db:refpurpose [ "The name of an interface" ] +] +div { + + db.interfacename.role.attribute = attribute role { text } + + db.interfacename.attlist = + db.interfacename.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.interfacename = + element interfacename { + db.interfacename.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "exceptionname" ] + db:refpurpose [ "The name of an exception" ] +] +div { + + db.exceptionname.role.attribute = attribute role { text } + + db.exceptionname.attlist = + db.exceptionname.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.exceptionname = + element exceptionname { + db.exceptionname.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "fieldsynopsis" ] + db:refpurpose [ "The name of a field in a class definition" ] +] +div { + + db.fieldsynopsis.role.attribute = attribute role { text } + + db.fieldsynopsis.attlist = + db.fieldsynopsis.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.language.attribute? + + db.fieldsynopsis = + element fieldsynopsis { + db.fieldsynopsis.attlist, + db.modifier*, + db.type?, + db.varname, + db.initializer? + } +} + +# ====================================================================== + +[ + db:refname [ "initializer" ] + db:refpurpose [ "The initializer for a FieldSynopsis" ] +] +div { + + db.initializer.role.attribute = attribute role { text } + + db.initializer.attlist = + db.initializer.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.initializer = + element initializer { + db.initializer.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "constructorsynopsis" ] + db:refpurpose [ "A syntax summary for a constructor" ] +] +div { + + db.constructorsynopsis.role.attribute = attribute role { text } + + db.constructorsynopsis.attlist = + db.constructorsynopsis.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.language.attribute? + + db.constructorsynopsis = + element constructorsynopsis { + db.constructorsynopsis.attlist, + db.modifier*, + db.methodname?, + (db.methodparam+ | db.void?), + db.exceptionname* + } +} + +# ====================================================================== + +[ + db:refname [ "destructorsynopsis" ] + db:refpurpose [ "A syntax summary for a destructor" ] +] +div { + + db.destructorsynopsis.role.attribute = attribute role { text } + + db.destructorsynopsis.attlist = + db.destructorsynopsis.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.language.attribute? + + db.destructorsynopsis = + element destructorsynopsis { + db.destructorsynopsis.attlist, + db.modifier*, + db.methodname?, + (db.methodparam+ | db.void?), + db.exceptionname* + } +} + +# ====================================================================== + +[ + db:refname [ "methodsynopsis" ] + db:refpurpose [ "A syntax summary for a method" ] +] +div { + + db.methodsynopsis.role.attribute = attribute role { text } + + db.methodsynopsis.attlist = + db.methodsynopsis.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.language.attribute? + + db.methodsynopsis = + element methodsynopsis { + db.methodsynopsis.attlist, + db.modifier*, + (db.type | db.void)?, + db.methodname, + (db.methodparam+ | db.void), + db.exceptionname*, + db.modifier* + } +} + +# ====================================================================== + +[ + db:refname [ "methodname" ] + db:refpurpose [ "The name of a method" ] +] +div { + + db.methodname.role.attribute = attribute role { text } + + db.methodname.attlist = + db.methodname.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.methodname = + element methodname { + db.methodname.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "methodparam" ] + db:refpurpose [ "Parameters to a method" ] +] +div { + + db.methodparam.role.attribute = attribute role { text } + db.methodparam.rep.attribute = db.rep.attribute + db.methodparam.choice.attribute = db.choice.req.attribute + + db.methodparam.attlist = + db.methodparam.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.methodparam.rep.attribute? + & db.methodparam.choice.attribute? + + db.methodparam = + element methodparam { + db.methodparam.attlist, + db.modifier*, + db.type?, + ((db.modifier*, db.parameter, db.initializer?) + | db.funcparams), + db.modifier* + } +} + +# ====================================================================== + +[ + db:refname [ "varname" ] + db:refpurpose [ "The name of a variable" ] +] +div { + + db.varname.role.attribute = attribute role { text } + + db.varname.attlist = + db.varname.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.varname = + element varname { + db.varname.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "returnvalue" ] + db:refpurpose [ "The value returned by a function" ] +] +div { + + db.returnvalue.role.attribute = attribute role { text } + + db.returnvalue.attlist = + db.returnvalue.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.returnvalue = + element returnvalue { + db.returnvalue.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "type" ] + db:refpurpose [ "The classification of a value" ] +] +div { + + db.type.role.attribute = attribute role { text } + + db.type.attlist = + db.type.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.type = + element type { + db.type.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "classname" ] + db:refpurpose [ "The name of a class, in the object-oriented programming sense" ] +] +div { + + db.classname.role.attribute = attribute role { text } + + db.classname.attlist = + db.classname.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.classname = + element classname { + db.classname.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "programlisting" ] + db:refpurpose [ "A literal listing of all or part of a program" ] +] +div { + + db.programlisting.role.attribute = attribute role { text } + + db.programlisting.width.attribute = db.width.characters.attribute + + db.programlisting.attlist = + db.programlisting.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.verbatim.attributes + & db.programlisting.width.attribute? + + db.programlisting = + element programlisting { + db.programlisting.attlist, + db.verbatim.contentmodel + } +} + diff --git a/docbook/relaxng/docbook/src/technical.rnc b/docbook/relaxng/docbook/src/technical.rnc new file mode 100644 index 000000000..b6ed90fa0 --- /dev/null +++ b/docbook/relaxng/docbook/src/technical.rnc @@ -0,0 +1,184 @@ +# This file is part of DocBook V5.0CR6 +# +# Copyright 1992-2005 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). +# +# Release: $Id: pool.rnc 7466 2007-09-27 14:03:55Z nwalsh $ +# +# Permission to use, copy, modify and distribute the DocBook schema +# 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 schema +# for any purpose. It is provided "as is" without expressed or implied +# warranty. +# +# If you modify the DocBook schema in any way, label your schema as a +# variant of DocBook. See the reference documentation +# (http://docbook.org/tdg5/en/html/ch05.html#s-notdocbook) +# 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/. +# +# ====================================================================== + +default namespace = "http://docbook.org/ns/docbook" +namespace ctrl = "http://nwalsh.com/xmlns/schema-control/" +namespace rng = "http://relaxng.org/ns/structure/1.0" +namespace s = "http://www.ascc.net/xml/schematron" +namespace db = "http://docbook.org/ns/docbook" + +db.technical.inlines |= + db.systemitem + | db.option + | db.optional + | db.property + +# ====================================================================== + +db.systemitem.inlines = db._text + +# ====================================================================== + +[ + db:refname [ "systemitem" ] + db:refpurpose [ "A system-related item or term" ] +] +div { + + db.systemitem.class.enumeration = + ## A daemon or other system process (syslogd) + "daemon" + | ## A domain name (example.com) + "domainname" + | ## An ethernet address (00:05:4E:49:FD:8E) + "etheraddress" + | ## An event of some sort (SIGHUP) + "event" + | ## An event handler of some sort (hangup) + "eventhandler" + | ## A filesystem (ext3) + "filesystem" + | ## A fully qualified domain name (my.example.com) + "fqdomainname" + | ## A group name (wheel) + "groupname" + | ## An IP address (127.0.0.1) + "ipaddress" + | ## A library (libncurses) + "library" + | ## A macro + "macro" + | ## A netmask (255.255.255.192) + "netmask" + | ## A newsgroup (comp.text.xml) + "newsgroup" + | ## An operating system name (Hurd) + "osname" + | ## A process (gnome-cups-icon) + "process" + | ## A protocol (ftp) + "protocol" + | ## A resource + "resource" + | ## A server (mail.example.com) + "server" + | ## A service (ppp) + "service" + | ## A system name (hephaistos) + "systemname" + | ## A user name (ndw) + "username" + + db.systemitem.class.attribute = + [ + db:refpurpose [ "Identifies the nature of the system item" ] + ] + attribute class { db.systemitem.class.enumeration } + + db.systemitem.role.attribute = attribute role { text } + + db.systemitem.attlist = + db.systemitem.role.attribute? + & db.common.attributes + & db.common.linking.attributes + & db.systemitem.class.attribute? + + db.systemitem = + element systemitem { + db.systemitem.attlist, + db.systemitem.inlines* + } +} + +# ====================================================================== + +[ + db:refname [ "option" ] + db:refpurpose [ "An option for a software command" ] +] +div { + + db.option.role.attribute = attribute role { text } + + db.option.attlist = + db.option.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.option = + element option { + db.option.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "optional" ] + db:refpurpose [ "Optional information" ] +] +div { + + db.optional.role.attribute = attribute role { text } + + db.optional.attlist = + db.optional.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.optional = + element optional { + db.optional.attlist, + db._text + } +} + +# ====================================================================== + +[ + db:refname [ "property" ] + db:refpurpose [ "A unit of data associated with some part of a computer system" ] +] +div { + + db.property.role.attribute = attribute role { text } + + db.property.attlist = + db.property.role.attribute? + & db.common.attributes + & db.common.linking.attributes + + db.property = + element property { + db.property.attlist, + db._text + } +} + -- 2.40.0