Dokumentation aller Attribute und Tags

This commit is contained in:
Simon Martens
2024-05-11 19:39:09 +02:00
parent 97de4b77f7
commit 8f6f5d4cbb
7 changed files with 437 additions and 72 deletions

View File

@@ -2,7 +2,7 @@
<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"
xmlns:kgpz="https://www.koenigsberger-zeitungen.de"
elementFormDefault="qualified">
<xsd:include schemaLocation="common.xsd" />
@@ -11,26 +11,82 @@
<xsd:complexType>
<xsd:sequence>
<xsd:element name="akteur" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Ein Akteur im Personenverzeichnis Pflicht: @id,
&lt;name&gt;, &lt;sortiername&gt;.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="NonEmptyString" nillable="false" maxOccurs="unbounded" />
<xsd:element name="sortiername" minOccurs="1" maxOccurs="1" type="kgpz:NonEmptyString" nillable="false" />
<xsd:element name="lebensdaten" minOccurs="0" maxOccurs="1" type="kgpz:NonEmptyString" />
<xsd:element name="name" type="kgpz:NonEmptyString" nillable="false"
minOccurs="1" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Pflicht: Der/die (normierte/n) Name/n des
Akteurs.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="sortiername" minOccurs="1" maxOccurs="1"
type="kgpz:NonEmptyString" nillable="false">
<xsd:annotation>
<xsd:documentation>Pflicht: Der Name des Akteurs, so wie nach
diesem sortiert wird.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="lebensdaten" minOccurs="0" maxOccurs="1"
type="kgpz:NonEmptyString">
<xsd:annotation>
<xsd:documentation>Optional: Angaben zu Lebensdaten des Akteurs.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- TODO: URI FOR GND -->
<xsd:element name="gnd" minOccurs="0" maxOccurs="1" type="xsd:anyURI" nillable="false" />
<xsd:element name="anmerkung" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="vermerk" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="gnd" minOccurs="0" maxOccurs="1" type="xsd:anyURI"
nillable="false">
<xsd:annotation>
<xsd:documentation>Optional: Die URI zur GND-Seite des Akteurs.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="anmerkung" type="kgpz:NonEmptyString" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Optional: Eine Anmerkung zum Akteur.
Öffentlich.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="vermerk" type="kgpz:NonEmptyString" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Optional: Ein Vermerk zum Akteur. Intern.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="id" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>Pflicht: Eindeutige ID des Akteurs.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:unique name="uniqueIndexAkteur">
<xsd:annotation>
<xsd:documentation>Pflicht: Jeder Akteur hat eine eindeutige ID.</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="kgpz:akteur" />
<xsd:field xpath="@id" />
</xsd:unique>
<xsd:unique name="uniqueGND">
<xsd:annotation>
<xsd:documentation>Pflicht: Jeder Akteur hat eine eindeutige GND.</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="kgpz:akteur" />
<xsd:field xpath="kgpz:gnd" />
</xsd:unique>

View File

