diff --git a/schema/edxml.rng b/schema/edxml.rng
index 74b3030095cbee7fb18866208223eb7393c56c46..a769b09582c03b007f4844ec8bb6e76d584260ee 100644
--- a/schema/edxml.rng
+++ b/schema/edxml.rng
@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+    xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
     xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:tei="http://www.tei-c.org/ns/1.0"
-    datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://sub.uni-goettingen.de/edxml#">
+    datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
+    ns="http://sub.uni-goettingen.de/edxml#">
 
     <sch:ns prefix="edxml" uri="http://sub.uni-goettingen.de/edxml#"/>
     <sch:ns prefix="tei" uri="http://www.tei-c.org/ns/1.0"/>
@@ -29,11 +31,13 @@
             </list>
             <sch:pattern>
                 <sch:rule context="@corresp">
-                    <sch:let name="ids" value="for $id in tokenize(., ' ') return substring-after($id, '#')"/>
+                    <sch:let name="ids"
+                        value="for $id in tokenize(., ' ') return substring-after($id, '#')"/>
                     <sch:let name="wrong-ids"
                         value="for $id in $ids return (if ( not(//*[@xml:id = $id]) ) then ($id) else () )"/>
-                    <sch:assert test="empty($wrong-ids)" role="error">
-                        (ID existiert nicht) Die in @corresp angegebene ID (<sch:value-of select="$wrong-ids"/>) existiert in diesem Dokument nicht! Beachte bitte auch, dass "#" davor gesetzt ist!
+                    <sch:assert test="empty($wrong-ids)" role="error"> (ID existiert nicht) Die in
+                        @corresp angegebene ID (<sch:value-of select="$wrong-ids"/>) existiert in
+                        diesem Dokument nicht! Beachte bitte auch, dass "#" davor gesetzt ist!
                     </sch:assert>
                 </sch:rule>
             </sch:pattern>
@@ -42,13 +46,14 @@
 
     <define name="attr.lemma">
         <attribute name="lemma">
-            
+
             <sch:pattern>
-                
+
                 <sch:rule context="@lemma[count(tokenize(., ':')) &lt; 2]">
-                    <sch:report test=".">Du hast keinen Eintrag aus einem Lemmakatalog verknüpft!</sch:report>
+                    <sch:report test=".">Du hast keinen Eintrag aus einem Lemmakatalog
+                        verknüpft!</sch:report>
                 </sch:rule>
-               
+
                 <!--<sch:rule context="@lemma[count(tokenize(., ':')) = 2]">
                     <sch:let name="fname" value="tokenize(base-uri(), '/')[last()]"/>
                     <sch:let name="rel-dir" value="substring-before(base-uri(), $fname)"/>
@@ -113,13 +118,13 @@
             <data type="ID"/>
         </attribute>
     </define>
-    
+
     <define name="attr.xml.base">
         <attribute name="xml:base">
             <data type="anyURI"/>
         </attribute>
     </define>
-    
+
     <define name="attr.xml.lang">
         <attribute name="xml:lang"/>
     </define>
@@ -132,7 +137,7 @@
         <element name="ana">
             <interleave>
                 <zeroOrMore>
-                    <ref name="elem.term"/>    
+                    <ref name="elem.term"/>
                 </zeroOrMore>
                 <text/>
             </interleave>
@@ -207,8 +212,8 @@
             <text/>
         </element>
     </define>
-    
-    
+
+
 
     <define name="elem.div">
         <element name="div">
@@ -235,7 +240,7 @@
             </choice>
         </element>
     </define>
-    
+
     <define name="elem.encodingDesc">
         <element name="encodingDesc">
             <optional>
@@ -243,7 +248,7 @@
             </optional>
         </element>
     </define>
-    
+
     <define name="elem.externalResources">
         <element name="externalResources">
             <interleave>
@@ -294,7 +299,8 @@
 
     <define name="elem.g">
         <element name="g">
-            <a:documentation xml:lang="de">(Zeichen oder Glyphe) repräsentiert eine Glyphe oder ein Zeichen.</a:documentation>
+            <a:documentation xml:lang="de">(Zeichen oder Glyphe) repräsentiert eine Glyphe oder ein
+                Zeichen.</a:documentation>
             <optional>
                 <ref name="attr.xml.id"/>
             </optional>
@@ -380,11 +386,13 @@
             <ref name="model.poetology.annotation"/>
             <sch:pattern>
                 <sch:rule context="edxml:kolon/@units">
-                    <sch:let name="ids" value="for $id in tokenize(., ' ') return substring-after($id, '#')"/>
+                    <sch:let name="ids"
+                        value="for $id in tokenize(., ' ') return substring-after($id, '#')"/>
                     <sch:let name="wrong-ids"
                         value="for $id in $ids return (if ( not(//edxml:unit[@xml:id = $id][ancestor::edxml:philology]) ) then ($id) else () )"/>
