add schemas and catalog

Change-Id: I271e13d4b6db999f6d56c2f923a1d7c493fee172
diff --git a/KorAP_schemas/fsr.rng b/KorAP_schemas/fsr.rng
new file mode 100644
index 0000000..cf22669
--- /dev/null
+++ b/KorAP_schemas/fsr.rng
@@ -0,0 +1,650 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+           datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
+           ns="http://www.tei-c.org/ns/1.0">
+  
+<!-- The FSR schema was ripped off of a TEI customization, described by the comments below, so it is in no way normative.
+     Piotr, 16-jan-2012 -->
+  
+  <!--
+Schema generated from ODD source 2012-01-16T11:55:34Z. 
+Edition: 2.0.0 Last updated on 16th December 2011.
+Edition Location: http://www.tei-c.org/Vault/P5/2.0.0/
+
+--><!--This template file is freely available and you are hereby
+            authorised to copy, modify, and redistribute it in any way without
+            further reference or permissions.When making such modifications, you are strongly recommended to
+            change the present text to include an accurate statement of the
+            licencing conditions applicable to your modified text.-->
+ 
+   <define name="data.numeric">
+      <choice>
+         <data type="double"/>
+         <data type="token">
+            <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
+         </data>
+         <data type="decimal"/>
+      </choice>
+   </define>
+   <define name="data.truthValue">
+      <data type="boolean"/>
+   </define>
+   <define name="data.language">
+      <data type="language"/>
+   </define>
+   <define name="data.pointer">
+      <data type="anyURI"/>
+   </define>
+   <define name="data.word">
+      <data type="token">
+         <param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
+      </data>
+   </define>
+   <define name="data.name">
+      <data type="Name"/>
+   </define>
+   <define name="data.enumerated">
+      <ref name="data.name"/>
+   </define>
+   <define name="att.global.attributes">
+      <ref name="att.global.attribute.xmlid"/>
+      <ref name="att.global.attribute.n"/>
+      <ref name="att.global.attribute.xmllang"/>
+      <ref name="att.global.attribute.rendition"/>
+   </define>
+   <define name="att.global.attribute.xmlid">
+      <optional>
+         <attribute name="xml:id">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(identifier) provides a unique identifier for the element bearing the attribute.</a:documentation>
+            <data type="ID"/>
+         </attribute>
+      </optional>
+   </define>
+   <define name="att.global.attribute.n">
+      <optional>
+         <attribute name="n">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number) gives a number (or other label) for an element, which is not necessarily unique within
+        the document.</a:documentation>
+            <list>
+               <ref name="data.word"/>
+               <zeroOrMore>
+                  <ref name="data.word"/>
+               </zeroOrMore>
+            </list>
+         </attribute>
+      </optional>
+   </define>
+   <define name="att.global.attribute.xmllang">
+      <optional>
+         <attribute name="xml:lang">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language) indicates the language of the element content using a tag generated
+        according to BCP 47
+         </a:documentation>
+            <ref name="data.language"/>
+         </attribute>
+      </optional>
+   </define>
+   <define name="att.global.attribute.rendition">
+      <optional>
+         <attribute name="rendition">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to a description of the rendering or presentation used for this element in the
+        source text.</a:documentation>
+            <list>
+               <ref name="data.pointer"/>
+               <zeroOrMore>
+                  <ref name="data.pointer"/>
+               </zeroOrMore>
+            </list>
+         </attribute>
+      </optional>
+   </define>
+
+   <define name="model.featureVal.complex">
+      <choice>
+         <ref name="fs"/>
+         <ref name="vColl"/>
+         <ref name="vNot"/>
+         <ref name="vMerge"/>
+      </choice>
+   </define>
+   <define name="model.featureVal.complex_alternation">
+      <choice>
+         <ref name="fs"/>
+         <ref name="vColl"/>
+         <ref name="vNot"/>
+         <ref name="vMerge"/>
+      </choice>
+   </define>
+   <define name="model.featureVal.complex_sequence">
+      <ref name="fs"/>
+      <ref name="vColl"/>
+      <ref name="vNot"/>
+      <ref name="vMerge"/>
+   </define>
+   <define name="model.featureVal.complex_sequenceOptional">
+      <optional>
+         <ref name="fs"/>
+      </optional>
+      <optional>
+         <ref name="vColl"/>
+      </optional>
+      <optional>
+         <ref name="vNot"/>
+      </optional>
+      <optional>
+         <ref name="vMerge"/>
+      </optional>
+   </define>
+   <define name="model.featureVal.complex_sequenceOptionalRepeatable">
+      <zeroOrMore>
+         <ref name="fs"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="vColl"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="vNot"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="vMerge"/>
+      </zeroOrMore>
+   </define>
+   <define name="model.featureVal.complex_sequenceRepeatable">
+      <oneOrMore>
+         <ref name="fs"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="vColl"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="vNot"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="vMerge"/>
+      </oneOrMore>
+   </define>
+   <define name="model.featureVal.single">
+      <choice>
+         <ref name="binary"/>
+         <ref name="symbol"/>
+         <ref name="numeric"/>
+         <ref name="string"/>
+         <ref name="vLabel"/>
+         <ref name="default"/>
+         <ref name="vAlt"/>
+      </choice>
+   </define>
+   <define name="model.featureVal.single_alternation">
+      <choice>
+         <ref name="binary"/>
+         <ref name="symbol"/>
+         <ref name="numeric"/>
+         <ref name="string"/>
+         <ref name="vLabel"/>
+         <ref name="default"/>
+         <ref name="vAlt"/>
+      </choice>
+   </define>
+   <define name="model.featureVal.single_sequence">
+      <ref name="binary"/>
+      <ref name="symbol"/>
+      <ref name="numeric"/>
+      <ref name="string"/>
+      <ref name="vLabel"/>
+      <ref name="default"/>
+      <ref name="vAlt"/>
+   </define>
+   <define name="model.featureVal.single_sequenceOptional">
+      <optional>
+         <ref name="binary"/>
+      </optional>
+      <optional>
+         <ref name="symbol"/>
+      </optional>
+      <optional>
+         <ref name="numeric"/>
+      </optional>
+      <optional>
+         <ref name="string"/>
+      </optional>
+      <optional>
+         <ref name="vLabel"/>
+      </optional>
+      <optional>
+         <ref name="default"/>
+      </optional>
+      <optional>
+         <ref name="vAlt"/>
+      </optional>
+   </define>
+   <define name="model.featureVal.single_sequenceOptionalRepeatable">
+      <zeroOrMore>
+         <ref name="binary"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="symbol"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="numeric"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="string"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="vLabel"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="default"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="vAlt"/>
+      </zeroOrMore>
+   </define>
+   <define name="model.featureVal.single_sequenceRepeatable">
+      <oneOrMore>
+         <ref name="binary"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="symbol"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="numeric"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="string"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="vLabel"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="default"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="vAlt"/>
+      </oneOrMore>
+   </define>
+   
+   
+   
+   
+   
+   
+   <define name="vRange">
+      <element name="vRange">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value range) defines the range of allowed values for a feature, in the form of
+an fs, vAlt, or primitive value;
+for the value of an f to be valid, it must be
+subsumed by the specified range; if the f
+contains multiple values (as sanctioned by the org attribute),
+then each value must be subsumed by the vRange. [18.11. ]</a:documentation>
+         <ref name="model.featureVal"/>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="vDefault">
+      <element name="vDefault">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value default) declares the default value to be supplied when a feature structure
+does not contain an instance of f for this name; if
+unconditional, it is specified as one (or, depending on the value of
+the org attribute of the enclosing fDecl) more
+fs elements or primitive values;
+if conditional, it is specified as
+one or more if elements; if no default is specified, or no
+condition matches, the value none is assumed. [18.11. ]</a:documentation>
+         <choice>
+            <oneOrMore>
+               <ref name="model.featureVal"/>
+            </oneOrMore>
+            <oneOrMore>
+               <ref name="if"/>
+            </oneOrMore>
+         </choice>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="if">
+      <element name="if">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">defines a conditional default value for a feature; the condition
+is specified as a feature structure, and is met if it
+subsumes the feature structure in the text for which a
+default value is sought. [18.11. ]</a:documentation>
+         <group>
+            <choice>
+               <ref name="fs"/>
+               <ref name="f"/>
+            </choice>
+            <ref name="then"/>
+            <group>
+               <ref name="model.featureVal"/>
+            </group>
+         </group>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="then">
+      <element name="then">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">separates the condition from the default in an if, or
+the antecedent and the consequent in a cond element. [18.11. ]</a:documentation>
+         <empty/>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="fsConstraints">
+      <element name="fsConstraints">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature-structure constraints) specifies constraints on the content of valid feature
+structures. [18.11. ]</a:documentation>
+         <zeroOrMore>
+            <choice>
+               <ref name="cond"/>
+               <ref name="bicond"/>
+            </choice>
+         </zeroOrMore>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="cond">
+      <element name="cond">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(conditional feature-structure constraint) defines a conditional feature-structure constraint; the consequent
+and the antecedent are specified as feature structures or
+feature-structure collections; the constraint is satisfied if both the
+antecedent and the consequent subsume a given feature
+structure, or if the antecedent does not. [18.11. ]</a:documentation>
+         <group>
+            <choice>
+               <ref name="fs"/>
+               <ref name="f"/>
+            </choice>
+            <ref name="then"/>
+            <choice>
+               <ref name="fs"/>
+               <ref name="f"/>
+            </choice>
+         </group>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="bicond">
+      <element name="bicond">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(bi-conditional feature-structure constraint) defines a biconditional feature-structure constraint; both
+consequent and antecedent are specified as feature structures or groups
+of feature structures; the constraint is satisfied if both
+subsume a given feature structure, or if both do not. [18.11. ]</a:documentation>
+         <group>
+            <choice>
+               <ref name="fs"/>
+               <ref name="f"/>
+            </choice>
+            <ref name="iff"/>
+            <choice>
+               <ref name="fs"/>
+               <ref name="f"/>
+            </choice>
+         </group>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="iff">
+      <element name="iff">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(if and only if) separates the condition from the consequence in a bicond
+element. [18.11. ]</a:documentation>
+         <empty/>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   
+   
+   <define name="binary">
+      <element name="binary">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(binary value) represents the value part of a feature-value specification which can contain either
+  of exactly two possible values. [18.2. ]</a:documentation>
+         <empty/>
+         <ref name="att.global.attributes"/>
+         <attribute name="value">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a binary value.</a:documentation>
+            <ref name="data.truthValue"/>
+         </attribute>
+         <empty/>
+      </element>
+   </define>
+   <define name="symbol">
+      <element name="symbol">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(symbolic value) represents the value part of a feature-value specification
+  which contains one of a finite list of symbols. [18.3. ]</a:documentation>
+         <empty/>
+         <ref name="att.global.attributes"/>
+         <attribute name="value">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the symbolic value for the feature, one of a finite list that
+may be specified in a feature declaration.</a:documentation>
+            <ref name="data.word"/>
+         </attribute>
+         <empty/>
+      </element>
+   </define>
+   <define name="numeric">
+      <element name="numeric">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(numeric value) represents the value part of a feature-value specification
+  which contains a numeric value or range. [18.3. ]</a:documentation>
+         <empty/>
+         <ref name="att.global.attributes"/>
+         <attribute name="value">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a lower bound for the numeric value represented,
+      and also (if max is not supplied) its upper bound.</a:documentation>
+            <ref name="data.numeric"/>
+         </attribute>
+         <optional>
+            <attribute name="max">
+               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies an upper bound for the numeric value represented.</a:documentation>
+               <ref name="data.numeric"/>
+            </attribute>
+         </optional>
+         <optional>
+            <attribute name="trunc">
+               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies whether the value represented should be
+	  truncated to give an integer value.</a:documentation>
+               <ref name="data.truthValue"/>
+            </attribute>
+         </optional>
+         <empty/>
+      </element>
+   </define>
+   <define name="string">
+      <element name="string">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(string value) represents the value part of a feature-value specification
+  which contains a string. [18.3. ]</a:documentation>
+      <text/>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="vLabel">
+      <element name="vLabel">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value label) represents the value part of a feature-value specification
+  which appears at more than one point in a feature structure.</a:documentation>
+         <optional>
+            <ref name="model.featureVal"/>
+         </optional>
+         <ref name="att.global.attributes"/>
+         <attribute name="name">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a name for the sharing point.</a:documentation>
+            <ref name="data.word"/>
+         </attribute>
+         <empty/>
+      </element>
+   </define>
+   <define name="vColl">
+      <element name="vColl">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(collection of values) represents the value part of a feature-value specification
+  which contains multiple values organized as a set, bag, or list.</a:documentation>
+         <group>
+            <zeroOrMore>
+               <choice>
+                  <ref name="fs"/>
+                  <ref name="model.featureVal.single"/>
+               </choice>
+            </zeroOrMore>
+         </group>
+         <ref name="att.global.attributes"/>
+         <optional>
+            <attribute name="org">
+               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(organization) indicates organization of given value or values as  set, bag or list.</a:documentation>
+               <choice>
+                  <value>set</value>
+                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the given values are organized as a set.
+   </a:documentation>
+                  <value>bag</value>
+                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the given values are organized as a
+bag (multiset).
+   </a:documentation>
+                  <value>list</value>
+                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the given values are organized as a
+list.</a:documentation>
+               </choice>
+            </attribute>
+         </optional>
+         <empty/>
+      </element>
+   </define>
+   <define name="default">
+      <element name="default">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(default feature value) represents the value part of a feature-value specification
+  which contains a defaulted value. [18.9. ]</a:documentation>
+         <empty/>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="vAlt">
+      <element name="vAlt">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value alternation) represents the value part of a feature-value specification
+  which contains a set of values, only one of which can be valid. [18.8.1. ]</a:documentation>
+         <group>
+            <group>
+               <ref name="model.featureVal"/>
+            </group>
+            <oneOrMore>
+               <ref name="model.featureVal"/>
+            </oneOrMore>
+         </group>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="vNot">
+      <element name="vNot">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value negation) represents a feature value which is the negation of its content. [18.8.2. ]</a:documentation>
+         <group>
+            <ref name="model.featureVal"/>
+         </group>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="vMerge">
+      <element name="vMerge">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(merged collection of values) represents a feature value which is the result of merging
+  together the feature values contained by its children, using the organization
+  specified by the org attribute. [18.8.3. ]</a:documentation>
+         <oneOrMore>
+            <ref name="model.featureVal"/>
+         </oneOrMore>
+         <ref name="att.global.attributes"/>
+         <optional>
+            <attribute name="org">
+               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the organization of the resulting merged values as  set, bag or list.</a:documentation>
+               <choice>
+                  <value>set</value>
+                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the resulting values are organized as a set.</a:documentation>
+                  <value>bag</value>
+                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the resulting values are organized as a bag (multiset).
+   </a:documentation>
+                  <value>list</value>
+                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the resulting values are organized as a list.</a:documentation>
+               </choice>
+            </attribute>
+         </optional>
+         <empty/>
+      </element>
+   </define>
+  
+  <define name="fs">
+    <element name="fs">
+      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature structure) represents a feature structure, that is, a
+        collection of feature-value pairs organized as a
+        structural unit. [18.2. ]</a:documentation>
+      <zeroOrMore>
+        <ref name="f"/>
+      </zeroOrMore>
+      <ref name="att.global.attributes"/>
+      <optional>
+        <attribute name="type">
+          <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the type of the feature structure.</a:documentation>
+          <ref name="data.enumerated"/>
+        </attribute>
+      </optional>
+      <optional>
+        <attribute name="feats">
+          <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(features) references the feature-value specifications making up this feature structure.</a:documentation>
+          <list>
+            <ref name="data.pointer"/>
+            <zeroOrMore>
+              <ref name="data.pointer"/>
+            </zeroOrMore>
+          </list>
+        </attribute>
+      </optional>
+    </element>
+  </define>
+  <define name="f">
+    <element name="f">
+      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature) represents a feature value specification, that
+        is, the association of a name with a value of any of several different types. [18.2. ]</a:documentation>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="model.featureVal"/>
+        </choice>
+      </zeroOrMore>
+      
+      <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="f-constraint-fValConstraints">
+        <rule xmlns:rng="http://relaxng.org/ns/structure/1.0" context="tei:fVal">
+          <assert test="not(tei:* and text)"> A feature value cannot
+            contain both text and element content</assert>
+        </rule>
+      </pattern>
+      <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="f-constraint-fValConstraints">
+        <rule xmlns:rng="http://relaxng.org/ns/structure/1.0" context="tei:fVal">
+          <report test="count(tei:*)&gt;1"> A feature value can contain
+            only one child element</report>
+        </rule>
+      </pattern>
+      
+      <ref name="att.global.attributes"/>
+      <attribute name="name">
+        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a name for the feature.</a:documentation>
+        <ref name="data.name"/>
+      </attribute>
+      <optional>
+        <attribute name="fVal">
+          <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature value) references any element which can be used to represent the
+            value of a feature.</a:documentation>
+          <ref name="data.pointer"/>
+        </attribute>
+      </optional>
+      <empty/>
+    </element>
+  </define>
+  <define name="model.featureVal">
+    <choice>
+      <ref name="model.featureVal.complex"/>
+      <ref name="model.featureVal.single"/>
+    </choice>
+  </define>
+</grammar>
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>
diff --git a/KorAP_schemas/ids-lat1.ent b/KorAP_schemas/ids-lat1.ent
new file mode 100644
index 0000000..a3f9c8f
--- /dev/null
+++ b/KorAP_schemas/ids-lat1.ent
@@ -0,0 +1,90 @@
+
+<!-- IDS character entity set. DO NOT EDIT THIS FILE!
+     Automatically generated from official_cmap.xsl - 20090120
+
+     Typical invocation:
+
+    <!ENTITY % IDSlat1 PUBLIC
+       "-//IDS//ENTITIES Latin 1 Extension for IDS-CES//EN"
+       "ids-lat1.ent">
+    %IDSlat1;
+-->
+<!ENTITY alpha "&#945;"> <!-- GREEK SMALL LETTER ALPHA -->
+<!ENTITY ap "&#8776;"> <!-- ALMOST EQUAL TO -->
+<!ENTITY bdquo "&#8222;"> <!-- DOUBLE LOW-9 QUOTATION MARK	 -->
+<!ENTITY blk12 "&#9618;"> <!-- MEDIUM SHADE -->
+<!ENTITY blk14 "&#9617;"> <!-- LIGHT SHADE -->
+<!ENTITY blk34 "&#9619;"> <!-- DARK SHADE -->
+<!ENTITY block "&#9608;"> <!-- FULL BLOCK -->
+<!ENTITY boxDL "&#9559;"> <!-- BOX DRAWINGS DOUBLE DOWN AND LEFT -->
+<!ENTITY boxdl "&#9488;"> <!-- BOX DRAWINGS LIGHT DOWN AND LEFT -->
+<!ENTITY boxdr "&#9484;"> <!-- BOX DRAWINGS LIGHT DOWN AND RIGHT -->
+<!ENTITY boxDR "&#9556;"> <!-- BOX DRAWINGS DOUBLE DOWN AND RIGHT -->
+<!ENTITY boxH "&#9552;"> <!-- BOX DRAWINGS DOUBLE HORIZONTAL -->
+<!ENTITY boxh "&#9472;"> <!-- BOX DRAWINGS LIGHT HORIZONTAL -->
+<!ENTITY boxhd "&#9516;"> <!-- BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -->
+<!ENTITY boxHD "&#9574;"> <!-- BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -->
+<!ENTITY boxhu "&#9524;"> <!-- BOX DRAWINGS LIGHT UP AND HORIZONTAL -->
+<!ENTITY boxHU "&#9577;"> <!-- BOX DRAWINGS DOUBLE UP AND HORIZONTAL -->
+<!ENTITY boxUL "&#9565;"> <!-- BOX DRAWINGS DOUBLE UP AND LEFT -->
+<!ENTITY boxul "&#9496;"> <!-- BOX DRAWINGS LIGHT UP AND LEFT -->
+<!ENTITY boxur "&#9492;"> <!-- BOX DRAWINGS LIGHT UP AND RIGHT -->
+<!ENTITY boxUR "&#9562;"> <!-- BOX DRAWINGS DOUBLE UP AND RIGHT -->
+<!ENTITY boxv "&#9474;"> <!-- BOX DRAWINGS LIGHT VERTICAL -->
+<!ENTITY boxV "&#9553;"> <!-- BOX DRAWINGS DOUBLE VERTICAL -->
+<!ENTITY boxvh "&#9532;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -->
+<!ENTITY boxVH "&#9580;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -->
+<!ENTITY boxvl "&#9508;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND LEFT -->
+<!ENTITY boxVL "&#9571;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND LEFT -->
+<!ENTITY boxVR "&#9568;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -->
+<!ENTITY boxvr "&#9500;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND RIGHT -->
+<!ENTITY bull "&#8226;"> <!-- BULLET	 -->
+<!ENTITY caron "&#711;"> <!-- CARON -->
+<!ENTITY ccaron "&#269;"> <!-- LATIN SMALL LETTER C WITH CARON	 -->
+<!ENTITY circ "&#710;"> <!-- MODIFIER LETTER CIRCUMFLEX ACCENT -->
+<!ENTITY dagger "&#8224;"> <!-- DAGGER -->
+<!ENTITY Dagger "&#8225;"> <!-- DOUBLE DAGGER -->
+<!ENTITY ecaron "&#283;"> <!-- LATIN SMALL LETTER E WITH CARON	 -->
+<!ENTITY euro "&#8364;"> <!-- EURO SIGN -->
+<!ENTITY fnof "&#402;"> <!-- LATIN SMALL LETTER F WITH HOOK	 -->
+<!ENTITY hellip "&#8230;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY Horbar "&#8215;"> <!-- DOUBLE LOW LINE	 -->
+<!ENTITY inodot "&#305;"> <!-- LATIN SMALL LETTER DOTLESS I	 -->
+<!ENTITY iota "&#953;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY ldquo "&#8220;"> <!-- LEFT DOUBLE QUOTATION MARK	 -->
+<!ENTITY ldquor "&#8222;"> <!-- DOUBLE LOW-9 QUOTATION MARK	 -->
+<!ENTITY lhblk "&#9604;"> <!-- LOWER HALF BLOCK -->
+<!ENTITY lsaquo "&#8249;"> <!-- SINGLE LEFT-POINTING ANGLE QUOTATION MARK  -->
+<!ENTITY lsquo "&#8216;"> <!-- LEFT SINGLE QUOTATION MARK	 -->
+<!ENTITY lsquor "&#8218;"> <!-- SINGLE LOW-9 QUOTATION MARK	 -->
+<!ENTITY mdash "&#8212;"> <!-- EM DASH	 -->
+<!ENTITY ndash "&#8211;"> <!-- EN DASH	 -->
+<!ENTITY nu "&#957;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY oelig "&#339;"> <!-- LATIN SMALL LIGATURE OE -->
+<!ENTITY OElig "&#338;"> <!-- LATIN CAPITAL LIGATURE OE -->
+<!ENTITY omega "&#969;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY Omega "&#937;"> <!-- GREEK CAPITAL LETTER OMEGA -->
+<!ENTITY permil "&#8240;"> <!-- PER MILLE SIGN -->
+<!ENTITY phi "&#966;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY pi "&#960;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY piv "&#982;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY rcaron "&#345;"> <!-- LATIN SMALL LETTER R WITH CARON	 -->
+<!ENTITY rdquo "&#8221;"> <!-- RIGHT DOUBLE QUOTATION MARK	 -->
+<!ENTITY rho "&#961;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY rsaquo "&#8250;"> <!-- SINGLE RIGHT-POINTING ANGLE QUOTATION MARK	 -->
+<!ENTITY rsquo "&#8217;"> <!-- RIGHT SINGLE QUOTATION MARK	 -->
+<!ENTITY rsquor "&#8216;"> <!-- LEFT SINGLE QUOTATION MARK	 -->
+<!ENTITY scaron "&#353;"> <!-- LATIN SMALL LETTER S WITH CARON	 -->
+<!ENTITY Scaron "&#352;"> <!-- LATIN CAPITAL LETTER S WITH CARON	 -->
+<!ENTITY sigma "&#963;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY squ "&#9633;"> <!-- WHITE SQUARE -->
+<!ENTITY squb "&#9632;"> <!-- BLACK SQUARE -->
+<!ENTITY squf "&#9642;"> <!-- BLACK SMALL SQUARE -->
+<!ENTITY sub "&#8834;"> <!-- SUBSET OF -->
+<!ENTITY tilde "&#732;"> <!-- SMALL TILDE	 -->
+<!ENTITY trade "&#8482;"> <!-- TRADE MARK SIGN -->
+<!ENTITY uhblk "&#9600;"> <!-- UPPER HALF BLOCK -->
+<!ENTITY Yuml "&#376;"> <!-- LATIN CAPITAL LETTER Y WITH DIAERESIS	 -->
+<!ENTITY zcaron "&#382;"> <!-- LATIN SMALL LETTER Z WITH CARON	 -->
+<!ENTITY Zcaron "&#381;"> <!-- LATIN CAPITAL LETTER Z WITH CARON	 -->
+
diff --git a/KorAP_schemas/ids.xcesdoc.dtd b/KorAP_schemas/ids.xcesdoc.dtd
new file mode 100644
index 0000000..31d3bc4
--- /dev/null
+++ b/KorAP_schemas/ids.xcesdoc.dtd
@@ -0,0 +1,515 @@
+<!-- IDS-XCES v1.0                                            -->
+<!--                                                          -->
+<!-- $Id: ids.xcesdoc.dtd 44 2009-02-20 11:01:28Z kupietz $   -->
+<!--                                                          -->
+<!-- based on:                                               -->
+<!--                                                          -->
+<!--                Corpus Encoding Standard                  -->
+<!--                                                          -->
+<!--                          CES                             -->
+<!--                                                          -->
+<!--            Encoding conventions for level 1              -->
+<!--                                                          -->
+<!--                                                          -->
+<!--                                                          -->
+<!--
+
+                                                              -->
+<!--                                                          -->
+<!--                   ENTITY DECLARATIONS                    -->
+<!--                                                          -->
+
+
+
+
+<!--                  Global attributes                       -->
+
+<!ENTITY % a.global '
+           id                 ID                  #IMPLIED
+           n                  CDATA               #IMPLIED
+           xml:lang           CDATA               #IMPLIED
+           lang               IDREF               #IMPLIED'     >
+
+<!ENTITY % a.text '%a.global;
+           rend               CDATA               #IMPLIED
+           wsd                CDATA               #IMPLIED'     >
+
+
+<!--      Elements that can appear between paragraphs         -->
+
+<!ENTITY % m.inter ' bibl | quote | list |
+                    poem | note | caption | figure | table '    >
+
+
+<!--                Sub-paragraph elements                    -->
+
+<!ENTITY % x.token  ''                                 >
+
+<!ENTITY % m.token  '%x.token; abbr | date | num |
+		     dateRange | numRange | timeRange |
+                     measure | name | term | time | w |'            >
+
+<!ENTITY % m.phrase '%m.token; corr | distinct | foreign |
+                     gap | hi | list | mentioned  | orig | q |
+                     ref | reg |  s | stage | title | table | xref'             >
+
+
+<!ENTITY % base.seq   '#PCDATA | %x.token; num | numRange | abbr | hi'       >
+
+<!ENTITY % phrase.seq '#PCDATA | %m.phrase;'                 >
+
+
+
+<!ENTITY % par.seq    '(p | sp | %m.inter;)*'                   >
+
+
+
+<!-- Entitaeten aus header.elt hiereher kopiert                -->
+
+<!ENTITY % a.header '%a.global;'                                 >
+
+<!ENTITY % a.declarable '
+           Default            (y | n)          "n"'               >
+
+
+<!ENTITY % ids.customization SYSTEM "ids.xcustomize.ent"      >
+%ids.customization;
+%ids.state.elem;
+
+<!--                                                          -->
+<!--                  ELEMENT DECLARATIONS                    -->
+<!--                                                          -->
+
+<!--                  HIGH-LEVEL COMPONENTS                   -->
+
+
+<!ELEMENT idsCorpus       (idsHeader,(idsDoc+)) >
+<!ATTLIST idsCorpus          %a.global;
+          type               CDATA               #IMPLIED 
+          version            CDATA               #REQUIRED  
+          TEIform            CDATA               'teiCorpus.2'  >
+
+<!ELEMENT idsDoc          (idsHeader, idsText+)                  >
+<!ATTLIST idsDoc             %a.global;
+          type               CDATA               "text"
+          version            CDATA               #REQUIRED
+          TEIform            CDATA               'TEI.2'        >
+
+
+<!ENTITY % ids.header PUBLIC "-//CES//ENTITIES Header//EN" "ids.xheader.elt"    >
+%ids.header;
+
+
+<!--                     WRITTEN TEXTS                        -->
+
+<!ELEMENT idsText         ((idsHeader , text)) >
+<!ATTLIST idsText               %a.global;
+         version            CDATA               #REQUIRED >
+
+<!ELEMENT text  (front | body |back | %ids.milestones;)*  >
+<!-- milestones...-->
+<!ATTLIST text      %a.global;              >
+
+<!ELEMENT front  (titlePage?,div*)            >
+<!ATTLIST front      %a.global;              >
+
+
+<!ELEMENT titlePage  ((docTitle|byline|docEdition|docImprint|epigraph)+)            >
+<!ATTLIST titlePage      %a.global;                           >
+
+<!ELEMENT docTitle   (titlePart+)                 >
+<!ATTLIST docTitle      %a.global;                   
+          type        (main | sub)       #IMPLIED   >  
+
+<!ELEMENT epigraph   (quote)                 >
+<!ATTLIST epigraph      %a.global;                   >
+
+<!ELEMENT docEdition   (#PCDATA)                 >
+<!ATTLIST docEdition      %a.global;                   >
+
+<!ELEMENT docImprint   (#PCDATA)                 >
+<!ATTLIST docImprint      %a.global;                   >
+
+<!ELEMENT titlePart   (#PCDATA | s)*                 >
+
+<!ATTLIST titlePart      %a.global;
+          type        (main | sub | desc | unspecified)       #IMPLIED   >
+
+<!ELEMENT back            (%par.seq;, div*)                  >
+<!ATTLIST  back                %a.text;                          >
+
+<!ELEMENT body            (%par.seq;, div*)                  >
+<!ATTLIST body               %a.text;
+          decls              IDREFS              #IMPLIED       >
+
+<!ELEMENT div             (opener | head | byline | p | sp | stage | %m.inter; | div | closer | %ids.milestones; )*     >
+
+<!ATTLIST div                %a.text;
+          complete           (y | n)             "y"
+          type               CDATA               #REQUIRED
+          decls              IDREFS              #IMPLIED       >
+
+
+
+<!--                     Opening elements                     -->
+
+<!ELEMENT opener          (%phrase.seq;| dateline | keywords | salute | %ids.milestones;)*     >
+%ids.opener.att;
+
+%ids.head;
+
+
+<!--             Keyword lists, bylines, datelines            -->
+
+<!ELEMENT keywords        (term+ | list)                     >
+<!ATTLIST keywords           %a.text;
+          scheme             IDREF               #IMPLIED       >
+
+
+<!ELEMENT byline          (%phrase.seq; | docAuthor | %ids.milestones;)*        >
+<!ATTLIST byline             %a.text;                           >
+
+<!ELEMENT docAuthor       (%base.seq; |  %ids.milestones; )*                       >
+<!ATTLIST docAuthor          %a.text;                           >
+
+<!ELEMENT dateline        (%base.seq; | date | time |
+			                     dateRange | timeRange |
+                           name | address | %ids.milestones;)*      >
+
+<!ATTLIST dateline           %a.text;                           >
+
+<!ELEMENT salute        (#PCDATA | %ids.milestones;)*                       >
+<!ATTLIST salute           %a.text;                           >
+
+
+<!ELEMENT signed        (#PCDATA | %ids.milestones;)*                       >
+<!ATTLIST signed           %a.text;                           >
+
+
+
+<!ELEMENT address         (%base.seq;)*                       >
+<!ATTLIST address            %a.text;                           >
+
+
+
+
+<!--                    Closing element                       -->
+
+<!ELEMENT closer          (%phrase.seq; | dateline | keywords | salute | signed | %ids.milestones;)*                     >
+<!ATTLIST closer             %a.text;                           >
+
+
+<!--      PARAGRAPH-LEVEL ELEMENTS  THE CLASS M.INTER         -->
+
+<!--                     Written paragraphs                   -->
+
+<!ELEMENT p               (%phrase.seq; | %ids.milestones;)*                     >
+
+<!ATTLIST p                  %a.text;                           >
+
+
+<!--                       Quotations                         -->
+
+<!ELEMENT quote           (%phrase.seq; | p | poem | %ids.milestones; )*     >
+<!ATTLIST quote              %a.text;
+          next               IDREF               #IMPLIED
+          prev               IDREF               #IMPLIED
+          type               CDATA               #IMPLIED
+          broken             (yes | no)          "no"             >
+
+
+<!--                          Lists                           -->
+
+
+<!ELEMENT list            (head?, (item | (label, (%ids.milestones;)* , item) | %ids.milestones;)*)  >
+<!ATTLIST list               %a.text;
+          type               CDATA               #IMPLIED       >
+
+<!ELEMENT item            (%phrase.seq; | p | %ids.milestones;)*              >
+<!ATTLIST item               %a.text;                           >
+
+<!ELEMENT label           (%phrase.seq;)*                       >
+<!ATTLIST label              %a.text;                           >
+
+
+<!--	Analog zu TEI koennen poem und quote innerhalb von note auftreten -->
+
+<!ELEMENT note            (%phrase.seq; | p | bibl | poem | quote | sp | %ids.milestones;)*     >
+<!ATTLIST note               %a.text;
+          place              (side | foot | end | unspec)
+
+                                                 "unspec"         >
+
+<!ELEMENT bibl            (%phrase.seq; | author | %ids.milestones;)*           >
+<!ATTLIST bibl               %a.text;
+                             %a.declarable;                     >
+
+<!ELEMENT author          (%base.seq;)*                       >
+<!ATTLIST author             %a.text;                           >
+
+
+<!--                         Poems                            -->
+
+<!ELEMENT poem            (head?, (lg | l | %ids.milestones;)+ )               >
+<!ATTLIST poem               %a.text;                           >
+
+<!ELEMENT lg              (l | lg | %ids.milestones;)+                          >
+<!ATTLIST lg                 %a.text;
+          type               CDATA               #IMPLIED
+          part               (y | n | u)         "u"              >
+
+<!ELEMENT l               (%phrase.seq; | %ids.milestones;)*                       >
+<!ATTLIST l                  %a.text;
+          part               (y | n | u)         "u"              >
+
+
+<!--                         Figures                          -->
+
+<!-- Motivation: Innerhalb von Bildbeischriften koennen auch Sprechpassagen
+		 oder Zitate inkl. Sprecher oder Titel auftreten.
+		 Die bisherige Strukturbeschreibung ist in dieser
+		 Hinsicht nicht ausreichend.
+-->
+
+<!ELEMENT figure          (head?, (p| %m.inter; | %ids.milestones; )*, figDesc?, text?)       >
+<!ATTLIST figure             %a.text;
+          entity             ENTITY              #IMPLIED       >
+
+<!ELEMENT figDesc         (%phrase.seq;)*                       >
+<!ATTLIST figDesc            %a.text;                           >
+
+<!--                         Tables                           -->
+
+<!ELEMENT table           (head?, (row | %ids.milestones;)+ )                      >
+<!ATTLIST table              %a.text;
+          rows               NMTOKEN              #IMPLIED
+          cols               NMTOKEN              #IMPLIED       >
+
+<!ELEMENT row             (cell | table)+                    >
+<!ATTLIST row                %a.text;
+          role               CDATA               "data"           >
+
+<!ELEMENT cell            (%phrase.seq; | %ids.milestones;)*                      >
+<!ATTLIST cell               %a.text;
+          role               CDATA               "data"
+          rows               NMTOKEN              "1"
+          cols               NMTOKEN              "1"              >
+
+
+<!--                         Captions                         -->
+
+<!-- Motivation: Innerhalb von Captions koennen beliebige paragraph-
+		 wertige Strukturen sowie Ueberschriften auftreten.
+		 Die bisherige Strukturbeschreibung ist in dieser
+		 Hinsicht voellig unzureichend, da sie nur satzwertige
+		 Strukturen erlaubt.
+-->
+<!ELEMENT caption         ( head*, (p | %m.inter; | %ids.milestones; )+ )       >
+<!ATTLIST caption            %a.text;
+          type               ( byline | display |
+                             attached | unspec )    "unspec"      >             
+
+
+
+<!--	Analog zu TEI koennen auch poem und quote
+	innerhalb von sp auftreten -->
+
+<!ELEMENT sp              (speaker | p | quote | poem |	stage | %ids.milestones; )* >
+<!ATTLIST sp                 %a.text;
+          who                CDATA             #IMPLIED       >
+
+
+<!ELEMENT speaker         (%base.seq; |  %ids.milestones; )*                       >
+<!ATTLIST speaker            %a.text;                           >
+
+<!ELEMENT stage           (%base.seq; | p | %ids.milestones; )*                       >
+<!ATTLIST stage              %a.text;
+          type               CDATA               #IMPLIED       >
+
+
+
+<!--      SENTENCES, QUOTED DIALOGUE WITHIN PARAGRAPHS        -->
+
+<!ELEMENT s               (%phrase.seq; | %ids.milestones; )*                     >
+<!ATTLIST s                  %a.text;
+          next               IDREF               #IMPLIED
+          prev               IDREF               #IMPLIED
+          type               CDATA               #IMPLIED
+          broken             (yes | no)          "no"             >
+
+
+<!ELEMENT q               (%phrase.seq; | %ids.milestones; )*                     >
+<!ATTLIST q                  %a.text; %ids.q.att.type;
+          next               IDREF               #IMPLIED
+          prev               IDREF               #IMPLIED
+          direct             (y | n | unspecified)
+                                                 "unspecified"
+          who                CDATA               #IMPLIED
+          broken             (yes | no)          "no"             >
+
+
+
+<!--       PHRASE-LEVEL ELEMENTS  THE CLASS M.PHRASE          -->
+
+
+<!--                    Editorial Changes                     -->
+
+<!ELEMENT gap                EMPTY                              >
+<!ATTLIST gap                %a.text;
+          desc               CDATA               #IMPLIED
+          reason             CDATA               #IMPLIED
+          resp               CDATA               #IMPLIED
+          cert               CDATA               #IMPLIED       >
+
+<!ELEMENT reg               (%phrase.seq;)*                     >
+<!ATTLIST reg                %a.text;
+          orig               CDATA               #IMPLIED
+          resp               CDATA               #IMPLIED
+          cert               CDATA               #IMPLIED       >
+
+<!-- Seubert, 07.03.05	erweitert um Attribut 'regalt' wg. Varianten 
+			in sog. Sparschreibung		       -->
+<!ELEMENT orig            (%phrase.seq;)*                     >
+<!ATTLIST orig                %a.text;
+          reg                CDATA               #IMPLIED
+          regalt             CDATA               #IMPLIED
+          resp               CDATA               #IMPLIED
+          cert               CDATA               #IMPLIED       >
+
+<!ELEMENT corr            (%phrase.seq;)*                     >
+<!ATTLIST corr               %a.text;
+          sic                CDATA               #IMPLIED
+          resp               CDATA               #IMPLIED
+          cert               CDATA               #IMPLIED       >
+
+
+<!--                     Highlighted text                     -->
+
+<!ELEMENT hi                (%phrase.seq; | %ids.milestones;)*                 >
+<!ATTLIST hi                 %a.text;                           >
+
+
+
+<!--               Other Phrase-level Elements                -->
+
+<!ELEMENT date            (%base.seq;)*                       >
+<!ATTLIST date               %a.text;
+          ISO8601            CDATA               #IMPLIED       >
+
+<!ELEMENT foreign         (%phrase.seq; | %ids.milestones;)*           >
+<!ATTLIST foreign            %a.text;                           >
+
+<!ELEMENT distinct        (%phrase.seq; | %ids.milestones;)*         >
+<!ATTLIST distinct           %a.text;
+          type               CDATA               #IMPLIED       >
+
+<!ELEMENT mentioned       (%phrase.seq;| %ids.milestones;)*        >
+<!ATTLIST mentioned           %a.text;                          >
+
+<!ELEMENT measure         (%base.seq;)*                       >
+<!ATTLIST measure            %a.text;
+          type               (weight| length| count| area|
+                             volume| temperature| currency)
+                                                 #IMPLIED
+          value              CDATA               #IMPLIED       >
+
+<!ELEMENT name            (%base.seq; | %ids.milestones;)*                       >
+<!ATTLIST name               %a.text;
+          type               CDATA
+                                                 #IMPLIED       >
+
+<!ELEMENT term            (%base.seq; | %ids.milestones;)*                       >
+<!ATTLIST term               %a.text;
+          type               CDATA               #IMPLIED       >
+
+%ids.gloss;
+
+<!ELEMENT time            (%base.seq; | %ids.milestones;)*                       >
+<!ATTLIST time               %a.text;
+          ISO8601            CDATA               #IMPLIED
+          type               (am | pm | 24hour | descriptive)
+                                                 #IMPLIED       >
+
+<!-- provisorisch eingefuegt, Seubert (30.06.2004) -->
+<!ELEMENT w         	  (#PCDATA) 				>
+<!ATTLIST w                  %a.text;
+          ana                CDATA               #IMPLIED       
+          ctag               CDATA               #IMPLIED       
+          type               CDATA               #IMPLIED       >
+
+<!ELEMENT title           (%phrase.seq; | %ids.milestones;)*            >
+<!ATTLIST title              %a.text;
+          type               CDATA               #IMPLIED       >
+
+<!ELEMENT abbr            (#PCDATA)                          >
+<!ATTLIST abbr               %a.text;
+          expan              CDATA               #IMPLIED
+          resp               IDREF               #IMPLIED
+          cert               CDATA               #IMPLIED
+          type               CDATA               #IMPLIED       >
+
+<!ELEMENT num             (#PCDATA)                          >
+<!ATTLIST num                %a.text;
+          type               CDATA               #IMPLIED
+          value              CDATA               #IMPLIED       >
+
+
+<!-- Eric Seubert, 03.03.06 provisorisch eingefuegt -->
+
+<!ELEMENT dateRange         (%base.seq;)*                       >
+<!ATTLIST dateRange          %a.text;
+          from               CDATA               #IMPLIED        
+          to                 CDATA               #IMPLIED       >
+
+<!ELEMENT numRange          (%base.seq;)*                       >
+<!ATTLIST numRange           %a.text;
+          from               CDATA               #IMPLIED        
+          to                 CDATA               #IMPLIED        
+          type               CDATA               #IMPLIED	>
+
+<!ELEMENT timeRange         (%base.seq;)*                       >
+<!ATTLIST timeRange          %a.text;
+          from               CDATA               #IMPLIED        
+          to                 CDATA               #IMPLIED       >
+
+
+
+
+
+<!--              SEGMENTATION, LINKING, ALIGNMENT            -->
+
+<!--                 Simple cross references                  -->
+
+<!ELEMENT ptr             EMPTY                              >
+<!ATTLIST ptr                %a.text;
+          corresp            IDREFS              #IMPLIED
+          next               IDREF               #IMPLIED
+          prev               IDREF               #IMPLIED
+          type               CDATA               #IMPLIED
+          resp               CDATA               #IMPLIED
+          crdate             CDATA               #IMPLIED
+          targType           NMTOKENS            #IMPLIED
+          targOrder          (y | n | u)         "u"
+          evaluate           (all | one | none)  #IMPLIED
+          target             IDREFS              #REQUIRED      >
+
+<!ELEMENT ref             (%phrase.seq; | %ids.milestones; )*                     >
+<!ATTLIST ref                %a.text;
+          corresp            IDREFS              #IMPLIED
+          next               IDREF               #IMPLIED
+          prev               IDREF               #IMPLIED
+          type               CDATA               #IMPLIED
+          resp               CDATA               #IMPLIED
+          crdate             CDATA               #IMPLIED
+          targType           NMTOKENS               #IMPLIED
+          targOrder          (y | n | u)         "u"
+          evaluate           (all | one | none)  #IMPLIED
+          target             CDATA               #IMPLIED       >
+
+
+<!--                     PUBLIC ENTITY SETS                   -->
+
+
+<!ENTITY % IDSlat1 PUBLIC "-//IDS//ENTITIES Latin 1 Extension for IDS-CES//EN"  "ids-lat1.ent">
+%IDSlat1;
+
diff --git a/KorAP_schemas/ids.xcustomize.ent b/KorAP_schemas/ids.xcustomize.ent
new file mode 100644
index 0000000..afd208a
--- /dev/null
+++ b/KorAP_schemas/ids.xcustomize.ent
@@ -0,0 +1,102 @@
+<!ENTITY % ids.hyphenation '
+<!ELEMENT hyphenation     (p+)                              > 
+<!ATTLIST hyphenation        %a.global; 
+                             %a.declarable; 
+          eol                (all | some | none) "some"           >'>       
+
+<!ENTITY % ids.head '
+<!ELEMENT head               (%phrase.seq; | ptr)*                       >
+<!ATTLIST head               %a.text;
+          type  (top | main | sub | cross | desc | unspecified)   "unspecified" >'>
+
+<!ENTITY % ids.opener.att ' 
+<!ATTLIST opener             %a.text;     
+          type               (lead | unspecified)   "unspecified" >' >
+
+
+<!ENTITY % ids.q.att.type '
+            type               (w | o | unspec)   "unspec" ' >
+
+
+<!ENTITY % ids.milestones 'pb | lb | ptr | xptr'              >
+
+<!ELEMENT pb EMPTY>
+<!ATTLIST pb
+     id ID #IMPLIED
+     lang IDREF #IMPLIED
+     rend CDATA #IMPLIED
+     ed CDATA #IMPLIED
+     n CDATA #IMPLIED
+     TEIform CDATA "pb" >
+
+<!ELEMENT lb EMPTY>
+<!ATTLIST lb
+     id ID #IMPLIED
+     lang IDREF #IMPLIED
+     rend CDATA #IMPLIED
+     ed CDATA #IMPLIED
+     n CDATA #IMPLIED
+     TEIform CDATA "pb" >
+
+<!ELEMENT xptr         EMPTY >
+<!ATTLIST xptr 
+        corresp IDREFS #IMPLIED
+        next IDREF #IMPLIED
+        prev IDREF #IMPLIED
+        ana IDREFS #IMPLIED
+        id ID #IMPLIED
+        n CDATA #IMPLIED
+        lang IDREF #IMPLIED
+        rend CDATA #IMPLIED
+        type CDATA #IMPLIED
+        resp CDATA #IMPLIED
+        crdate CDATA #IMPLIED
+        targType CDATA #IMPLIED
+        targOrder (y | n | u) "u"
+        evaluate (all | one | none) #IMPLIED
+        doc CDATA #IMPLIED
+        from CDATA "ROOT"
+        to CDATA "DITTO"
+        TEIform CDATA "xptr" >
+
+<!ELEMENT xref               (%phrase.seq;)*                             >
+<!ATTLIST xref                %a.text;
+        corresp IDREFS #IMPLIED
+        next IDREF #IMPLIED
+        prev IDREF #IMPLIED
+        ana IDREFS #IMPLIED
+        type CDATA #IMPLIED
+        resp CDATA #IMPLIED
+        crdate CDATA #IMPLIED
+        targType CDATA #IMPLIED
+        targOrder (y | n | u) "u"
+        evaluate (all | one | none) #IMPLIED
+        doc ENTITY #IMPLIED
+        from CDATA "ROOT"
+        to CDATA "DITTO"
+        TEIform CDATA "xref" >
+
+
+<!ENTITY % ids.state 'state'   >
+<!ENTITY % ids.state '#PCDATA' >
+
+
+
+<!ENTITY % ids.state.elem '
+<!ELEMENT state           EMPTY                              >
+<!ATTLIST state              %a.global;
+          ed                 CDATA               #IMPLIED
+          unit               CDATA               #REQUIRED
+          length             NMTOKEN              #IMPLIED
+          delim              CDATA               #IMPLIED       >' >
+
+
+<!ENTITY % ids.gloss '
+<!ELEMENT gloss           (%phrase.seq;)*                     >
+<!ATTLIST gloss              %a.global;
+          target             IDREF               #IMPLIED       >' >
+
+<!ENTITY % ids.gloss.elem '' >
+
+<!ENTITY % ids.textDesc 'textDesc' >
+
diff --git a/KorAP_schemas/ids.xheader.elt b/KorAP_schemas/ids.xheader.elt
new file mode 100644
index 0000000..cb66da4
--- /dev/null
+++ b/KorAP_schemas/ids.xheader.elt
@@ -0,0 +1,480 @@
+
+<!--  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"             -->
+<!--                                                          -->
+<!--  
+                                                              -->
+<!ENTITY % a.header '%a.global;'                                 >
+
+<!ENTITY % a.declarable '
+           default            (y | n)          "n"'               >
+
+<!ELEMENT idsHeader          (fileDesc, encodingDesc?,
+                             profileDesc?, revisionDesc?)       >
+<!ATTLIST idsHeader             %a.header;
+          type               CDATA               "text"
+          pattern              CDATA               "text"
+          creator            CDATA               #IMPLIED
+          status             (new | update)      "new"
+          date.created       CDATA               #IMPLIED
+          date.updated       CDATA               #IMPLIED
+          version            CDATA               #REQUIRED      
+          TEIform            CDATA               'teiHeader'    >
+
+<!--          File Description                                -->
+
+<!ELEMENT fileDesc        (titleStmt, editionStmt?,
+                             extent?, publicationStmt,
+                             sourceDesc+ )                      >
+<!ATTLIST fileDesc           %a.header;                         >
+
+<!--          Title statement                                 -->
+
+<!ELEMENT h.title         ( #PCDATA )                        >
+<!ATTLIST h.title           %a.header;                          
+	  type              (main | sub | abbr) "main"
+	  level             (m | a)             #IMPLIED         >
+
+
+
+<!-- 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.
+-->
+
+<!ELEMENT titleStmt       ((korpusSigle , c.title , respStmt*) |
+                              (dokumentSigle , d.title , respStmt* ) |
+                              (textSigle , t.title ,  respStmt* ) |
+                              (x.title ,  respStmt* )) >
+<!ATTLIST titleStmt          %a.header;                         >
+
+<!ELEMENT korpusSigle         ( #PCDATA )                        >
+<!ATTLIST korpusSigle           %a.header;                          >
+
+<!ELEMENT c.title         ( #PCDATA )                        >
+<!ATTLIST c.title           %a.header;                          >
+
+<!ELEMENT dokumentSigle         ( #PCDATA )                        >
+<!ATTLIST dokumentSigle           %a.header;                          >
+
+<!ELEMENT d.title         ( #PCDATA )                        >
+<!ATTLIST d.title           %a.header;                          >
+
+<!ELEMENT textSigle         ( #PCDATA )                        >
+<!ATTLIST textSigle           %a.header;                          >
+
+<!-- Motivation: Einrichtung des Attributs assemblage nach Modifikation
+		 der Quellennachweise von al-Wadi (06.05.03) --> 
+
+<!ELEMENT t.title         ( #PCDATA )                        >
+<!ATTLIST t.title           %a.header;                           
+	  assemblage      (external | regular | non-automatic) #IMPLIED >
+
+<!-- Motivation : x.title analog der CES-Vorgabe h.title. -->
+
+<!ELEMENT x.title         ( #PCDATA )                        >
+<!ATTLIST x.title           %a.header;                          >
+
+<!ELEMENT respStmt        ((respType, respName), (respType
+                             | respName)*)                      >
+<!ATTLIST respStmt           %a.header;                         >
+
+<!ELEMENT respType        (#PCDATA)                          >
+<!ATTLIST respType           %a.header;                         >
+
+<!ELEMENT respName        (#PCDATA)                          >
+<!ATTLIST respName           %a.header;                         >
+
+
+<!--          Edition Statement                               -->
+
+<!ELEMENT editionStmt     (#PCDATA)                          >
+<!ATTLIST editionStmt        %a.header;
+          version            CDATA                #IMPLIED      >
+
+<!--          Extent statement                                -->
+
+<!ELEMENT extent          (wordCount, byteCount, extNote* )  >
+<!ATTLIST extent             %a.header;                         >
+
+<!ELEMENT wordCount       (#PCDATA )                         >
+<!ATTLIST wordCount          %a.header;                         >
+
+<!ELEMENT byteCount       (#PCDATA )                         >
+<!ATTLIST byteCount          %a.header;
+          units              (bytes | kb| mb | gb)     "kb"            >
+
+<!ELEMENT extNote         (#PCDATA )                         >
+<!ATTLIST extNote            %a.header;                         >
+
+
+<!--          Publication statement                           -->
+
+<!ELEMENT publicationStmt
+                          (distributor, pubAddress,
+                             telephone*, fax*, 
+                             eAddress*, idno*,
+                             availability, pubDate )            >
+<!ATTLIST publicationStmt    %a.header;                         >
+
+<!ELEMENT distributor     (#PCDATA )                         >
+<!ATTLIST distributor        %a.header;                         >
+
+
+<!ELEMENT pubAddress      (#PCDATA )                         >
+<!ATTLIST pubAddress         %a.header;                         >
+
+<!ELEMENT telephone       (#PCDATA )                         >
+<!ATTLIST telephone          %a.header;                         >
+
+<!ELEMENT fax             (#PCDATA )                         >
+<!ATTLIST fax                %a.header;                         >
+
+
+<!ELEMENT eAddress        (#PCDATA )                         >
+<!ATTLIST eAddress           %a.header;
+          type               CDATA               "email"          >
+
+<!ELEMENT idno            (#PCDATA )                         >
+<!ATTLIST idno               %a.header;
+          type               CDATA               "ISBN"           >
+
+<!ELEMENT availability    (#PCDATA )                         >
+<!ATTLIST availability       %a.header;
+          region             CDATA               "world"
+          status             (free | unknown | restricted)
+                                               "unknown"          >
+<!ELEMENT pubDate         (#PCDATA )                         >
+<!ATTLIST pubDate            %a.header;
+          type               (year | month | day)    #IMPLIED       >
+
+
+
+<!--          Source description                              -->
+
+<!ELEMENT sourceDesc      ((biblFull | biblStruct)+,reference*)         >
+<!ATTLIST sourceDesc         %a.header;
+                             %a.declarable;                     >
+
+<!-- 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' -->
+
+<!ELEMENT reference      (#PCDATA)         >
+<!ATTLIST reference     %a.header;  
+	  type		  (complete | super | short | former) #IMPLIED
+	  assemblage      (external | regular | non-automatic) #IMPLIED
+	  existence       (no | yes) #IMPLIED
+          origin          (BOTfile | notBOTfile) #IMPLIED      >
+
+
+<!--   Bibliographic citation for non-electronic source       -->
+
+<!ELEMENT h.bibl            (#PCDATA )                       >
+<!ATTLIST h.bibl               %a.header;                       >
+
+<!ELEMENT biblStruct      (analytic?, monogr+)               >
+<!ATTLIST biblStruct         %a.header;
+                             %a.declarable;                     >
+
+<!ELEMENT analytic          (h.title+,
+                             (h.author | editor)*,
+                             (biblScope | biblNote)*,           
+                             (edition, respStmt?)*, 
+                             imprint+, idno*,
+                             (biblNote | biblScope)* )          >
+
+<!ATTLIST analytic             %a.header;                         >
+
+<!-- editor: hinzu 26.07 -->
+<!ELEMENT monogr          (h.title+,
+                             (h.author | editor)*,
+                             (biblScope | biblNote)*,           
+                             (edition, respStmt?)*, 
+                             imprint+, idno*,
+                             (biblNote | biblScope)* )          >
+
+<!ATTLIST monogr             %a.header;                         >
+
+<!ELEMENT h.author        (#PCDATA)                          >
+<!ATTLIST h.author           %a.header;                         >
+
+<!ELEMENT editor        (#PCDATA)                          >
+<!ATTLIST editor           %a.header;                         >
+
+<!ELEMENT edition         (further,kind,appearance)          >
+<!ATTLIST edition            %a.header;                         >
+
+<!ELEMENT further         (#PCDATA)          >
+<!ATTLIST further            %a.header;                         >
+
+<!ELEMENT kind         (#PCDATA)          >
+<!ATTLIST kind            %a.header;                         >
+
+<!ELEMENT appearance         (#PCDATA)          >
+<!ATTLIST appearance            %a.header;                         >
+
+<!ELEMENT imprint         (pubPlace | publisher | pubDate)*  >
+<!ATTLIST imprint            %a.header;                         >
+
+<!ELEMENT pubPlace        (#PCDATA)                          >
+<!ATTLIST pubPlace           %a.header;                         >
+
+<!ELEMENT publisher       (#PCDATA)                          >
+<!ATTLIST publisher          %a.header;
+          type               (place | org | person)  #IMPLIED       >
+
+
+<!ELEMENT biblScope       (#PCDATA)                          >
+<!ATTLIST biblScope          %a.header;
+          type               (subsume | pp | vol | issue | issueplace |
+			      suppl | suppltitle | volume-title)  #IMPLIED >
+
+<!ELEMENT biblNote        (#PCDATA)                          >
+<!ATTLIST biblNote           %a.header;                         >
+
+
+<!--    Bibliographical info for source in electronic form    -->
+
+<!ELEMENT biblFull        (titleStmt, editionStmt?,
+                             extent?, publicationStmt,
+                             sourceDesc* )                      >
+<!ATTLIST biblFull           %a.header;                         >
+
+
+<!--        Encoding description                              -->
+<!ELEMENT encodingDesc    (projectDesc?,samplingDecl*,
+                             editorialDecl*, tagsDecl?,
+                             refsDecl*, classDecl?)             >
+<!ATTLIST encodingDesc       %a.header;                         >
+
+<!ELEMENT projectDesc     (#PCDATA)                          >
+<!ATTLIST projectDesc        %a.header;
+                             %a.declarable;                     >
+
+<!ELEMENT samplingDecl    (#PCDATA)                          >
+<!ATTLIST samplingDecl       %a.header;
+                             %a.declarable;                     >
+
+<!--          Editorial declaration                           -->
+<!ELEMENT editorialDecl   (pagination | correction | quotation
+                             | hyphenation | segmentation |
+                             transduction | normalization |
+                             conformance)+                      >
+<!ATTLIST editorialDecl      %a.header;
+                             %a.declarable;                     >
+
+<!ELEMENT pagination    (#PCDATA)                         >
+<!ATTLIST pagination      %a.header;
+          type             (yes|no) #IMPLIED                   >                  
+                     
+
+<!ELEMENT correction      (#PCDATA)                          >
+<!ATTLIST correction         %a.header;
+                             %a.declarable;
+          status             (high | medium | low | unknown)
+                                                 "unknown"
+          method             (silent | tags)     "silent"         >
+
+<!ELEMENT quotation       (#PCDATA)                          >
+<!ATTLIST quotation          %a.header;
+                             %a.declarable;
+          marks              (none | some | all) "all"
+          form               (data | rend | std | 
+                              nonstd | unknown)  "unknown"        >
+
+%ids.hyphenation;
+
+<!ELEMENT segmentation    (#PCDATA)                          >
+<!ATTLIST segmentation       %a.header;
+                             %a.declarable;                     >
+
+<!ELEMENT transduction    (#PCDATA)                          >
+<!ATTLIST transduction       %a.header;
+                             %a.declarable;                     >
+
+<!ELEMENT normalization   (#PCDATA)                          >
+<!ATTLIST normalization      %a.header;
+                             %a.declarable;
+          source             CDATA               #IMPLIED
+          method             (silent | tags)     "silent"         >
+
+<!ELEMENT conformance     (#PCDATA)                          >
+<!ATTLIST conformance        %a.header;
+          level              (0 | 1 | 2 | 3)     "1"              >
+
+
+<!--          Tag declaration                                 -->
+
+<!ELEMENT tagsDecl        (tagUsage+)                        >
+<!ATTLIST tagsDecl           %a.header;                         
+
+>
+
+<!ELEMENT tagUsage        (#PCDATA)                          >
+<!ATTLIST tagUsage           %a.header;
+          gi                 NMTOKEN                #REQUIRED
+          occurs             NMTOKEN              #IMPLIED       
+          wsd                CDATA               #IMPLIED       >
+
+<!--          References declaration                          -->
+
+<!ELEMENT refsDecl        (%ids.state;)                      >
+<!ATTLIST refsDecl           %a.header;
+          doctype            NMTOKEN                #IMPLIED       >
+
+<!--          Classify texts declaration                      -->
+
+<!ELEMENT classDecl        (taxonomy+)                       >
+<!ATTLIST classDecl           %a.header;                        >
+
+<!ELEMENT taxonomy        (category+ | 
+                             ((h.bibl | biblStruct),category*)) >
+<!ATTLIST taxonomy           %a.header;                         >
+
+<!ELEMENT category        (catDesc, category*)               >
+<!ATTLIST category            
+           id                 ID                  #REQUIRED
+           n                  CDATA               #IMPLIED
+           lang               IDREF               #IMPLIED      >
+
+<!ELEMENT catDesc         (#PCDATA)                          >
+<!ATTLIST catDesc            %a.header;                         >
+
+<!--        Profile description                               -->
+
+<!ELEMENT profileDesc     (creation?, langUsage?, wsdUsage?,
+                             textClass?, translations?,
+                             annotations?, %ids.textDesc; )     >
+<!ATTLIST profileDesc        %a.header;                         >
+
+<!--          Creation element                                -->
+
+<!ELEMENT creation        (creatDate,creatRef?,creatRefShort?)                         >
+<!ATTLIST creation           %a.header;                                                 >
+ 
+
+<!ELEMENT creatDate        (#PCDATA)			                                >
+<!ATTLIST creatDate          %a.header;                                                 >
+
+<!ELEMENT creatRef       (#PCDATA)			                                >
+<!ATTLIST creatRef           %a.header;                                                 >
+
+<!ELEMENT creatRefShort        (#PCDATA)			                                >
+<!ATTLIST creatRefShort           %a.header;                                                 >
+
+<!ELEMENT langUsage       (language+ )                       >
+<!ATTLIST langUsage          %a.header;                         >
+
+
+
+<!ELEMENT language        (#PCDATA)                          >
+<!ATTLIST language            
+          id                 ID                  #IMPLIED
+	  usage              CDATA               #IMPLIED     >
+
+<!ELEMENT wsdUsage        (writingSystem+)                   >
+<!ATTLIST wsdUsage           %a.header;                         >
+
+<!ELEMENT writingSystem   (#PCDATA)                          >
+<!ATTLIST writingSystem      
+          id                 ID                  #IMPLIED
+          lang               CDATA               #IMPLIED
+          wsd                ENTITY              #IMPLIED
+          n                  CDATA               #IMPLIED       >
+
+<!--          Text Class                                      -->
+
+<!ELEMENT textClass       ((catRef | h.keywords)*)           >
+<!ATTLIST textClass          %a.header;
+                             %a.declarable;                     >
+
+<!ELEMENT catRef            EMPTY                              >
+<!ATTLIST catRef             %a.header;
+          target             IDREFS              #REQUIRED      
+          scheme             CDATA               #IMPLIED       >
+
+<!ELEMENT h.keywords      (keyTerm+)                         >
+<!ATTLIST h.keywords         %a.header;                         >
+
+<!ELEMENT keyTerm         (#PCDATA)                          >
+<!ATTLIST keyTerm            %a.header;
+	  type		   CDATA                  #IMPLIED  >
+
+
+<!--          Translations                                    -->
+
+<!ELEMENT translations    (translation, translator?)+        >
+<!ATTLIST translations       %a.header;                         >
+
+<!ELEMENT translation     (#PCDATA)                          >
+<!ATTLIST translation        
+          id                 ID                  #IMPLIED
+          lang               CDATA               #REQUIRED
+          wsd                CDATA               #REQUIRED
+          n                  CDATA               #IMPLIED
+          trans.loc          CDATA               #IMPLIED       >
+
+<!ELEMENT translator      (#PCDATA)                          >
+<!ATTLIST translator         %a.header;                         >
+
+<!--          Annotations                                     -->
+
+<!ELEMENT annotations     (annotation+)                      >
+<!ATTLIST annotations        %a.header;                         >
+
+<!ELEMENT annotation      (#PCDATA)                          >
+<!ATTLIST annotation         %a.header; 
+          type               CDATA               #IMPLIED             
+          ann.loc            CDATA               #IMPLIED     
+          trans.loc          CDATA               #IMPLIED       >
+
+<!--         TextDesc	                                     -->
+
+<!ELEMENT textDesc       ((textType?,textTypeRef?),(textTypeArt?,textDomain?,column?))                       >
+<!ATTLIST textDesc          %a.header;                         >
+
+<!ELEMENT textType       (#PCDATA)                       >
+<!ATTLIST textType          %a.header;                         >
+
+<!ELEMENT textTypeRef       (#PCDATA)                       >
+<!ATTLIST textTypeRef          %a.header;                         >
+
+<!ELEMENT textTypeArt       (#PCDATA)                       >
+<!ATTLIST textTypeArt          %a.header;                         >
+
+<!ELEMENT textDomain       (#PCDATA)                       >
+<!ATTLIST textDomain          %a.header;                         >
+
+<!ELEMENT column       (#PCDATA)                       >
+<!ATTLIST column          %a.header;                         >
+
+<!--       Revision description                               -->
+
+<!ELEMENT revisionDesc    (change+)                          >
+<!ATTLIST revisionDesc       %a.header;                         >
+
+<!ELEMENT change          (changeDate, respName, h.item+)    >
+<!ATTLIST change             %a.header;                         >
+
+<!ELEMENT changeDate      (#PCDATA)                          >
+<!ATTLIST changeDate         %a.header;
+          value               CDATA              #IMPLIED       >
+
+<!ELEMENT h.item          (#PCDATA)                          >
+<!ATTLIST h.item             %a.header;                         >
+
diff --git a/KorAP_schemas/metadata.rng b/KorAP_schemas/metadata.rng
new file mode 100644
index 0000000..09b4fdd
--- /dev/null
+++ b/KorAP_schemas/metadata.rng
@@ -0,0 +1,423 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://ids-mannheim.de/ns/KorAP">
+  <!-- $Id$ -->
+  <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">RNG schema for KorAP
+    XML metadata</documentation>
+  
+  <define name="non-document_top_content">
+    <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">Supposed to appear in
+      both the extracted foundries (all_metadata.xml) and their exported/consolidated
+      versions</documentation>
+    <attribute name="id">
+      <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">For foundry
+        elements, this consists of the document ID, underscore, and @nspref. In the central foundry
+        list, there are no docIDs, so it is fully redundant wrt @nspref (oh well).</documentation>
+      <data type="ID"/>
+    </attribute>
+    <optional>
+      <attribute name="dependsOn">
+        <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This attribute is
+          supposed to match the @nspref attribute of a foundry that the foundry in question depends on
+          (e.g., the mate foundry depends on the base foundry for tokenization, so uses @dependsOn="#base". This has to be
+          taken into account when exporting -- fragIDs have to be turned into long (potentially relative) URIs.</documentation>
+        <data type="anyURI"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="restricted">
+        <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This attribute
+          points at wherever the information on the licensing conditions is stored. So, for the time
+          being, its actual occurrences will be given some fake URI values.</documentation>
+        <data type="anyURI"/>
+      </attribute>
+    </optional>
+  </define>
+  <!-- non-document_top_content -->
+  
+  <define name="foundry_atts">
+    <attribute name="name">
+      <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This is the name of
+        the foundry, it can be longish but still has to obey the constraints on XML Names. @nspref
+        is its (possibly) shorter version, used for all sorts of referential magic.</documentation>
+      <data type="NCName"/>
+    </attribute>
+    <attribute name="nspref">
+      <data type="NCName"/>
+      <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This attribute
+        defines the namespace prefix that serves to identify foundries (e.g. "tt4" for (some version
+        of) TreeTagger). Note also that the value list should be open, because users will be able to
+        add their own foundries and thus to define their own prefixes. It may also be expected to be
+        shorter than foundry name. This attribute is used as part of the IDs for layers (so the 1st
+        layer in the base foundry will be ID-ed as "base_l1", and in the opennlp foundry, the ID
+        will be "onlp_l1"), and also as a reference anchor for the @dependsOn
+        attribute (via the resolution of 'long' URIs or just fragIDs, file-internally).</documentation>
+    </attribute>
+  </define>
+  <!-- foundry_atts -->
+
+  <define name="layer">
+    <element name="layer">
+      <choice>
+        <attribute name="file">
+          <data type="anyURI"/>
+        </attribute>
+        <attribute name="external">
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This is to be
+            used in consolidated foundry metadata, to signal that the layer in question
+            (usually/always the tokenization layer) is external to the foundry. This attribute sadly
+            becomes invalid if the foundry is exported, and thus needs a special mechanism in such
+            cases (possibly, it should entail the export of the targeted layer from another (base?)
+            foundry and then it should be replaced by the appropriate @file
+            attribute)</documentation>
+          <data type="IDREF"/>
+        </attribute>
+      </choice>
+      <attribute name="id">
+        <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">For layer
+          elements, this consists of the foundry ID, underscore, and "l" followed by a number. It is
+          obligatory because you never know whether it may be referenced from
+          outside.</documentation>
+        <data type="ID"/>
+      </attribute>
+      <optional>
+        <attribute name="contains">
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This attribute
+            is a list of layers (in this very foundry) that this layer makes redundant; it is useful
+            for KorAP-internal indexing strategies. Whether we should be able to reference layers in
+            other foundries by URI is a matter that we leave for later (possibly something like
+            @containsURI will help us then, to make it easier to validate these simple
+            relationships)</documentation>
+          <data type="IDREFS"/>
+        </attribute>
+      </optional>
+      <attribute name="name">
+        <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This list should
+          in fact be open. I.e., it is useful now to restrict it, to eliminate some mismatch bugs,
+          but for production, these values should become suggestions, maybe except for
+          "token". Note also that this value is used in constructing element IDs.</documentation>
+        <choice>
+          <value type="NCName">token</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">tokenization;
+            the presence of the element with this name should be forced in each foundry-layer
+            metadata, but RNG on its own doesn't provide a clean way of encoding
+            that</documentation>
+          <value type="NCName">sent</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">sentence
+            segmentation</documentation>
+          <value type="NCName">syntax</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">gross syntactic
+            structure</documentation>
+          <value type="NCName">syntax-const</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">syntax:
+            constituent structure</documentation>
+          <value type="NCName">syntax-dep</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">syntax:
+            dependency relations</documentation>
+          <value type="NCName">morph</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">morphosyntactic
+            information</documentation>
+          <value type="NCName">phrase</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">phrasal
+            segmentation</documentation>
+          <value type="NCName">para</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">paragraph
+            segmentation</documentation>
+          <value type="NCName">aggr</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">'greedy' (more
+            precisely: aggressive) tokenization</documentation>
+          <value type="NCName">cons</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">conservative
+            ('greedy' in the regex sense) tokenization</documentation>
+          <value type="NCName">struct</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">structural
+            divisions in the text, highlighting info, etc.</documentation>
+          <value type="NCName">ne</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">named
+            entities</documentation>
+          <value type="NCName">ne_dewac</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">named
+            entities, dewac model for the Stanford NER</documentation>
+          <value type="NCName">ne_hgc</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">named
+            entities, hgc model for the Stanford NER</documentation>
+        </choice>
+      </attribute>
+      <choice>
+        <attribute name="segm">
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">granularity of
+            segmentation; possibly, this should allow a list of values, to be fully
+            flexible</documentation>
+          <choice>
+            <value type="NCName">para</value>
+            <value type="NCName">s</value>
+            <value type="NCName">chunk</value>
+            <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">The 'chunk'
+              value is meant to be a catch-all, if a more precise value can't be
+              determined</documentation>
+            <value type="NCName">tok</value>
+          </choice>
+        </attribute>
+        <attribute name="info">
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">kind of
+            information expressed by the given layer of annotation (there may, and often will, be
+            more than one)</documentation>
+          <list>
+            <oneOrMore>
+              <choice>
+                <value type="NCName">pos</value>
+                <value type="NCName">lemma</value>
+                <value type="NCName">msd</value>
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">'msd' is
+                  the traditional abbreviation for "morphosyntactic description", listing info on
+                  e.g. tense, person, case, etc.</documentation>
+                <value type="NCName">dep</value>
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">'dep' is
+                  information about types of relations, used in dependency-style annotations; it is
+                  an indication for the visualiser that word-to-word relationships should be
+                  displayed</documentation>
+                <value type="NCName">lbl</value>
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">'lbl'
+                  indicates the presence of labels over dependency relations</documentation>
+                <value type="NCName">const</value>
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">'const'
+                  stands for 'constituency' or hierarchical, tree-based annotations; it is an
+                  indication for the visualiser that it should display syntactic
+                  trees</documentation>
+                <value type="NCName">cat</value>
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">'cat' is
+                  used for syntactic categories, as separate from pos; note that these sets need not
+                  be disjoint (at the lexical level, they usually overlap), but the frontend prefers
+                  to keep them separate. 'cat' will be found in the context of chunking or
+                  hierarchical parsing and will characterise nodes; it may also be found in
+                  dependency annotations, to indicate labels on nodes, as opposed to labels on arcs
+                  (the latter are signalled by 'lbl')</documentation>
+                <value type="NCName">struct</value>
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">all
+                  non-linguistic information (headers, highlights, etc.)</documentation>
+                <value type="NCName">frag</value>
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0"
+                  >non-exhaustive coverage (when spanList/@fragmented="true")</documentation>
+                <value type="NCName">ne</value>
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">named
+                  entities</documentation>
+              </choice>
+            </oneOrMore>
+          </list>
+        </attribute>
+      </choice>
+      <optional>
+        <ref name="info"/>
+      </optional>
+      <zeroOrMore>
+        <element name="idx">
+          <attribute name="name">
+            <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">name of the element to match; if this element lacks the attribute @handle, @name is used as the handle for the index</documentation>
+            <data type="string"/>
+          </attribute>
+          <optional>
+            <attribute name="ns">
+              <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">namespace (in DeReKo set to null, hence absent)</documentation>
+              <data type="anyURI"/>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="key">
+              <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">namespace (in DeReKo set to null, hence absent)</documentation>
+              <data type="NCName"/>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="extra">
+              <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">extra features to be turned into extra keys in the index; e.g., the @name may be "hi" and the @extra can be "rend", which causes an extra key, e.g. "rend:bold" to be associated with this span, and its payload is set to 'element:hi' to make sure about its origin; this attribute lists attribute names...</documentation>
+              <oneOrMore>
+                <text/>
+              </oneOrMore>
+            </attribute>
+          </optional>
+          <optional>
+            <ref name="fs"/>
+          </optional>
+        </element>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- layer -->
+
+<define name="common_top_content">
+    <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">For @type="foundry"
+      and @type="document". In the centralized foundry list, these values would be
+      invalid.</documentation>
+  <attribute name="docid">
+    <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This attribute is
+      crucial for document-level metadata, and should be the same across the header, the text,
+      and the metadata files.</documentation>
+    <data type="NCName"/>
+  </attribute>
+  <optional>
+    <attribute name="masked">
+      <data type="boolean"/>
+    </attribute>
+    <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This attribute
+      should only apply do document-level foundries, I think, unless we use it more generally,
+      to mark withdrawn foundries (?)</documentation>
+  </optional>
+  <element name="doc">
+    <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This element
+      makes it possible to create the file path to the raw text file, and the xpath to the
+      appropriate element.</documentation>
+    <attribute name="file">
+      <data type="normalizedString"/>
+    </attribute>
+  </element>
+  <zeroOrMore>
+    <element name="binary">
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+      <attribute name="file">
+        <data type="anyURI"/>
+      </attribute>
+    </element>
+  </zeroOrMore>
+</define>
+  <!-- common_top_content -->
+
+  <define name="info">
+    <element name="info">
+      <choice>
+        <text/>
+        <group>
+          <element name="tool">
+            <attribute name="name">
+              <data type="string"/>
+            </attribute>
+            <optional>
+              <attribute name="uri">
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">sometimes
+                  a URI may be useful to identify the tool</documentation>
+                <data type="anyURI"/>
+              </attribute>
+            </optional>
+            <optional>
+              <attribute name="ver">
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">version
+                  information</documentation>
+                <data type="string"/>
+              </attribute>
+            </optional>
+            <optional>
+              <attribute name="date">
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">date it
+                  was used (can be provided in the changelog)</documentation>
+                <data type="date"/>
+              </attribute>
+            </optional>
+            <optional>
+              <attribute name="model">
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">Model
+                  used to derive the output</documentation>
+                <data type="string"/>
+              </attribute>
+            </optional>
+            <optional>
+              <element name="changelog">
+                <oneOrMore>
+                  <element name="change">
+                    <attribute name="date">
+                      <data type="date"/>
+                    </attribute>
+                    <text/>
+                  </element>
+                </oneOrMore>
+              </element>
+            </optional>
+            <optional>
+              <element name="rem">
+                <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">for loose
+                  remarks</documentation>
+                <text/>
+              </element>
+            </optional>
+          </element>
+        </group>
+      </choice>
+      <optional>
+        <element name="rem">
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">for loose
+            remarks</documentation>
+          <text/>
+        </element>
+      </optional>
+    </element>
+  </define>
+  <!-- info -->
+
+  <start>
+    <element name="metadata">
+
+      <choice>
+        <group>
+          <attribute name="type">
+            <value type="NCName">document</value>
+          </attribute>
+          <ref name="common_top_content"/>
+          <oneOrMore>
+            <element name="foundry">
+              <ref name="foundry_atts"/>
+              <attribute name="path">
+                <data type="normalizedString"/>
+              </attribute>
+            </element>
+          </oneOrMore>
+        </group>
+        
+        <group>
+          <attribute name="type">
+            <value type="NCName">foundry</value>
+          </attribute>
+          <ref name="common_top_content"/>
+          <oneOrMore>
+            <element name="foundry">
+              <ref name="non-document_top_content"/>
+              <ref name="foundry_atts"/>
+              <optional>
+                <ref name="info"/>
+              </optional>
+              <oneOrMore>
+                <ref name="layer"/>
+              </oneOrMore>
+            </element>
+          </oneOrMore>
+        </group>
+
+        <group>
+          <attribute name="type">
+            <value type="NCName">central</value>
+          </attribute>
+          <oneOrMore>
+            <element name="foundry">
+              <ref name="non-document_top_content"/>
+              <ref name="foundry_atts"/>
+              <optional>
+                <ref name="info"/>
+              </optional>
+              <oneOrMore>
+                <ref name="layer"/>
+              </oneOrMore>
+            </element>
+          </oneOrMore>
+        </group>
+        <!--<group>
+          <value type="NCName">speech</value>
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">for lack of a
+            better word... the idea being that this is a piece of metadata that encodes some
+            information concerning the binary stream that is decomposed "downstairs" into
+            individual speaker transcription lines</documentation>
+        </group>-->
+        
+      </choice>
+    </element>
+  </start>
+  <include href="fsr.rng"/>
+</grammar>
diff --git a/KorAP_schemas/span.rng b/KorAP_schemas/span.rng
new file mode 100644
index 0000000..029c920
--- /dev/null
+++ b/KorAP_schemas/span.rng
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://ids-mannheim.de/ns/KorAP" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">
+  <!-- $Id$ -->
+  <start>
+    <element name="layer">
+      <optional>
+        <attribute name="type">
+          <a:documentation>As of Sep 2013, this isn't used anywhere.</a:documentation>
+          <data type="NCName"/>
+        </attribute>
+      </optional>
+      <attribute name="version">
+        <value>KorAP-0.4</value>
+      </attribute>
+      <attribute name="docid">
+        <data type="NCName"/>
+      </attribute>
+      <optional>
+        <attribute name="unit" a:defaultValue="char">
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">Default: character</documentation>
+          <choice>
+            <value type="NCName">char</value>
+            <value type="NCName">msec</value>
+            <value type="NCName">sec</value>
+          </choice>
+        </attribute>
+      </optional>
+      <oneOrMore>
+        <element name="spanList">
+          <!-- shouldn't this come straight from XML?
+            <optional>
+            <attribute>
+              <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">If you ask me about why we need xml:base here, the answer is probably: I forgot to remove it and maybe I should -P</documentation>
+              <name ns="http://www.w3.org/XML/1998/namespace">base</name>
+              <data type="anyURI"/>
+            </attribute>
+          </optional>-->
+          <optional>
+            <attribute name="fragmented">
+              <a:documentation>For spanLists non-exhaustively covered by the spans therein.</a:documentation>
+              <data type="boolean"/>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="speaker-id">
+              <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This is for speech corpora; the datatype restriction may be too strict, I assumed it is a real ID in the source</documentation>
+              <data type="NCName"/>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="id">
+              <data type="ID"/>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="type">
+              <data type="NCName"/>
+            </attribute>
+          </optional>
+          <oneOrMore>
+            <ref name="span"/>
+          </oneOrMore>
+        </element>
+      </oneOrMore>
+    </element>
+  </start>
+  <define name="span">
+    <element name="span">
+      <optional>
+        <attribute name="id">
+          <data type="ID"/>
+        </attribute>
+      </optional>
+      <!--<optional>
+        <attribute name="type">
+          <data type="NCName"/>
+        </attribute>
+      </optional>-->
+      <attribute name="from">
+        <choice>
+          <data type="integer"/>
+        </choice>
+      </attribute>
+      <attribute name="to">
+        <choice>
+          <data type="integer"/>
+        </choice>
+      </attribute>
+      <optional>
+        <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This attribute is used in the base foundry tokenization files only, and only for a while, for debugging purposes. It may be that the time has come to comment it out.</documentation>
+        <attribute name="word">
+          <data type="string"/>
+        </attribute>
+      </optional>
+      <optional>
+        <attribute name="prev">
+          <data type="integer"/>
+        </attribute>
+      </optional>
+      <optional>
+        <attribute name="next">
+          <data type="integer"/>
+        </attribute>
+      </optional>
+      <optional>
+        <attribute name="prev_id">
+          <data type="IDREF"/>
+        </attribute>
+      </optional>
+      <optional>
+        <attribute name="next_id">
+          <data type="IDREF"/>
+        </attribute>
+      </optional>
+      
+      <optional>
+        <ref name="fs"/>
+      </optional>
+
+      <zeroOrMore>
+        <ref name="rel"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  
+  <define name="rel">
+    <element name="rel">
+      <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">The possible children are <fs/> and <span/>, in any order. <fs/> or the @label attribute are used to encode the 'labelling' information. Instead of <span/>, one can use either the @target attribute (for referring to IDs within the same file), or the @uri attribute (for URIs), or the attribute @type with the values set to either "unary" (for e.g. the malformed dependencies that XIP produces) or "refl" for reflexive relationships.</documentation>
+      <!--<optional>
+        <attribute name="n">
+          <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">This is a kludgey attribute, currently used for dependencies that target e.g. a compound or an infinitive together with "zu"</documentation>
+          <data type="integer"/>
+        </attribute>
+      </optional>-->
+      <interleave>
+        <choice>
+          <attribute name="label">
+            <text/>
+          </attribute>
+          <ref name="fs"/>
+        </choice>
+        <choice>
+          <choice>
+            <attribute name="target">
+              <data type="IDREF"/>
+            </attribute>
+            <attribute name="uri">
+              <data type="anyURI"/>
+            </attribute>
+          </choice>
+          <oneOrMore><ref name="span"/></oneOrMore>
+<!-- oneOrMore was introduced here for time spans; this could be handled by separate <rel> elements, of course-->
+          <attribute name="type">
+            <choice>
+              <value type="NCName">unary</value>
+              <value type="NCName">refl</value>
+            </choice>
+          </attribute>
+        </choice>
+      </interleave>
+    </element>
+  </define>
+  
+  <include href="fsr.rng"/>
+</grammar>
diff --git a/KorAP_schemas/text.rng b/KorAP_schemas/text.rng
new file mode 100644
index 0000000..a6ff063
--- /dev/null
+++ b/KorAP_schemas/text.rng
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://ids-mannheim.de/ns/KorAP">
+  <!-- $Id$ -->
+  <start>
+    <element name="raw_text">
+      <attribute name="docid">
+        <data type="NCName"/>
+      </attribute>
+      <element name="metadata">
+        <attribute name="file">
+          <data type="anyURI"/>
+        </attribute>
+      </element>
+      <element name="text">
+        <optional>
+          <attribute name="mimeType">
+            <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">By default,
+              we assume "text/plain; charset=UTF-8", but we should be prepared for other
+              encodings</documentation>
+            <documentation xmlns="http://relaxng.org/ns/compatibility/annotations/1.0">Or maybe
+              @charset would be enough here?</documentation>
+            <data type="string"/>
+          </attribute>
+        </optional>        <text/>
+      </element>
+      <zeroOrMore>
+        <element name="binary">
+          <attribute name="mimeType">
+            <data type="string"/>
+          </attribute>
+          <attribute name="file">
+            <data type="anyURI"/>
+          </attribute>
+        </element>
+      </zeroOrMore>
+    </element>
+  </start>
+</grammar>