<?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>
                <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">
                  <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">
                  <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">
                    <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">
                    <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" />
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>


  <xsd:complexType name="StueckBeitragRef">
    <xsd:annotation>
      <xsd:documentation>Referenziert ein Stück</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="jahr"
      use="required">
      <xsd:annotation>
        <xsd:documentation>Pflicht: Das Datum, zumindest aber: das Jahr des Stücks.</xsd:documentation>
      </xsd:annotation>
      <xsd:simpleType>
        <xsd:union
          memberTypes="xsd:date xsd:gYear xsd:gMonth xsd:gDay xsd:gYearMonth xsd:gMonthDay xsd:time xsd:dateTime" />
      </xsd:simpleType>
    </xsd:attribute>

    <xsd:attribute name="nr" type="xsd:positiveInteger"
      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="optional">
      <xsd:annotation>
        <xsd:documentation>Die erste Seitenzahl des Beitrags, falls bekannt.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>

    <xsd:attribute name="bis" type="xsd:positiveInteger"
      use="optional">
      <xsd:annotation>
        <xsd:documentation>Die letzte Seitenzahl des Beitrags, falls bekannt.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>

  <xsd:complexType name="StueckBeilageRef">
    <xsd:annotation>
      <xsd:documentation>Referenziert eine Beilage</xsd:documentation>
    </xsd:annotation>

    <xsd:attribute name="jahr"
      use="required">
      <xsd:annotation>
        <xsd:documentation>Pflicht: Das Datum, zumindest aber: das Jahr des Stücks.</xsd:documentation>
      </xsd:annotation>
      <xsd:simpleType>
        <xsd:union
          memberTypes="xsd:date xsd:gYear xsd:gMonth xsd:gDay xsd:gYearMonth xsd:gMonthDay xsd:time xsd:dateTime" />
      </xsd:simpleType>
    </xsd:attribute>

    <xsd:attribute name="nr" type="xsd:positiveInteger"
      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">
      <xsd:annotation>
        <xsd:documentation>Pflicht: Die Nummer der Beilage.</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>

    <xsd:attribute name="von" type="xsd:positiveInteger"
      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">
      <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="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:element name="ort" minOccurs="0" maxOccurs="unbounded" type="kgpz:ortref">
        <xsd:annotation>
          <xsd:documentation>Optional: Der Ort, welcher im Beitrag angegeben ist.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>

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

    </xsd:sequence>
  </xsd:group>
</xsd:schema>