From 4eb4e0b163445d7aa662b4cb8785cc5cd7a77d6d Mon Sep 17 00:00:00 2001
From: anne <fsnv625>
Date: Fri, 24 Apr 2020 11:42:54 +0200
Subject: [PATCH] added XSD file for INEL ISO TEI

---
 .gitignore                                    |   1 +
 .../resources/xsd/morphemebasedISOTEI.xsd     | 519 ++++++++++++++++++
 2 files changed, 520 insertions(+)
 create mode 100644 src/main/java/de/uni_hamburg/corpora/conversion/resources/xsd/morphemebasedISOTEI.xsd

diff --git a/.gitignore b/.gitignore
index 2aeba8e..f4286ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
 !*.css
 !*.png
 !*.sh
+!*.xsd
 !exmaralda
 !LICENSE
 !README.md
diff --git a/src/main/java/de/uni_hamburg/corpora/conversion/resources/xsd/morphemebasedISOTEI.xsd b/src/main/java/de/uni_hamburg/corpora/conversion/resources/xsd/morphemebasedISOTEI.xsd
new file mode 100644
index 0000000..3608e0f
--- /dev/null
+++ b/src/main/java/de/uni_hamburg/corpora/conversion/resources/xsd/morphemebasedISOTEI.xsd
@@ -0,0 +1,519 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
+    targetNamespace="http://www.tei-c.org/ns/1.0" xmlns:tei="http://www.tei-c.org/ns/1.0">
+    <xs:import namespace="http://www.w3.org/XML/1998/namespace"
+        schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+    <!-- ****************************************************************** -->
+    <!-- ********** ROOT AND TOP-LEVEL DOCUMENT STRUCTURE ***************** -->
+    <!-- ****************************************************************** -->
+
+    <xs:element name="TEI">
+        <xs:annotation>
+            <xs:documentation>The root element of the transcription document</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:idno" minOccurs="0"/>
+                <xs:element ref="tei:teiHeader"/>
+                <xs:element ref="tei:text"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="idno">
+        <xs:annotation>
+            <xs:documentation> An (optional) reference to an external ID system. For AGD corpora,
+                this will contain the DGD identifier of the respective parent, e.g.
+                FOLK_E_00001_SE_01_T_01 for the transcript document as a whole. </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:attribute name="type" type="xs:NCName"/>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="teiHeader">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:fileDesc"/>
+                <xs:element ref="tei:profileDesc"/>
+                <xs:element ref="tei:encodingDesc"/>
+                <xs:element ref="tei:revisionDesc" minOccurs="0"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="text">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:timeline"/>
+                <xs:element ref="tei:body"/>
+            </xs:sequence>
+            <xs:attribute ref="xml:lang" use="required"/>
+        </xs:complexType>
+    </xs:element>
+
+
+    <!-- ************************************* -->
+    <!-- ********** TIMELINE ***************** -->
+    <!-- ************************************* -->
+
+    <xs:element name="timeline">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element minOccurs="2" maxOccurs="unbounded" ref="tei:when">
+                    <xs:annotation>
+                        <xs:documentation>timeline should contain at least two when
+                            elements</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+            </xs:sequence>
+            <xs:attribute name="unit" use="required" type="xs:string" fixed="s">
+                <xs:annotation>
+                    <xs:documentation>Always give time absolute time in s(econds)</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="when">
+        <xs:complexType>
+            <xs:attribute ref="xml:id" use="required"/>
+            <xs:attribute name="interval" type="xs:decimal"/>
+            <xs:attribute name="since" type="xs:IDREF"/>
+        </xs:complexType>
+    </xs:element>
+
+    <!-- ****************************************************************** -->
+    <!-- ********** BODY AND ACTUAL TRANSCRIPTION OBJECTS ***************** -->
+    <!-- ****************************************************************** -->
+
+    <xs:element name="body">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:choice maxOccurs="unbounded">
+                    <!-- <xs:element ref="tei:anchor"/> -->
+                    <xs:element ref="tei:annotationBlock"/>
+                    <xs:element ref="tei:pause"/>
+                    <xs:element ref="tei:vocal"/>
+                    <xs:element ref="tei:incident"/>
+                    <!-- possibly further elements on the top level? -->
+                </xs:choice>
+                <!-- added 10-02-2020: allow global spanGrp at the end of the document -->
+                <xs:element ref="tei:spanGrp" minOccurs="0" maxOccurs="unbounded"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="annotationBlock">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:u"/>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="tei:spanGrp"/>
+            </xs:sequence>
+            <xs:attribute ref="xml:id" use="required"/>
+            <xs:attribute name="start" use="required" type="xs:IDREF"/>
+            <xs:attribute name="end" use="required" type="xs:IDREF"/>
+            <xs:attribute name="who" use="required" type="xs:IDREF"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="u">
+        <xs:complexType>
+            <xs:choice maxOccurs="unbounded">
+                <xs:element ref="tei:seg"/>
+                <xs:choice maxOccurs="unbounded">
+                    <xs:element ref="tei:anchor"/>
+                    <xs:element ref="tei:w"/>
+                    <xs:element ref="tei:pause"/>
+                    <xs:element ref="tei:incident"/>
+                    <!-- 05-07-2018: don't want this any more -->
+                    <!-- <xs:element ref="tei:unclear"/> -->
+                    <xs:element ref="tei:vocal"/>
+                    <!-- 29-11-2018: added (for ISW) -->
+                    <xs:element ref="tei:pc"/>
+                </xs:choice>
+            </xs:choice>
+            <xs:attribute ref="xml:id" use="required"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="anchor">
+        <xs:complexType>
+            <xs:attribute name="synch" use="required" type="xs:IDREF"/>
+            <xs:attribute name="type" type="xs:string"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="w">
+        <xs:complexType mixed="true">
+            <xs:sequence>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="tei:anchor"/>
+            </xs:sequence>
+            <xs:attribute ref="xml:id" use="required"/>
+            <xs:attribute name="type" type="xs:string"/>
+            <xs:attribute name="norm" type="xs:string"/>
+            <xs:attribute name="lemma" type="xs:string"/>
+            <xs:attribute name="pos" type="xs:string"/>
+            <xs:attribute name="phon" type="xs:string"/>
+        </xs:complexType>
+    </xs:element>
+
+    <!-- added 29-11-2018 (ISW) -->
+    <xs:element name="pc">
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <!-- xml:id required for INEL morpheme tokenization -->
+                    <xs:attribute ref="xml:id" use="required"/>
+                    <xs:attribute name="type" type="xs:string"/>
+                    <xs:attribute name="norm" type="xs:string"/>
+                    <xs:attribute name="lemma" type="xs:string"/>
+                    <xs:attribute name="pos" type="xs:string"/>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="pause">
+        <xs:complexType>
+            <!-- xml:id required for INEL morpheme tokenization -->
+            <xs:attribute ref="xml:id" use="required"/>
+            <xs:attribute name="start" type="xs:IDREF"/>
+            <xs:attribute name="end" type="xs:IDREF"/>
+            <xs:attribute name="type" type="xs:NCName"/>
+            <xs:attribute name="dur" type="xs:NCName"/>
+            <xs:attribute name="rend" type="xs:string"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="incident">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:desc"/>
+            </xs:sequence>
+            <!-- xml:id required for INEL morpheme tokenization -->
+            <xs:attribute ref="xml:id" use="required"/>
+            <xs:attribute name="start" type="xs:IDREF"/>
+            <xs:attribute name="end" type="xs:IDREF"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="vocal">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:desc"/>
+            </xs:sequence>
+            <!-- xml:id required for INEL morpheme tokenization -->
+            <xs:attribute ref="xml:id" use="required"/>
+            <xs:attribute name="start" type="xs:IDREF"/>
+            <xs:attribute name="end" type="xs:IDREF"/>
+        </xs:complexType>
+    </xs:element>
+
+    <!-- 05-07-2018: don't want this any more -->
+    <!-- <xs:element name="unclear">
+    <xs:complexType>
+      <xs:choice>
+        <xs:sequence>
+          <xs:element maxOccurs="unbounded" ref="tei:w"/>
+        </xs:sequence> -->
+    <!-- <xs:element ref="tei:choice"/> -->
+    <!-- </xs:choice>
+    </xs:complexType>
+  </xs:element> -->
+
+    <!-- <xs:element name="choice">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tei:seg" minOccurs="2" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element> -->
+
+    <xs:element name="seg">
+        <xs:complexType>
+            <xs:choice maxOccurs="unbounded">
+                <xs:element ref="tei:anchor"/>
+                <xs:element ref="tei:w"/>
+                <xs:element ref="tei:pause"/>
+                <xs:element ref="tei:incident"/>
+                <!-- 05-07-2018: don't want this any more -->
+                <!-- <xs:element ref="tei:unclear"/> -->
+                <xs:element ref="tei:vocal"/>
+                <!-- 29-11-2018: added (for ISW) -->
+                <xs:element ref="tei:pc"/>
+            </xs:choice>
+            <xs:attribute ref="xml:id" use="required"/>
+            <xs:attribute name="type" type="xs:NCName"/>
+            <xs:attribute name="subtype" type="xs:string"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="desc">
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:attribute name="rend" type="xs:string"/>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="spanGrp">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element maxOccurs="unbounded" ref="tei:span"/>
+            </xs:sequence>
+            <xs:attribute name="type" use="required" type="xs:NCName"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="span">
+        <xs:complexType mixed="true">
+            <xs:sequence>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="tei:span"/>
+            </xs:sequence>
+            <xs:attribute name="from" type="xs:IDREF"/>
+            <xs:attribute name="to" type="xs:IDREF"/>
+            <!-- added 12-12-2018 -->
+            <xs:attribute name="target" type="xs:anyURI"/>
+            <!-- xml:id required for INEL morpheme tokenization -->
+            <xs:attribute ref="xml:id" use="optional"/>
+        </xs:complexType>
+    </xs:element>
+
+    <!-- **************************************** -->
+    <!-- ************ HEADER ELEMENTS *********** -->
+    <!-- **************************************** -->
+
+    <xs:element name="particDesc">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element maxOccurs="unbounded" ref="tei:person"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="person">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:idno" minOccurs="0"/>
+                <xs:element ref="tei:persName"/>
+            </xs:sequence>
+            <xs:attribute ref="xml:id" use="required"/>
+            <xs:attribute name="n" use="required" type="xs:NCName"/>
+            <xs:attribute name="sex" use="optional" type="xs:string"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="persName">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:forename" minOccurs="0" maxOccurs="1"/>
+                <xs:element ref="tei:abbr"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="forename" type="xs:string"/>
+
+    <xs:element name="abbr" type="xs:NCName"/>
+
+    <xs:element name="fileDesc">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:titleStmt" minOccurs="0"/>
+                <xs:element ref="tei:publicationStmt" minOccurs="0"/>
+                <xs:element ref="tei:sourceDesc"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="titleStmt">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:title"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="title" type="xs:string"/>
+
+    <xs:element name="publicationStmt">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:authority"/>
+                <xs:element ref="tei:availability"/>
+                <xs:element ref="tei:distributor"/>
+                <xs:element ref="tei:address"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="authority">
+        <xs:complexType/>
+    </xs:element>
+    <xs:element name="availability">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:licence"/>
+                <xs:element ref="tei:p"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="licence">
+        <xs:complexType>
+            <xs:attribute name="target" use="required" type="xs:NCName"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="p">
+        <xs:complexType/>
+    </xs:element>
+    <xs:element name="distributor">
+        <xs:complexType/>
+    </xs:element>
+    <xs:element name="address">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:addrLine"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="addrLine">
+        <xs:complexType/>
+    </xs:element>
+
+    <xs:element name="sourceDesc">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:recordingStmt"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="recordingStmt">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:recording"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="recording">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:media" minOccurs="1" maxOccurs="unbounded"/>
+                <xs:element ref="tei:broadcast" minOccurs="0"/>
+                <xs:element ref="tei:equipment" minOccurs="0"/>
+            </xs:sequence>
+            <xs:attribute name="type" use="required" type="xs:NCName"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="media">
+        <xs:complexType>
+            <xs:attribute name="mimeType" use="required"/>
+            <xs:attribute name="url" use="required"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="broadcast">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:ab"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="equipment">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element maxOccurs="unbounded" ref="tei:ab"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="profileDesc">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:particDesc"/>
+                <xs:element ref="tei:settingDesc" minOccurs="0"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="settingDesc">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:place"/>
+                <xs:element ref="tei:setting"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="place">
+        <xs:complexType/>
+    </xs:element>
+    <xs:element name="setting">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:activity"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="activity">
+        <xs:complexType/>
+    </xs:element>
+
+    <xs:element name="encodingDesc">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:appInfo"/>
+                <xs:element ref="tei:transcriptionDesc"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="appInfo">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:application"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="application">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:label"/>
+                <xs:element ref="tei:desc"/>
+            </xs:sequence>
+            <xs:attribute name="ident" use="required" type="xs:NCName"/>
+            <xs:attribute name="version" use="required" type="xs:string"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="transcriptionDesc">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:desc"/>
+                <xs:element ref="tei:label"/>
+            </xs:sequence>
+            <xs:attribute name="ident" use="required" type="xs:NCName"/>
+            <xs:attribute name="version" use="required" type="xs:integer"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="revisionDesc">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="tei:change"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="change">
+        <xs:complexType mixed="true">
+            <xs:attribute name="when" use="required" type="xs:dateTime"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="ab">
+        <xs:complexType/>
+    </xs:element>
+    <xs:element name="label" type="xs:string"/>
+
+
+</xs:schema>
-- 
GitLab