@@ -13,15 +13,42 @@
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<xsd:annotation>
<xsd:documentation>Ein Beitrag kann entweder aus einem oder
mehreren Stücken oder einer Beilage sein und muss darauf
verweisen.</xsd:documentation>
</xsd:annotation>
<xsd:element name="stueck" type="kgpz:StueckBeitragRef"
minOccurs="1" maxOccurs="unbounded" />
minOccurs="1" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Verweist auf ein Stück, in wlchem ein
Beitrag veröffentlicht wurde. Darf mehrmals vorkommen.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="beilage" type="kgpz:StueckBeilageRef"
minOccurs="1" maxOccurs="unbounded" />
minOccurs="1" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Verweist auf eine Beilage, in welcher ein
Beitrag veröffentlicht wurde. Darf mehrmals vorkommen.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:sequence>
<xsd:element name="stueck" type="kgpz:StueckBeitragRef"
minOccurs="1" maxOccurs="unbounded" />
minOccurs="1" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Verweist auf ein Stück, in welchem
ein Beitrag veröffentlicht wurde. Darf mehrmals
vorkommen.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="beilage" type="kgpz:StueckBeilageRef"
minOccurs="1" maxOccurs="unbounded" />
minOccurs="1" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Verweist auf eine Beilage, in welcher
ein Beitrag veröffentlicht wurde. Darf mehrmals
vorkommen.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:choice>
<xsd:group ref="kgpz:BeitragInfo" />
@@ -34,42 +61,141 @@
<xsd:complexType name="StueckBeitragRef">
<xsd:attribute name="jahr" type="kgpz:Year"
use="required" />
<xsd:annotation>
<xsd:documentation>Referenziert ein Stück</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="jahr" type="xsd:gYear"
use="required">
<xsd:annotation>
<xsd:documentation>Pflicht: Das Jahr des Stücks.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="nr" type="xsd:positiveInteger"
use="required" />
use="optional">
<xsd:annotation>
<xsd:documentation>Optional: Die Nummer des Stücks.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="von" type="xsd:positiveInteger"
use="required" />
use="required">
<xsd:annotation>
<xsd:documentation>Pflicht: Die erste Seitenzahl des Beitrags.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="bis" type="xsd:positiveInteger"
use="optional" />
use="optional">
<xsd:annotation>
<xsd:documentation>Optional: Die letzte Seitenzahl des Beitrags, erstreckt er sich
über mehrere Seiten.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="StueckBeilageRef">
<xsd:attribute name="jahr" type="kgpz:Year"
use="required" />
<xsd:annotation>
<xsd:documentation>Referenziert eine Beilage</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="jahr" type="xsd:gYear"
use="required">
<xsd:annotation>
<xsd:documentation>Pflicht: Das Jahr des referenzierten Stücks.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="nr" type="xsd:positiveInteger"
use="required" />
use="optional">
<xsd:annotation>
<xsd:documentation>Optional: Die Nummer des Stücks.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="beilage" type="xsd:positiveInteger"
use="required" />
use="required">
<xsd:annotation>
<xsd:documentation>Pflicht: Die Nummer der Beilage.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="von" type="xsd:positiveInteger"
use="optional" />
use="optional">
<xsd:annotation>
<xsd:documentation>Optional: Die erste Seitenzahl des Beitrags (nur bei mehreren
Beiträgen in einer Beilage).</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="bis" type="xsd:positiveInteger"
use="optional" />
use="optional">
<xsd:annotation>
<xsd:documentation>Optional: Die letzte Seitenzahl des Beitrags, erstreckt er sich
über mehrere Seiten (nur bei mehreren Beiträgen in einer Beilage).</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:group name="BeitragInfo">
<xsd:sequence>
<xsd:element name="datum" type="kgpz:date" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="ort" minOccurs="0" maxOccurs="unbounded" type="kgpz:ref" />
<xsd:element name="kategorie" minOccurs="1" maxOccurs="unbounded" type="kgpz:ref" />
<xsd:element name="autor" minOccurs="0" maxOccurs="unbounded" type="kgpz:ref" />
<xsd:element name="titel" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="1" />
<xsd:element name="incipit" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="1" />
<xsd:element name="rezensiert" minOccurs="0" maxOccurs="unbounded" type="kgpz:ref" />
<xsd:element name="datum" type="kgpz:date" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Optional: Das Datum, welches im Beitrag angegeben ist.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ort" minOccurs="0" maxOccurs="unbounded" type="kgpz:ref">
<xsd:annotation>
<xsd:documentation>Optional: Der Ort, welcher im Beitrag angegeben ist.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="kategorie" minOccurs="1" maxOccurs="unbounded" type="kgpz:ref" >
<xsd:annotation>
<xsd:documentation>Pflicht: Verweis auf eine Kategorie, in die der Beitrag eingeordnet
werden kann.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="autor" minOccurs="0" maxOccurs="unbounded" type="kgpz:ref" >
<xsd:annotation>
<xsd:documentation>Optional: Verweis auf den Autor des Beitrags.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="titel" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="1" >
<xsd:annotation>
<xsd:documentation>Optional: Der Titel des Beitrags.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="incipit" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="1" >
<xsd:annotation>
<xsd:documentation>Optional: Der Anfang des Beitrags.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="rezensiert" minOccurs="0" maxOccurs="unbounded" type="kgpz:ref" >
<xsd:annotation>
<xsd:documentation>Optional: Verweis auf ein Werk, das rezensiert wird.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="anmerkung" type="kgpz:NonEmptyString" minOccurs="0"
maxOccurs="unbounded" />
maxOccurs="unbounded" >
<xsd:annotation>
<xsd:documentation>Optional: Eine Anmerkung zum Beitrag. Öffentlich.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="vermerk" type="kgpz:NonEmptyString" minOccurs="0"
maxOccurs="unbounded" />
maxOccurs="unbounded" >
<xsd:annotation>
<xsd:documentation>Optional: Ein Vermerk zum Beitrag. Intern.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:group>
</xsd:schema>

