<?xml version="1.0" encoding="UTF-8"?>
<!-- The CitationList XML DTD - encodes the citation information extracted from a SGML or XML document for use with RefDB -->
<!-- (C) 2001 Markus Hoenicka <markus@mhoenicka.de> -->
<!-- $Id: citationlistx.dtd,v 1.4.2.1 2006/03/26 00:44:31 mhoenicka Exp $ -->
<!-- Invoke with the following declaration -->
<!-- <!DOCTYPE CITATIONLIST PUBLIC "-//Markus Hoenicka//DTD CitationList V1.0//EN" "http://refdb.sourceforge.net/dtd/citationlistx-1.0/citationlistx.dtd"> -->
<!--
  The RefDB DSSSL stylesheet to extract bibliography information
  creates uppercase element names (courtesy of openjade), whereas the
  XSL stylesheets create lowercase names. This DTD covers both cases, so
  either output is valid
-->
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <define name="CITATIONLIST">
    <element name="CITATIONLIST">
      <ref name="attlist.CITATIONLIST"/>
      <oneOrMore>
        <ref name="CITATION"/>
      </oneOrMore>
    </element>
  </define>
  <define name="attlist.CITATIONLIST" combine="interleave">
    <empty/>
  </define>
  <define name="CITATION">
    <element name="CITATION">
      <ref name="attlist.CITATION"/>
      <oneOrMore>
        <ref name="XREF"/>
      </oneOrMore>
    </element>
  </define>
  <define name="attlist.CITATION" combine="interleave">
    <empty/>
  </define>
  <define name="XREF">
    <element name="XREF">
      <ref name="attlist.XREF"/>
      <text/>
    </element>
  </define>
  <define name="attlist.XREF" combine="interleave">
    <optional>
      <attribute name="ENDTERM">
        <data type="ID"/>
      </attribute>
    </optional>
  </define>
  <define name="citationlist">
    <element name="citationlist">
      <ref name="attlist.citationlist"/>
      <oneOrMore>
        <ref name="citation"/>
      </oneOrMore>
    </element>
  </define>
  <define name="attlist.citationlist" combine="interleave">
    <empty/>
  </define>
  <define name="citation">
    <element name="citation">
      <ref name="attlist.citation"/>
      <oneOrMore>
        <ref name="xref"/>
      </oneOrMore>
    </element>
  </define>
  <define name="attlist.citation" combine="interleave">
    <empty/>
  </define>
  <define name="xref">
    <element name="xref">
      <ref name="attlist.xref"/>
      <text/>
    </element>
  </define>
  <define name="attlist.xref" combine="interleave">
    <optional>
      <attribute name="endterm">
        <data type="ID"/>
      </attribute>
    </optional>
  </define>
  <start>
    <choice>
      <ref name="citationlist"/>
      <ref name="CITATIONLIST"/>
    </choice>
  </start>
</grammar>
