summaryrefslogtreecommitdiff
path: root/slides/schema/relaxng/index.rng
diff options
context:
space:
mode:
Diffstat (limited to 'slides/schema/relaxng/index.rng')
-rw-r--r--slides/schema/relaxng/index.rng773
1 files changed, 773 insertions, 0 deletions
diff --git a/slides/schema/relaxng/index.rng b/slides/schema/relaxng/index.rng
new file mode 100644
index 0000000..3241fc9
--- /dev/null
+++ b/slides/schema/relaxng/index.rng
@@ -0,0 +1,773 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ This file is part of DocBook V5.0
+
+ Copyright 1992-2008 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: index.rnc 8931 2010-10-20 13:29:20Z 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/.
+
+ ======================================================================
+-->
+<grammar ns="http://docbook.org/ns/docbook" xmlns:db="http://docbook.org/ns/docbook" xmlns:s="http://purl.oclc.org/dsdl/schematron" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <start combine="choice">
+ <choice>
+ <ref name="db.setindex"/>
+ <ref name="db.index"/>
+ <ref name="db.indexdiv"/>
+ </choice>
+ </start>
+ <define name="db.ubiq.inlines" combine="choice">
+ <ref name="db.indexterm"/>
+ </define>
+ <define name="db.indexing.inlines" combine="choice">
+ <ref name="db.indexterm"/>
+ </define>
+ <define name="db.nopara.blocks" combine="choice">
+ <ref name="db.indexterm"/>
+ </define>
+ <define name="db.navigation.components" combine="choice">
+ <ref name="db.index"/>
+ </define>
+ <define name="db.setindex.components" combine="choice">
+ <ref name="db.setindex"/>
+ </define>
+ <define name="db.info.elements" combine="choice">
+ <ref name="db.itermset"/>
+ </define>
+ <!-- ====================================================================== -->
+ <define name="db.significance.enumeration">
+ <choice>
+ <value>normal</value>
+ <a:documentation>Normal</a:documentation>
+ <value>preferred</value>
+ <a:documentation>Preferred</a:documentation>
+ </choice>
+ </define>
+ <define name="db.significance.attribute">
+ <attribute name="significance">
+ <db:refpurpose>Specifies the significance of the term</db:refpurpose>
+ <ref name="db.significance.enumeration"/>
+ </attribute>
+ </define>
+ <define name="db.zone.attribute">
+ <attribute name="zone">
+ <db:refpurpose>Specifies the IDs of the elements to which this term applies</db:refpurpose>
+ <data type="IDREFS"/>
+ </attribute>
+ </define>
+ <define name="db.indexterm.pagenum.attribute">
+ <attribute name="pagenum">
+ <db:refpurpose>Indicates the page on which this index term occurs in some version of the printed document</db:refpurpose>
+ </attribute>
+ </define>
+ <define name="db.scope.enumeration">
+ <choice>
+ <value>all</value>
+ <a:documentation>All indexes</a:documentation>
+ <value>global</value>
+ <a:documentation>The global index (as for a combined index of a set of books)</a:documentation>
+ <value>local</value>
+ <a:documentation>The local index (the index for this document only)</a:documentation>
+ </choice>
+ </define>
+ <define name="db.scope.attribute">
+ <attribute name="scope">
+ <db:refpurpose>Specifies the scope of the index term</db:refpurpose>
+ <ref name="db.scope.enumeration"/>
+ </attribute>
+ </define>
+ <define name="db.sortas.attribute">
+ <attribute name="sortas">
+ <db:refpurpose>Specifies the string by which the term is to be sorted; if unspecified, the term content is used</db:refpurpose>
+ </attribute>
+ </define>
+ <define name="db.index.type.attribute">
+ <attribute name="type">
+ <db:refpurpose>Specifies the target index for this term</db:refpurpose>
+ </attribute>
+ </define>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>itermset</db:refname>
+ <db:refpurpose>A set of index terms in the meta-information of a document</db:refpurpose>
+ <define name="db.itermset.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.itermset.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.itermset.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ </interleave>
+ </define>
+ <define name="db.itermset">
+ <element name="itermset">
+ <ref name="db.itermset.attlist"/>
+ <oneOrMore>
+ <ref name="db.indexterm.singular"/>
+ </oneOrMore>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <define name="db.indexterm.contentmodel">
+ <optional>
+ <ref name="db.primary"/>
+ </optional>
+ <optional>
+ <choice>
+ <group>
+ <ref name="db.secondary"/>
+ <optional>
+ <choice>
+ <group>
+ <ref name="db.tertiary"/>
+ <optional>
+ <choice>
+ <ref name="db.see"/>
+ <oneOrMore>
+ <ref name="db.seealso"/>
+ </oneOrMore>
+ </choice>
+ </optional>
+ </group>
+ <ref name="db.see"/>
+ <oneOrMore>
+ <ref name="db.seealso"/>
+ </oneOrMore>
+ </choice>
+ </optional>
+ </group>
+ <ref name="db.see"/>
+ <oneOrMore>
+ <ref name="db.seealso"/>
+ </oneOrMore>
+ </choice>
+ </optional>
+ </define>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>indexterm</db:refname>
+ <db:refpurpose>A wrapper for an indexed term</db:refpurpose>
+ <define name="db.indexterm.singular.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.indexterm.singular.class.attribute">
+ <attribute name="class">
+ <db:refpurpose>Identifies the class of index term</db:refpurpose>
+ <value>singular</value>
+ <a:documentation>A singular index term</a:documentation>
+ </attribute>
+ </define>
+ <define name="db.indexterm.singular.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.indexterm.singular.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ <optional>
+ <ref name="db.significance.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.zone.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.indexterm.pagenum.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.scope.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.index.type.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.indexterm.singular.class.attribute"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="db.indexterm.singular">
+ <element name="indexterm">
+ <ref name="db.indexterm.singular.attlist"/>
+ <ref name="db.indexterm.contentmodel"/>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>indexterm</db:refname>
+ <db:refpurpose>A wrapper for an indexed term that covers a range</db:refpurpose>
+ <define name="db.indexterm.startofrange.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.indexterm.startofrange.class.attribute">
+ <attribute name="class">
+ <db:refpurpose>Identifies the class of index term</db:refpurpose>
+ <value>startofrange</value>
+ <a:documentation>The start of a range</a:documentation>
+ </attribute>
+ </define>
+ <define name="db.indexterm.startofrange.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.indexterm.startofrange.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ <optional>
+ <ref name="db.significance.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.zone.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.indexterm.pagenum.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.scope.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.index.type.attribute"/>
+ </optional>
+ <ref name="db.indexterm.startofrange.class.attribute"/>
+ </interleave>
+ </define>
+ <define name="db.indexterm.startofrange">
+ <element name="indexterm">
+ <ref name="db.indexterm.startofrange.attlist"/>
+ <ref name="db.indexterm.contentmodel"/>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>indexterm</db:refname>
+ <db:refpurpose>Identifies the end of a range associated with an indexed term</db:refpurpose>
+ <define name="db.indexterm.endofrange.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.indexterm.endofrange.class.attribute">
+ <attribute name="class">
+ <db:refpurpose>Identifies the class of index term</db:refpurpose>
+ <value>endofrange</value>
+ <a:documentation>The end of a range</a:documentation>
+ </attribute>
+ </define>
+ <define name="db.indexterm.endofrange.startref.attribute">
+ <attribute name="startref">
+ <db:refpurpose>Points to the start of the range</db:refpurpose>
+ <data type="IDREF"/>
+ </attribute>
+ </define>
+ <define name="db.indexterm.endofrange.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.indexterm.endofrange.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ <ref name="db.indexterm.endofrange.class.attribute"/>
+ <ref name="db.indexterm.endofrange.startref.attribute"/>
+ </interleave>
+ </define>
+ <define name="db.indexterm.endofrange">
+ <element name="indexterm">
+ <ref name="db.indexterm.endofrange.attlist"/>
+ <empty/>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>indexterm</db:refname>
+ <db:refpurpose>A wrapper for terms to be indexed</db:refpurpose>
+ <define name="db.indexterm">
+ <choice>
+ <ref name="db.indexterm.singular"/>
+ <ref name="db.indexterm.startofrange"/>
+ <ref name="db.indexterm.endofrange"/>
+ </choice>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>primary</db:refname>
+ <db:refpurpose>The primary word or phrase under which an index term should be sorted</db:refpurpose>
+ <define name="db.primary.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.primary.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.primary.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ <optional>
+ <ref name="db.sortas.attribute"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="db.primary">
+ <element name="primary">
+ <ref name="db.primary.attlist"/>
+ <zeroOrMore>
+ <ref name="db.all.inlines"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>secondary</db:refname>
+ <db:refpurpose>A secondary word or phrase in an index term</db:refpurpose>
+ <define name="db.secondary.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.secondary.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.secondary.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ <optional>
+ <ref name="db.sortas.attribute"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="db.secondary">
+ <element name="secondary">
+ <ref name="db.secondary.attlist"/>
+ <zeroOrMore>
+ <ref name="db.all.inlines"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>tertiary</db:refname>
+ <db:refpurpose>A tertiary word or phrase in an index term</db:refpurpose>
+ <define name="db.tertiary.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.tertiary.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.tertiary.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ <optional>
+ <ref name="db.sortas.attribute"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="db.tertiary">
+ <element name="tertiary">
+ <ref name="db.tertiary.attlist"/>
+ <zeroOrMore>
+ <ref name="db.all.inlines"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>see</db:refname>
+ <db:refpurpose>Part of an index term directing the reader instead to another entry in the index</db:refpurpose>
+ <define name="db.see.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.see.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.see.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ </interleave>
+ </define>
+ <define name="db.see">
+ <element name="see">
+ <ref name="db.see.attlist"/>
+ <zeroOrMore>
+ <ref name="db.all.inlines"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>seealso</db:refname>
+ <db:refpurpose>Part of an index term directing the reader also to another entry in the index</db:refpurpose>
+ <define name="db.seealso.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.seealso.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.seealso.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ </interleave>
+ </define>
+ <define name="db.seealso">
+ <element name="seealso">
+ <ref name="db.seealso.attlist"/>
+ <zeroOrMore>
+ <ref name="db.all.inlines"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>index</db:refname>
+ <db:refpurpose>An index to a book or part of a book</db:refpurpose>
+ <define name="db.index.status.attribute">
+ <ref name="db.status.attribute"/>
+ </define>
+ <define name="db.index.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.index.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.index.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ <optional>
+ <ref name="db.label.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.index.status.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.index.type.attribute"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="db.index.info">
+ <ref name="db._info"/>
+ </define>
+ <!--
+ Yes, db.indexdiv* and db.indexentry*; that way an <index/> is valid.
+ Authors can use an empty index to indicate where a generated index should
+ appear.
+ -->
+ <define name="db.index">
+ <element name="index">
+ <ref name="db.index.attlist"/>
+ <ref name="db.index.info"/>
+ <zeroOrMore>
+ <ref name="db.all.blocks"/>
+ </zeroOrMore>
+ <choice>
+ <zeroOrMore>
+ <ref name="db.indexdiv"/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name="db.indexentry"/>
+ </zeroOrMore>
+ <ref name="db.segmentedlist"/>
+ </choice>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>setindex</db:refname>
+ <db:refpurpose>An index to a set of books</db:refpurpose>
+ <define name="db.setindex.status.attribute">
+ <ref name="db.status.attribute"/>
+ </define>
+ <define name="db.setindex.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.setindex.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.setindex.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ <optional>
+ <ref name="db.label.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.setindex.status.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.index.type.attribute"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="db.setindex.info">
+ <ref name="db._info"/>
+ </define>
+ <define name="db.setindex">
+ <element name="setindex">
+ <ref name="db.setindex.attlist"/>
+ <ref name="db.setindex.info"/>
+ <zeroOrMore>
+ <ref name="db.all.blocks"/>
+ </zeroOrMore>
+ <choice>
+ <zeroOrMore>
+ <ref name="db.indexdiv"/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name="db.indexentry"/>
+ </zeroOrMore>
+ </choice>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>indexdiv</db:refname>
+ <db:refpurpose>A division in an index</db:refpurpose>
+ <define name="db.indexdiv.status.attribute">
+ <ref name="db.status.attribute"/>
+ </define>
+ <define name="db.indexdiv.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.indexdiv.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.indexdiv.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ <optional>
+ <ref name="db.label.attribute"/>
+ </optional>
+ <optional>
+ <ref name="db.indexdiv.status.attribute"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="db.indexdiv.info">
+ <ref name="db._info.title.req"/>
+ </define>
+ <define name="db.indexdiv">
+ <element name="indexdiv">
+ <ref name="db.indexdiv.attlist"/>
+ <ref name="db.indexdiv.info"/>
+ <zeroOrMore>
+ <ref name="db.all.blocks"/>
+ </zeroOrMore>
+ <choice>
+ <oneOrMore>
+ <ref name="db.indexentry"/>
+ </oneOrMore>
+ <ref name="db.segmentedlist"/>
+ </choice>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>indexentry</db:refname>
+ <db:refpurpose>An entry in an index</db:refpurpose>
+ <define name="db.indexentry.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.indexentry.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.indexentry.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <ref name="db.common.linking.attributes"/>
+ </interleave>
+ </define>
+ <define name="db.indexentry">
+ <element name="indexentry">
+ <ref name="db.indexentry.attlist"/>
+ <ref name="db.primaryie"/>
+ <zeroOrMore>
+ <choice>
+ <ref name="db.seeie"/>
+ <ref name="db.seealsoie"/>
+ </choice>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name="db.secondaryie"/>
+ <zeroOrMore>
+ <choice>
+ <ref name="db.seeie"/>
+ <ref name="db.seealsoie"/>
+ <ref name="db.tertiaryie"/>
+ </choice>
+ </zeroOrMore>
+ </zeroOrMore>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>primaryie</db:refname>
+ <db:refpurpose>A primary term in an index entry, not in the text</db:refpurpose>
+ <define name="db.primaryie.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.primaryie.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.primaryie.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <optional>
+ <ref name="db.linkends.attribute"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="db.primaryie">
+ <element name="primaryie">
+ <ref name="db.primaryie.attlist"/>
+ <zeroOrMore>
+ <ref name="db.all.inlines"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>secondaryie</db:refname>
+ <db:refpurpose>A secondary term in an index entry, rather than in the text</db:refpurpose>
+ <define name="db.secondaryie.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.secondaryie.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.secondaryie.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <optional>
+ <ref name="db.linkends.attribute"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="db.secondaryie">
+ <element name="secondaryie">
+ <ref name="db.secondaryie.attlist"/>
+ <zeroOrMore>
+ <ref name="db.all.inlines"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>tertiaryie</db:refname>
+ <db:refpurpose>A tertiary term in an index entry, rather than in the text</db:refpurpose>
+ <define name="db.tertiaryie.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.tertiaryie.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.tertiaryie.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <optional>
+ <ref name="db.linkends.attribute"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="db.tertiaryie">
+ <element name="tertiaryie">
+ <ref name="db.tertiaryie.attlist"/>
+ <zeroOrMore>
+ <ref name="db.all.inlines"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>seeie</db:refname>
+ <db:refpurpose>A <db:quote>See</db:quote>
+entry in an index, rather than in the text</db:refpurpose>
+ <define name="db.seeie.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.seeie.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.seeie.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <optional>
+ <ref name="db.linkend.attribute"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="db.seeie">
+ <element name="seeie">
+ <ref name="db.seeie.attlist"/>
+ <zeroOrMore>
+ <ref name="db.all.inlines"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ </div>
+ <!-- ====================================================================== -->
+ <div>
+ <db:refname>seealsoie</db:refname>
+ <db:refpurpose>A <db:quote>See also</db:quote>
+ entry in an index, rather than in the text</db:refpurpose>
+ <define name="db.seealsoie.role.attribute">
+ <attribute name="role"/>
+ </define>
+ <define name="db.seealsoie.attlist">
+ <interleave>
+ <optional>
+ <ref name="db.seealsoie.role.attribute"/>
+ </optional>
+ <ref name="db.common.attributes"/>
+ <optional>
+ <ref name="db.linkends.attribute"/>
+ </optional>
+ </interleave>
+ </define>
+ <define name="db.seealsoie">
+ <element name="seealsoie">
+ <ref name="db.seealsoie.attlist"/>
+ <zeroOrMore>
+ <ref name="db.all.inlines"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ </div>
+</grammar>