add schemas and catalog

Change-Id: I271e13d4b6db999f6d56c2f923a1d7c493fee172
diff --git a/KorAP_schemas/fsr.rng b/KorAP_schemas/fsr.rng
new file mode 100644
index 0000000..cf22669
--- /dev/null
+++ b/KorAP_schemas/fsr.rng
@@ -0,0 +1,650 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+           datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
+           ns="http://www.tei-c.org/ns/1.0">
+  
+<!-- The FSR schema was ripped off of a TEI customization, described by the comments below, so it is in no way normative.
+     Piotr, 16-jan-2012 -->
+  
+  <!--
+Schema generated from ODD source 2012-01-16T11:55:34Z. 
+Edition: 2.0.0 Last updated on 16th December 2011.
+Edition Location: http://www.tei-c.org/Vault/P5/2.0.0/
+
+--><!--This template file is freely available and you are hereby
+            authorised to copy, modify, and redistribute it in any way without
+            further reference or permissions.When making such modifications, you are strongly recommended to
+            change the present text to include an accurate statement of the
+            licencing conditions applicable to your modified text.-->
+ 
+   <define name="data.numeric">
+      <choice>
+         <data type="double"/>
+         <data type="token">
+            <param name="pattern">(\-?[\d]+/\-?[\d]+)</param>
+         </data>
+         <data type="decimal"/>
+      </choice>
+   </define>
+   <define name="data.truthValue">
+      <data type="boolean"/>
+   </define>
+   <define name="data.language">
+      <data type="language"/>
+   </define>
+   <define name="data.pointer">
+      <data type="anyURI"/>
+   </define>
+   <define name="data.word">
+      <data type="token">
+         <param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})+</param>
+      </data>
+   </define>
+   <define name="data.name">
+      <data type="Name"/>
+   </define>
+   <define name="data.enumerated">
+      <ref name="data.name"/>
+   </define>
+   <define name="att.global.attributes">
+      <ref name="att.global.attribute.xmlid"/>
+      <ref name="att.global.attribute.n"/>
+      <ref name="att.global.attribute.xmllang"/>
+      <ref name="att.global.attribute.rendition"/>
+   </define>
+   <define name="att.global.attribute.xmlid">
+      <optional>
+         <attribute name="xml:id">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(identifier) provides a unique identifier for the element bearing the attribute.</a:documentation>
+            <data type="ID"/>
+         </attribute>
+      </optional>
+   </define>
+   <define name="att.global.attribute.n">
+      <optional>
+         <attribute name="n">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(number) gives a number (or other label) for an element, which is not necessarily unique within
+        the document.</a:documentation>
+            <list>
+               <ref name="data.word"/>
+               <zeroOrMore>
+                  <ref name="data.word"/>
+               </zeroOrMore>
+            </list>
+         </attribute>
+      </optional>
+   </define>
+   <define name="att.global.attribute.xmllang">
+      <optional>
+         <attribute name="xml:lang">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(language) indicates the language of the element content using a tag generated
+        according to BCP 47
+         </a:documentation>
+            <ref name="data.language"/>
+         </attribute>
+      </optional>
+   </define>
+   <define name="att.global.attribute.rendition">
+      <optional>
+         <attribute name="rendition">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to a description of the rendering or presentation used for this element in the
+        source text.</a:documentation>
+            <list>
+               <ref name="data.pointer"/>
+               <zeroOrMore>
+                  <ref name="data.pointer"/>
+               </zeroOrMore>
+            </list>
+         </attribute>
+      </optional>
+   </define>
+
+   <define name="model.featureVal.complex">
+      <choice>
+         <ref name="fs"/>
+         <ref name="vColl"/>
+         <ref name="vNot"/>
+         <ref name="vMerge"/>
+      </choice>
+   </define>
+   <define name="model.featureVal.complex_alternation">
+      <choice>
+         <ref name="fs"/>
+         <ref name="vColl"/>
+         <ref name="vNot"/>
+         <ref name="vMerge"/>
+      </choice>
+   </define>
+   <define name="model.featureVal.complex_sequence">
+      <ref name="fs"/>
+      <ref name="vColl"/>
+      <ref name="vNot"/>
+      <ref name="vMerge"/>
+   </define>
+   <define name="model.featureVal.complex_sequenceOptional">
+      <optional>
+         <ref name="fs"/>
+      </optional>
+      <optional>
+         <ref name="vColl"/>
+      </optional>
+      <optional>
+         <ref name="vNot"/>
+      </optional>
+      <optional>
+         <ref name="vMerge"/>
+      </optional>
+   </define>
+   <define name="model.featureVal.complex_sequenceOptionalRepeatable">
+      <zeroOrMore>
+         <ref name="fs"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="vColl"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="vNot"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="vMerge"/>
+      </zeroOrMore>
+   </define>
+   <define name="model.featureVal.complex_sequenceRepeatable">
+      <oneOrMore>
+         <ref name="fs"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="vColl"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="vNot"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="vMerge"/>
+      </oneOrMore>
+   </define>
+   <define name="model.featureVal.single">
+      <choice>
+         <ref name="binary"/>
+         <ref name="symbol"/>
+         <ref name="numeric"/>
+         <ref name="string"/>
+         <ref name="vLabel"/>
+         <ref name="default"/>
+         <ref name="vAlt"/>
+      </choice>
+   </define>
+   <define name="model.featureVal.single_alternation">
+      <choice>
+         <ref name="binary"/>
+         <ref name="symbol"/>
+         <ref name="numeric"/>
+         <ref name="string"/>
+         <ref name="vLabel"/>
+         <ref name="default"/>
+         <ref name="vAlt"/>
+      </choice>
+   </define>
+   <define name="model.featureVal.single_sequence">
+      <ref name="binary"/>
+      <ref name="symbol"/>
+      <ref name="numeric"/>
+      <ref name="string"/>
+      <ref name="vLabel"/>
+      <ref name="default"/>
+      <ref name="vAlt"/>
+   </define>
+   <define name="model.featureVal.single_sequenceOptional">
+      <optional>
+         <ref name="binary"/>
+      </optional>
+      <optional>
+         <ref name="symbol"/>
+      </optional>
+      <optional>
+         <ref name="numeric"/>
+      </optional>
+      <optional>
+         <ref name="string"/>
+      </optional>
+      <optional>
+         <ref name="vLabel"/>
+      </optional>
+      <optional>
+         <ref name="default"/>
+      </optional>
+      <optional>
+         <ref name="vAlt"/>
+      </optional>
+   </define>
+   <define name="model.featureVal.single_sequenceOptionalRepeatable">
+      <zeroOrMore>
+         <ref name="binary"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="symbol"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="numeric"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="string"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="vLabel"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="default"/>
+      </zeroOrMore>
+      <zeroOrMore>
+         <ref name="vAlt"/>
+      </zeroOrMore>
+   </define>
+   <define name="model.featureVal.single_sequenceRepeatable">
+      <oneOrMore>
+         <ref name="binary"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="symbol"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="numeric"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="string"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="vLabel"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="default"/>
+      </oneOrMore>
+      <oneOrMore>
+         <ref name="vAlt"/>
+      </oneOrMore>
+   </define>
+   
+   
+   
+   
+   
+   
+   <define name="vRange">
+      <element name="vRange">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value range) defines the range of allowed values for a feature, in the form of
+an fs, vAlt, or primitive value;
+for the value of an f to be valid, it must be
+subsumed by the specified range; if the f
+contains multiple values (as sanctioned by the org attribute),
+then each value must be subsumed by the vRange. [18.11. ]</a:documentation>
+         <ref name="model.featureVal"/>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="vDefault">
+      <element name="vDefault">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value default) declares the default value to be supplied when a feature structure
+does not contain an instance of f for this name; if
+unconditional, it is specified as one (or, depending on the value of
+the org attribute of the enclosing fDecl) more
+fs elements or primitive values;
+if conditional, it is specified as
+one or more if elements; if no default is specified, or no
+condition matches, the value none is assumed. [18.11. ]</a:documentation>
+         <choice>
+            <oneOrMore>
+               <ref name="model.featureVal"/>
+            </oneOrMore>
+            <oneOrMore>
+               <ref name="if"/>
+            </oneOrMore>
+         </choice>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="if">
+      <element name="if">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">defines a conditional default value for a feature; the condition
+is specified as a feature structure, and is met if it
+subsumes the feature structure in the text for which a
+default value is sought. [18.11. ]</a:documentation>
+         <group>
+            <choice>
+               <ref name="fs"/>
+               <ref name="f"/>
+            </choice>
+            <ref name="then"/>
+            <group>
+               <ref name="model.featureVal"/>
+            </group>
+         </group>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="then">
+      <element name="then">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">separates the condition from the default in an if, or
+the antecedent and the consequent in a cond element. [18.11. ]</a:documentation>
+         <empty/>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="fsConstraints">
+      <element name="fsConstraints">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature-structure constraints) specifies constraints on the content of valid feature
+structures. [18.11. ]</a:documentation>
+         <zeroOrMore>
+            <choice>
+               <ref name="cond"/>
+               <ref name="bicond"/>
+            </choice>
+         </zeroOrMore>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="cond">
+      <element name="cond">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(conditional feature-structure constraint) defines a conditional feature-structure constraint; the consequent
+and the antecedent are specified as feature structures or
+feature-structure collections; the constraint is satisfied if both the
+antecedent and the consequent subsume a given feature
+structure, or if the antecedent does not. [18.11. ]</a:documentation>
+         <group>
+            <choice>
+               <ref name="fs"/>
+               <ref name="f"/>
+            </choice>
+            <ref name="then"/>
+            <choice>
+               <ref name="fs"/>
+               <ref name="f"/>
+            </choice>
+         </group>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="bicond">
+      <element name="bicond">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(bi-conditional feature-structure constraint) defines a biconditional feature-structure constraint; both
+consequent and antecedent are specified as feature structures or groups
+of feature structures; the constraint is satisfied if both
+subsume a given feature structure, or if both do not. [18.11. ]</a:documentation>
+         <group>
+            <choice>
+               <ref name="fs"/>
+               <ref name="f"/>
+            </choice>
+            <ref name="iff"/>
+            <choice>
+               <ref name="fs"/>
+               <ref name="f"/>
+            </choice>
+         </group>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="iff">
+      <element name="iff">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(if and only if) separates the condition from the consequence in a bicond
+element. [18.11. ]</a:documentation>
+         <empty/>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   
+   
+   <define name="binary">
+      <element name="binary">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(binary value) represents the value part of a feature-value specification which can contain either
+  of exactly two possible values. [18.2. ]</a:documentation>
+         <empty/>
+         <ref name="att.global.attributes"/>
+         <attribute name="value">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a binary value.</a:documentation>
+            <ref name="data.truthValue"/>
+         </attribute>
+         <empty/>
+      </element>
+   </define>
+   <define name="symbol">
+      <element name="symbol">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(symbolic value) represents the value part of a feature-value specification
+  which contains one of a finite list of symbols. [18.3. ]</a:documentation>
+         <empty/>
+         <ref name="att.global.attributes"/>
+         <attribute name="value">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies the symbolic value for the feature, one of a finite list that
+may be specified in a feature declaration.</a:documentation>
+            <ref name="data.word"/>
+         </attribute>
+         <empty/>
+      </element>
+   </define>
+   <define name="numeric">
+      <element name="numeric">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(numeric value) represents the value part of a feature-value specification
+  which contains a numeric value or range. [18.3. ]</a:documentation>
+         <empty/>
+         <ref name="att.global.attributes"/>
+         <attribute name="value">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a lower bound for the numeric value represented,
+      and also (if max is not supplied) its upper bound.</a:documentation>
+            <ref name="data.numeric"/>
+         </attribute>
+         <optional>
+            <attribute name="max">
+               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies an upper bound for the numeric value represented.</a:documentation>
+               <ref name="data.numeric"/>
+            </attribute>
+         </optional>
+         <optional>
+            <attribute name="trunc">
+               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies whether the value represented should be
+	  truncated to give an integer value.</a:documentation>
+               <ref name="data.truthValue"/>
+            </attribute>
+         </optional>
+         <empty/>
+      </element>
+   </define>
+   <define name="string">
+      <element name="string">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(string value) represents the value part of a feature-value specification
+  which contains a string. [18.3. ]</a:documentation>
+      <text/>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="vLabel">
+      <element name="vLabel">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value label) represents the value part of a feature-value specification
+  which appears at more than one point in a feature structure.</a:documentation>
+         <optional>
+            <ref name="model.featureVal"/>
+         </optional>
+         <ref name="att.global.attributes"/>
+         <attribute name="name">
+            <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">supplies a name for the sharing point.</a:documentation>
+            <ref name="data.word"/>
+         </attribute>
+         <empty/>
+      </element>
+   </define>
+   <define name="vColl">
+      <element name="vColl">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(collection of values) represents the value part of a feature-value specification
+  which contains multiple values organized as a set, bag, or list.</a:documentation>
+         <group>
+            <zeroOrMore>
+               <choice>
+                  <ref name="fs"/>
+                  <ref name="model.featureVal.single"/>
+               </choice>
+            </zeroOrMore>
+         </group>
+         <ref name="att.global.attributes"/>
+         <optional>
+            <attribute name="org">
+               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(organization) indicates organization of given value or values as  set, bag or list.</a:documentation>
+               <choice>
+                  <value>set</value>
+                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the given values are organized as a set.
+   </a:documentation>
+                  <value>bag</value>
+                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the given values are organized as a
+bag (multiset).
+   </a:documentation>
+                  <value>list</value>
+                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the given values are organized as a
+list.</a:documentation>
+               </choice>
+            </attribute>
+         </optional>
+         <empty/>
+      </element>
+   </define>
+   <define name="default">
+      <element name="default">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(default feature value) represents the value part of a feature-value specification
+  which contains a defaulted value. [18.9. ]</a:documentation>
+         <empty/>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="vAlt">
+      <element name="vAlt">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value alternation) represents the value part of a feature-value specification
+  which contains a set of values, only one of which can be valid. [18.8.1. ]</a:documentation>
+         <group>
+            <group>
+               <ref name="model.featureVal"/>
+            </group>
+            <oneOrMore>
+               <ref name="model.featureVal"/>
+            </oneOrMore>
+         </group>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="vNot">
+      <element name="vNot">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value negation) represents a feature value which is the negation of its content. [18.8.2. ]</a:documentation>
+         <group>
+            <ref name="model.featureVal"/>
+         </group>
+         <ref name="att.global.attributes"/>
+         <empty/>
+      </element>
+   </define>
+   <define name="vMerge">
+      <element name="vMerge">
+         <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(merged collection of values) represents a feature value which is the result of merging
+  together the feature values contained by its children, using the organization
+  specified by the org attribute. [18.8.3. ]</a:documentation>
+         <oneOrMore>
+            <ref name="model.featureVal"/>
+         </oneOrMore>
+         <ref name="att.global.attributes"/>
+         <optional>
+            <attribute name="org">
+               <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates the organization of the resulting merged values as  set, bag or list.</a:documentation>
+               <choice>
+                  <value>set</value>
+                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the resulting values are organized as a set.</a:documentation>
+                  <value>bag</value>
+                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the resulting values are organized as a bag (multiset).
+   </a:documentation>
+                  <value>list</value>
+                  <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates that the resulting values are organized as a list.</a:documentation>
+               </choice>
+            </attribute>
+         </optional>
+         <empty/>
+      </element>
+   </define>
+  
+  <define name="fs">
+    <element name="fs">
+      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature structure) represents a feature structure, that is, a
+        collection of feature-value pairs organized as a
+        structural unit. [18.2. ]</a:documentation>
+      <zeroOrMore>
+        <ref name="f"/>
+      </zeroOrMore>
+      <ref name="att.global.attributes"/>
+      <optional>
+        <attribute name="type">
+          <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the type of the feature structure.</a:documentation>
+          <ref name="data.enumerated"/>
+        </attribute>
+      </optional>
+      <optional>
+        <attribute name="feats">
+          <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(features) references the feature-value specifications making up this feature structure.</a:documentation>
+          <list>
+            <ref name="data.pointer"/>
+            <zeroOrMore>
+              <ref name="data.pointer"/>
+            </zeroOrMore>
+          </list>
+        </attribute>
+      </optional>
+    </element>
+  </define>
+  <define name="f">
+    <element name="f">
+      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature) represents a feature value specification, that
+        is, the association of a name with a value of any of several different types. [18.2. ]</a:documentation>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="model.featureVal"/>
+        </choice>
+      </zeroOrMore>
+      
+      <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="f-constraint-fValConstraints">
+        <rule xmlns:rng="http://relaxng.org/ns/structure/1.0" context="tei:fVal">
+          <assert test="not(tei:* and text)"> A feature value cannot
+            contain both text and element content</assert>
+        </rule>
+      </pattern>
+      <pattern xmlns="http://purl.oclc.org/dsdl/schematron" id="f-constraint-fValConstraints">
+        <rule xmlns:rng="http://relaxng.org/ns/structure/1.0" context="tei:fVal">
+          <report test="count(tei:*)&gt;1"> A feature value can contain
+            only one child element</report>
+        </rule>
+      </pattern>
+      
+      <ref name="att.global.attributes"/>
+      <attribute name="name">
+        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a name for the feature.</a:documentation>
+        <ref name="data.name"/>
+      </attribute>
+      <optional>
+        <attribute name="fVal">
+          <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(feature value) references any element which can be used to represent the
+            value of a feature.</a:documentation>
+          <ref name="data.pointer"/>
+        </attribute>
+      </optional>
+      <empty/>
+    </element>
+  </define>
+  <define name="model.featureVal">
+    <choice>
+      <ref name="model.featureVal.complex"/>
+      <ref name="model.featureVal.single"/>
+    </choice>
+  </define>
+</grammar>