View File

@@ -10,21 +10,28 @@
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Year">
<xsd:restriction base="xsd:unsignedInt">
<xsd:minInclusive value="0" />
<xsd:maxInclusive value="2024" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ref">
<xsd:annotation>
<xsd:documentation>Referenziert ein anderes Element.</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="ref" use="required" type="kgpz:NonEmptyString" />
<xsd:attribute name="unsicher" use="optional" default="false" type="xsd:boolean" />
<xsd:attribute name="ref" use="required" type="kgpz:NonEmptyString" >
<xsd:annotation>
<xsd:documentation>Pflicht: Die ID des referenzierten Elements.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="unsicher" use="optional" default="false" type="xsd:boolean" >
<xsd:annotation>
<xsd:documentation>Optional: Ist die Referenz unsicher? Erlaubt: true | false</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<!-- This section is almost exactly as in TEI -->
<xsd:attributeGroup name="dateattributes">
<xsd:attributeGroup ref="kgpz:when"/>
<xsd:attributeGroup ref="kgpz:notBefore"/>
@@ -33,10 +40,9 @@
<xsd:attributeGroup ref="kgpz:to"/>
</xsd:attributeGroup>
<!-- This section is alsmost exacty as in TEI -->
<xsd:complexType name="date">
<xsd:annotation>
<xsd:documentation>(date) contains a date in any format. [3.6.4. Dates and Times 2.2.4. Publication, Distribution, Licensing, etc. 2.6. The Revision Description 3.12.2.4. Imprint, Size of a Document, and Reprint Information 15.2.3. The Setting Description 13.4. Dates]</xsd:documentation>
<xsd:documentation>(date) contains a date in any format.</xsd:documentation>
</xsd:annotation>
<xsd:attributeGroup ref="kgpz:dateattributes"/>
</xsd:complexType>

View File

@@ -13,16 +13,40 @@
<xsd:element name="kategorie" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="NonEmptyString" minOccurs="1" maxOccurs="1" nillable="false" />
<xsd:element name="anmerkung" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="vermerk" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="name" type="NonEmptyString" minOccurs="1" maxOccurs="unbounded" nillable="false" >
<xsd:annotation>
<xsd:documentation> Pflicht: Der/Die Namen der Kategorie. </xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="anmerkung" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation> Optional: Eine Anmerkung zur Kategorie. Öffentlich. </xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="vermerk" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="unbounded" >
<xsd:annotation>
<xsd:documentation> Optional: Ein Vermerk zur Kategorie. Intern. </xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="id" type="kgpz:NonEmptyString" use="required" >
<xsd:annotation>
<xsd:documentation>Pflicht: Eindeutige ID der Kategorie.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:unique name="uniqueIndexKategorien">
<xsd:annotation>
<xsd:documentation>Jede Kategorie hat eine eindeutige ID.</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="kgpz:kategorie" />
<xsd:field xpath="@id" />
</xsd:unique>

View File

@@ -13,22 +13,52 @@
<xsd:element name="ort" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="kgpz:NonEmptyString" minOccurs="1" maxOccurs="unbounded" nillable="false" />
<xsd:element name="name" type="kgpz:NonEmptyString" minOccurs="1" maxOccurs="unbounded" nillable="false" >
<xsd:annotation>
<xsd:documentation> Pflicht: Der/die (normierte/n) Name/n des Ortes.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- TODO: geonames URI regex -->
<xsd:element name="geonames" type="xsd:anyURI" minOccurs="0" maxOccurs="1" nillable="false" />
<xsd:element name="anmerkung" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="vermerk" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="geonames" type="xsd:anyURI" minOccurs="0" maxOccurs="1" nillable="false">
<xsd:annotation>
<xsd:documentation> Optional: Der Link zur Geonames-Seite des Ortes.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="anmerkung" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="unbounded" >
<xsd:annotation>
<xsd:documentation> Optional: Eine Anmerkung zum Ort. Öffentlich.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="vermerk" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="unbounded" >
<xsd:annotation>
<xsd:documentation> Optional: Ein Vermerk zum Ort. Intern.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="id" type="kgpz:NonEmptyString" use="required" >
<xsd:annotation>
<xsd:documentation>Pflicht: Eindeutige ID des Ortes.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:unique name="uniqueIndexOrte">
<xsd:annotation>
<xsd:documentation>Jeder Ort hat eine eindeutige ID.</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="kgpz:ort" />
<xsd:field xpath="@id" />
</xsd:unique>
<xsd:unique name="uniqueGeonames">
<xsd:annotation>
<xsd:documentation>Jeder Ort hat eine eindeutige Geonames-URI.</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="kgpz:ort" />
<xsd:field xpath="kgpz:geonames" />
</xsd:unique>

