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:*)>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 "α"> <!-- GREEK SMALL LETTER ALPHA -->
+<!ENTITY ap "≈"> <!-- ALMOST EQUAL TO -->
+<!ENTITY bdquo "„"> <!-- DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY blk12 "▒"> <!-- MEDIUM SHADE -->
+<!ENTITY blk14 "░"> <!-- LIGHT SHADE -->
+<!ENTITY blk34 "▓"> <!-- DARK SHADE -->
+<!ENTITY block "█"> <!-- FULL BLOCK -->
+<!ENTITY boxDL "╗"> <!-- BOX DRAWINGS DOUBLE DOWN AND LEFT -->
+<!ENTITY boxdl "┐"> <!-- BOX DRAWINGS LIGHT DOWN AND LEFT -->
+<!ENTITY boxdr "┌"> <!-- BOX DRAWINGS LIGHT DOWN AND RIGHT -->
+<!ENTITY boxDR "╔"> <!-- BOX DRAWINGS DOUBLE DOWN AND RIGHT -->
+<!ENTITY boxH "═"> <!-- BOX DRAWINGS DOUBLE HORIZONTAL -->
+<!ENTITY boxh "─"> <!-- BOX DRAWINGS LIGHT HORIZONTAL -->
+<!ENTITY boxhd "┬"> <!-- BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -->
+<!ENTITY boxHD "╦"> <!-- BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -->
+<!ENTITY boxhu "┴"> <!-- BOX DRAWINGS LIGHT UP AND HORIZONTAL -->
+<!ENTITY boxHU "╩"> <!-- BOX DRAWINGS DOUBLE UP AND HORIZONTAL -->
+<!ENTITY boxUL "╝"> <!-- BOX DRAWINGS DOUBLE UP AND LEFT -->
+<!ENTITY boxul "┘"> <!-- BOX DRAWINGS LIGHT UP AND LEFT -->
+<!ENTITY boxur "└"> <!-- BOX DRAWINGS LIGHT UP AND RIGHT -->
+<!ENTITY boxUR "╚"> <!-- BOX DRAWINGS DOUBLE UP AND RIGHT -->
+<!ENTITY boxv "│"> <!-- BOX DRAWINGS LIGHT VERTICAL -->
+<!ENTITY boxV "║"> <!-- BOX DRAWINGS DOUBLE VERTICAL -->
+<!ENTITY boxvh "┼"> <!-- BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -->
+<!ENTITY boxVH "╬"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -->
+<!ENTITY boxvl "┤"> <!-- BOX DRAWINGS LIGHT VERTICAL AND LEFT -->
+<!ENTITY boxVL "╣"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND LEFT -->
+<!ENTITY boxVR "╠"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -->
+<!ENTITY boxvr "├"> <!-- BOX DRAWINGS LIGHT VERTICAL AND RIGHT -->
+<!ENTITY bull "•"> <!-- BULLET -->
+<!ENTITY caron "ˇ"> <!-- CARON -->
+<!ENTITY ccaron "č"> <!-- LATIN SMALL LETTER C WITH CARON -->
+<!ENTITY circ "ˆ"> <!-- MODIFIER LETTER CIRCUMFLEX ACCENT -->
+<!ENTITY dagger "†"> <!-- DAGGER -->
+<!ENTITY Dagger "‡"> <!-- DOUBLE DAGGER -->
+<!ENTITY ecaron "ě"> <!-- LATIN SMALL LETTER E WITH CARON -->
+<!ENTITY euro "€"> <!-- EURO SIGN -->
+<!ENTITY fnof "ƒ"> <!-- LATIN SMALL LETTER F WITH HOOK -->
+<!ENTITY hellip "…"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY Horbar "‗"> <!-- DOUBLE LOW LINE -->
+<!ENTITY inodot "ı"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY iota "ι"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY ldquo "“"> <!-- LEFT DOUBLE QUOTATION MARK -->
+<!ENTITY ldquor "„"> <!-- DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY lhblk "▄"> <!-- LOWER HALF BLOCK -->
+<!ENTITY lsaquo "‹"> <!-- SINGLE LEFT-POINTING ANGLE QUOTATION MARK -->
+<!ENTITY lsquo "‘"> <!-- LEFT SINGLE QUOTATION MARK -->
+<!ENTITY lsquor "‚"> <!-- SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY mdash "—"> <!-- EM DASH -->
+<!ENTITY ndash "–"> <!-- EN DASH -->
+<!ENTITY nu "ν"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY oelig "œ"> <!-- LATIN SMALL LIGATURE OE -->
+<!ENTITY OElig "Œ"> <!-- LATIN CAPITAL LIGATURE OE -->
+<!ENTITY omega "ω"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY Omega "Ω"> <!-- GREEK CAPITAL LETTER OMEGA -->
+<!ENTITY permil "‰"> <!-- PER MILLE SIGN -->
+<!ENTITY phi "φ"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY pi "π"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY piv "ϖ"> <!-- GREEK PI SYMBOL -->
+<!ENTITY rcaron "ř"> <!-- LATIN SMALL LETTER R WITH CARON -->
+<!ENTITY rdquo "”"> <!-- RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY rho "ρ"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY rsaquo "›"> <!-- SINGLE RIGHT-POINTING ANGLE QUOTATION MARK -->
+<!ENTITY rsquo "’"> <!-- RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY rsquor "‘"> <!-- LEFT SINGLE QUOTATION MARK -->
+<!ENTITY scaron "š"> <!-- LATIN SMALL LETTER S WITH CARON -->
+<!ENTITY Scaron "Š"> <!-- LATIN CAPITAL LETTER S WITH CARON -->
+<!ENTITY sigma "σ"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY squ "□"> <!-- WHITE SQUARE -->
+<!ENTITY squb "■"> <!-- BLACK SQUARE -->
+<!ENTITY squf "▪"> <!-- BLACK SMALL SQUARE -->
+<!ENTITY sub "⊂"> <!-- SUBSET OF -->
+<!ENTITY tilde "˜"> <!-- SMALL TILDE -->
+<!ENTITY trade "™"> <!-- TRADE MARK SIGN -->
+<!ENTITY uhblk "▀"> <!-- UPPER HALF BLOCK -->
+<!ENTITY Yuml "Ÿ"> <!-- LATIN CAPITAL LETTER Y WITH DIAERESIS -->
+<!ENTITY zcaron "ž"> <!-- LATIN SMALL LETTER Z WITH CARON -->
+<!ENTITY Zcaron "Ž"> <!-- 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>