Files
KGPZ/XSD/stuecke.xsd
2024-05-11 19:39:09 +02:00

84 lines
4.4 KiB
XML

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://www.koenigsberger-zeitungen.de"
xmlns="https://www.koenigsberger-zeitungen.de"
xmlns:kgpz="https://www.koenigsberger-zeitungen.de"
elementFormDefault="qualified">
<!-- Vorschlag: Stücke aus dem Datum von Dateinamen ableiten -->
<xsd:include schemaLocation="common.xsd" />
<xsd:element name="stuecke">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="stueck" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="nummer" type="xsd:positiveInteger" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation> Pflicht: Die Nummer des Stücks, wie auf dem
Titel angegeben. </xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- Lässt sich aus Nummer + Jahr berechnen. -->
<xsd:element name="datum" type="kgpz:date" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation> Pflicht: Das Datum des Stücks, wie auf dem
Titel angegeben. </xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- Von + bis lässt sich aus Nummer berechnen (n-1) * 4 + 1 bzw. (n-1)
* 4 + 1 -->
<xsd:element name="von" type="xsd:positiveInteger" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation> Pflicht: Die erste Seitenzahl des Stücks. </xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="bis" type="xsd:positiveInteger" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation> Pflicht: Die letzte Seitenzahl des Stücks. </xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- Kann von Stücke abgeleitet werden -->
<xsd:element name="beilagen" type="xsd:nonNegativeInteger" default="0"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation> Optional: Die Anzahl der Beilagen des
Stücks. </xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- Vielleicht nötig -->
<xsd:element name="anmerkung" type="kgpz:NonEmptyString" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation> Optional: Anmerkungen zum Stück. Öffentlich. </xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="vermerk" type="kgpz:NonEmptyString" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation> Optional: Vermerk zum Stück. Intern. </xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:unique name="uniqueNummer">
<xsd:annotation>
<xsd:documentation> Jedes Datum darf nur ein einziges Mal vorkommen. </xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="kgpz:stueck" />
<xsd:field xpath="kgpz:datum/@when" />
</xsd:unique>
</xsd:element>
</xsd:schema>