View File

@@ -2,7 +2,7 @@
<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"
xmlns:kgpz="https://www.koenigsberger-zeitungen.de"
elementFormDefault="qualified">
<!-- Vorschlag: Stücke aus dem Datum von Dateinamen ableiten -->
@@ -13,27 +13,70 @@
<xsd:element name="stueck" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="nummer" type="xsd:positiveInteger" minOccurs="1" maxOccurs="1" />
<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: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:element name="bis" type="xsd:positiveInteger" minOccurs="1" maxOccurs="1" />
<!-- 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: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:element name="vermerk" type="kgpz:NonEmptyString" minOccurs="0" maxOccurs="unbounded"/>
<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>

View File

@@ -11,44 +11,124 @@
<xsd:complexType>
<xsd:sequence>
<xsd:element name="werk" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Ein Werk im Werkeverzeichnis Pflicht: @id,
&lt;zitation&gt;.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="citation" />
<xsd:element name="zitation" type="kgpz:NonEmptyString" minOccurs="1"
maxOccurs="1" />
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Pflicht: Unstrukturierte Zitation des Werkes.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="url" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Optional: URLs zum Werk.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="kgpz:NonEmptyString">
<xsd:attribute name="address" type="xsd:anyURI" />
<xsd:attribute name="address" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>Pflicht: Die URL zum Werk.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="type" type="kgpz:NonEmptyString"
use="optional" default="Digitalisat">
<xsd:annotation>
<xsd:documentation>Optional: Der Typ der
Resource. Default: Digitalisat</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="anmerkung" type="kgpz:NonEmptyString" minOccurs="0"
maxOccurs="unbounded" />
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Optional: Eine Anmerkung zum Werk.
Öffentlich.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="vermerk" type="kgpz:NonEmptyString" minOccurs="0"
maxOccurs="unbounded" />
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Optional: Ein Vermerk zum Werk. Intern.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="id" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>Pflicht: Eindeutige ID des Werkes.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:unique name="uniqueId">
<xsd:annotation>
<xsd:documentation>Pflicht: Jedes Werk hat eine eindeutige ID.</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="kgpz:werk" />
<xsd:field xpath="@id" />
</xsd:unique>
</xsd:element>
<xsd:group name="citation">
<xsd:annotation>
<xsd:documentation>Daten zu Uhrheber und Datum eines Werkes.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="autor" type="kgpz:ref" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="herausgabe" type="kgpz:ref" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="druck" type="kgpz:ref" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="verlag" type="kgpz:ref" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="vertrieb" type="kgpz:ref" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="datum" type="kgpz:date" minOccurs="0" maxOccurs="1" />
<xsd:element name="autor" type="kgpz:ref" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Verweist auf eine Person oder Körperschaft, die das Werk
verfasst hat.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="herausgabe" type="kgpz:ref" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Verweist auf eine Person oder Körperschaft, die das Werk
herausgegeben hat.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="druck" type="kgpz:ref" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Verweist auf eine Person oder Körperschaft, die das Werk
gedruckt hat.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="verlag" type="kgpz:ref" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Verweist auf eine Person oder Körperschaft, die das Werk
verlegt hat.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="vertrieb" type="kgpz:ref" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Verweist auf eine Person oder Körperschaft, die das Werk
vertrieben hat.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="datum" type="kgpz:date" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Das Datum, an dem das Werk veröffentlicht wurde, zur
Sortierung der Werke.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:group>
</xsd:schema>