Files
lenz-briefe/data/xsd/briefe.xsd
2025-09-17 14:56:04 +02:00

81 lines
3.1 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:include schemaLocation="textelements.xsd"></xs:include>
<!-- Root Element: opus -->
<xs:element name="opus">
<xs:complexType>
<xs:sequence>
<xs:element ref="document" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Document Container -->
<xs:element name="document">
<xs:complexType>
<xs:sequence>
<xs:element ref="letterText" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:unique name="uniqueIndexLetter">
<xs:annotation>
<xs:documentation>Pflicht: Jeder Brief hat eine eindeutige ID.</xs:documentation>
</xs:annotation>
<xs:selector xpath="lenz:letterText" />
<xs:field xpath="@letter" />
</xs:unique>
</xs:element>
<!-- Main Letter Text Element -->
<xs:element name="letterText">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="page" minOccurs="1" maxOccurs="1" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="page" />
<xs:element ref="line" />
<xs:element ref="align" />
<xs:element ref="sidenote" />
<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:sequence>
<xs:attribute name="letter" type="xs:nonNegativeInteger" use="required" />
</xs:complexType>
<xs:unique name="uniquePageIndex">
<xs:annotation>
<xs:documentation>Pflicht: Jede Seite hat eine eindeutige Index-Nummer innerhalb eines Briefes.</xs:documentation>
</xs:annotation>
<xs:selector xpath="lenz:page" />
<xs:field xpath="@index" />
</xs:unique>
</xs:element>
</xs:schema>