-                    <sch:assert test="empty($wrong-ids)" role="error">(Falsche ID) In @units eines Kolon dürfen nur IDs von Philology Units stehen
-                            (<sch:value-of select="$wrong-ids"/>)!</sch:assert>
+                    <sch:assert test="empty($wrong-ids)" role="error">(Falsche ID) In @units eines
+                        Kolon dürfen nur IDs von Philology Units stehen (<sch:value-of
+                            select="$wrong-ids"/>)!</sch:assert>
                 </sch:rule>
             </sch:pattern>
         </element>
@@ -445,9 +453,10 @@
                 <sch:pattern>
                     <sch:rule context="edxml:metamark/@rend">
                         <sch:let name="renditions" value="//edxml:rendition"/>
-                        <sch:assert test=". = ($renditions/@xml:id, 'line', 'doubleLine')" role="error">
-                            (Hervorhebung nicht definiert) Die Hervorhebung "<sch:value-of select="data(.)"/>" ist nicht im Header (encodingDesc/tagsDecl/rendition) definiert!
-                        </sch:assert>
+                        <sch:assert test=". = ($renditions/@xml:id, 'line', 'doubleLine')"
+                            role="error"> (Hervorhebung nicht definiert) Die Hervorhebung
+                                "<sch:value-of select="data(.)"/>" ist nicht im Header
+                            (encodingDesc/tagsDecl/rendition) definiert! </sch:assert>
                     </sch:rule>
                 </sch:pattern>
             </attribute>
@@ -459,7 +468,7 @@
         <element name="motif">
             <interleave>
                 <zeroOrMore>
-                    <ref name="elem.term"/>    
+                    <ref name="elem.term"/>
                 </zeroOrMore>
                 <text/>
             </interleave>
@@ -484,33 +493,48 @@
             <optional>
                 <attribute name="type">
                     <list>
-                        <choice>
-                            <value>con</value>
-                            <a:documentation>Inhalt</a:documentation>
-                            <value>gr</value>
-                            <a:documentation>Grammatik</a:documentation>
-                            <value>lx</value>
-                            <a:documentation>Lexik</a:documentation>
-                            <value>rek</value>
-                            <a:documentation>Rekonstruktion</a:documentation>
-                            <value>str</value>
-                            <a:documentation>Struktur</a:documentation>
-                        </choice>
+                        <oneOrMore>
+                            <choice>
+                                <value>con</value>
+                                <a:documentation>Inhalt</a:documentation>
+                                <value>gr</value>
+                                <a:documentation>Grammatik</a:documentation>
+                                <value>lx</value>
+                                <a:documentation>Lexik</a:documentation>
+                                <value>poet</value>
+                                <a:documentation>Poetologie</a:documentation>
+                                <value>rek</value>
+                                <a:documentation>Rekonstruktion</a:documentation>
+                            </choice>
+                        </oneOrMore>
                     </list>
                 </attribute>
             </optional>
             <interleave>
+                <!-- MFZ, 2024-04-05: Eigentlich könnten wir ja alles außer elem.hi, elem.p, elem.quote, elem.ugarit und elem.meta.bibl aus dieser Liste rausnehmen, oder?! -->
+                <zeroOrMore>
+                    <ref name="model.transcriptional"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.ana"/>
+                </zeroOrMore>
                 <zeroOrMore>
                     <ref name="elem.hi"/>
                 </zeroOrMore>
                 <zeroOrMore>
-                    <ref name="elem.w"/>
+                    <ref name="elem.p"/>
                 </zeroOrMore>
                 <zeroOrMore>
                     <ref name="elem.phr"/>
                 </zeroOrMore>
                 <zeroOrMore>
-                    <ref name="model.transcriptional"/>
+                    <ref name="elem.quote"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.ugarit"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.w"/>
                 </zeroOrMore>
                 <zeroOrMore>
                     <ref name="elem.meta.bibl"/>
@@ -518,9 +542,10 @@
                 <text/>
             </interleave>
             <sch:pattern>
-                <sch:rule context="edxml:note[not(ancestor::edxml:structure[@type='poetological'] or ancestor::edxml:surface)]">
-                    <sch:assert test="@target" role="warn">Diese Anmerkung ist nicht an ein Element angebunden (sprich: Sie bezieht sich auf
-                        Nichts)!</sch:assert>
+                <sch:rule
+                    context="edxml:note[not(ancestor::edxml:structure[@type='poetological'] or ancestor::edxml:surface)]">
+                    <sch:assert test="@target" role="warn">Diese Anmerkung ist nicht an ein Element
+                        angebunden (sprich: Sie bezieht sich auf Nichts)!</sch:assert>
                 </sch:rule>
             </sch:pattern>
         </element>
