add schemas and catalog

Change-Id: I271e13d4b6db999f6d56c2f923a1d7c493fee172
diff --git a/KorAP_schemas/header.rng b/KorAP_schemas/header.rng
new file mode 100644
index 0000000..93d758b
--- /dev/null
+++ b/KorAP_schemas/header.rng
@@ -0,0 +1,2789 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- IDSXCES-Header -->
+<!---->
+<!-- $Id: ids.xheader.elt 41 2007-09-14 09:55:13Z kupietz $ -->
+<!-- based on: -->
+<!---->
+<!-- THE CES HEADER -->
+<!---->
+<!-- This is the entity ces.header used in the -->
+<!-- Corpus Encoding Standard DTDs. -->
+<!---->
+<!-- It is referred to in those DTDs as -->
+<!-- PUBLIC "-//CES//ENTITIES Header//EN" -->
+<!---->
+<!---->
+<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://ids-mannheim.de/ns/KorAP">
+  <start>
+    <ref name="header"/>
+  </start>
+  <define name="a.global">
+    <optional>
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="n"/>
+    </optional>
+    <optional>
+      <attribute name="xml:lang"/>
+    </optional>
+    <optional>
+      <attribute name="lang">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+  </define>
+  <define name="a.header">
+    <ref name="a.global"/>
+  </define>
+  <define name="a.declarable">
+    <optional>
+      <attribute name="default" a:defaultValue="n">
+        <choice>
+          <value>y</value>
+          <value>n</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="header">
+    <element name="header">
+      <ref name="attlist.header"/>
+      <ref name="idsHeader"/>
+    </element>
+  </define>
+  <define name="attlist.header" combine="interleave">
+    <optional>
+      <attribute name="docid">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+  </define>
+  <define name="idsHeader">
+    <element name="idsHeader">
+      <ref name="attlist.idsHeader"/>
+      <ref name="fileDesc"/>
+      <optional>
+        <ref name="encodingDesc"/>
+      </optional>
+      <optional>
+        <ref name="profileDesc"/>
+      </optional>
+      <optional>
+        <ref name="revisionDesc"/>
+      </optional>
+    </element>
+  </define>
+  <define name="attlist.idsHeader" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="type" a:defaultValue="text"/>
+    </optional>
+    <optional>
+      <attribute name="pattern" a:defaultValue="text"/>
+    </optional>
+    <optional>
+      <attribute name="creator"/>
+    </optional>
+    <optional>
+      <attribute name="status" a:defaultValue="new">
+        <choice>
+          <value>new</value>
+          <value>update</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="date.created"/>
+    </optional>
+    <optional>
+      <attribute name="date.updated"/>
+    </optional>
+    <attribute name="version"/>
+    <optional>
+      <attribute name="TEIform" a:defaultValue="teiHeader"/>
+    </optional>
+  </define>
+  <!-- File Description -->
+  <define name="fileDesc">
+    <element name="fileDesc">
+      <ref name="attlist.fileDesc"/>
+      <ref name="titleStmt"/>
+      <optional>
+        <ref name="editionStmt"/>
+      </optional>
+      <optional>
+        <ref name="extent"/>
+      </optional>
+      <ref name="publicationStmt"/>
+      <oneOrMore>
+        <ref name="sourceDesc"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.fileDesc" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!-- Title statement -->
+  <define name="h.title">
+    <element name="h.title">
+      <ref name="attlist.h.title"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.h.title" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="type" a:defaultValue="main">
+        <choice>
+          <value>main</value>
+          <value>sub</value>
+          <value>abbr</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="level">
+        <choice>
+          <value>m</value>
+          <value>a</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!--
+    Motivation : Innerhalb von biblFull wird eine Titelangabe 
+    durch titleStmt benoetigt. Diese entspricht aber
+    keiner der bisherigen drei Kategorien.
+    Daher Hinzunahme von x.title analog der
+    CES-Vorgabe h.title.
+  -->
+  <define name="titleStmt">
+    <element name="titleStmt">
+      <ref name="attlist.titleStmt"/>
+      <choice>
+        <group>
+          <ref name="korpusSigle"/>
+          <ref name="c.title"/>
+          <zeroOrMore>
+            <ref name="respStmt"/>
+          </zeroOrMore>
+        </group>
+        <group>
+          <ref name="dokumentSigle"/>
+          <ref name="d.title"/>
+          <zeroOrMore>
+            <ref name="respStmt"/>
+          </zeroOrMore>
+        </group>
+        <group>
+          <ref name="textSigle"/>
+          <ref name="t.title"/>
+          <zeroOrMore>
+            <ref name="respStmt"/>
+          </zeroOrMore>
+        </group>
+        <group>
+          <ref name="x.title"/>
+          <zeroOrMore>
+            <ref name="respStmt"/>
+          </zeroOrMore>
+        </group>
+      </choice>
+    </element>
+  </define>
+  <define name="attlist.titleStmt" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="korpusSigle">
+    <element name="korpusSigle">
+      <ref name="attlist.korpusSigle"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.korpusSigle" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="c.title">
+    <element name="c.title">
+      <ref name="attlist.c.title"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.c.title" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="dokumentSigle">
+    <element name="dokumentSigle">
+      <ref name="attlist.dokumentSigle"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.dokumentSigle" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="d.title">
+    <element name="d.title">
+      <ref name="attlist.d.title"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.d.title" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="textSigle">
+    <element name="textSigle">
+      <ref name="attlist.textSigle"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.textSigle" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!--
+    Motivation: Einrichtung des Attributs assemblage nach Modifikation
+    der Quellennachweise von al-Wadi (06.05.03)
+  -->
+  <define name="t.title">
+    <element name="t.title">
+      <ref name="attlist.t.title"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.t.title" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="assemblage">
+        <choice>
+          <value>external</value>
+          <value>regular</value>
+          <value>non-automatic</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!-- Motivation : x.title analog der CES-Vorgabe h.title. -->
+  <define name="x.title">
+    <element name="x.title">
+      <ref name="attlist.x.title"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.x.title" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="respStmt">
+    <element name="respStmt">
+      <ref name="attlist.respStmt"/>
+      <group>
+        <ref name="respType"/>
+        <ref name="respName"/>
+      </group>
+      <zeroOrMore>
+        <choice>
+          <ref name="respType"/>
+          <ref name="respName"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.respStmt" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="respType">
+    <element name="respType">
+      <ref name="attlist.respType"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.respType" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="respName">
+    <element name="respName">
+      <ref name="attlist.respName"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.respName" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!-- Edition Statement -->
+  <define name="editionStmt">
+    <element name="editionStmt">
+      <ref name="attlist.editionStmt"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.editionStmt" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="version"/>
+    </optional>
+  </define>
+  <!-- Extent statement -->
+  <define name="extent">
+    <element name="extent">
+      <ref name="attlist.extent"/>
+      <ref name="wordCount"/>
+      <ref name="byteCount"/>
+      <zeroOrMore>
+        <ref name="extNote"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.extent" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="wordCount">
+    <element name="wordCount">
+      <ref name="attlist.wordCount"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.wordCount" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="byteCount">
+    <element name="byteCount">
+      <ref name="attlist.byteCount"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.byteCount" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="units" a:defaultValue="kb">
+        <choice>
+          <value>bytes</value>
+          <value>kb</value>
+          <value>mb</value>
+          <value>gb</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="extNote">
+    <element name="extNote">
+      <ref name="attlist.extNote"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.extNote" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!-- Publication statement -->
+  <define name="publicationStmt">
+    <element name="publicationStmt">
+      <ref name="attlist.publicationStmt"/>
+      <ref name="distributor"/>
+      <ref name="pubAddress"/>
+      <zeroOrMore>
+        <ref name="telephone"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="fax"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="eAddress"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="idno"/>
+      </zeroOrMore>
+      <ref name="availability"/>
+      <ref name="pubDate"/>
+    </element>
+  </define>
+  <define name="attlist.publicationStmt" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="distributor">
+    <element name="distributor">
+      <ref name="attlist.distributor"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.distributor" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="pubAddress">
+    <element name="pubAddress">
+      <ref name="attlist.pubAddress"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.pubAddress" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="telephone">
+    <element name="telephone">
+      <ref name="attlist.telephone"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.telephone" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="fax">
+    <element name="fax">
+      <ref name="attlist.fax"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.fax" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="eAddress">
+    <element name="eAddress">
+      <ref name="attlist.eAddress"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.eAddress" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="type" a:defaultValue="email"/>
+    </optional>
+  </define>
+  <define name="idno">
+    <element name="idno">
+      <ref name="attlist.idno"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.idno" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="type" a:defaultValue="ISBN"/>
+    </optional>
+  </define>
+  <define name="availability">
+    <element name="availability">
+      <ref name="attlist.availability"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.availability" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="region" a:defaultValue="world"/>
+    </optional>
+    <optional>
+      <attribute name="status" a:defaultValue="unknown">
+        <choice>
+          <value>free</value>
+          <value>unknown</value>
+          <value>restricted</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="pubDate">
+    <element name="pubDate">
+      <ref name="attlist.pubDate"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.pubDate" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="type">
+        <choice>
+          <value>year</value>
+          <value>month</value>
+          <value>day</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!-- Source description -->
+  <define name="sourceDesc">
+    <element name="sourceDesc">
+      <ref name="attlist.sourceDesc"/>
+      <oneOrMore>
+        <choice>
+          <ref name="biblFull"/>
+          <ref name="biblStruct"/>
+        </choice>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="reference"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.sourceDesc" combine="interleave">
+    <ref name="a.header"/>
+    <ref name="a.declarable"/>
+  </define>
+  <!--
+    Motivation: Anpassung des Attributs 'assemblage' an Modifikation
+    der Quellennachweise von al-Wadi (06.05.03), 
+    Analoge Einrichtung des Attributs 'existence' und
+    Uebernahme des Attributs 'origin'
+  -->
+  <define name="reference">
+    <element name="reference">
+      <ref name="attlist.reference"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.reference" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="type">
+        <choice>
+          <value>complete</value>
+          <value>super</value>
+          <value>short</value>
+          <value>former</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="assemblage">
+        <choice>
+          <value>external</value>
+          <value>regular</value>
+          <value>non-automatic</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="existence">
+        <choice>
+          <value>no</value>
+          <value>yes</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="origin">
+        <choice>
+          <value>BOTfile</value>
+          <value>notBOTfile</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!-- Bibliographic citation for non-electronic source -->
+  <define name="h.bibl">
+    <element name="h.bibl">
+      <ref name="attlist.h.bibl"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.h.bibl" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="biblStruct">
+    <element name="biblStruct">
+      <ref name="attlist.biblStruct"/>
+      <optional>
+        <ref name="analytic"/>
+      </optional>
+      <oneOrMore>
+        <ref name="monogr"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.biblStruct" combine="interleave">
+    <ref name="a.header"/>
+    <ref name="a.declarable"/>
+  </define>
+  <define name="analytic">
+    <element name="analytic">
+      <ref name="attlist.analytic"/>
+      <oneOrMore>
+        <ref name="h.title"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <choice>
+          <ref name="h.author"/>
+          <ref name="editor"/>
+        </choice>
+      </zeroOrMore>
+      <zeroOrMore>
+        <choice>
+          <ref name="biblScope"/>
+          <ref name="biblNote"/>
+        </choice>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="edition"/>
+        <optional>
+          <ref name="respStmt"/>
+        </optional>
+      </zeroOrMore>
+      <oneOrMore>
+        <ref name="imprint"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="idno"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <choice>
+          <ref name="biblNote"/>
+          <ref name="biblScope"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.analytic" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!-- editor: hinzu 26.07 -->
+  <define name="monogr">
+    <element name="monogr">
+      <ref name="attlist.monogr"/>
+      <oneOrMore>
+        <ref name="h.title"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <choice>
+          <ref name="h.author"/>
+          <ref name="editor"/>
+        </choice>
+      </zeroOrMore>
+      <zeroOrMore>
+        <choice>
+          <ref name="biblScope"/>
+          <ref name="biblNote"/>
+        </choice>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="edition"/>
+        <optional>
+          <ref name="respStmt"/>
+        </optional>
+      </zeroOrMore>
+      <oneOrMore>
+        <ref name="imprint"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="idno"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <choice>
+          <ref name="biblNote"/>
+          <ref name="biblScope"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.monogr" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="h.author">
+    <element name="h.author">
+      <ref name="attlist.h.author"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.h.author" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="editor">
+    <element name="editor">
+      <ref name="attlist.editor"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.editor" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="edition">
+    <element name="edition">
+      <ref name="attlist.edition"/>
+      <ref name="further"/>
+      <ref name="kind"/>
+      <ref name="appearance"/>
+    </element>
+  </define>
+  <define name="attlist.edition" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="further">
+    <element name="further">
+      <ref name="attlist.further"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.further" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="kind">
+    <element name="kind">
+      <ref name="attlist.kind"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.kind" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="appearance">
+    <element name="appearance">
+      <ref name="attlist.appearance"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.appearance" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="imprint">
+    <element name="imprint">
+      <ref name="attlist.imprint"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="pubPlace"/>
+          <ref name="publisher"/>
+          <ref name="pubDate"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.imprint" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="pubPlace">
+    <element name="pubPlace">
+      <ref name="attlist.pubPlace"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.pubPlace" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="publisher">
+    <element name="publisher">
+      <ref name="attlist.publisher"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.publisher" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="type">
+        <choice>
+          <value>place</value>
+          <value>org</value>
+          <value>person</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="biblScope">
+    <element name="biblScope">
+      <ref name="attlist.biblScope"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.biblScope" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="type">
+        <choice>
+          <value>subsume</value>
+          <value>pp</value>
+          <value>vol</value>
+          <value>issue</value>
+          <value>issueplace</value>
+          <value>suppl</value>
+          <value>suppltitle</value>
+          <value>volume-title</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="biblNote">
+    <element name="biblNote">
+      <ref name="attlist.biblNote"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.biblNote" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!-- Bibliographical info for source in electronic form -->
+  <define name="biblFull">
+    <element name="biblFull">
+      <ref name="attlist.biblFull"/>
+      <ref name="titleStmt"/>
+      <optional>
+        <ref name="editionStmt"/>
+      </optional>
+      <optional>
+        <ref name="extent"/>
+      </optional>
+      <ref name="publicationStmt"/>
+      <zeroOrMore>
+        <ref name="sourceDesc"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.biblFull" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!-- Encoding description -->
+  <define name="encodingDesc">
+    <element name="encodingDesc">
+      <ref name="attlist.encodingDesc"/>
+      <optional>
+        <ref name="projectDesc"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="samplingDecl"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="editorialDecl"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="tagsDecl"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="refsDecl"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="classDecl"/>
+      </optional>
+    </element>
+  </define>
+  <define name="attlist.encodingDesc" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="projectDesc">
+    <element name="projectDesc">
+      <ref name="attlist.projectDesc"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.projectDesc" combine="interleave">
+    <ref name="a.header"/>
+    <ref name="a.declarable"/>
+  </define>
+  <define name="samplingDecl">
+    <element name="samplingDecl">
+      <ref name="attlist.samplingDecl"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.samplingDecl" combine="interleave">
+    <ref name="a.header"/>
+    <ref name="a.declarable"/>
+  </define>
+  <!-- Editorial declaration -->
+  <define name="editorialDecl">
+    <element name="editorialDecl">
+      <ref name="attlist.editorialDecl"/>
+      <oneOrMore>
+        <choice>
+          <ref name="pagination"/>
+          <ref name="correction"/>
+          <ref name="quotation"/>
+          <ref name="hyphenation"/>
+          <ref name="segmentation"/>
+          <ref name="transduction"/>
+          <ref name="normalization"/>
+          <ref name="conformance"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.editorialDecl" combine="interleave">
+    <ref name="a.header"/>
+    <ref name="a.declarable"/>
+  </define>
+  <define name="pagination">
+    <element name="pagination">
+      <ref name="attlist.pagination"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.pagination" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="type">
+        <choice>
+          <value>yes</value>
+          <value>no</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="correction">
+    <element name="correction">
+      <ref name="attlist.correction"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.correction" combine="interleave">
+    <ref name="a.header"/>
+    <ref name="a.declarable"/>
+    <optional>
+      <attribute name="status" a:defaultValue="unknown">
+        <choice>
+          <value>high</value>
+          <value>medium</value>
+          <value>low</value>
+          <value>unknown</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="method" a:defaultValue="silent">
+        <choice>
+          <value>silent</value>
+          <value>tags</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="quotation">
+    <element name="quotation">
+      <ref name="attlist.quotation"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.quotation" combine="interleave">
+    <ref name="a.header"/>
+    <ref name="a.declarable"/>
+    <optional>
+      <attribute name="marks" a:defaultValue="all">
+        <choice>
+          <value>none</value>
+          <value>some</value>
+          <value>all</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="form" a:defaultValue="unknown">
+        <choice>
+          <value>data</value>
+          <value>rend</value>
+          <value>std</value>
+          <value>nonstd</value>
+          <value>unknown</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="hyphenation">
+    <element name="hyphenation">
+      <ref name="attlist.hyphenation"/>
+      <oneOrMore>
+        <ref name="p"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.hyphenation" combine="interleave">
+    <ref name="a.global"/>
+    <ref name="a.declarable"/>
+    <optional>
+      <attribute name="eol" a:defaultValue="some">
+        <choice>
+          <value>all</value>
+          <value>some</value>
+          <value>none</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="segmentation">
+    <element name="segmentation">
+      <ref name="attlist.segmentation"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.segmentation" combine="interleave">
+    <ref name="a.header"/>
+    <ref name="a.declarable"/>
+  </define>
+  <define name="transduction">
+    <element name="transduction">
+      <ref name="attlist.transduction"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.transduction" combine="interleave">
+    <ref name="a.header"/>
+    <ref name="a.declarable"/>
+  </define>
+  <define name="normalization">
+    <element name="normalization">
+      <ref name="attlist.normalization"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.normalization" combine="interleave">
+    <ref name="a.header"/>
+    <ref name="a.declarable"/>
+    <optional>
+      <attribute name="source"/>
+    </optional>
+    <optional>
+      <attribute name="method" a:defaultValue="silent">
+        <choice>
+          <value>silent</value>
+          <value>tags</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="conformance">
+    <element name="conformance">
+      <ref name="attlist.conformance"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.conformance" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="level" a:defaultValue="1">
+        <choice>
+          <value>0</value>
+          <value>1</value>
+          <value>2</value>
+          <value>3</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!-- Tag declaration -->
+  <define name="tagsDecl">
+    <element name="tagsDecl">
+      <ref name="attlist.tagsDecl"/>
+      <oneOrMore>
+        <ref name="tagUsage"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.tagsDecl" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="tagUsage">
+    <element name="tagUsage">
+      <ref name="attlist.tagUsage"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.tagUsage" combine="interleave">
+    <ref name="a.header"/>
+    <attribute name="gi">
+      <data type="NMTOKEN"/>
+    </attribute>
+    <optional>
+      <attribute name="occurs">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="wsd"/>
+    </optional>
+  </define>
+  <!-- References declaration -->
+  <define name="ids.state">
+    <ref name="state"/>
+  </define>
+  <define name="ids.textDesc">
+    <ref name="textDesc"/>
+  </define>
+  <define name="refsDecl">
+    <element name="refsDecl">
+      <ref name="attlist.refsDecl"/>
+      <ref name="ids.state"/>
+    </element>
+  </define>
+  <define name="attlist.refsDecl" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="doctype">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+  </define>
+  <!-- Classify texts declaration -->
+  <define name="classDecl">
+    <element name="classDecl">
+      <ref name="attlist.classDecl"/>
+      <oneOrMore>
+        <ref name="taxonomy"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.classDecl" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="taxonomy">
+    <element name="taxonomy">
+      <ref name="attlist.taxonomy"/>
+      <choice>
+        <oneOrMore>
+          <ref name="category"/>
+        </oneOrMore>
+        <group>
+          <choice>
+            <ref name="h.bibl"/>
+            <ref name="biblStruct"/>
+          </choice>
+          <zeroOrMore>
+            <ref name="category"/>
+          </zeroOrMore>
+        </group>
+      </choice>
+    </element>
+  </define>
+  <define name="attlist.taxonomy" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="category">
+    <element name="category">
+      <ref name="attlist.category"/>
+      <ref name="catDesc"/>
+      <zeroOrMore>
+        <ref name="category"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.category" combine="interleave">
+    <attribute name="id">
+      <data type="ID"/>
+    </attribute>
+    <optional>
+      <attribute name="n"/>
+    </optional>
+    <optional>
+      <attribute name="lang">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+  </define>
+  <define name="catDesc">
+    <element name="catDesc">
+      <ref name="attlist.catDesc"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.catDesc" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!-- Profile description -->
+  <define name="profileDesc">
+    <element name="profileDesc">
+      <ref name="attlist.profileDesc"/>
+      <optional>
+        <ref name="creation"/>
+      </optional>
+      <optional>
+        <ref name="langUsage"/>
+      </optional>
+      <optional>
+        <ref name="wsdUsage"/>
+      </optional>
+      <optional>
+        <ref name="textClass"/>
+      </optional>
+      <optional>
+        <ref name="translations"/>
+      </optional>
+      <optional>
+        <ref name="annotations"/>
+      </optional>
+      <ref name="ids.textDesc"/>
+    </element>
+  </define>
+  <define name="attlist.profileDesc" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!-- Creation element -->
+  <define name="creation">
+    <element name="creation">
+      <ref name="attlist.creation"/>
+      <ref name="creatDate"/>
+      <optional>
+        <ref name="creatRef"/>
+      </optional>
+      <optional>
+        <ref name="creatRefShort"/>
+      </optional>
+    </element>
+  </define>
+  <define name="attlist.creation" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="creatDate">
+    <element name="creatDate">
+      <ref name="attlist.creatDate"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.creatDate" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="creatRef">
+    <element name="creatRef">
+      <ref name="attlist.creatRef"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.creatRef" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="creatRefShort">
+    <element name="creatRefShort">
+      <ref name="attlist.creatRefShort"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.creatRefShort" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="langUsage">
+    <element name="langUsage">
+      <ref name="attlist.langUsage"/>
+      <oneOrMore>
+        <ref name="language"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.langUsage" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="language">
+    <element name="language">
+      <ref name="attlist.language"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.language" combine="interleave">
+    <optional>
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="usage"/>
+    </optional>
+  </define>
+  <define name="wsdUsage">
+    <element name="wsdUsage">
+      <ref name="attlist.wsdUsage"/>
+      <oneOrMore>
+        <ref name="writingSystem"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.wsdUsage" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="writingSystem">
+    <element name="writingSystem">
+      <ref name="attlist.writingSystem"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.writingSystem" combine="interleave">
+    <optional>
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="lang"/>
+    </optional>
+    <optional>
+      <attribute name="wsd">
+        <data type="ENTITY"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="n"/>
+    </optional>
+  </define>
+  <!-- Text Class -->
+  <define name="textClass">
+    <element name="textClass">
+      <ref name="attlist.textClass"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="catRef"/>
+          <ref name="h.keywords"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.textClass" combine="interleave">
+    <ref name="a.header"/>
+    <ref name="a.declarable"/>
+  </define>
+  <define name="catRef">
+    <element name="catRef">
+      <ref name="attlist.catRef"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="attlist.catRef" combine="interleave">
+    <ref name="a.header"/>
+    <attribute name="target">
+      <data type="IDREFS"/>
+    </attribute>
+    <optional>
+      <attribute name="scheme"/>
+    </optional>
+  </define>
+  <define name="h.keywords">
+    <element name="h.keywords">
+      <ref name="attlist.h.keywords"/>
+      <oneOrMore>
+        <ref name="keyTerm"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.h.keywords" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="keyTerm">
+    <element name="keyTerm">
+      <ref name="attlist.keyTerm"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.keyTerm" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!-- Translations -->
+  <define name="translations">
+    <element name="translations">
+      <ref name="attlist.translations"/>
+      <oneOrMore>
+        <ref name="translation"/>
+        <optional>
+          <ref name="translator"/>
+        </optional>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.translations" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="translation">
+    <element name="translation">
+      <ref name="attlist.translation"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.translation" combine="interleave">
+    <optional>
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+    </optional>
+    <attribute name="lang"/>
+    <attribute name="wsd"/>
+    <optional>
+      <attribute name="n"/>
+    </optional>
+    <optional>
+      <attribute name="trans.loc"/>
+    </optional>
+  </define>
+  <define name="translator">
+    <element name="translator">
+      <ref name="attlist.translator"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.translator" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!-- Annotations -->
+  <define name="annotations">
+    <element name="annotations">
+      <ref name="attlist.annotations"/>
+      <oneOrMore>
+        <ref name="annotation"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.annotations" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="annotation">
+    <element name="annotation">
+      <ref name="attlist.annotation"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.annotation" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <optional>
+      <attribute name="ann.loc"/>
+    </optional>
+    <optional>
+      <attribute name="trans.loc"/>
+    </optional>
+  </define>
+  <!-- TextDesc -->
+  <define name="textDesc">
+    <element name="textDesc">
+      <ref name="attlist.textDesc"/>
+      <group>
+        <optional>
+          <ref name="textType"/>
+        </optional>
+        <optional>
+          <ref name="textTypeRef"/>
+        </optional>
+      </group>
+      <group>
+        <optional>
+          <ref name="textTypeArt"/>
+        </optional>
+        <optional>
+          <ref name="textDomain"/>
+        </optional>
+        <optional>
+          <ref name="column"/>
+        </optional>
+      </group>
+    </element>
+  </define>
+  <define name="attlist.textDesc" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="textType">
+    <element name="textType">
+      <ref name="attlist.textType"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.textType" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="textTypeRef">
+    <element name="textTypeRef">
+      <ref name="attlist.textTypeRef"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.textTypeRef" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="textTypeArt">
+    <element name="textTypeArt">
+      <ref name="attlist.textTypeArt"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.textTypeArt" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="textDomain">
+    <element name="textDomain">
+      <ref name="attlist.textDomain"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.textDomain" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="column">
+    <element name="column">
+      <ref name="attlist.column"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.column" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!-- Revision description -->
+  <define name="revisionDesc">
+    <element name="revisionDesc">
+      <ref name="attlist.revisionDesc"/>
+      <oneOrMore>
+        <ref name="change"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.revisionDesc" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="change">
+    <element name="change">
+      <ref name="attlist.change"/>
+      <ref name="changeDate"/>
+      <ref name="respName"/>
+      <oneOrMore>
+        <ref name="h.item"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.change" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <define name="changeDate">
+    <element name="changeDate">
+      <ref name="attlist.changeDate"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.changeDate" combine="interleave">
+    <ref name="a.header"/>
+    <optional>
+      <attribute name="value"/>
+    </optional>
+  </define>
+  <define name="h.item">
+    <element name="h.item">
+      <ref name="attlist.h.item"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.h.item" combine="interleave">
+    <ref name="a.header"/>
+  </define>
+  <!-- Sub-paragraph elements -->
+  <define name="x.token">
+    <notAllowed/>
+  </define>
+  <define name="m.token">
+    <choice>
+      <ref name="x.token"/>
+      <ref name="abbr"/>
+      <ref name="date"/>
+      <ref name="num"/>
+      <ref name="dateRange"/>
+      <ref name="numRange"/>
+      <ref name="timeRange"/>
+      <ref name="measure"/>
+      <ref name="name"/>
+      <ref name="term"/>
+      <ref name="time"/>
+      <ref name="w"/>
+    </choice>
+  </define>
+  <define name="m.phrase">
+    <choice>
+      <ref name="m.token"/>
+      <ref name="corr"/>
+      <ref name="distinct"/>
+      <ref name="foreign"/>
+      <ref name="gap"/>
+      <ref name="hi"/>
+      <ref name="list"/>
+      <ref name="mentioned"/>
+      <ref name="orig"/>
+      <ref name="q"/>
+      <ref name="ref"/>
+      <ref name="reg"/>
+      <ref name="s"/>
+      <ref name="stage"/>
+      <ref name="title"/>
+      <ref name="table"/>
+      <ref name="xref"/>
+    </choice>
+  </define>
+  <define name="base.seq">
+    <choice>
+      <text/>
+      <ref name="x.token"/>
+      <ref name="num"/>
+      <ref name="numRange"/>
+      <ref name="abbr"/>
+      <ref name="hi"/>
+    </choice>
+  </define>
+  <define name="phrase.seq">
+    <choice>
+      <text/>
+      <ref name="m.phrase"/>
+    </choice>
+  </define>
+  <define name="ids.milestones">
+    <choice>
+      <ref name="pb"/>
+      <ref name="lb"/>
+      <ref name="ptr"/>
+      <ref name="xptr"/>
+    </choice>
+  </define>
+  <define name="a.text">
+    <ref name="a.global"/>
+    <optional>
+      <attribute name="rend"/>
+    </optional>
+    <optional>
+      <attribute name="wsd"/>
+    </optional>
+  </define>
+  <define name="abbr">
+    <element name="abbr">
+      <ref name="attlist.abbr"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.abbr" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="expan"/>
+    </optional>
+    <optional>
+      <attribute name="resp">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="cert"/>
+    </optional>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+  </define>
+  <define name="corr">
+    <element name="corr">
+      <ref name="attlist.corr"/>
+      <zeroOrMore>
+        <ref name="phrase.seq"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.corr" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="sic"/>
+    </optional>
+    <optional>
+      <attribute name="resp"/>
+    </optional>
+    <optional>
+      <attribute name="cert"/>
+    </optional>
+  </define>
+  <define name="p">
+    <element name="p">
+      <ref name="attlist.p"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.p" combine="interleave">
+    <ref name="a.text"/>
+  </define>
+  <define name="ids.q.att.type">
+    <optional>
+      <attribute name="type" a:defaultValue="unspec">
+        <choice>
+          <value>w</value>
+          <value>o</value>
+          <value>unspec</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!-- SENTENCES, QUOTED DIALOGUE WITHIN PARAGRAPHS -->
+  <define name="s">
+    <element name="s">
+      <ref name="attlist.s"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.s" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="next">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="prev">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <optional>
+      <attribute name="broken" a:defaultValue="no">
+        <choice>
+          <value>yes</value>
+          <value>no</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="q">
+    <element name="q">
+      <ref name="attlist.q"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.q" combine="interleave">
+    <ref name="a.text"/>
+    <ref name="ids.q.att.type"/>
+    <optional>
+      <attribute name="next">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="prev">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="direct" a:defaultValue="unspecified">
+        <choice>
+          <value>y</value>
+          <value>n</value>
+          <value>unspecified</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="who"/>
+    </optional>
+    <optional>
+      <attribute name="broken" a:defaultValue="no">
+        <choice>
+          <value>yes</value>
+          <value>no</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!--
+    Analog zu TEI koennen auch poem und quote
+    innerhalb von sp auftreten
+  -->
+  <define name="sp">
+    <element name="sp">
+      <ref name="attlist.sp"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="speaker"/>
+          <ref name="p"/>
+          <ref name="quote"/>
+          <ref name="poem"/>
+          <ref name="stage"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.sp" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="who"/>
+    </optional>
+  </define>
+  <define name="speaker">
+    <element name="speaker">
+      <ref name="attlist.speaker"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="base.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.speaker" combine="interleave">
+    <ref name="a.text"/>
+  </define>
+  <define name="stage">
+    <element name="stage">
+      <ref name="attlist.stage"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="base.seq"/>
+          <ref name="p"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.stage" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+  </define>
+  <!-- Tables -->
+  <define name="table">
+    <element name="table">
+      <ref name="attlist.table"/>
+      <optional>
+        <ref name="head"/>
+      </optional>
+      <oneOrMore>
+        <choice>
+          <ref name="row"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.table" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="rows">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="cols">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+  </define>
+  <define name="row">
+    <element name="row">
+      <ref name="attlist.row"/>
+      <oneOrMore>
+        <choice>
+          <ref name="cell"/>
+          <ref name="table"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.row" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="role" a:defaultValue="data"/>
+    </optional>
+  </define>
+  <define name="cell">
+    <element name="cell">
+      <ref name="attlist.cell"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.cell" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="role" a:defaultValue="data"/>
+    </optional>
+    <optional>
+      <attribute name="rows" a:defaultValue="1">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="cols" a:defaultValue="1">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+  </define>
+  <define name="time">
+    <element name="time">
+      <ref name="attlist.time"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="base.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.time" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="ISO8601"/>
+    </optional>
+    <optional>
+      <attribute name="type">
+        <choice>
+          <value>am</value>
+          <value>pm</value>
+          <value>24hour</value>
+          <value>descriptive</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="dateRange">
+    <element name="dateRange">
+      <ref name="attlist.dateRange"/>
+      <zeroOrMore>
+        <ref name="base.seq"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.dateRange" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="from"/>
+    </optional>
+    <optional>
+      <attribute name="to"/>
+    </optional>
+  </define>
+  <define name="numRange">
+    <element name="numRange">
+      <ref name="attlist.numRange"/>
+      <zeroOrMore>
+        <ref name="base.seq"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.numRange" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="from"/>
+    </optional>
+    <optional>
+      <attribute name="to"/>
+    </optional>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+  </define>
+  <define name="timeRange">
+    <element name="timeRange">
+      <ref name="attlist.timeRange"/>
+      <zeroOrMore>
+        <ref name="base.seq"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.timeRange" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="from"/>
+    </optional>
+    <optional>
+      <attribute name="to"/>
+    </optional>
+  </define>
+  <define name="w">
+    <element name="w">
+      <ref name="attlist.w"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.w" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="ana"/>
+    </optional>
+    <optional>
+      <attribute name="ctag"/>
+    </optional>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+  </define>
+  <define name="title">
+    <element name="title">
+      <ref name="attlist.title"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.title" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+  </define>
+  <!-- Highlighted text -->
+  <define name="hi">
+    <element name="hi">
+      <ref name="attlist.hi"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.hi" combine="interleave">
+    <ref name="a.text"/>
+  </define>
+  <!-- Other Phrase-level Elements -->
+  <define name="date">
+    <element name="date">
+      <ref name="attlist.date"/>
+      <zeroOrMore>
+        <ref name="base.seq"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.date" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="ISO8601"/>
+    </optional>
+  </define>
+  <define name="foreign">
+    <element name="foreign">
+      <ref name="attlist.foreign"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.foreign" combine="interleave">
+    <ref name="a.text"/>
+  </define>
+  <define name="distinct">
+    <element name="distinct">
+      <ref name="attlist.distinct"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.distinct" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+  </define>
+  <define name="mentioned">
+    <element name="mentioned">
+      <ref name="attlist.mentioned"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.mentioned" combine="interleave">
+    <ref name="a.text"/>
+  </define>
+  <define name="measure">
+    <element name="measure">
+      <ref name="attlist.measure"/>
+      <zeroOrMore>
+        <ref name="base.seq"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.measure" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="type">
+        <choice>
+          <value>weight</value>
+          <value>length</value>
+          <value>count</value>
+          <value>area</value>
+          <value>volume</value>
+          <value>temperature</value>
+          <value>currency</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="value"/>
+    </optional>
+  </define>
+  <define name="name">
+    <element name="name">
+      <ref name="attlist.name"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="base.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.name" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+  </define>
+  <define name="term">
+    <element name="term">
+      <ref name="attlist.term"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="base.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.term" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+  </define>
+  <!-- Editorial Changes -->
+  <define name="gap">
+    <element name="gap">
+      <ref name="attlist.gap"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="attlist.gap" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="desc"/>
+    </optional>
+    <optional>
+      <attribute name="reason"/>
+    </optional>
+    <optional>
+      <attribute name="resp"/>
+    </optional>
+    <optional>
+      <attribute name="cert"/>
+    </optional>
+  </define>
+  <define name="reg">
+    <element name="reg">
+      <ref name="attlist.reg"/>
+      <zeroOrMore>
+        <ref name="phrase.seq"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.reg" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="orig"/>
+    </optional>
+    <optional>
+      <attribute name="resp"/>
+    </optional>
+    <optional>
+      <attribute name="cert"/>
+    </optional>
+  </define>
+  <!--
+    Seubert, 07.03.05	erweitert um Attribut 'regalt' wg. Varianten 
+    in sog. Sparschreibung
+  -->
+  <define name="orig">
+    <element name="orig">
+      <ref name="attlist.orig"/>
+      <zeroOrMore>
+        <ref name="phrase.seq"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.orig" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="reg"/>
+    </optional>
+    <optional>
+      <attribute name="regalt"/>
+    </optional>
+    <optional>
+      <attribute name="resp"/>
+    </optional>
+    <optional>
+      <attribute name="cert"/>
+    </optional>
+  </define>
+  <define name="list">
+    <element name="list">
+      <ref name="attlist.list"/>
+      <optional>
+        <ref name="head"/>
+      </optional>
+      <zeroOrMore>
+        <choice>
+          <ref name="item"/>
+          <group>
+            <ref name="label"/>
+            <zeroOrMore>
+              <ref name="ids.milestones"/>
+            </zeroOrMore>
+            <ref name="item"/>
+          </group>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.list" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+  </define>
+  <define name="item">
+    <element name="item">
+      <ref name="attlist.item"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="p"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.item" combine="interleave">
+    <ref name="a.text"/>
+  </define>
+  <define name="label">
+    <element name="label">
+      <ref name="attlist.label"/>
+      <zeroOrMore>
+        <ref name="phrase.seq"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.label" combine="interleave">
+    <ref name="a.text"/>
+  </define>
+  <define name="num">
+    <element name="num">
+      <ref name="attlist.num"/>
+      <text/>
+    </element>
+  </define>
+  <define name="attlist.num" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <optional>
+      <attribute name="value"/>
+    </optional>
+  </define>
+  <!-- Simple cross references -->
+  <define name="ptr">
+    <element name="ptr">
+      <ref name="attlist.ptr"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="attlist.ptr" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="corresp">
+        <data type="IDREFS"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="next">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="prev">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <optional>
+      <attribute name="resp"/>
+    </optional>
+    <optional>
+      <attribute name="crdate"/>
+    </optional>
+    <optional>
+      <attribute name="targType">
+        <data type="NMTOKENS"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="targOrder" a:defaultValue="u">
+        <choice>
+          <value>y</value>
+          <value>n</value>
+          <value>u</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="evaluate">
+        <choice>
+          <value>all</value>
+          <value>one</value>
+          <value>none</value>
+        </choice>
+      </attribute>
+    </optional>
+    <attribute name="target">
+      <data type="IDREFS"/>
+    </attribute>
+  </define>
+  <define name="ref">
+    <element name="ref">
+      <ref name="attlist.ref"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.ref" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="corresp">
+        <data type="IDREFS"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="next">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="prev">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <optional>
+      <attribute name="resp"/>
+    </optional>
+    <optional>
+      <attribute name="crdate"/>
+    </optional>
+    <optional>
+      <attribute name="targType">
+        <data type="NMTOKENS"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="targOrder" a:defaultValue="u">
+        <choice>
+          <value>y</value>
+          <value>n</value>
+          <value>u</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="evaluate">
+        <choice>
+          <value>all</value>
+          <value>one</value>
+          <value>none</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="target"/>
+    </optional>
+  </define>
+  <define name="pb">
+    <element name="pb">
+      <ref name="attlist.pb"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="attlist.pb" combine="interleave">
+    <optional>
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="lang">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rend"/>
+    </optional>
+    <optional>
+      <attribute name="ed"/>
+    </optional>
+    <optional>
+      <attribute name="n"/>
+    </optional>
+    <optional>
+      <attribute name="TEIform" a:defaultValue="pb"/>
+    </optional>
+  </define>
+  <define name="lb">
+    <element name="lb">
+      <ref name="attlist.lb"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="attlist.lb" combine="interleave">
+    <optional>
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="lang">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rend"/>
+    </optional>
+    <optional>
+      <attribute name="ed"/>
+    </optional>
+    <optional>
+      <attribute name="n"/>
+    </optional>
+    <optional>
+      <attribute name="TEIform" a:defaultValue="pb"/>
+    </optional>
+  </define>
+  <define name="xptr">
+    <element name="xptr">
+      <ref name="attlist.xptr"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="attlist.xptr" combine="interleave">
+    <optional>
+      <attribute name="corresp">
+        <data type="IDREFS"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="next">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="prev">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="ana">
+        <data type="IDREFS"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="n"/>
+    </optional>
+    <optional>
+      <attribute name="lang">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rend"/>
+    </optional>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <optional>
+      <attribute name="resp"/>
+    </optional>
+    <optional>
+      <attribute name="crdate"/>
+    </optional>
+    <optional>
+      <attribute name="targType"/>
+    </optional>
+    <optional>
+      <attribute name="targOrder" a:defaultValue="u">
+        <choice>
+          <value>y</value>
+          <value>n</value>
+          <value>u</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="evaluate">
+        <choice>
+          <value>all</value>
+          <value>one</value>
+          <value>none</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="doc"/>
+    </optional>
+    <optional>
+      <attribute name="from" a:defaultValue="ROOT"/>
+    </optional>
+    <optional>
+      <attribute name="to" a:defaultValue="DITTO"/>
+    </optional>
+    <optional>
+      <attribute name="TEIform" a:defaultValue="xptr"/>
+    </optional>
+  </define>
+  <define name="xref">
+    <element name="xref">
+      <ref name="attlist.xref"/>
+      <zeroOrMore>
+        <ref name="phrase.seq"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.xref" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="corresp">
+        <data type="IDREFS"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="next">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="prev">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="ana">
+        <data type="IDREFS"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <optional>
+      <attribute name="resp"/>
+    </optional>
+    <optional>
+      <attribute name="crdate"/>
+    </optional>
+    <optional>
+      <attribute name="targType"/>
+    </optional>
+    <optional>
+      <attribute name="targOrder" a:defaultValue="u">
+        <choice>
+          <value>y</value>
+          <value>n</value>
+          <value>u</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="evaluate">
+        <choice>
+          <value>all</value>
+          <value>one</value>
+          <value>none</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="doc">
+        <data type="ENTITY"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="from" a:defaultValue="ROOT"/>
+    </optional>
+    <optional>
+      <attribute name="to" a:defaultValue="DITTO"/>
+    </optional>
+    <optional>
+      <attribute name="TEIform" a:defaultValue="xref"/>
+    </optional>
+  </define>
+  <define name="head">
+    <element name="head">
+      <ref name="attlist.head"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="ptr"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.head" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="type" a:defaultValue="unspecified">
+        <choice>
+          <value>top</value>
+          <value>main</value>
+          <value>sub</value>
+          <value>cross</value>
+          <value>desc</value>
+          <value>unspecified</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="state">
+    <element name="state">
+      <ref name="attlist.state"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="attlist.state" combine="interleave">
+    <ref name="a.global"/>
+    <optional>
+      <attribute name="ed"/>
+    </optional>
+    <attribute name="unit"/>
+    <optional>
+      <attribute name="length">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="delim"/>
+    </optional>
+  </define>
+  <!-- Poems -->
+  <define name="poem">
+    <element name="poem">
+      <ref name="attlist.poem"/>
+      <optional>
+        <ref name="head"/>
+      </optional>
+      <oneOrMore>
+        <choice>
+          <ref name="lg"/>
+          <ref name="l"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.poem" combine="interleave">
+    <ref name="a.text"/>
+  </define>
+  <define name="lg">
+    <element name="lg">
+      <ref name="attlist.lg"/>
+      <oneOrMore>
+        <choice>
+          <ref name="l"/>
+          <ref name="lg"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <define name="attlist.lg" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <optional>
+      <attribute name="part" a:defaultValue="u">
+        <choice>
+          <value>y</value>
+          <value>n</value>
+          <value>u</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="l">
+    <element name="l">
+      <ref name="attlist.l"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.l" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="part" a:defaultValue="u">
+        <choice>
+          <value>y</value>
+          <value>n</value>
+          <value>u</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!-- Quotations -->
+  <define name="quote">
+    <element name="quote">
+      <ref name="attlist.quote"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="phrase.seq"/>
+          <ref name="p"/>
+          <ref name="poem"/>
+          <ref name="ids.milestones"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="attlist.quote" combine="interleave">
+    <ref name="a.text"/>
+    <optional>
+      <attribute name="next">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="prev">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <optional>
+      <attribute name="broken" a:defaultValue="no">
+        <choice>
+          <value>yes</value>
+          <value>no</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+</grammar>