Files
lenz-briefe/data/xsd/textelements.xsd
2025-09-17 13:34:50 +02:00

309 lines
14 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://lenz-archiv.de"
xmlns="https://lenz-archiv.de"
xmlns:lenz="https://lenz-archiv.de"
elementFormDefault="qualified">
<xs:include schemaLocation="common.xsd"></xs:include>
<xs:complexType name="inline" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="line" />
<xs:element ref="align" />
<xs:element ref="aq" />
<xs:element ref="ul" />
<xs:element ref="address" />
<xs:element ref="insertion" />
<xs:element ref="del" />
<xs:element ref="hand" />
<xs:element ref="note" />
<xs:element ref="tl" />
<xs:element ref="dul" />
<xs:element ref="fn" />
<xs:element ref="pe" />
<xs:element ref="anchor" />
<xs:element ref="nr" />
<xs:element ref="b" />
<xs:element ref="it" />
<xs:element ref="gr" />
<xs:element ref="hb" />
<xs:element ref="subst" />
<xs:element ref="tabs" />
<xs:element ref="er" />
<xs:element ref="ink" />
<xs:element ref="ru" />
</xs:choice>
</xs:complexType>
<xs:complexType name="textbase" mixed="true">
<xs:complexContent>
<xs:extension base="inline" />
</xs:complexContent>
</xs:complexType>
<!-- Page Break -->
<xs:element name="page">
<xs:complexType>
<xs:attribute name="index" type="xs:positiveInteger" use="required" />
</xs:complexType>
</xs:element>
<!-- Aligned Text Block -->
<xs:element name="align">
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="lenz:textbase">
<xs:attribute name="pos" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="left" />
<xs:enumeration value="center" />
<xs:enumeration value="right" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!-- Line Element (various types) -->
<xs:element name="line">
<xs:complexType>
<xs:attribute name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="break" />
<xs:enumeration value="empty" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="tab" type="xs:positiveInteger" use="optional" />
<xs:attribute name="index" type="xs:positiveInteger" use="optional" />
</xs:complexType>
</xs:element>
<!-- Sidenote / Marginalia -->
<xs:element name="sidenote">
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="lenz:textbase">
<xs:attribute name="pos" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="left" />
<xs:enumeration value="right" />
<xs:enumeration value="top" />
<xs:enumeration value="bottom" />
<xs:enumeration value="top right" />
<xs:enumeration value="top left" />
<xs:enumeration value="bottom right" />
<xs:enumeration value="bottom left" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="page" type="xs:positiveInteger" use="required" />
<xs:attribute name="annotation" type="xs:string" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="insertion">
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="lenz:textbase">
<xs:attribute name="pos" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="left" />
<xs:enumeration value="right" />
<xs:enumeration value="top" />
<xs:enumeration value="bottom" />
<xs:enumeration value="top right" />
<xs:enumeration value="top left" />
<xs:enumeration value="bottom right" />
<xs:enumeration value="bottom left" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="annotation" type="xs:string" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="fn">
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="lenz:textbase">
<xs:attribute name="index" type="xs:positiveInteger" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="hand">
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="lenz:textbase">
<xs:attribute name="ref" type="xs:positiveInteger" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="ink">
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="lenz:textbase">
<xs:attribute name="ref" type="xs:positiveInteger" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="nr">
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="lenz:textbase">
<xs:attribute name="extent" type="xs:positiveInteger" use="optional" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="tabs">
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="lenz:textbase">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="lenz:tab" minOccurs="1" maxOccurs="unbounded" />
<xs:element ref="lenz:line" />
<xs:element ref="lenz:page" />
<xs:element ref="lenz:note" />
</xs:choice>
<xs:attribute name="extent" type="xs:positiveInteger" use="optional" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="tab">
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="lenz:textbase">
<xs:attribute name="value" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="1-2" />
<xs:enumeration value="2-2" />
<xs:enumeration value="1-3" />
<xs:enumeration value="2-3" />
<xs:enumeration value="3-3" />
<xs:enumeration value="1-4" />
<xs:enumeration value="2-4" />
<xs:enumeration value="3-4" />
<xs:enumeration value="4-4" />
<xs:enumeration value="1-5" />
<xs:enumeration value="2-5" />
<xs:enumeration value="3-5" />
<xs:enumeration value="4-5" />
<xs:enumeration value="5-5" />
<xs:enumeration value="1-6" />
<xs:enumeration value="2-6" />
<xs:enumeration value="3-6" />
<xs:enumeration value="4-6" />
<xs:enumeration value="5-6" />
<xs:enumeration value="6-6" />
<xs:enumeration value="1-7" />
<xs:enumeration value="2-7" />
<xs:enumeration value="3-7" />
<xs:enumeration value="4-7" />
<xs:enumeration value="5-7" />
<xs:enumeration value="6-7" />
<xs:enumeration value="7-7" />
<xs:enumeration value="1-8" />
<xs:enumeration value="2-8" />
<xs:enumeration value="3-8" />
<xs:enumeration value="4-8" />
<xs:enumeration value="5-8" />
<xs:enumeration value="6-8" />
<xs:enumeration value="7-8" />
<xs:enumeration value="8-8" />
<xs:enumeration value="1-9" />
<xs:enumeration value="2-9" />
<xs:enumeration value="3-9" />
<xs:enumeration value="4-9" />
<xs:enumeration value="5-9" />
<xs:enumeration value="6-9" />
<xs:enumeration value="7-9" />
<xs:enumeration value="8-9" />
<xs:enumeration value="9-9" />
<xs:enumeration value="1-10" />
<xs:enumeration value="2-10" />
<xs:enumeration value="3-10" />
<xs:enumeration value="4-10" />
<xs:enumeration value="5-10" />
<xs:enumeration value="6-10" />
<xs:enumeration value="7-10" />
<xs:enumeration value="8-10" />
<xs:enumeration value="9-10" />
<xs:enumeration value="10-10" />
<xs:enumeration value="1-11" />
<xs:enumeration value="2-11" />
<xs:enumeration value="3-11" />
<xs:enumeration value="4-11" />
<xs:enumeration value="5-11" />
<xs:enumeration value="6-11" />
<xs:enumeration value="7-11" />
<xs:enumeration value="8-11" />
<xs:enumeration value="9-11" />
<xs:enumeration value="10-11" />
<xs:enumeration value="11-11" />
<xs:enumeration value="1-12" />
<xs:enumeration value="2-12" />
<xs:enumeration value="3-12" />
<xs:enumeration value="4-12" />
<xs:enumeration value="5-12" />
<xs:enumeration value="6-12" />
<xs:enumeration value="7-12" />
<xs:enumeration value="8-12" />
<xs:enumeration value="9-12" />
<xs:enumeration value="10-12" />
<xs:enumeration value="11-12" />
<xs:enumeration value="12-12" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="subst">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="lenz:del" minOccurs="1" maxOccurs="unbounded" />
<xs:element ref="lenz:insertion" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="aq" type="lenz:textbase" />
<xs:element name="ul" type="lenz:textbase" />
<xs:element name="address" type="lenz:textbase" />
<xs:element name="del" type="lenz:textbase" />
<xs:element name="note" type="lenz:textbase" />
<xs:element name="tl" type="lenz:textbase" />
<xs:element name="b" type="lenz:textbase" />
<xs:element name="it" type="lenz:textbase" />
<xs:element name="er" type="lenz:textbase" />
<xs:element name="dul" type="lenz:textbase" />
<xs:element name="pe" type="lenz:textbase" />
<xs:element name="anchor" type="lenz:textbase" />
<xs:element name="gr" type="lenz:textbase" />
<xs:element name="hb" type="lenz:textbase" />
<xs:element name="ru" type="lenz:textbase" />
</xs:schema>