@@ -587,6 +612,67 @@
         </element>
     </define>
 
+    <define name="elem.phr">
+        <element name="phr">
+            <optional>
+                <ref name="attr.xml.id"/>
+            </optional>
+            <optional>
+                <ref name="attr.ana"/>
+            </optional>
+            <interleave>
+                <zeroOrMore>
+                    <ref name="elem.phr"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.lb"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.w"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.pc"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="model.transcriptional"/>
+                </zeroOrMore>
+                <text/>
+            </interleave>
+        </element>
+    </define>
+
+    <define name="elem.quote">
+        <element name="quote">
+            <interleave>
+                <zeroOrMore>
+                    <ref name="model.transcriptional"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.hi"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.lb"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.phr"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.quote"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.ugarit"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.w"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.meta.bibl"/>
+                </zeroOrMore>
+                <text/>
+            </interleave>
+        </element>
+    </define>
+
     <define name="elem.relations">
         <element name="relations">
             <element name="head">
@@ -606,8 +692,9 @@
                 <sch:pattern>
                     <sch:rule context="edxml:relation/@source">
                         <sch:let name="id" value="substring-after(., '#')"/>
-                        <sch:assert test="//*[@xml:id = $id]" role="error">(ID '<sch:value-of select="$id"/>' gibt's nicht!): Die ID in @<sch:name/>
-                            gibt es in diesem Dokument nicht!</sch:assert>
+                        <sch:assert test="//*[@xml:id = $id]" role="error">(ID '<sch:value-of
+                                select="$id"/>' gibt's nicht!): Die ID in @<sch:name/> gibt es in
+                            diesem Dokument nicht!</sch:assert>
                     </sch:rule>
                 </sch:pattern>
             </attribute>
@@ -616,8 +703,9 @@
                 <sch:pattern>
                     <sch:rule context="edxml:relation/@target">
                         <sch:let name="id" value="substring-after(., '#')"/>
-                        <sch:assert test="//*[@xml:id = $id]" role="error">(ID '<sch:value-of select="$id"/>' gibt's nicht!): Die ID in @<sch:name/>
-                            gibt es in diesem Dokument nicht!</sch:assert>
+                        <sch:assert test="//*[@xml:id = $id]" role="error">(ID '<sch:value-of
+                                select="$id"/>' gibt's nicht!): Die ID in @<sch:name/> gibt es in
+                            diesem Dokument nicht!</sch:assert>
                     </sch:rule>
                 </sch:pattern>
             </attribute>
@@ -625,6 +713,8 @@
         </element>
     </define>
 
+
+
     <define name="elem.ref">
         <element name="ref">
             <attribute name="target"/>
@@ -632,35 +722,6 @@
         </element>
     </define>
 
-    <define name="elem.phr">
-        <element name="phr">
-            <optional>
-                <ref name="attr.xml.id"/>
-            </optional>
-            <optional>
-                <ref name="attr.ana"/>
-            </optional>
-            <interleave>
-                <zeroOrMore>
-                    <ref name="elem.phr"/>
-                </zeroOrMore>
-                <zeroOrMore>
-                    <ref name="elem.lb"/>
-                </zeroOrMore>
-                <zeroOrMore>
-                    <ref name="elem.w"/>
-                </zeroOrMore>
-                <zeroOrMore>
-                    <ref name="elem.pc"/>
-                </zeroOrMore>
-                <zeroOrMore>
-                    <ref name="model.transcriptional"/>
-                </zeroOrMore>
-                <text/>
-            </interleave>
-        </element>
-    </define>
-    
     <define name="elem.rendition">
         <element name="rendition">
             <ref name="attr.xml.id"/>
@@ -668,9 +729,9 @@
                 <attribute name="scheme"/>
             </optional>
             <text/>
-        </element>    
+        </element>
     </define>
-    
+
     <define name="elem.revisionDesc">
         <element name="revisionDesc">
             <oneOrMore>
@@ -681,7 +742,8 @@
 
     <define name="elem.seg">
         <element name="seg">
-            <a:documentation xml:lang="de">(Segment) repräsentiert ein Segment (z.B. eine Zeichengruppe).</a:documentation>
+            <a:documentation xml:lang="de">(Segment) repräsentiert ein Segment (z.B. eine
+                Zeichengruppe).</a:documentation>
             <optional>
                 <ref name="attr.xml.id"/>
             </optional>
@@ -720,8 +782,8 @@
             <ref name="elem.units"/>
             <sch:pattern>
                 <sch:rule context="edxml:stanza/edxml:units/element()">
-                    <sch:report test="not(./local-name() = ('verse', 'choice'))" role="error">(Vers): In Strophen können nur Verse
-                        stehen!</sch:report>
+                    <sch:report test="not(./local-name() = ('verse', 'choice'))" role="error"
+                        >(Vers): In Strophen können nur Verse stehen!</sch:report>
                 </sch:rule>
             </sch:pattern>
         </element>
@@ -747,7 +809,7 @@
             </optional>
             <interleave>
                 <zeroOrMore>
-                    <ref name="elem.term"/>    
+                    <ref name="elem.term"/>
                 </zeroOrMore>
                 <text/>
             </interleave>
@@ -792,7 +854,7 @@
             </optional>
         </element>
     </define>
-    
+
     <define name="elem.tagsDecl">
         <element name="tagsDecl">
             <zeroOrMore>
@@ -800,7 +862,7 @@
             </zeroOrMore>
         </element>
     </define>
-    
+
     <define name="elem.term">
         <element name="term">
             <optional>
@@ -848,6 +910,32 @@
         </element>
     </define>
 
+    <define name="elem.ugarit">
+        <element name="ugarit">
+            <interleave>
+                <zeroOrMore>
+                    <ref name="model.transcriptional"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.hi"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.lb"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.phr"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.w"/>
+                </zeroOrMore>
+                <zeroOrMore>
+                    <ref name="elem.meta.bibl"/>
+                </zeroOrMore>
+                <text/>
+            </interleave>
+        </element>
+    </define>
+
     <define name="elem.unit">
         <element name="unit">
             <ref name="attr.xml.id"/>
@@ -870,11 +958,13 @@
             </choice>
             <sch:pattern>
                 <sch:rule context="edxml:philology//edxml:unit/@corresp">
-                    <sch:let name="ids" value="for $id in tokenize(., ' ') return substring-after($id, '#')"/>
+                    <sch:let name="ids"
+                        value="for $id in tokenize(., ' ') return substring-after($id, '#')"/>
                     <sch:let name="wrong-ids"
                         value="for $id in $ids return (if ( not(//edxml:line[@xml:id = $id] or //*[@xml:id = $id][ancestor::edxml:line]) ) then ($id) else () )"/>
-                    <sch:assert test="empty($wrong-ids)" role="error">(Falsche ID) In @corresp von Philology Units dürfen nur IDs aus dem facsimiles
-                        Block stehen (<sch:value-of select="$wrong-ids"/>)!</sch:assert>
+                    <sch:assert test="empty($wrong-ids)" role="error">(Falsche ID) In @corresp von
+                        Philology Units dürfen nur IDs aus dem facsimiles Block stehen
+                            (<sch:value-of select="$wrong-ids"/>)!</sch:assert>
                 </sch:rule>
             </sch:pattern>
         </element>
@@ -924,7 +1014,8 @@
             <ref name="elem.units"/>
             <sch:pattern>
                 <sch:rule context="edxml:verse/edxml:units/element()">
-                    <sch:report test="not(./local-name() = ('kolon', 'choice'))" role="error">(Kola): In Versen können nur Kola stehen!</sch:report>
+                    <sch:report test="not(./local-name() = ('kolon', 'choice'))" role="error"
+                        >(Kola): In Versen können nur Kola stehen!</sch:report>
                 </sch:rule>
             </sch:pattern>
         </element>
@@ -958,8 +1049,9 @@
             </interleave>
             <sch:pattern>
                 <sch:rule context="edxml:w">
-                    <sch:assert test="@xml:id or not(empty(@xml:id))" role="warning">('<sch:value-of select=".//text()"/>' hat keine ID): Jedes Wort
-                        sollte durch eine ID (@xml:id) eindeutig identifiziert sein!</sch:assert>
+                    <sch:assert test="@xml:id or not(empty(@xml:id))" role="warning">('<sch:value-of
+                            select=".//text()"/>' hat keine ID): Jedes Wort sollte durch eine ID
+                        (@xml:id) eindeutig identifiziert sein!</sch:assert>
                 </sch:rule>
             </sch:pattern>
         </element>
@@ -1072,7 +1164,7 @@
             </zeroOrMore>
         </interleave>
     </define>-->
-    
+
     <define name="model.include">
         <optional>
             <ref name="attr.xml.id"/>
@@ -1081,7 +1173,7 @@
             <ref name="attr.xml.base"/>
         </optional>
     </define>
-    
+
     <define name="model.analysis">
         <interleave>
             <zeroOrMore>
@@ -1172,7 +1264,7 @@
             <ref name="elem.lb"/>
         </choice>
     </define>
-    
+
     <define name="model.external-resources">
         <attribute name="prefix"/>
         <choice>
@@ -1181,7 +1273,7 @@
         </choice>
         <text/>
     </define>
-    
+
     <define name="model.poetology.annotation">
         <interleave>
             <optional>
@@ -1488,7 +1580,7 @@
             <text/>
         </element>
     </define>
-    
+
     <define name="elem.tei.choice">
         <element name="tei:choice">
             <interleave>