<?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:include>
  <xsd:element name="beitraege">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="beitrag" maxOccurs="unbounded">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:choice minOccurs="1" maxOccurs="unbounded">
                <xsd:element name="stueck" type="kgpz:stueckref">
                  <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:beilageref">
                  <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:choice>
              <xsd:element name="kategorie" minOccurs="0" maxOccurs="unbounded" type="kgpz:ref">
                <xsd:annotation>
                  <xsd:documentation>Optional: Verweis auf eine Kategorie, in die der Beitrag
                    eingeordnet werden kann.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>

              <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="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:choice minOccurs="0" maxOccurs="unbounded">
                <xsd:element name="werk" type="kgpz:werkref">
                  <xsd:annotation>
                    <xsd:documentation>Optional: Verweis auf ein Werk.</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>

                <xsd:element name="beitrag" type="kgpz:beitragref">
                  <xsd:annotation>
                    <xsd:documentation>Optional: Verweis auf einen Beitrag.</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>

                <xsd:element name="akteur" type="kgpz:akteurref">
                  <xsd:annotation>
                    <xsd:documentation>Optional: Verweis auf eine Person, die mit dem Beitrag in
                      Verbindung steht.</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>

                <xsd:element name="ort" type="kgpz:ortref">
                  <xsd:annotation>
                    <xsd:documentation>Optional: Der Ort, welcher im Beitrag angegeben ist.</xsd:documentation>
                  </xsd:annotation>
                </xsd:element>
              </xsd:choice>

              <xsd:element name="anmerkung" type="kgpz:text" minOccurs="0"
                maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation>Optional: Eine Anmerkung zum Beitrag. Öffentlich.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>

              <xsd:element name="vermerk" type="kgpz:text" minOccurs="0"
                maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation>Optional: Ein Vermerk zum Beitrag. Intern.</xsd:documentation>
                </xsd:annotation>
              </xsd:element>
            </xsd:sequence>
            <xsd:attribute name="id" type="xsd:string" use="optional">
              <xsd:annotation>
                <xsd:documentation>Optional: Eindeutige ID des Beitrags.</xsd:documentation>
              </xsd:annotation>
            </xsd:attribute>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>

    </xsd:complexType>
    <xsd:unique name="uniqueIndexBeitrag">
      <xsd:annotation>
        <xsd:documentation>Pflicht: jede vergebene ID eines Beitrags ist eindeutig.</xsd:documentation>
      </xsd:annotation>

      <xsd:selector xpath="kgpz:beitrag" />
      <xsd:field xpath="@id" />
    </xsd:unique>
  </xsd:element>
</xsd:schema>