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>