summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun McCance <shaunm@src.gnome.org>2004-03-15 03:36:48 +0000
committerShaun McCance <shaunm@src.gnome.org>2004-03-15 03:36:48 +0000
commitd83c3d1811329adafb1c020a77671b53c8a5d42f (patch)
treee0edfe788054adfbcd1b6b5ad11dd3b0c65bff2b
parentd634dbaef743dd4318aec4c13a587262ec710992 (diff)
downloadgnome-doc-utils-d83c3d1811329adafb1c020a77671b53c8a5d42f.tar.gz
- Importing Mallard stuff.
* sandbox/mallard: - Importing Mallard stuff.
-rw-r--r--ChangeLog5
-rw-r--r--po/.cvsignore4
-rw-r--r--sandbox/mallard/rng/db-admon.rng131
-rw-r--r--sandbox/mallard/rng/db-callout.rng95
-rw-r--r--sandbox/mallard/rng/db-cmdsynopsis.rng223
-rw-r--r--sandbox/mallard/rng/db-comp.rng845
-rw-r--r--sandbox/mallard/rng/db-credits.rng616
-rw-r--r--sandbox/mallard/rng/db-list.rng262
-rw-r--r--sandbox/mallard/rng/db-media.rng271
-rw-r--r--sandbox/mallard/rng/db-para.rng113
-rw-r--r--sandbox/mallard/rng/db-title.rng109
-rw-r--r--test/testdoc1/.cvsignore8
-rw-r--r--test/testdoc1/help/.cvsignore2
-rw-r--r--test/testdoc1/help/testdoc1/.cvsignore5
-rw-r--r--xslt/.cvsignore2
-rw-r--r--xslt/gettext/.cvsignore3
16 files changed, 2694 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 684f2ca..e9311df 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2004-03-14 Shaun McCance <shaunm@gnome.org>
+ * sandbox/mallard:
+ - Importing Mallard stuff.
+
+2004-03-14 Shaun McCance <shaunm@gnome.org>
+
* gnome-doc-utils.m4:
* test/testdoc1/Makefile.am:
* test/testdoc1/autogen.sh:
diff --git a/po/.cvsignore b/po/.cvsignore
new file mode 100644
index 0000000..1bfbdd3
--- /dev/null
+++ b/po/.cvsignore
@@ -0,0 +1,4 @@
+Makefile
+Makefile.in
+Makefile.in.in
+POTFILES
diff --git a/sandbox/mallard/rng/db-admon.rng b/sandbox/mallard/rng/db-admon.rng
new file mode 100644
index 0000000..34dcd81
--- /dev/null
+++ b/sandbox/mallard/rng/db-admon.rng
@@ -0,0 +1,131 @@
+<?xml version='1.0' encoding='utf-8'?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:ref="http://www.gnome.org/~shaunm/mallard/reference">
+
+ <ref:title>DB Module for Admonitions</ref:title>
+
+ <!-- Stub Content Models -->
+
+ <div ref:role="stub">
+ <ref:title>Stub Content Models</ref:title>
+
+ <define name="db-admon.stub.attr-common">
+ <ref:refname>db-admon.stub.attr-common</ref:refname>
+ <ref:refpurpose>
+ A stub model for common attributes.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-admon.stub.block">
+ <ref:refname>db-admon.stub.block</ref:refname>
+ <ref:refpurpose>
+ A stub model for block-level content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-admon.stub.title-optional">
+ <ref:refname>db-admon.stub.title-optional</ref:refname>
+ <ref:refpurpose>
+ A stub model for title elements. Dialects should generally
+ use an <ref:xmltag>optional</ref:xmltag> pattern.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+ </div>
+
+ <!-- Element Classes -->
+
+ <div ref:role="choice">
+ <ref:title>Element Classes</ref:title>
+
+ <define name="db-admon.choice.admon">
+ <ref:refname>db-admon.choice.admon</ref:refname>
+ <ref:refpurpose>
+ A <ref:xmltag>choice</ref:xmltag> containing the block-level admonition
+ elements defined by this module.
+ </ref:refpurpose>
+
+ <choice>
+ <ref name="db-admon.element.caution"/>
+ <ref name="db-admon.element.important"/>
+ <ref name="db-admon.element.note"/>
+ <ref name="db-admon.element.tip"/>
+ <ref name="db-admon.element.warning"/>
+ </choice>
+ </define>
+ </div>
+
+ <!-- Element Definitions -->
+
+ <div ref:role="element">
+ <ref:title>Element Definitions</ref:title>
+
+ <define name="db-admon.element.caution">
+ <element name="caution">
+ <ref:refname>caution</ref:refname>
+ <ref:refpurpose>
+ A note of caution set off from the text.
+ </ref:refpurpose>
+
+ <ref name="db-admon.stub.attr-common"/>
+ <ref name="db-admon.stub.title-optional"/>
+ <ref name="db-admon.stub.block"/>
+ </element>
+ </define>
+
+ <define name="db-admon.element.important">
+ <element name="important">
+ <ref:refname>important</ref:refname>
+ <ref:refpurpose>
+ An important note of information set off from the text.
+ </ref:refpurpose>
+
+ <ref name="db-admon.stub.attr-common"/>
+ <ref name="db-admon.stub.title-optional"/>
+ <ref name="db-admon.stub.block"/>
+ </element>
+ </define>
+
+ <define name="db-admon.element.note">
+ <element name="note">
+ <ref:refname>note</ref:refname>
+ <ref:refpurpose>
+ A general note set off from the text.
+ </ref:refpurpose>
+
+ <ref name="db-admon.stub.attr-common"/>
+ <ref name="db-admon.stub.title-optional"/>
+ <ref name="db-admon.stub.block"/>
+ </element>
+ </define>
+
+ <define name="db-admon.element.tip">
+ <element name="tip">
+ <ref:refname>tip</ref:refname>
+ <ref:refpurpose>
+ A suggestion to the user set off from the text.
+ </ref:refpurpose>
+
+ <ref name="db-admon.stub.attr-common"/>
+ <ref name="db-admon.stub.title-optional"/>
+ <ref name="db-admon.stub.block"/>
+ </element>
+ </define>
+
+ <define name="db-admon.element.warning">
+ <element name="warning">
+ <ref:refname>warning</ref:refname>
+ <ref:refpurpose>
+ A note of warning set off from the text.
+ </ref:refpurpose>
+
+ <ref name="db-admon.stub.attr-common"/>
+ <ref name="db-admon.stub.title-optional"/>
+ <ref name="db-admon.stub.block"/>
+ </element>
+ </define>
+
+ </div>
+</grammar>
diff --git a/sandbox/mallard/rng/db-callout.rng b/sandbox/mallard/rng/db-callout.rng
new file mode 100644
index 0000000..90f6293
--- /dev/null
+++ b/sandbox/mallard/rng/db-callout.rng
@@ -0,0 +1,95 @@
+<?xml version='1.0' encoding='utf-8'?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:ref="http://www.gnome.org/~shaunm/mallard/reference">
+
+ <ref:title>DB Module for Callouts</ref:title>
+
+ <!-- Stub Content Models -->
+
+ <div ref:role="stub">
+ <ref:title>Stub Content Models</ref:title>
+
+ <define name="db-callout.stub.attr-common">
+ <ref:refname>db-callout.stub.attr-common</ref:refname>
+ <ref:refpurpose>
+ A stub model for common attributes.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-callout.stub.block-optional">
+ <ref:refname>db-callout.stub.block-optional</ref:refname>
+ <ref:refpurpose>
+ A stub model for block-level content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-callout.stub.inline">
+ <ref:refname>db-callout.stub.inline</ref:refname>
+ <ref:refpurpose>
+ A stub model for inline content. Dialects should generally
+ use a <ref:xmltag>mixed</ref:xmltag> pattern.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-callout.stub.title-optional">
+ <ref:refname>db-callout.stub.title-optional</ref:refname>
+ <ref:refpurpose>
+ A stub model for title elements. Dialects should generally
+ use an <ref:xmltag>optional</ref:xmltag> pattern.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+ </div>
+
+ <!-- Element Classes -->
+
+ <div ref:role="choice">
+ <ref:title>Element Classes</ref:title>
+ </div>
+
+ <!-- Element Definitions -->
+
+ <div ref:role="element">
+ <ref:title>Element Definitions</ref:title>
+
+ <!-- FIXME
+ area
+ areaset
+ areaspec
+ co
+ imageobjectco
+ mediaobjectco
+ -->
+
+ <define name="db-callout.element.callout">
+ <element name="callout">
+ <ref:refname>callout</ref:refname>
+ <ref:refpurpose>
+ An annotation or description, used inside a callout list.
+ </ref:refpurpose>
+
+ <ref name="db-callout.stub.attr-common"/>
+ <ref name="db-callout.stub.block-optional"/>
+ </element>
+ </define>
+
+ <define name="db-callout.element.calloutlist">
+ <element name="calloutlist">
+ <ref:refname>calloutlist</ref:refname>
+ <ref:refpurpose>
+ A list of annotations or descriptions.
+ </ref:refpurpose>
+
+ <ref name="db-callout.stub.attr-common"/>
+ <ref name="db-callout.stub.title-optional"/>
+ <oneOrMore>
+ <ref name="db-callout.element.callout"/>
+ </oneOrMore>
+ </element>
+ </define>
+
+ </div>
+</grammar>
diff --git a/sandbox/mallard/rng/db-cmdsynopsis.rng b/sandbox/mallard/rng/db-cmdsynopsis.rng
new file mode 100644
index 0000000..4f6ecd7
--- /dev/null
+++ b/sandbox/mallard/rng/db-cmdsynopsis.rng
@@ -0,0 +1,223 @@
+<?xml version='1.0' encoding='utf-8'?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:ref="http://www.gnome.org/~shaunm/mallard/reference">
+
+ <ref:title>DB Module for Command Synopses</ref:title>
+
+ <!-- Dependancies -->
+
+ <div ref:role="depend">
+ <ref:title>Dependancicies</ref:title>
+
+ <include href="db-comp.rng">
+ <define name="db-comp.stub.attr-common">
+ <ref name="db-cmdsynopsis.stub.attr-common"/>
+ </define>
+ <define name="db-comp.stub.inline">
+ <ref name="db-cmdsynopsis.stub.inline"/>
+ </define>
+ </include>
+ </div>
+
+ <!-- Stub Content Models -->
+
+ <div ref:role="stub">
+ <ref:title>Stub Content Models</ref:title>
+
+ <define name="db-cmdsynopsis.stub.attr-common">
+ <ref:refname>db-cmdsynopsis.stub.attr-common</ref:refname>
+ <ref:refpurpose>
+ A stub model for common attributes.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-cmdsynopsis.stub.inline">
+ <ref:refname>db-cmdsynopsis.stub.inline</ref:refname>
+ <ref:refpurpose>
+ A stub model for inline content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+ </div>
+
+ <!-- Plug Content Models -->
+
+ <div ref:role="plug">
+ <ref:title>Plug Content Models</ref:title>
+
+ <define name="db-cmdsynopsis.plug.extra-inline">
+ <ref:refname>db-cmdsynopsis.plug.extra-inline</ref:refname>
+ <ref:refpurpose>
+ A plug model for extra inline elements for the content of elements such as
+ <ref:xmltag>arg</ref:xmltag> and <ref:xmltag>group</ref:xmltag>. Dialects
+ should use a <ref:xmltag>choice</ref:xmltag> pattern.
+ </ref:refpurpose>
+ <empty/>
+ </define>
+ </div>
+
+ <!-- Element Classes -->
+
+ <div ref:role="choice">
+ <ref:title>Element Classes</ref:title>
+
+ <define name="db-cmdsynopsis.choice.cmdsynopsis">
+ <ref:refname>db-cmdsynopsis.choice.cmdsynopsis</ref:refname>
+ <ref:refpurpose>
+ A <ref:xmltag>choice</ref:xmltag> containing the block-level list
+ elements defined by this module.
+ </ref:refpurpose>
+
+ <choice>
+ <ref name="db-cmdsynopsis.element.cmdsynopsis"/>
+ </choice>
+ </define>
+ </div>
+
+ <!-- Common Attribute Sets -->
+
+ <div ref:role="attr">
+ <ref:title>Common Attribute Sets</ref:title>
+
+ <define name="db-cmdsynopsis.attr.arg">
+ <group>
+ <optional>
+ <attribute name="choice">
+ <choice>
+ <value type="string">opt</value>
+ <value type="string">plain</value>
+ <value type="string">req</value>
+ </choice>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="rep">
+ <choice>
+ <value type="string">norepeat</value>
+ <value type="string">repeat</value>
+ </choice>
+ </attribute>
+ </optional>
+ </group>
+ </define>
+ </div>
+
+ <!-- Element Definitions -->
+
+ <div ref:role="element">
+ <ref:title>Element Definitions</ref:title>
+
+ <define name="db-cmdsynopsis.element.arg">
+ <element name="arg">
+ <ref:refname>arg</ref:refname>
+ <ref:refpurpose>
+ An argument in a <ref:xmltag>cmdsynopsis</ref:xmltag>.
+ </ref:refpurpose>
+
+ <ref name="db-cmdsynopsis.stub.attr-common"/>
+ <ref name="db-cmdsynopsis.attr.arg"/>
+
+ <mixed>
+ <zeroOrMore>
+ <choice>
+ <ref name="db-cmdsynopsis.plug.extra-inline"/>
+ <ref name="db-comp.element.option"/>
+ <ref name="db-cmdsynopsis.element.arg"/>
+ <ref name="db-cmdsynopsis.element.group"/>
+ <ref name="db-cmdsynopsis.element.sbr"/>
+ <ref name="db-cmdsynopsis.element.synopfragmentref"/>
+ </choice>
+ </zeroOrMore>
+ </mixed>
+ </element>
+ </define>
+
+ <define name="db-cmdsynopsis.element.cmdsynopsis">
+ <element name="cmdsynopsis">
+ <ref:refname>cmdsynopsis</ref:refname>
+ <ref:refpurpose>
+ A syntax summary for a software command.
+ </ref:refpurpose>
+
+ <ref name="db-cmdsynopsis.stub.attr-common"/>
+ <optional><attribute name="cmdlength"/></optional>
+ <optional><attribute name="label"/></optional>
+ <optional><attribute name="sepchar"/></optional>
+
+ <oneOrMore>
+ <choice>
+ <ref name="db-comp.element.command"/>
+ <ref name="db-cmdsynopsis.element.arg"/>
+ <ref name="db-cmdsynopsis.element.group"/>
+ <ref name="db-cmdsynopsis.element.sbr"/>
+ </choice>
+ </oneOrMore>
+ <zeroOrMore>
+ <ref name="dbe-cmdsynopsis.element.synopfragment"/>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name="db-cmdsynopsis.element.group">
+ <element name="group">
+ <ref:refname>group</ref:refname>
+ <ref:refpurpose>
+ A group of elements in a <ref:xmltag>cmdsynopsis</ref:xmltag>.
+ </ref:refpurpose>
+
+ <ref name="db-cmdsynopsis.stub.attr-common"/>
+ <ref name="db-cmdsynopsis.attr.arg"/>
+
+ <oneOrMore>
+ <choice>
+ <ref name="db-cmdsynopsis.plug.extra-inline"/>
+ <ref name="db-comp.element.option"/>
+ <ref name="db-cmdsynopsis.element.arg"/>
+ <ref name="db-cmdsynopsis.element.group"/>
+ <ref name="db-cmdsynopsis.element.sbr"/>
+ <ref name="db-cmdsynopsis.element.synopfragmentref"/>
+ </choice>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name="db-cmdsynopsis.element.synopfragment">
+ <ref:refname>synopfragment</ref:refname>
+ <ref:refpurpose>
+ A portion of a <ref:xmltag>cmdsynopsis</ref:xmltag> broken out
+ from the main body of the synopsis.
+ </ref:refpurpose>
+
+ <ref name="db-cmdsynopsis.stub.attr-common"/>
+
+ <oneOrMore>
+ <choice>
+ <ref name="db-cmdsynopsis.element.arg"/>
+ <ref name="db-cmdsynopsis.element.group"/>
+ </choice>
+ </oneOrMore>
+ </define>
+
+ <define name="db-cmdsynopsis.element.synopfragmentref">
+ <ref:refname>synopfragmentref</ref:refname>
+ <ref:refpurpose>
+ A reference to a fragment of a <ref:xmltag>cmdsynopsis</ref:xmltag>.
+ </ref:refpurpose>
+
+ <ref name="db-cmdsynopsis.stub.attr-common"/>
+ <attribute name="linkend"/>
+ <text/>
+ </define>
+
+ <define name="db-cmdsynopsis.sbr">
+ <ref:refname>sbr</ref:refname>
+ <ref:refpurpose>
+ An explicit line break in a <ref:xmltag>cmdsynopsis</ref:xmltag>.
+ </ref:refpurpose>
+
+ <ref name="db-cmdsynopsis.stub.attr-common"/>
+ </define>
+
+ </div>
+</grammar>
diff --git a/sandbox/mallard/rng/db-comp.rng b/sandbox/mallard/rng/db-comp.rng
new file mode 100644
index 0000000..57a2e55
--- /dev/null
+++ b/sandbox/mallard/rng/db-comp.rng
@@ -0,0 +1,845 @@
+<?xml version='1.0' encoding='utf-8'?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:ref="http://www.gnome.org/~shaunm/mallard/reference">
+
+ <ref:title>DB Module for General Computer Terms</ref:title>
+
+ <!-- Stub Content Models -->
+
+ <div ref:role="stub">
+ <ref:title>Stub Content Models</ref:title>
+
+ <define name="db-comp.stub.attr-common">
+ <ref:refname>db-comp.stub.attr-common</ref:refname>
+ <ref:refpurpose>
+ A stub model for common attributes.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-comp.stub.inline">
+ <ref:refname>db-comp.stub.inline</ref:refname>
+ <ref:refpurpose>
+ A stub model for inline content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-comp.stub.inline-restricted">
+ <ref:refname>db-comp.stub.inline-restricted</ref:refname>
+ <ref:refpurpose>
+ A stub model for restricted inline content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+ </div>
+
+ <!-- Element Classes -->
+
+ <div ref:role="choice">
+ <ref:title>Element Classes</ref:title>
+
+ <define name="db-comp.choice.inline">
+ <ref:refname>db-comp.choice.inline</ref:refname>
+ <ref:refpurpose>
+ A <ref:xmltag>choice</ref:xmltag> containing the inline
+ elements defined by this module.
+ </ref:refpurpose>
+
+ <choice>
+ <ref name="db-comp.element.accel"/>
+ <ref name="db-comp.element.application"/>
+ <ref name="db-comp.element.code"/>
+ <ref name="db-comp.element.command"/>
+ <ref name="db-comp.element.computeroutput"/>
+ <ref name="db-comp.element.constant"/>
+ <ref name="db-comp.element.database"/>
+ <ref name="db-comp.element.envar"/>
+ <ref name="db-comp.element.errorcode"/>
+ <ref name="db-comp.element.errorname"/>
+ <ref name="db-comp.element.errortext"/>
+ <ref name="db-comp.element.errortype"/>
+ <ref name="db-comp.element.filename"/>
+ <ref name="db-comp.element.guibutton"/>
+ <ref name="db-comp.element.guiicon"/>
+ <ref name="db-comp.element.guilabel"/>
+ <ref name="db-comp.element.guimenu"/>
+ <ref name="db-comp.element.guimenuitem"/>
+ <ref name="db-comp.element.guisubmenu"/>
+ <ref name="db-comp.element.hardware"/>
+ <ref name="db-comp.element.keycap"/>
+ <ref name="db-comp.element.keycode"/>
+ <ref name="db-comp.element.keycombo"/>
+ <ref name="db-comp.element.keysym"/>
+ <ref name="db-comp.element.literal"/>
+ <ref name="db-comp.element.markup"/>
+ <ref name="db-comp.element.menuchoice"/>
+ <ref name="db-comp.element.mousebutton"/>
+ <ref name="db-comp.element.option"/>
+ <ref name="db-comp.element.optional"/>
+ <ref name="db-comp.element.replaceable"/>
+ <ref name="db-comp.element.symbol"/>
+ <ref name="db-comp.element.systemitem"/>
+ <ref name="db-comp.element.token"/>
+ <ref name="db-comp.element.userinput"/>
+ <ref name="db-comp.element.xmltag"/>
+ </choice>
+ </define>
+
+ <define name="db-comp.choice.inline-error">
+ <ref:refname>db-comp.choice.inline-error</ref:refname>
+ <ref:refpurpose>
+ A <ref:xmltag>choice</ref:xmltag> containing the inline
+ elements used for errors.
+ </ref:refpurpose>
+
+ <choice>
+ <ref name="db-comp.element.errorcode"/>
+ <ref name="db-comp.element.errorname"/>
+ <ref name="db-comp.element.errortext"/>
+ <ref name="db-comp.element.errortype"/>
+ </choice>
+ </define>
+
+ <define name="db-comp.choice.inline-prog">
+ <ref:refname>db-comp.choice.inline-prog</ref:refname>
+ <ref:refpurpose>
+ A <ref:xmltag>choice</ref:xmltag> containing the inline
+ programming terms.
+ </ref:refpurpose>
+
+ <choice>
+ <ref name="db-prog.element.classname"/>
+ <ref name="db-prog.element.exceptionname"/>
+ <ref name="db-prog.element.function"/>
+ <ref name="db-prog.element.interfacename"/>
+ <ref name="db-prog.element.methodname"/>
+ <ref name="db-prog.element.ooclass"/>
+ <ref name="db-prog.element.ooexception"/>
+ <ref name="db-prog.element.oointerface"/>
+ <ref name="db-prog.element.parameter"/>
+ <ref name="db-prog.element.returnvalue"/>
+ <ref name="db-prog.element.type"/>
+ <ref name="db-prog.element.varname"/>
+ </choice>
+ </define>
+ </div>
+
+ <!-- Element Definitions -->
+
+ <div ref:role="element">
+ <ref:title>Element Definitions</ref:title>
+
+ <!-- Computer Interface Terms -->
+ <div>
+ <ref:title>Computer Interface Terms</ref:title>
+
+ <define name="db-comp.element.accel">
+ <element name="accel">
+ <ref:refname>accel</ref:refname>
+ <ref:refpurpose>
+ A keyboard shortcut in a graphical interface.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.guibutton">
+ <element name="guibutton">
+ <ref:refname>guibutton</ref:refname>
+ <ref:refpurpose>
+ The text on a button in a graphical interface.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.guiicon">
+ <element name="guiicon">
+ <ref:refname>guiicon</ref:refname>
+ <ref:refpurpose>
+ Graphic or text appearing as an icon in a graphical interface.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.guilabel">
+ <element name="guilabel">
+ <ref:refname>guilabel</ref:refname>
+ <ref:refpurpose>
+ The text of a label in a graphical interface.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.guimenu">
+ <element name="guimenu">
+ <ref:refname>guimenu</ref:refname>
+ <ref:refpurpose>
+ The name of a menu in a graphical interface.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.guimenuitem">
+ <element name="guimenuitem">
+ <ref:refname>guimenuitem</ref:refname>
+ <ref:refpurpose>
+ The name of a terminal menu item in a graphical interface.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.guisubmenu">
+ <element name="guisubmenu">
+ <ref:refname>guisubmenu</ref:refname>
+ <ref:refpurpose>
+ The name of a submenu in a graphical interface.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.keycap">
+ <element name="keycap">
+ <ref:refname>keycap</ref:refname>
+ <ref:refpurpose>
+ The text printed on a key on a keyboard.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.keycode">
+ <element name="keycode">
+ <ref:refname>keycode</ref:refname>
+ <ref:refpurpose>
+ The internal identifier for a key on a keyboard.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.keycombo">
+ <element name="keycombo">
+ <ref:refname>keycombo</ref:refname>
+ <ref:refpurpose>
+ A combination of input actions.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <oneOrMore>
+ <choice>
+ <ref name="db-comp.element.keycap"/>
+ <ref name="db-comp.element.keycombo"/>
+ <ref name="db-comp.element.keysym"/>
+ <ref name="db-comp.element.mousebutton"/>
+ </choice>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name="db-comp.element.keysym">
+ <element name="keysym">
+ <ref:refname>keysym</ref:refname>
+ <ref:refpurpose>
+ The symbolic name of a key on a keyboard.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.mousebutton">
+ <element name="mousebutton">
+ <ref:refname>menuchoioce</ref:refname>
+ <ref:refpurpose>
+ The conventional name of a mouse button.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.shortcut">
+ <element name="shortcut">
+ <ref:refname>shortcut</ref:refname>
+ <ref:refpurpose>
+ A key combination for an action that is also accessible through a menu.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <oneOrMore>
+ <choice>
+ <ref name="db-comp.element.keycap"/>
+ <ref name="db-comp.element.keycombo"/>
+ <ref name="db-comp.element.keysym"/>
+ <ref name="db-comp.element.mousebutton"/>
+ </choice>
+ </oneOrMore>
+ </element>
+ </define>
+ </div>
+
+ <!-- Programming Terms -->
+ <div>
+ <ref:title>Programming Terms</ref:title>
+
+ <define name="db-comp.element.classname">
+ <element name="classname">
+ <ref:refname>classname</ref:refname>
+ <ref:refpurpose>
+ The name of a class, in the object-oriented programming sense.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.exceptionname">
+ <element name="exceptionname">
+ <ref:refname>exceptionname</ref:refname>
+ <ref:refpurpose>
+ The name of an exception.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.function">
+ <element name="function">
+ <ref:refname>function</ref:refname>
+ <ref:refpurpose>
+ The name of a function or subroutine, as in a programming language.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.interfacename">
+ <element name="interfacename">
+ <ref:refname>interfacename</ref:refname>
+ <ref:refpurpose>
+ The name of an interface, in the object-oriented programming sense.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.methodname">
+ <element name="methodname">
+ <ref:refname>methodname</ref:refname>
+ <ref:refpurpose>
+ The name of a method.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.modifier">
+ <element name="modifier">
+ <ref:refname>modifier</ref:refname>
+ <ref:refpurpose>
+ Modifier in a synopsis.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.ooclass">
+ <element name="ooclass">
+ <ref:refname>ooclass</ref:refname>
+ <ref:refpurpose>
+ A class in an object-oriented programming language.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <zeroOrMore>
+ <ref name="db-comp.element.modifier"/>
+ </zeroOrMore>
+ <ref name="db-comp.element.classname"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.ooexception">
+ <element name="ooexception">
+ <ref:refname>ooexception</ref:refname>
+ <ref:refpurpose>
+ An exception in an object-oriented programming language.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <zeroOrMore>
+ <ref name="db-comp.element.modifier"/>
+ </zeroOrMore>
+ <ref name="db-comp.element.exceptionname"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.oointerface">
+ <element name="oointerface">
+ <ref:refname>oointerface</ref:refname>
+ <ref:refpurpose>
+ An interface in an object-oriented programming language.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <zeroOrMore>
+ <ref name="db-comp.element.modifier"/>
+ </zeroOrMore>
+ <ref name="db-comp.element.interfacename"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.parameter">
+ <element name="parameter">
+ <ref:refname>parameter</ref:refname>
+ <ref:refpurpose>
+ A value or a symbolic reference to a value.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <optional>
+ <attribute name="class">
+ <choice>
+ <value type="string">command</value>
+ <value type="string">function</value>
+ <value type="string">option</value>
+ </choice>
+ </attribute>
+ </optional>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.returnvalue">
+ <element name="returnvalue">
+ <ref:refname>returnvalue</ref:refname>
+ <ref:refpurpose>
+ The value returned by a function.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.type">
+ <element name="type">
+ <ref:refname>type</ref:refname>
+ <ref:refpurpose>
+ The classification of a value.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.varname">
+ <element name="varname">
+ <ref:refname>varname</ref:refname>
+ <ref:refpurpose>
+ The name of a variable.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+ </div>
+
+ <!-- Miscellaneous Terms -->
+ <div>
+ <ref:title>Miscellaneous Terms</ref:title>
+
+ <define name="db-comp.element.application">
+ <element name="application">
+ <ref:refname>application</ref:refname>
+ <ref:refpurpose>
+ The name of a software program.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.code">
+ <element name="code">
+ <ref:refname>code</ref:refname>
+ <ref:refpurpose>
+ An inline code fragment.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.command">
+ <element name="command">
+ <ref:refname>command</ref:refname>
+ <ref:refpurpose>
+ The name of an executable program or other software command.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.computeroutput">
+ <element name="computeroutput">
+ <ref:refname>computeroutput</ref:refname>
+ <ref:refpurpose>
+ Data, generally text, displayed or presented by the computer
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.constant">
+ <element name="constant">
+ <ref:refname>constant</ref:refname>
+ <ref:refpurpose>
+ A programming or system constant.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.database">
+ <element name="database">
+ <ref:refname>database</ref:refname>
+ <ref:refpurpose>
+ The name of a database, or part of a database.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.envar">
+ <element name="envar">
+ <ref:refname>envar</ref:refname>
+ <ref:refpurpose>
+ A software environment variable.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.errorcode">
+ <element name="errorcode">
+ <ref:refname>errorcode</ref:refname>
+ <ref:refpurpose>
+ An error code.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.errorname">
+ <element name="errorname">
+ <ref:refname>errorname</ref:refname>
+ <ref:refpurpose>
+ An error name.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.errortext">
+ <element name="errortext">
+ <ref:refname>errortext</ref:refname>
+ <ref:refpurpose>
+ An error message.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.errortype">
+ <element name="errortype">
+ <ref:refname>errortype</ref:refname>
+ <ref:refpurpose>
+ The classification of an error message.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.filename">
+ <element name="filename">
+ <ref:refname>filename</ref:refname>
+ <ref:refpurpose>
+ The name of a file.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.hardware">
+ <element name="hardware">
+ <ref:refname>hardware</ref:refname>
+ <ref:refpurpose>
+ A physical part of a computer system.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.literal">
+ <element name="literal">
+ <ref:refname>literal</ref:refname>
+ <ref:refpurpose>
+ Inline text that is some literal value.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.markup">
+ <element name="markup">
+ <ref:refname>markup</ref:refname>
+ <ref:refpurpose>
+ A string of formatting markup in text that is to be
+ represented literally.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.menuchoice">
+ <element name="menuchoice">
+ <ref:refname>menuchoice</ref:refname>
+ <ref:refpurpose>
+ A selection or series of selections from a menu.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <optional>
+ <ref name="db-comp.element.shortcut"/>
+ </optional>
+ <oneOrMore>
+ <choice>
+ <ref name="db-comp.element.guibutton"/>
+ <ref name="db-comp.element.guiicon"/>
+ <ref name="db-comp.element.guilabel"/>
+ <ref name="db-comp.element.guimenu"/>
+ <ref name="db-comp.element.guimenuitem"/>
+ <ref name="db-comp.element.guisubmenu"/>
+ </choice>
+ </oneOrMore>
+ </element>
+ </define>
+
+
+ <define name="db-comp.element.option">
+ <element name="option">
+ <ref:refname>option</ref:refname>
+ <ref:refpurpose>
+ An option for a sofware command.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.optional">
+ <element name="optional">
+ <ref:refname>optional</ref:refname>
+ <ref:refpurpose>
+ Optional information.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.replaceable">
+ <element name="replaceable">
+ <ref:refname>replaceable</ref:refname>
+ <ref:refpurpose>
+ Content that may or must be replaced by the user.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.symbol">
+ <element name="symbol">
+ <ref:refname>symbol</ref:refname>
+ <ref:refpurpose>
+ A name that is replaced by a value before processing.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.systemitem">
+ <element name="systemitem">
+ <ref:refname>systemitem</ref:refname>
+ <ref:refpurpose>
+ A system-related item or term.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <optional>
+ <attribute name="class">
+ <choice>
+ <value type="string">daemon</value>
+ <value type="string">domainname</value>
+ <value type="string">etheraddress</value>
+ <value type="string">event</value>
+ <value type="string">eventhandler</value>
+ <value type="string">filesystem</value>
+ <value type="string">fqdomainname</value>
+ <value type="string">groupname</value>
+ <value type="string">ipaddress</value>
+ <value type="string">library</value>
+ <value type="string">macro</value>
+ <value type="string">netmask</value>
+ <value type="string">newsgroup</value>
+ <value type="string">osname</value>
+ <value type="string">process</value>
+ <value type="string">resource</value>
+ <value type="string">server</value>
+ <value type="string">service</value>
+ <value type="string">systemname</value>
+ <value type="string">username</value>
+ </choice>
+ </attribute>
+ </optional>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.token">
+ <element name="token">
+ <ref:refname>token</ref:refname>
+ <ref:refpurpose>
+ A unit of information.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.userinput">
+ <element name="userinput">
+ <ref:refname>userinput</ref:refname>
+ <ref:refpurpose>
+ Data entered by the user.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <ref name="db-comp.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-comp.element.xmltag">
+ <element name="xmltag">
+ <ref:refname>xmltag</ref:refname>
+ <ref:refpurpose>
+ A unit of information.
+ </ref:refpurpose>
+
+ <ref name="db-comp.stub.attr-common"/>
+ <optional>
+ <attribute name="namespace"/>
+ </optional>
+ <optional>
+ <attribute name="class">
+ <choice>
+ <value type="string">attribute</value>
+ <value type="string">attvalue</value>
+ <value type="string">comment</value>
+ <value type="string">element</value>
+ <value type="string">emptytag</value>
+ <value type="string">endtag</value>
+ <value type="string">genentity</value>
+ <value type="string">localname</value>
+ <value type="string">namespace</value>
+ <value type="string">numcharref</value>
+ <value type="string">paramentity</value>
+ <value type="string">pi</value>
+ <value type="string">prefix</value>
+ <value type="string">starttag</value>
+ <value type="string">xmlpi</value>
+ </choice>
+ </attribute>
+ </optional>
+ <ref name="db-comp.stub.inline-restricted"/>
+ </element>
+ </define>
+ </div>
+
+ </div>
+</grammar>
diff --git a/sandbox/mallard/rng/db-credits.rng b/sandbox/mallard/rng/db-credits.rng
new file mode 100644
index 0000000..fd58257
--- /dev/null
+++ b/sandbox/mallard/rng/db-credits.rng
@@ -0,0 +1,616 @@
+<?xml version='1.0' encoding='utf-8'?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:ref="http://www.gnome.org/~shaunm/mallard/reference">
+
+ <ref:title>DB Module for Credits</ref:title>
+
+ <!-- Stub Content Models -->
+
+ <div ref:role="stub">
+ <ref:title>Stub Content Models</ref:title>
+
+ <define name="db-credits.stub.attr-common">
+ <ref:refname>db-credits.stub.attr-common</ref:refname>
+ <ref:refpurpose>
+ A stub model for common attributes.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-credits.stub.block">
+ <ref:refname>db-credits.stub.block</ref:refname>
+ <ref:refpurpose>
+ A stub model for block-level content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-credits.stub.inline-restricted">
+ <ref:refname>db-credits.stub.inline</ref:refname>
+ <ref:refpurpose>
+ A stub model for restricted inline content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-credits.stub.title-optional">
+ <ref:refname>db-credits.stub.title-optional</ref:refname>
+ <ref:refpurpose>
+ A stub model for title elements.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+ </div>
+
+ <!-- Content Model Implementations -->
+
+ <div ref:role="model">
+ <ref:title>Content Model Implementations</ref:title>
+
+ <define name="db-credits.model.credit">
+ <ref:refname>db-credits.model.credit</ref:refname>
+ <ref:refpurpose>
+ The common model used inside elements such as
+ <ref:xmltag>author</ref:xmltag> and <ref:xmltag>editor</ref:xmltag>.
+ </ref:refpurpose>
+
+ <choice>
+ <group>
+ <ref name="db-credits.element.personname"/>
+ <zeroOrMore>
+ <choice>
+ <ref name="db-credits.element.address"/>
+ <ref name="db-credits.element.affiliation"/>
+ <ref name="db-credits.element.contrib"/>
+ <ref name="db-credits.element.email"/>
+ <ref name="db-credits.element.personblurb"/>
+ </choice>
+ </zeroOrMore>
+ </group>
+ <group>
+ <ref name="db-credits.element.orgname"/>
+ <zeroOrMore>
+ <choice>
+ <ref name="db-credits.element.orgdiv"/>
+ <ref name="db-credits.element.affiliation"/>
+ <ref name="db-credits.element.email"/>
+ <ref name="db-credits.element.address"/>
+ <ref name="db-credits.element.contrib"/>
+ </choice>
+ </zeroOrMore>
+ </group>
+ </choice>
+ </define>
+ </div>
+
+ <!-- Element Classes -->
+
+ <div ref:role="choice">
+ <ref:title>Element Classes</ref:title>
+
+ <define name="db-credits.choice.credits">
+ <ref:refname>db-credits.choice.credits</ref:refname>
+ <ref:refpurpose>
+ A <ref:xmltag>choice</ref:xmltag> containing the elements used for
+ crediting the contributors of the document.
+ </ref:refpurpose>
+
+ <choice>
+ <ref name="db-credits.element.author"/>
+ <ref name="db-credits.element.editor"/>
+ </choice>
+ </define>
+ </div>
+
+ <!-- Element Definitions -->
+
+ <div ref:role="element">
+ <ref:title>Element Definitions</ref:title>
+
+ <define name="db-credits.element.address">
+ <element name="address">
+ <ref:refname>address</ref:refname>
+ <ref:refpurpose>
+ A real-world address, generally a postal address.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <mixed>
+ <zeroOrMore>
+ <choice>
+ <ref name="db-credits.element.city"/>
+ <ref name="db-credits.element.country"/>
+ <ref name="db-credits.element.email"/>
+ <ref name="db-credits.element.fax"/>
+ <ref name="db-credits.element.otheraddr"/>
+ <ref name="db-credits.element.personname"/>
+ <ref name="db-credits.element.phone"/>
+ <ref name="db-credits.element.pob"/>
+ <ref name="db-credits.element.state"/>
+ <ref name="db-credits.element.street"/>
+ </choice>
+ </zeroOrMore>
+ </mixed>
+ </element>
+ </define>
+
+ <define name="db-credits.element.affiliation">
+ <element name="affiliation">
+ <ref:refname>affiliation</ref:refname>
+ <ref:refpurpose>
+ The institutional affiliation of an individual.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <optional>
+ <ref name="db-credits.element.shortaffil"/>
+ </optional>
+ <zeroOrMore>
+ <ref name="db-credits.element.jobtitle"/>
+ </zeroOrMore>
+ <optional>
+ <ref name="db-credits.element.orgname"/>
+ </optional>
+ <zeroOrMore>
+ <ref name="db-credits.element.orgdiv"/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name="db-credits.element.address"/>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name="db-credits.element.author">
+ <element name="author">
+ <ref:refname>author</ref:refname>
+ <ref:refpurpose>
+ The name of an individual author.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.model.credit"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.authorgroup">
+ <element name="authorgroup">
+ <ref:refname>authorgroup</ref:refname>
+ <ref:refpurpose>
+ Wrapper for author information when a document has
+ multiple authors or collaborators.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <oneOrMore>
+ <choice>
+ <ref name="db-credits.element.author"/>
+ <ref name="db-credits.element.collab"/>
+ <ref name="db-credits.element.editor"/>
+ <ref name="db-credits.element.othercredit"/>
+ <ref name="db-credits.element.translator"/>
+ </choice>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name="db-credits.element.authorinitials">
+ <element name="authorinitials">
+ <ref:refname>authorinitials</ref:refname>
+ <ref:refpurpose>
+ The initials or other short identifier for an author.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.city">
+ <element name="city">
+ <ref:refname>city</ref:refname>
+ <ref:refpurpose>
+ The name of a city in an address.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.collab">
+ <element name="collab">
+ <ref:refname>collab</ref:refname>
+ <ref:refpurpose>
+ The name of an individual editor.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.model.credit"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.contrib">
+ <element name="contrib">
+ <ref:refname>contrib</ref:refname>
+ <ref:refpurpose>
+ A summary of the contributions made to a document
+ by a credited source.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.copyright">
+ <element name="copyright">
+ <ref:refname>copyright</ref:refname>
+ <ref:refpurpose>
+ Copyright information about a document.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <oneOrMore>
+ <ref name="db-credits.element.year"/>
+ </oneOrMore>
+ <zeroOrMore>
+ <ref name="db-credits.element.holder"/>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name="db-credits.element.country">
+ <element name="country">
+ <ref:refname>country</ref:refname>
+ <ref:refpurpose>
+ The name of a country.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.editor">
+ <element name="editor">
+ <ref:refname>editor</ref:refname>
+ <ref:refpurpose>
+ The name of an individual editor.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.model.credit"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.email">
+ <element name="email">
+ <ref:refname>email</ref:refname>
+ <ref:refpurpose>
+ An email address.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.fax">
+ <element name="fax">
+ <ref:refname>fax</ref:refname>
+ <ref:refpurpose>
+ A fax number.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.firstname">
+ <element name="firstname">
+ <ref:refname>firstname</ref:refname>
+ <ref:refpurpose>
+ The first name of a person.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.holder">
+ <element name="holder">
+ <ref:refname>holder</ref:refname>
+ <ref:refpurpose>
+ The name of the individual or organization that holds a copyright.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.honorific">
+ <element name="honorific">
+ <ref:refname>honorific</ref:refname>
+ <ref:refpurpose>
+ The title of a person.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.jobtitle">
+ <element name="jobtitle">
+ <ref:refname>jobtitle</ref:refname>
+ <ref:refpurpose>
+ The title of an individual in an organization.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.lineage">
+ <element name="lineage">
+ <ref:refname>lineage</ref:refname>
+ <ref:refpurpose>
+ The first name of a person.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.orgdiv">
+ <element name="orgdiv">
+ <ref:refname>orgdiv</ref:refname>
+ <ref:refpurpose>
+ The portion of a person's name indicating
+ a relationship to ancestors.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.orgname">
+ <element name="orgname">
+ <ref:refname>orgname</ref:refname>
+ <ref:refpurpose>
+ The name of an organization.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <optional>
+ <attribute name="class">
+ <choice>
+ <value type="string">consortium</value>
+ <value type="string">corporation</value>
+ <value type="string">informal</value>
+ <value type="string">nonprofit</value>
+ </choice>
+ </attribute>
+ </optional>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.otheraddr">
+ <element name="otheraddr">
+ <ref:refname>otheraddr</ref:refname>
+ <ref:refpurpose>
+ Uncategorized information in an address.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.othercredit">
+ <element name="othercredit">
+ <ref:refname>othercredit</ref:refname>
+ <ref:refpurpose>
+ An uncategorized contributor to the document.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.model.credit"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.othername">
+ <element name="othername">
+ <ref:refname>othername</ref:refname>
+ <ref:refpurpose>
+ A component of a person's name that is not a first name,
+ surname, or lineage.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.personblurb">
+ <element name="personblurb">
+ <ref:refname>personblurb</ref:refname>
+ <ref:refpurpose>
+ A short description or note about a person.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.title-optional"/>
+ <ref name="db-credits.stub.block"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.personname">
+ <element name="personname">
+ <ref:refname>personname</ref:refname>
+ <ref:refpurpose>
+ The personal name of an individual.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <choice>
+ <ref name="db-credits.stub.inline-restricted"/>
+ <oneOrMore>
+ <choice>
+ <ref name="db-credits.element.firstname"/>
+ <ref name="db-credits.element.honorific"/>
+ <ref name="db-credits.element.lineage"/>
+ <ref name="db-credits.element.othername"/>
+ <ref name="db-credits.element.surname"/>
+ </choice>
+ </oneOrMore>
+ </choice>
+ </element>
+ </define>
+
+ <define name="db-credits.element.phone">
+ <element name="phone">
+ <ref:refname>phone</ref:refname>
+ <ref:refpurpose>
+ A telephone number.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.pob">
+ <element name="pob">
+ <ref:refname>pob</ref:refname>
+ <ref:refpurpose>
+ A post office box in an address.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.postcode">
+ <element name="postcode">
+ <ref:refname>postcode</ref:refname>
+ <ref:refpurpose>
+ A postal code in an address.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+
+ <define name="db-credits.element.publisher">
+ <element name="publisher">
+ <ref:refname>publisher</ref:refname>
+ <ref:refpurpose>
+ The publisher of a document.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.element.publishername"/>
+ <zeroOrMore>
+ <ref name="db-credits.element.address"/>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name="db-credits.element.publishername">
+ <element name="publishername">
+ <ref:refname>publishername</ref:refname>
+ <ref:refpurpose>
+ The name of the publisher of a document.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.shortaffil">
+ <element name="shortaffil">
+ <ref:refname>shortaffil</ref:refname>
+ <ref:refpurpose>
+ A brief description of an affiliation.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.street">
+ <element name="street">
+ <ref:refname>street</ref:refname>
+ <ref:refpurpose>
+ A street address in an address.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.state">
+ <element name="state">
+ <ref:refname>state</ref:refname>
+ <ref:refpurpose>
+ A state or province in an address.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.surname">
+ <element name="surname">
+ <ref:refname>surname</ref:refname>
+ <ref:refpurpose>
+ A family name; in western cultures the
+ <ref:quote>last name</ref:quote>.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.translator">
+ <element name="translator">
+ <ref:refname>translator</ref:refname>
+ <ref:refpurpose>
+ The name of an individual translator.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.model.credit"/>
+ </element>
+ </define>
+
+ <define name="db-credits.element.year">
+ <element name="year">
+ <ref:refname>year</ref:refname>
+ <ref:refpurpose>
+ The year of publication of a document.
+ </ref:refpurpose>
+
+ <ref name="db-credits.stub.attr-common"/>
+ <ref name="db-credits.stub.inline-restricted"/>
+ </element>
+ </define>
+
+ </div>
+</grammar>
diff --git a/sandbox/mallard/rng/db-list.rng b/sandbox/mallard/rng/db-list.rng
new file mode 100644
index 0000000..b0763ce
--- /dev/null
+++ b/sandbox/mallard/rng/db-list.rng
@@ -0,0 +1,262 @@
+<?xml version='1.0' encoding='utf-8'?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:ref="http://www.gnome.org/~shaunm/mallard/reference">
+
+ <ref:title>DB Module for Lists</ref:title>
+
+ <!-- Stub Content Models -->
+
+ <div ref:role="stub">
+ <ref:title>Stub Content Models</ref:title>
+
+ <define name="db-list.stub.attr-common">
+ <ref:refname>db-list.stub.attr-common</ref:refname>
+ <ref:refpurpose>
+ A stub model for common attributes.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-list.stub.block-optional">
+ <ref:refname>db-list.stub.block-optional</ref:refname>
+ <ref:refpurpose>
+ A stub model for optional block-level content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-list.stub.inline">
+ <ref:refname>db-list.stub.inline</ref:refname>
+ <ref:refpurpose>
+ A stub model for optional inline content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-list.stub.title-optional">
+ <ref:refname>db-list.stub.title-optional</ref:refname>
+ <ref:refpurpose>
+ A stub model for optional title elements.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+ </div>
+
+ <!-- Element Classes -->
+
+ <div ref:role="choice">
+ <ref:title>Element Classes</ref:title>
+
+ <define name="db-list.choice.list">
+ <ref:refname>db-list.choice.list</ref:refname>
+ <ref:refpurpose>
+ A <ref:xmltag>choice</ref:xmltag> containing the block-level list
+ elements defined by this module.
+ </ref:refpurpose>
+
+ <choice>
+ <ref name="db-list.element.itemizedlist"/>
+ <ref name="db-list.element.orderedlist"/>
+ <ref name="db-list.element.segmentedlist"/>
+ <ref name="db-list.element.simplelist"/>
+ <ref name="db-list.element.variablelist"/>
+ </choice>
+ </define>
+ </div>
+
+ <!-- Element Definitions -->
+
+ <div ref:role="element">
+ <ref:title>Element Definitions</ref:title>
+
+ <define name="db-list.element.itemizedlist">
+ <element name="itemizedlist">
+ <ref:refname>itemizedlist</ref:refname>
+ <ref:refpurpose>
+ A list in which each element is marked with a bullet.
+ </ref:refpurpose>
+
+ <ref name="db-list.stub.attr-common"/>
+ <ref name="db-list.stub.title-optional"/>
+ <ref name="db-list.stub.block-optional"/>
+ <oneOrMore>
+ <ref name="db-list.element.listitem"/>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name="db-list.element.listitem">
+ <element name="listitem">
+ <ref:refname>listitem</ref:refname>
+ <ref:refpurpose>
+ An element of a list.
+ </ref:refpurpose>
+
+ <ref name="db-list.stub.attr-common"/>
+ <ref name="db-list.stub.block-optional"/>
+ </element>
+ </define>
+
+ <define name="db-list.element.member">
+ <element name="member">
+ <ref:refname>member</ref:refname>
+ <ref:refpurpose>
+ An element of a simple list.
+ </ref:refpurpose>
+
+ <ref name="db-list.stub.attr-common"/>
+ <ref name="db-list.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-list.element.orderedlist">
+ <element name="orderedlist">
+ <ref:refname>orderedlist</ref:refname>
+ <ref:refpurpose>
+ A list where each element is sequentially numbered.
+ </ref:refpurpose>
+
+ <ref name="db-list.stub.attr-common"/>
+ <ref name="db-list.stub.title-optional"/>
+ <ref name="db-list.stub.block-optional"/>
+ <oneOrMore>
+ <ref name="db-list.element.listitem"/>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name="db-list.element.seg">
+ <element name="seg">
+ <ref:refname>seg</ref:refname>
+ <ref:refpurpose>
+ An element of a list item in a segmented list.
+ </ref:refpurpose>
+
+ <ref name="db-list.stub.attr-common"/>
+ <ref name="db-list.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-list.element.seglistitem">
+ <element name="seglistitem">
+ <ref:refname>seglistitem</ref:refname>
+ <ref:refpurpose>
+ A list item in a segmented list.
+ </ref:refpurpose>
+
+ <ref name="db-list.stub.attr-common"/>
+ <oneOrMore>
+ <ref name="db-list.element.seg"/>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name="db-list.element.segmentedlist">
+ <element name="segmentedlist">
+ <ref:refname>segmentedlist</ref:refname>
+ <ref:refpurpose>
+ A list of sets of elements.
+ </ref:refpurpose>
+
+ <ref name="db-list.stub.attr-common"/>
+ <ref name="db-list.stub.title-optional"/>
+ <oneOrMore>
+ <ref name="db-list.element.segtitle"/>
+ </oneOrMore>
+ <oneOrMore>
+ <ref name="db-list.element.seglistitem"/>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name="db-list.element.segtitle">
+ <element name="segtitle">
+ <ref:refname>segtitle</ref:refname>
+ <ref:refpurpose>
+ A list item in a segmented list.
+ </ref:refpurpose>
+
+ <ref name="db-list.stub.attr-common"/>
+ <ref name="db-list.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-list.element.simplelist">
+ <element name="simplelist">
+ <ref:refname>simplelist</ref:refname>
+ <ref:refpurpose>
+ A list of words or phrases.
+ </ref:refpurpose>
+
+ <ref name="db-list.stub.attr-common"/>
+ <choice>
+ <attribute name="type">
+ <value type="string">inline</value>
+ </attribute>
+ <group>
+ <attribute name="columns">
+ <text/>
+ </attribute>
+ <optional>
+ <attribute name="type">
+ <choice>
+ <value type="string">horiz</value>
+ <value type="string">vert</value>
+ </choice>
+ </attribute>
+ </optional>
+ </group>
+ </choice>
+ <oneOrMore>
+ <ref name="db-list.element.member"/>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name="db-list.element.term">
+ <element name="term">
+ <ref:refname>term</ref:refname>
+ <ref:refpurpose>
+ The word or phrase being defined in a variable list.
+ </ref:refpurpose>
+
+ <ref name="db-list.stub.attr-common"/>
+ <ref name="db-list.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-list.element.variablelist">
+ <element name="variablelist">
+ <ref:refname>variablelist</ref:refname>
+ <ref:refpurpose>
+ A list in which each entry is composed of a set of one or more terms
+ and an associated description.
+ </ref:refpurpose>
+
+ <ref name="db-list.stub.attr-common"/>
+ <ref name="db-list.stub.title-optional"/>
+ <ref name="db-list.stub.block-optional"/>
+ <oneOrMore>
+ <ref name="db-list.element.varlistentry"/>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name="db-list.element.varlistentry">
+ <element name="varlistentry">
+ <ref:refname>varlistentry</ref:refname>
+ <ref:refpurpose>
+ A wrapper for a set of terms and associated descriptions in a
+ variable list.
+ </ref:refpurpose>
+
+ <ref name="db-list.stub.attr-common"/>
+ <oneOrMore>
+ <ref name="db-list.element.term"/>
+ </oneOrMore>
+ <ref name="db-list.element.listitem"/>
+ </element>
+ </define>
+
+ </div>
+</grammar>
diff --git a/sandbox/mallard/rng/db-media.rng b/sandbox/mallard/rng/db-media.rng
new file mode 100644
index 0000000..768c36b
--- /dev/null
+++ b/sandbox/mallard/rng/db-media.rng
@@ -0,0 +1,271 @@
+<?xml version='1.0' encoding='utf-8'?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:ref="http://www.gnome.org/~shaunm/mallard/reference">
+
+ <ref:title>DB Module for Media Objects</ref:title>
+
+ <!-- Stub Content Models -->
+
+ <div ref:role="stub">
+ <ref:title>Stub Content Models</ref:title>
+
+ <define name="db-media.stub.attr-common">
+ <ref:refname>db-media.stub.attr-common</ref:refname>
+ <ref:refpurpose>
+ A stub model for common attributes.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-media.stub.block">
+ <ref:refname>db-media.stub.block</ref:refname>
+ <ref:refpurpose>
+ A stub model for block-level content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-media.stub.caption">
+ <ref:refname>db-media.stub.caption</ref:refname>
+ <ref:refpurpose>
+ A stub model for a caption element.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-media.stub.info">
+ <ref:refname>db-media.stub.info</ref:refname>
+ <ref:refpurpose>
+ A stub model for a meta-information element.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-media.stub.inline">
+ <ref:refname>db-media.stub.inline</ref:refname>
+ <ref:refpurpose>
+ A stub model for inline content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+ </div>
+
+ <!-- Element Classes -->
+
+ <div ref:role="choice">
+ <ref:title>Element Classes</ref:title>
+
+ <define name="db-media.choice.media">
+ <ref:refname>db-media.choice.media</ref:refname>
+ <ref:refpurpose>
+ A <ref:xmltag>choice</ref:xmltag> containing the block-level media
+ elements defined by this module.
+ </ref:refpurpose>
+
+ <choice>
+ <ref name="db-media.element.mediaobject"/>
+ </choice>
+ </define>
+
+ <define name="db-media.choice.inlinemedia">
+ <ref:refname>db-media.choice.inlinemedia</ref:refname>
+ <ref:refpurpose>
+ A <ref:xmltag>choice</ref:xmltag> containing the inline media
+ elements defined by this module.
+ </ref:refpurpose>
+
+ <choice>
+ <ref name="db-media.element.inlinemediaobject"/>
+ </choice>
+ </define>
+
+ <define name="db-media.choice.object">
+ <ref:refname>db-media.choice.object</ref:refname>
+ <ref:refpurpose>
+ The specific object elements allowed in the media container elements.
+ </ref:refpurpose>
+
+ <choice>
+ <ref name="db-media.element.audioobject"/>
+ <ref name="db-media.element.imageobject"/>
+ <ref name="db-media.element.textobject"/>
+ <ref name="db-media.element.videoobject"/>
+ </choice>
+ </define>
+ </div>
+
+ <!-- Common Attribute Sets -->
+
+ <div ref:role="attr">
+ <ref:title>Common Attribute Sets</ref:title>
+
+ <define name="db-media.attr.mediadata">
+ <group>
+ <attribute name="type"/>
+ <choice>
+ <attribute name="fileref"/>
+ <attribute name="entityref"/>
+ </choice>
+ </group>
+ </define>
+
+ <define name="db-media.attr.imagedata">
+ <group>
+ <optional><attribute name="contentheight"/></optional>
+ <optional><attribute name="contentwidth"/></optional>
+ <optional><attribute name="height"/></optional>
+ <optional><attribute name="scale"/></optional>
+ <optional><attribute name="scalefit"/></optional>
+ <optional><attribute name="width"/></optional>
+ </group>
+ </define>
+ </div>
+
+ <!-- Element Definitions -->
+
+ <div ref:role="element">
+ <ref:title>Element Definitions</ref:title>
+
+ <define name="db-media.element.audiodata">
+ <element name="audiodata">
+ <ref:refname>audiodata</ref:refname>
+ <ref:refpurpose>
+ A pointer to external audio data.
+ </ref:refpurpose>
+
+ <ref name="db-media.stub.attr-common"/>
+ <ref name="db-media.attr.mediadata"/>
+ </element>
+ </define>
+
+ <define name="db-media.element.audioobject">
+ <element name="audioobject">
+ <ref:refname>audioobject</ref:refname>
+ <ref:refpurpose>
+ A wrapper for audio data and associated meta-information.
+ </ref:refpurpose>
+
+ <ref name="db-media.stub.attr-common"/>
+ <ref name="db-media.stub.info"/>
+ <ref name="db-media.element.audiodata"/>
+ </element>
+ </define>
+
+ <define name="db-media.element.imagedata">
+ <element name="imagedata">
+ <ref:refname>imagedata</ref:refname>
+ <ref:refpurpose>
+ A pointer to external image data.
+ </ref:refpurpose>
+
+ <ref name="db-media.stub.attr-common"/>
+ <ref name="db-media.attr.mediadata"/>
+ <ref name="db-media.attr.imagedata"/>
+ </element>
+ </define>
+
+ <define name="db-media.element.imageobject">
+ <element name="imageobject">
+ <ref:refname>imageobject</ref:refname>
+ <ref:refpurpose>
+ A wrapper for image data and associated meta-information.
+ </ref:refpurpose>
+
+ <ref name="db-media.stub.attr-common"/>
+ <ref name="db-media.stub.info"/>
+ <ref name="db-media.element.imagedata"/>
+ </element>
+ </define>
+
+ <define name="db-media.element.inlinemediaobject">
+ <element name="inlinemediaobject">
+ <ref:refname>inlinemediaobject</ref:refname>
+ <ref:refpurpose>
+ An inline media object.
+ </ref:refpurpose>
+
+ <ref name="db-media.stub.attr-common"/>
+ <ref name="db-media.stub.info"/>
+ <oneOrMore>
+ <ref name="db-media.choice.object"/>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name="db-media.element.mediaobject">
+ <element name="mediaobject">
+ <ref:refname>mediaobject</ref:refname>
+ <ref:refpurpose>
+ A displayed media object.
+ </ref:refpurpose>
+
+ <ref name="db-media.stub.attr-common"/>
+ <ref name="db-media.stub.info"/>
+ <oneOrMore>
+ <ref name="db-media.choice.object"/>
+ </oneOrMore>
+ <ref name="db-media.stub.caption"/>
+ </element>
+ </define>
+
+ <define name="db-media.element.textdata">
+ <element name="textdata">
+ <ref:refname>textdata</ref:refname>
+ <ref:refpurpose>
+ A pointer to external text data.
+ </ref:refpurpose>
+
+ <ref name="db-media.stub.attr-common"/>
+ <ref name="db-media.attr.mediadata"/>
+ <optional>
+ <attribute name="encoding"/>
+ </optional>
+ </element>
+ </define>
+
+ <define name="db-media.element.textobject">
+ <element name="textobject">
+ <ref:refname>textobject</ref:refname>
+ <ref:refpurpose>
+ A wrapper for a text description of an object and associated
+ meta-information.
+ </ref:refpurpose>
+
+ <ref name="db-media.stub.attr-common"/>
+ <ref name="db-media.stub.info"/>
+ <choice>
+ <ref name="db-media.element.textdata"/>
+ <ref name="db-media.stub.block"/>
+ <ref name="db-media.stub.inline"/>
+ </choice>
+ </element>
+ </define>
+
+ <define name="db-media.element.videodata">
+ <element name="videodata">
+ <ref:refname>videodata</ref:refname>
+ <ref:refpurpose>
+ A pointer to external video data.
+ </ref:refpurpose>
+
+ <ref name="db-media.stub.attr-common"/>
+ <ref name="db-media.attr.mediadata"/>
+ <ref name="db-media.attr.imagedata"/>
+ </element>
+ </define>
+
+ <define name="db-media.element.videoobject">
+ <element name="videoobject">
+ <ref:refname>videoobject</ref:refname>
+ <ref:refpurpose>
+ A wrapper for video data and associated meta-information.
+ </ref:refpurpose>
+
+ <ref name="db-media.stub.attr-common"/>
+ <ref name="db-media.stub.info"/>
+ <ref name="db-media.element.videodata"/>
+ </element>
+ </define>
+
+ </div>
+</grammar>
diff --git a/sandbox/mallard/rng/db-para.rng b/sandbox/mallard/rng/db-para.rng
new file mode 100644
index 0000000..0c209fd
--- /dev/null
+++ b/sandbox/mallard/rng/db-para.rng
@@ -0,0 +1,113 @@
+<?xml version='1.0' encoding='utf-8'?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:ref="http://www.gnome.org/~shaunm/mallard/reference">
+
+ <ref:title>DB Module for Titles</ref:title>
+
+ <!-- Stub Content Models -->
+
+ <div ref:role="stub">
+ <ref:title>Stub Content Models</ref:title>
+
+ <define name="db-para.stub.attr-common">
+ <ref:refname>db-para.stub.attr-common</ref:refname>
+ <ref:refpurpose>
+ A stub model for common attributes.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-para.stub.block">
+ <ref:refname>db-para.stub.block</ref:refname>
+ <ref:refpurpose>
+ A stub model for block-level content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-para.stub.inline">
+ <ref:refname>db-para.stub.inline</ref:refname>
+ <ref:refpurpose>
+ A stub model for inline content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-para.stub.title">
+ <ref:refname>db-para.stub.title</ref:refname>
+ <ref:refpurpose>
+ A stub model for title elements.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+ </div>
+
+ <!-- Element Classes -->
+
+ <div ref:role="choice">
+ <ref:title>Element Classes</ref:title>
+
+ <define name="db-para.choice.para">
+ <ref:refname>db-para.choice.para</ref:refname>
+ <ref:refpurpose>
+ A <ref:xmltag>choice</ref:xmltag> containing the block-level list
+ elements defined by this module.
+ </ref:refpurpose>
+
+ <choice>
+ <ref name="db-para.element.formalpara"/>
+ <ref name="db-para.element.para"/>
+ <ref name="db-para.element.simpara"/>
+ </choice>
+ </define>
+ </div>
+
+ <!-- Element Definitions -->
+
+ <div ref:role="element">
+ <ref:title>Element Definitions</ref:title>
+
+ <define name="db-para.element.formalpara">
+ <element name="formalpara">
+ <ref:refname>formalpara</ref:refname>
+ <ref:refpurpose>
+ A paragraph.
+ </ref:refpurpose>
+
+ <ref name="db-para.stub.attr-common"/>
+ <ref name="db-para.stub.title"/>
+ <ref name="db-para.element.para"/>
+ </element>
+ </define>
+
+ <define name="db-para.element.para">
+ <element name="para">
+ <ref:refname>para</ref:refname>
+ <ref:refpurpose>
+ A paragraph.
+ </ref:refpurpose>
+
+ <ref name="db-para.stub.attr-common"/>
+ <interleave>
+ <ref name="db-para.stub.inline"/>
+ <optional>
+ <ref name="db-para.stub.block"/>
+ </optional>
+ </interleave>
+ </element>
+ </define>
+
+ <define name="db-para.element.simpara">
+ <element name="simpara">
+ <ref:refname>simpara</ref:refname>
+ <ref:refpurpose>
+ A paragraph that contains only text and inline markup.
+ </ref:refpurpose>
+
+ <ref name="db-para.stub.attr-common"/>
+ <ref name="db-para.stub.inline"/>
+ </element>
+ </define>
+
+ </div>
+</grammar>
diff --git a/sandbox/mallard/rng/db-title.rng b/sandbox/mallard/rng/db-title.rng
new file mode 100644
index 0000000..a8de05d
--- /dev/null
+++ b/sandbox/mallard/rng/db-title.rng
@@ -0,0 +1,109 @@
+<?xml version='1.0' encoding='utf-8'?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:ref="http://www.gnome.org/~shaunm/mallard/reference">
+
+ <ref:title>DB Module for Titles</ref:title>
+
+ <!-- Stub Content Models -->
+
+ <div ref:role="stub">
+ <ref:title>Stub Content Models</ref:title>
+
+ <define name="db-title.stub.attr-common">
+ <ref:refname>db-title.stub.attr-common</ref:refname>
+ <ref:refpurpose>
+ A stub model for common attributes.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+
+ <define name="db-title.stub.inline">
+ <ref:refname>db-title.stub.inline</ref:refname>
+ <ref:refpurpose>
+ A stub model for inline content.
+ </ref:refpurpose>
+ <notAllowed/>
+ </define>
+ </div>
+
+ <!-- Content Model Implementations -->
+
+ <div ref:role="model">
+ <ref:title>Content Model Implementations</ref:title>
+
+ <define name="db-title.model.title">
+ <ref:refname>db-title.model.title</ref:refname>
+ <ref:refpurpose>
+ A model allowing <ref:xmltag>title</ref:xmltag> and
+ <ref:xmltag>titleabbrev</ref:xmltag>, which can be used
+ to implement the stub title model for many modules.
+ </ref:refpurpose>
+
+ <ref name="db-title.element.title"/>
+ <optional>
+ <ref name="db-title.element.titleabbrev"/>
+ </optional>
+ </define>
+
+ <define name="db-title.model.subtitle">
+ <ref:refname>db-title.model.subtitle</ref:refname>
+ <ref:refpurpose>
+ A model allowing <ref:xmltag>title</ref:xmltag>,
+ <ref:xmltag>titleabbrev</ref:xmltag>, and
+ <ref:xmltag>subtitle</ref:xmltag>, which can be used
+ to implement the stub title model for many modules.
+ </ref:refpurpose>
+
+ <ref name="db-title.element.title"/>
+ <optional>
+ <ref name="db-title.element.titleabbrev"/>
+ </optional>
+ <optional>
+ <ref name="db-title.element.subtitle"/>
+ </optional>
+ </define>
+ </div>
+
+ <!-- Element Definitions -->
+
+ <div ref:role="element">
+ <ref:title>Element Definitions</ref:title>
+
+ <define name="db-title.element.subtitle">
+ <element name="subtitle">
+ <ref:refname>subtitle</ref:refname>
+ <ref:refpurpose>
+ The subtitle of a document or section.
+ </ref:refpurpose>
+
+ <ref name="db-title.stub.attr-common"/>
+ <ref name="db-title.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-title.element.title">
+ <element name="title">
+ <ref:refname>title</ref:refname>
+ <ref:refpurpose>
+ The title of a document or section.
+ </ref:refpurpose>
+
+ <ref name="db-title.stub.attr-common"/>
+ <ref name="db-title.stub.inline"/>
+ </element>
+ </define>
+
+ <define name="db-title.element.titleabbrev">
+ <element name="titleabbrev">
+ <ref:refname>titleabbrev</ref:refname>
+ <ref:refpurpose>
+ The abbreviation of a title.
+ </ref:refpurpose>
+
+ <ref name="db-title.stub.attr-common"/>
+ <ref name="db-title.stub.inline"/>
+ </element>
+ </define>
+
+ </div>
+</grammar>
diff --git a/test/testdoc1/.cvsignore b/test/testdoc1/.cvsignore
new file mode 100644
index 0000000..b0a4030
--- /dev/null
+++ b/test/testdoc1/.cvsignore
@@ -0,0 +1,8 @@
+Makefile
+Makefile.in
+aclocal.m4
+autom4te.cache
+config.log
+config.status
+configure
+gnome-doc-docbook-rule.make
diff --git a/test/testdoc1/help/.cvsignore b/test/testdoc1/help/.cvsignore
new file mode 100644
index 0000000..282522d
--- /dev/null
+++ b/test/testdoc1/help/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/test/testdoc1/help/testdoc1/.cvsignore b/test/testdoc1/help/testdoc1/.cvsignore
new file mode 100644
index 0000000..e6da3d7
--- /dev/null
+++ b/test/testdoc1/help/testdoc1/.cvsignore
@@ -0,0 +1,5 @@
+Makefile
+Makefile.in
+testdoc1.make
+
+
diff --git a/xslt/.cvsignore b/xslt/.cvsignore
new file mode 100644
index 0000000..282522d
--- /dev/null
+++ b/xslt/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/xslt/gettext/.cvsignore b/xslt/gettext/.cvsignore
new file mode 100644
index 0000000..3568ef2
--- /dev/null
+++ b/xslt/gettext/.cvsignore
@@ -0,0 +1,3 @@
+Makefile
+Makefile.in
+l10n.xml