<?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">

    <xsd:include schemaLocation="common.xsd" />

    <xsd:element name="akteure">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="akteur" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>Ein Akteur im Personenverzeichnis Pflicht: @id,
                            &lt;name&gt;.</xsd:documentation>
                    </xsd:annotation>
                    <xsd:complexType>
                        <xsd:sequence>
                            <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="0" maxOccurs="1"
                                type="kgpz:NonEmptyString" nillable="false">
                                <xsd:annotation>
                                    <xsd:documentation>Optional: Der Name des Akteurs, so wie nach
                                        diesem sortiert wird. Falls nicht vorhanden, sortieren wir
                                        nach @id.</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: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: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>
    </xsd:element>
</xsd:schema>