<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:xoev-de:kosit:xoev:lite:schema:fachmodell_1.3.0" xmlns="urn:xoev-de:kosit:xoev:lite:schema:fachmodell_1.3.0" elementFormDefault="qualified">

  <xs:annotation>
    <xs:appinfo>
      <version>1.3.0</version>
      <fassung>2025-12-01</fassung>
    </xs:appinfo>
  </xs:annotation>

  <xs:element name="xoev-fachmodell" type="XOEV-FachmodellType">
    <xs:annotation>
      <xs:appinfo>Wurzelelement des XÖV-Fachmodells eines XÖV-Standards</xs:appinfo>
    </xs:annotation>
  </xs:element>

  <xs:attributeGroup name="anyAttribute">
    <xs:anyAttribute processContents="lax" namespace="##other"/>
  </xs:attributeGroup>

  <xs:group name="anyElemente">
    <xs:sequence>
      <xs:any processContents="lax" namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>

  <xs:element name="konfiguration.xoev-fachmodell" type="Konfiguration.XOEV-FachmodellType"/>

  <xs:element name="metadaten.standard" type="Metadaten.StandardType"/>

  <xs:element name="metadaten.versionStandard" type="Metadaten.VersionStandardType"/>

  <xs:element name="externesModell" type="ExternesModellType"/>

  <xs:element name="nutztSchema" type="NutztSchemaType">
    <xs:annotation>
      <xs:documentation>Mit diesem Element kann explizit festgelegt werden, dass aus dem vorliegenden Paket ein bestimmtes Schema genutzt wird (welches unter externe Modelle eingebunden sein muss). Dieses Element ist nur erforderlich, wenn ein verwendetes Präfix andernfalls nicht eindeutig ein Schema bestimmen würde. Ansonsten werden die erforderlichen Nutzungen automatisch anhand der vewendeten Präfixe aus den externen Modellen ermittelt.</xs:documentation>
    </xs:annotation>
  </xs:element>

  <xs:element name="nutztCodeliste" type="NutztCodelisteType"/>

  <xs:group name="paketstruktur">
    <xs:choice>
      <xs:element ref="xsdSchema"/>
      <xs:element ref="paket"/>
    </xs:choice>
  </xs:group>

  <xs:element name="xsdSchema" type="XSDSchemaType"/>

  <xs:attributeGroup name="bezeichnungUndStatus">
    <xs:attribute name="name" type="xs:string" use="required"/>
    <xs:attribute name="titel" type="xs:string"/>
    <xs:attribute name="draft" type="xs:boolean" default="false">
      <xs:annotation>
        <xs:documentation>Falls es sich um ein Entwurf handelt (true), wird dieser Baustein bei der Verarbeitung ignoriert.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:attributeGroup name="konfiguration.xsdSchema">
    <xs:attribute name="namespace" type="xs:string">
      <xs:annotation>
        <xs:documentation>Der Namensraum für dieses Schema.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="prefix" type="xs:string">
      <xs:annotation>
        <xs:documentation>Das Namensraumpräfix des Schemas.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="schemaFile" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Der Name der Schema-Datei, inkl. Dateiendung.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="schemaLocation" type="xs:string">
      <xs:annotation>
        <xs:documentation>Der physische Speicherort (URL inklusive Dateiname), an dem das Schema gefunden werden kann.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="version" type="xs:string">
      <xs:annotation>
        <xs:documentation>Die Version des Schemas.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="elementFormDefault">
      <xs:annotation>
        <xs:documentation>Mittels dieser Einstellung kann die standardmäßige Qualifizierung der XML-Elemente in der ausgezeichneten XML Schema-Definition vorgegeben werden, also der Wert für das XML Schema-Attribut elementFormDefault. Falls der Eigenschaft kein Wert zugewiesen ist, wird die Vorgabe aus der gleichnamigen Einstellung für das XÖV-Fachmodell übernommen.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="qualified"/>
          <xs:enumeration value="unqualified"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:element name="osciTransportScenario" type="OSCITransportScenario"/>
  <xs:element name="wsdlService" type="WSDLService"/>

  <xs:group name="dokumentation">
    <xs:sequence>
      <xs:element ref="beschreibung" minOccurs="0"/>
      <xs:element ref="umsetzungshinweis" minOccurs="0"/>
    </xs:sequence>
  </xs:group>

  <xs:group name="dokumentation.html">
    <xs:sequence>
      <xs:element name="beschreibung" minOccurs="0" type="HTMLType"/>
    </xs:sequence>
  </xs:group>

  <xs:element name="umsetzungshinweis" type="FliesstextUndDocBookType"/>

  <xs:element name="beschreibung" type="FliesstextUndDocBookType"/>

  <xs:element name="geschaeftsregel" type="GeschaeftsregelType"/>

  <xs:group name="baustein">
    <xs:choice>
      <xs:element ref="nachricht"/>
      <xs:element ref="codeDatentyp"/>
      <xs:element ref="datentyp"/>
      <xs:element ref="globaleEigenschaftengruppe"/>
      <xs:element ref="globaleEigenschaft"/>
      <xs:element ref="osciTransportScenario"/>
      <xs:element ref="wsdlService"/>
    </xs:choice>
  </xs:group>

  <xs:element name="union" type="UnionType"/>

  <xs:element name="datentyp" type="DatentypType"/>

  <xs:attributeGroup name="ableitung">
    <xs:attribute name="basistyp" type="xs:string"/>
    <xs:attribute name="restriction" type="xs:boolean" default="false"/>
    <!-- Die Facette "enumeration" wurde zunächst nicht aufgenommen, da wir diese in der Vergangenheit bereits zugunsten der XÖV-Codelisten-Methodik entfernen wollten. In den Tests werden sich eventuelle Auswirkungen zeigen. -->
    <xs:attribute name="fractionDigits" type="xs:nonNegativeInteger"/>
    <xs:attribute name="length" type="xs:nonNegativeInteger"/>
    <xs:attribute name="maxExclusive" type="xs:string"/>
    <xs:attribute name="maxInclusive" type="xs:string"/>
    <xs:attribute name="maxLength" type="xs:nonNegativeInteger"/>
    <xs:attribute name="minExclusive" type="xs:string"/>
    <xs:attribute name="minInclusive" type="xs:string"/>
    <xs:attribute name="minLength" type="xs:nonNegativeInteger"/>
    <xs:attribute name="pattern" type="xs:string"/>
    <xs:attribute name="totalDigits" type="xs:positiveInteger"/>
    <xs:attribute name="whitespace">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="preserve"/>
          <xs:enumeration value="replace"/>
          <xs:enumeration value="collapse"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:element name="beispielwert" type="xs:string">
    <xs:annotation>
      <xs:documentation>Mit diesem Element kann ein beispielhafter Wert, z. B. einer Eigenschaft, angegeben werden.</xs:documentation>
    </xs:annotation>
  </xs:element>

  <xs:group name="eigenschaften">
    <xs:choice>
      <xs:element ref="eigenschaft"/>
      <xs:element ref="eigenschaftengruppe"/>
      <xs:element ref="anyStruktur"/>
    </xs:choice>
  </xs:group>

  <xs:element name="eigenschaft" type="EigenschaftType"/>

  <xs:attributeGroup name="konfiguration.eigenschaft">
    <xs:attribute name="typ" type="xs:string"/>
    <xs:attribute name="xsdAttribute" type="xs:boolean" default="false">
      <xs:annotation>
        <xs:documentation>Angabe, ob die Eigenschaft in XML Schema als Attribut umgesetzt werden soll (true) oder als Element (false).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="defaultWert" type="xs:string"/>
    <xs:attribute name="fixedWert" type="xs:string"/>
  </xs:attributeGroup>

  <xs:attributeGroup name="konfiguration.untergruppe">
    <xs:attribute name="gruppe.art" type="Gruppe.Art" default="sequence"/>
    <xs:attribute name="gruppe.multiplizitaet" type="MultiplizitaetType" default="1"/>
  </xs:attributeGroup>

  <xs:element name="eigenschaftengruppe" type="EigenschaftengruppeType"/>

  <xs:element name="anyStruktur" type="AnyStrukturType"/>

  <xs:attributeGroup name="optionaleBezeichnungUndStatus">
    <xs:attribute name="name" type="xs:string"/>
    <xs:attribute name="titel" type="xs:string"/>
    <xs:attribute name="draft" type="xs:boolean">
      <xs:annotation>
        <xs:documentation>Falls es sich um ein Entwurf handelt (true), wird dieser Baustein bei der Verarbeitung ignoriert.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>

  <xs:attributeGroup name="konfiguration.anyStruktur">
    <xs:attribute name="namespace" type="xs:string" default="##any"/>
    <xs:attribute name="processContents" default="strict">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="skip"/>
          <xs:enumeration value="lax"/>
          <xs:enumeration value="strict"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="multiplizitaet" type="MultiplizitaetType" default="0..*"/>
  </xs:attributeGroup>

  <xs:element name="codeDatentyp" type="CodeDatentypType"/>

  <xs:group name="konfiguration.codeDatentyp">
    <xs:sequence>
      <xs:element name="typDesCodeElements" minOccurs="0" type="xs:string"/>
      <xs:element name="nutzungNameElement" minOccurs="0" type="Konfiguration.CodeDatentyp.NutzungNameElementType"/>
      <xs:element name="benannterCodelistenDatentyp" minOccurs="0" type="xs:boolean"/>
      <xs:element name="codesSchemavalidiert" minOccurs="0" type="xs:boolean"/>
      <xs:element name="genutzteCodeSpalte" minOccurs="0" type="xs:string"/>
      <xs:element name="genutzteBeschreibungsspalte" minOccurs="0" type="xs:string"/>
      <xs:element name="benannterCodelistenDatentypXSD" minOccurs="0" type="xs:string"/>
      <xs:element name="benannterCodelistenDatentypName" minOccurs="0" type="xs:string"/>
    </xs:sequence>
  </xs:group>

  <xs:simpleType name="Konfiguration.CodeDatentyp.NutzungNameElementType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="keineNutzung"/>
      <xs:enumeration value="mandatorisch"/>
      <xs:enumeration value="optional"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="nachricht" type="NachrichtType"/>

  <xs:element name="globaleEigenschaftengruppe" type="GlobaleEigenschaftengruppeType">
    <xs:annotation>
      <xs:documentation>Mit diesem Element werden benannte XML Schema-Gruppen, das heißt Elementgruppen (xs:group) und Attributgruppen (xsd:attributeGroup) gemäß XML Schema-Spezifikation abgebildet. Siehe hierzu auch Abschnitt 2.7 "Building Content Models" des XML Schema-Primer (https://www.w3.org/TR/xmlschema-0/#groups) und 2.8 "Attribute Groups" (https://www.w3.org/TR/xmlschema-0/#AttrGroups). Benannte Gruppen sind namentlich an den nutzenden Stellen des lite-Fachmodells referenzierbar.</xs:documentation>
    </xs:annotation>
  </xs:element>

  <xs:element name="globaleEigenschaft" type="GlobaleEigenschaftType"/>

  <xs:element name="paket" type="PaketType"/>

  <xs:complexType name="XOEV-FachmodellType">
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:element name="xoevFremderStandard" type="xs:boolean" fixed="true" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Mit diesem Flag wird ein Standard als XÖV-fremder Standard gekennzeichnet.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="konfiguration.xoev-fachmodell"/>
      <xs:element ref="metadaten.standard"/>
      <xs:element ref="metadaten.versionStandard"/>
      <xs:element ref="externesModell" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="nutztSchema" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="nutztCodeliste" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Mit diesem Spezial-Element kann explizit modelliert werden, dass die mit diesem Fachmodell dargestellte Version eines Standards eine bestimmte Codeliste bzw. eine bestimmte Version einer Codeliste nutzt, damit diese Nutzungsbeziehung in der Dokumentation des Standards und im XRepository dargestellt wird. Im Normalfall ist die Angabe xl:nutztCodeliste nicht erforderlich (und nicht zulässig), da die genutzten Codelisten und Codelistenversionen implizit aus den Elementen xl:codeDatentyp entsprechend der Nutzungsart ermittelt werden. Das Element xl:nutztCodeliste ist nur in den Fällen erforderlich, in denen ein Code-Datentyp als Nutzungsart 3 oder 4 aus einem externen Modell nachgenutzt wird, in der konkreten Nachnutzung aber eine bestimmte Codelisten(-version) festgelegt werden soll. Ein typisches Beispiel hierfür ist die Nachnutzung der Basisnachricht.G2G aus der XÖV-Bibliothek, welche eine Codeliste der Nachrichtentypen des konkreten Standards erfordert, diese aber in der Bibliothek nur als Nutzungsart 4 spezifizieren kann.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:group ref="paketstruktur" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
  </xs:complexType>

  <xs:complexType name="Konfiguration.XOEV-FachmodellType">
    <xs:annotation>
      <xs:documentation>Die Konfiguration eines XÖV-Fachmodells und somit auch seiner grundlegenden Abbildung in XML-Schema.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <!-- "deployment = true/false" soll nicht mehr vorgesehen werden, da stattdessen mit XML-Katalogen gearbeitet werden soll. -->
      <xs:element name="fassungVom" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation>Datum der Fassung. Die Information dient nur zu Dokumentationszwecken und hat keine Auswirkung auf die Struktur des XML-Schema.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="namespace" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation>Bestimmt einen Standardnamensraum, der für alle Schemapakete gilt, in denen der Namensraum nicht explizit angegeben ist.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="prefix" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation>Bestimmt ein Standardpräfix, das für alle Schemapakete gilt, in denen das Präfix nicht explizit angegeben ist.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="schemaLocationBase" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation>Der Basispfad der Schema Locations. Der physische Speicherort (URL exklusive Dateiname), an dem die Schemata später gefunden werden können. Bildet zusammen mit dem Namen der Schemadatei eine vollständige Schema Location, sofern für das jeweilige Schema eine Schema Location nicht explizit angegeben ist.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="elementFormDefault" minOccurs="0" default="qualified">
        <xs:annotation>
          <xs:documentation>Mittels dieser Eigenschaft kann für alle XML Schema-Definitionen die standardmäßige Qualifizierung der XML-Elemente vorgegeben werden, also der Wert für das XML Schema-Attribut elementFormDefault. Falls der Eigenschaft kein Wert oder der Wert 'qualified' zugewiesen ist, gelten die XML-Elemente als qualifiziert. Die Modell-weit geltende Vorgabe zur Qualifizierung von XML-Elementen kann sowohl auf XSD-Ebene (xsdSchema) als auch auf Element-Ebene überschrieben werden.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="qualified"/>
            <xs:enumeration value="unqualified"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <!-- ermittlungElementreihenfolge = Modell/Stereotyp sollte auf dieser Ebene nicht benötigt werden. -->
      <xs:element name="standardeinstellungEigenschaften" minOccurs="0" default="Element">
        <xs:annotation>
          <xs:documentation>Bestimmt, ob Eigenschaften, die mit keinem Stereotyp annotiert sind, als XML-Elemente umgesetzt werden (Wert Element) oder keine implizite Deutung erfolgen soll (Wert keine).</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Element"/>
            <xs:enumeration value="keine"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <!-- Die Konfiguratonsmittel automatischeIncludeErmittlung und automatischeImportErmittlung entfallen, da Standards die Includes und Imports immer automatisch ermitteln lassen sollen. -->
      <xs:element name="xsdGlobalElementNamePrefix" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation>Legt ein Präfix fest, das allen Namen globaler Elemente bei ihrer Umsetzung in XML Schema vorangesetzt wird. Namen von Nachrichten sind hiervon nicht betroffen.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="xsdGlobalElementNameSuffix" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation>Legt ein Suffix fest, das allen Namen globaler Elemente bei ihrer Umsetzung in XML Schema hintangestellt wird. Namen von Nachrichten sind hiervon nicht betroffen.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="xsdNamedTypeNamePrefix" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation>Legt ein Präfix fest, das allen Namen benannter Datentypen bei ihrer Umsetzung in XML Schema vorangesetzt wird.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="xsdNamedTypeNameSuffix" minOccurs="0" type="xs:string" default="Type">
        <xs:annotation>
          <xs:documentation>Legt ein Suffix fest, das allen Namen benannter Datentypen bei ihrer Umsetzung in XML Schema hintangehängt wird.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <!-- Eigenschaft standardreferenzstil ist nicht (mehr) relevant, da xsdGlobalElementAndType nicht umgesetzt werden soll.-->
      <xs:element name="typDesCodeElements" minOccurs="0" type="xs:string" default="xs:token">
        <xs:annotation>
          <xs:documentation>An dieser Stelle können die Grundeinstellungen für Code-Datentypen vorgenommen werden, die für jeden Code-Datentyp des Standards gelten, in dem die Einstellungen nicht überschrieben werden.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="nutzungNameElement" minOccurs="0" type="Konfiguration.CodeDatentyp.NutzungNameElementType" default="keineNutzung">
        <xs:annotation>
          <xs:documentation>An dieser Stelle können die Grundeinstellungen für Code-Datentypen vorgenommen werden, die für jeden Code-Datentyp des Standards gelten, in dem die Einstellungen nicht überschrieben werden.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="benannterCodelistenDatentyp" minOccurs="0" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation>An dieser Stelle können die Grundeinstellungen für Code-Datentypen vorgenommen werden, die für jeden Code-Datentyp des Standards gelten, in dem die Einstellungen nicht überschrieben werden.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="codesSchemavalidiert" minOccurs="0" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation>An dieser Stelle können die Grundeinstellungen für Code-Datentypen vorgenommen werden, die für jeden Code-Datentyp des Standards gelten, in dem die Einstellungen nicht überschrieben werden.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="wsdlStandardaufbauNamensraum" default="NamensraumBasisMitServiceName" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="NamensraumBasisMitServiceName"/>
            <xs:enumeration value="URN"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="wsdlStandardaufbauSubjectOperation" default="ModelPrefixStandardVersion" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="ModelPrefixStandardVersion"/>
            <xs:enumeration value="ModelPrefixModulVersion"/>
            <xs:enumeration value="ModelNameStandardVersion"/>
            <xs:enumeration value="ModelNameModulVersion"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="wsdlDateipraefix" default="keinPraefix" minOccurs="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="keinPraefix"/>
            <xs:enumeration value="ModelName"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Metadaten.StandardType">
    <xs:annotation>
      <xs:documentation>Mittels dieses Stereotyps wird das UML-Modell des Standards annotiert. Er erlaubt die Angabe der versionsunabhängigen Metadaten des Standards.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="nameLang" type="xs:string">
        <xs:annotation>
          <xs:documentation>Der Name (lang) ist die "sprechende" Bezeichnung eines Standards.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="nameKurz" type="xs:string">
        <xs:annotation>
          <xs:documentation>Der Name (kurz) ist die "sprechende" Kurzbezeichnung eines Standards. Dieser Name wird beispielsweise im XRepository in Listendarstellungen von Inhalten verwendet oder kann zur Bezeichnung des Standards in Texten (Spezifikationsdokument) verwendet werden.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="nameTechnisch" type="xs:string">
        <xs:annotation>
          <xs:documentation>Neben den Namen (lang) und Namen (kurz) besitzt ein Standard einen technischen Namen. Dieser Name soll "sprechend" und gleichzeitig zur technischen Verarbeitung optimiert sein. In der Regel ist der technische Name vom Namen (kurz) abgeleitet. Die Regeln zur Bildung des technischen Namens sind im XÖV-Handbuch detailliert dargestellt.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="kennung" type="xs:string">
        <xs:annotation>
          <xs:documentation>Mittels einer Kennung wird ein Standard versionsübergreifend eindeutig identifiziert. Die Regeln zur Bildung von Kennungen sind im XÖV-Handbuch detailliert dargestellt. </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="beschreibung" type="xs:string">
        <xs:annotation>
          <xs:documentation>Zu einem Standard liegt eine Beschreibung in Form eines unformatierten Fließtextes vor.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Metadaten.VersionStandardType">
    <xs:annotation>
      <xs:documentation>Mittels dieses Stereotyps wird das UML-Modell des Standards annotiert. Er erlaubt die Angabe der versionsspezifischen Metadaten des Standards.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="version" type="xs:string">
        <xs:annotation>
          <xs:documentation>Die Version kennzeichnet einen definierten Stand der Entwicklung oder Fortschreibung eines Standards. Sie wird zur Bildung der Kennung der Version des Standards genutzt.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="beschreibung" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation>Zur Version eines Standards kann eine Beschreibung in Form eines unformatierten Fließtextes vorliegen.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="versionXOEVHandbuch" type="xs:string">
        <xs:annotation>
          <xs:documentation>Die Version des XÖV-Handbuchs, zu dessen Regelungen die Version eines Standards konform ist.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="versionXOEVProduktionsumgebung" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation>Die Version des genutzten XÖV lite-Ansatzes.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="nameModellierungswerkzeug" type="xs:string">
        <xs:annotation>
          <xs:documentation>Der Name des Modellierungswerkzeugs, mit dem das XÖV-Fachmodell der Version eines Standards erstellt wurde. Wird der Name nicht angegeben, gilt der Standardwert "MagicDraw".</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="versionModellierungswerkzeug" type="xs:string">
        <xs:annotation>
          <xs:documentation>Die Version des Modellierungswerkzeugs, mit dem das XÖV-Fachmodell der Version eines Standards erstellt wurde.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ExternesModellType">
    <xs:attribute name="kennung" type="xs:string" use="required"/>
    <xs:attribute name="version" type="xs:string" use="required"/>
  </xs:complexType>

  <xs:complexType name="NutztSchemaType">
    <xs:attribute name="prefix" type="xs:string">
      <xs:annotation>
        <xs:documentation>Sofern aufgrund Namenskonflikten oder Mehrdeutigkeit nicht das original Präfix genutzt werden kann, wird ein anderes, im Kontext des zugrundeliegenden Schemas eindeutiges Präfix genutzt.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="namespace" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Bestimmt den zum angegebenen Präfix zu nutzenden Namensraum.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="version" type="xs:string">
      <xs:annotation>
        <xs:documentation>Sofern mehrere Schemas mit dem gleichen Namensraum in unterschiedlichen Versionen vorliegen, wird die zu nutzende Version an dieser Stelle angegeben.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="modell" type="xs:string">
      <xs:annotation>
        <xs:documentation>Bestimmt bei Bedarf die Kennung des Modells, in dem sich das genutzte XSD-Schema befindet.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="schemaFile" type="xs:string">
      <xs:annotation>
        <xs:documentation>Der Name der zu nutzenden XSD-Schema-Datei wird an dieser Stelle angegeben, wenn (A) diese Schemadatei unbedingt zu nutzen ist (@forced = 'true') oder (B) der Namensraum in verschiedenen Versionen genutzt wird und daher Eindeutigkeit bei den konkret zu nutzenden XSD-Schema-Dateien hergestellt werden muss.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="forced" type="xs:boolean" default="false">
      <xs:annotation>
        <xs:documentation>Erhält den Wert 'true', wenn die über die weiteren Attribute inkl. @schemaFile bestimmte XSD-Schema-Datei unbedingt zu nutzen ist, d. h. auch wenn tatsächlich keine Inhalte aus dieser Schemadatei genutzt werden.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="NutztCodelisteType">
    <xs:attribute name="kennung" type="xs:string" use="required"/>
    <xs:attribute name="version" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="XSDSchemaType">
    <xs:annotation>
      <xs:documentation>Ein Paket, das in eine XSD-Schema-Datei resultiert.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:group ref="dokumentation"/>
      <xs:element ref="nutztSchema" minOccurs="0" maxOccurs="unbounded"/>
      <xs:group ref="baustein" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="paket" minOccurs="0" maxOccurs="unbounded" type="PaketInSchemaType"/>
      <xs:element ref="geschaeftsregel" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="bezeichnungUndStatus"/>
    <xs:attributeGroup ref="konfiguration.xsdSchema"/>
  </xs:complexType>

  <xs:complexType name="FliesstextUndDocBookType" mixed="true">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:any namespace="http://docbook.org/ns/docbook" processContents="skip"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="HTMLType" mixed="false">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:any namespace="http://www.w3.org/1999/xhtml" processContents="skip"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="GeschaeftsregelType">
    <xs:annotation>
      <xs:documentation>Eine Geschäftsregel wird in Schematron als Regel abgebildet.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="beschreibung" type="xs:string">
        <xs:annotation>
          <xs:documentation>Dokumentation bzw. Fehlermeldung der Geschäftsregel, die in Schematron als solche abgebildet wird.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="spezifikation" type="xs:string">
        <xs:annotation>
          <xs:documentation>Die Spezifikation der Geschäftsregel in der Sprache XPath. Sie wird in Schematron als technische Prüfanweisung abgebildet.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="auswertungskontext" minOccurs="0" type="xs:string">
        <xs:annotation>
          <xs:documentation>Der Auswertungskontext beschreibt den Kontext, in dem der gegebene XPath-Ausdruck ausgewertet werden soll. Wenn eine Geschäftsregel direkt einem Datentyp, einem globalen Element oder einer Nachricht zugeordnet ist und letztere ebenso den Auswertungskontext der Geschäftsregel darstellen, muss für die Zusicherung kein Auswertungskontext explizit angegeben werden. In diesem Fall sind der Fachkontext und der Auswertungskontext identisch.</xs:documentation>
          <xs:documentation>Sofern der Auswertungskontext eine lokale Eigenschaft betrifft, ist der Pfad zu dieser, ausgehend vom benannten Baustein anzugeben. Namensraumpräfixe sind anzugeben, wenn die Form der Eigenschaft 'qualified' ist. Beispiele: xmeld:type.Geburt, xida:TeilbekanntesDatumMitUnbekannt/teilbekanntesDatum, xmeld:datenuebermittlung.nichtzustaendigkeit.0511/xmeld:personnichtgefuehrt/xmeld:konfliktfall.person</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="fachkontext" minOccurs="0" maxOccurs="unbounded" type="xs:string">
        <xs:annotation>
          <xs:documentation>Der Fachkontext legt fest, in welchen Nachrichten bzw. in welchen Teilbereichen der Nachrichtenstrukturen die Geschäftsregeln greifen sollen. Geschäftsregeln mit demselben Fachkontext werden demselben Rule Set zugewiesen. Eine Geschäftsregel muss nicht zwingend in einem Rule Set spezifiziert werden, sondern kann auch direkt einem Datentyp, einem globalen Element oder einer Nachricht zugeordnet werden. Letztere gelten in diesem Fall implizit als Fachkontext der Geschäftsregel.</xs:documentation>
          <xs:documentation>Sofern der Fachkontext eine lokale Eigenschaft betrifft, ist der Pfad zu dieser, ausgehend vom benannten Baustein anzugeben. Namensraumpräfixe sind anzugeben, wenn die Form der Eigenschaft 'qualified' ist. Beispiele: xmeld:type.Geburt, xida:TeilbekanntesDatumMitUnbekannt/teilbekanntesDatum, xmeld:datenuebermittlung.nichtzustaendigkeit.0511/xmeld:personnichtgefuehrt/xmeld:konfliktfall.person</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="kennung" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>Die Kennung der Geschäftsregel. Sie wird in Schematron als ID der Regel abgebildet.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="verbindlichkeit" type="xs:string">
      <xs:annotation>
        <xs:documentation>Optionale Angabe einer Verbindlichkeit der Geschäftsregel, die im Schematron als Severity Level (@role) umgesetzt wird. Beispielhafte angaben: "FATAL", "ERROR", "WARN", "INFO"</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="DatentypType">
    <xs:annotation>
      <xs:documentation>Datentypen werden als benannte (einfache oder komplexe) Datentypen in XML Schema abgebildet.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:group ref="dokumentation"/>
      <xs:element ref="beispielwert" minOccurs="0" maxOccurs="unbounded"/>
      <xs:group ref="eigenschaften" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="union" minOccurs="0"/>
      <xs:element ref="geschaeftsregel" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="bezeichnungUndStatus"/>
    <xs:attribute name="abstrakt" type="xs:boolean" default="false"/>
    <xs:attributeGroup ref="ableitung"/>
    <xs:attributeGroup ref="konfiguration.untergruppe"/>
  </xs:complexType>

  <xs:complexType name="UnionType">
    <xs:sequence>
      <xs:element name="memberType" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="EigenschaftType">
    <xs:annotation>
      <xs:documentation>Eigenschaften werden je nach Einstellung als Elemente oder Attribute in XML Schema abgebildet.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:group ref="dokumentation"/>
      <xs:element ref="beispielwert" minOccurs="0" maxOccurs="unbounded"/>
      <xs:group ref="eigenschaften" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="union" minOccurs="0"/>
      <xs:element ref="geschaeftsregel" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="optionaleBezeichnungUndStatus"/>
    <xs:attribute name="multiplizitaet" type="MultiplizitaetType" default="1"/>
    <xs:attribute name="referenz" type="xs:string"/>
    <xs:attribute name="form" type="xs:string" default="default"/>
    <xs:attribute name="nillable" type="xs:boolean" default="false"/>
    <xs:attributeGroup ref="ableitung"/>
    <xs:attributeGroup ref="konfiguration.eigenschaft"/>
    <xs:attributeGroup ref="konfiguration.untergruppe"/>
  </xs:complexType>

  <xs:simpleType name="MultiplizitaetType">
    <xs:restriction base="xs:string">
      <xs:pattern value="0|[1-9]([0-9])*|\*|(0|[1-9]([0-9])*)\.\.([1-9]([0-9])*|\*)"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="EigenschaftengruppeType">
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:group ref="dokumentation"/>
      <xs:group ref="eigenschaften" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="geschaeftsregel" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="optionaleBezeichnungUndStatus"/>
    <xs:attribute name="referenz" type="xs:string"/>
    <xs:attribute name="art" type="Gruppe.Art" default="sequence"/>
    <xs:attribute name="multiplizitaet" type="MultiplizitaetType" default="1"/>
  </xs:complexType>

  <xs:complexType name="AnyStrukturType">
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:group ref="dokumentation"/>
      <xs:element ref="geschaeftsregel" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="optionaleBezeichnungUndStatus"/>
    <xs:attributeGroup ref="konfiguration.anyStruktur"/>
  </xs:complexType>

  <xs:complexType name="CodeDatentypType">
    <xs:annotation>
      <xs:documentation>Ein Code-Datentyp gemäß XÖV-Methodik, der in XML Schema als XML-Restriction des XÖV-Datentyps Code abgebildet wird.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:group ref="dokumentation"/>
      <xs:group ref="konfiguration.codeDatentyp"/>
      <xs:element ref="nutztCodeliste" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Im Kontext des Code-Typs 4 können eine oder mehrere Codelisten bzw. Codelistenversionen als genutzt gekennzeichnet werden. Damit wird ausgesagt, dass mindestens die auf diese Weise gekennzeichneten Codelisten(versionen) im Kontext des Code-Datentyps potentiell genutzt werden. Diese Information wird für Dokumentationszwecke sowie vom XRepository ausgewertet.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element ref="geschaeftsregel" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="bezeichnungUndStatus"/>
    <xs:attribute name="kennung" type="xs:string"/>
    <xs:attribute name="version" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="NachrichtType">
    <xs:annotation>
      <xs:documentation>Nachrichten werden als globale Elemente in XML Schema abgebildet.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:group ref="dokumentation"/>
      <xs:element name="rechtsgrundlage" minOccurs="0" maxOccurs="unbounded" type="FliesstextUndDocBookType"/>
      <xs:group ref="eigenschaften" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="geschaeftsregel" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="bezeichnungUndStatus"/>
    <xs:attribute name="autor" type="xs:string"/>
    <xs:attribute name="leser" type="xs:string"/>
    <xs:attributeGroup ref="ableitung"/>
    <xs:attribute name="typ" type="xs:string"/>
    <xs:attributeGroup ref="konfiguration.untergruppe"/>
  </xs:complexType>

  <xs:complexType name="GlobaleEigenschaftengruppeType">
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:group ref="dokumentation"/>
      <xs:group ref="eigenschaften" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="geschaeftsregel" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="bezeichnungUndStatus"/>
    <xs:attribute name="art" type="Gruppe.Art" default="sequence"/>
    <xs:attribute name="multiplizitaet" type="MultiplizitaetType" default="1"/>
  </xs:complexType>

  <xs:simpleType name="Gruppe.Art">
    <xs:annotation>
      <xs:documentation>Bestimmt die Art der XSD-Gruppe, in die die direkten XML-Kindelemente eingeordnet werden.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:enumeration value="sequence"/>
      <xs:enumeration value="choice"/>
      <xs:enumeration value="all"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="GlobaleEigenschaftType">
    <xs:annotation>
      <xs:documentation>GlobaleEigenschaften werden als globale Attribute oder Elemente in XML Schema abgebildet.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:group ref="dokumentation"/>
      <xs:element ref="beispielwert" minOccurs="0" maxOccurs="unbounded"/>
      <xs:group ref="eigenschaften" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="union" minOccurs="0"/>
      <xs:element ref="geschaeftsregel" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="bezeichnungUndStatus"/>
    <xs:attributeGroup ref="ableitung"/>
    <xs:attributeGroup ref="konfiguration.eigenschaft"/>
    <xs:attributeGroup ref="konfiguration.untergruppe"/>
  </xs:complexType>

  <xs:group name="WSDLKonfiguration">
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:group ref="dokumentation.html">
        <xs:annotation>
          <xs:documentation>Innerhalb des Beschreibungstextes sind die Elemente servicelist (für one-way-active), serviceInputList, serviceOutputList und serviceFaultList (jeweils ohne Wert) erlaubt. Sie werden an der eingesetzten Stelle durch eine unsortierte Liste der jeweiligen Nachrichten ersetzt.</xs:documentation>
        </xs:annotation>
      </xs:group>
      <xs:element name="SignaturNutzdaten" type="xs:string" minOccurs="0"/>
      <xs:element name="VerschluesselungNutzdaten" type="xs:string" minOccurs="0"/>
      <xs:element name="SignaturInhaltsdaten" type="xs:string" minOccurs="0"/>
      <xs:element name="VerschluesselungInhaltsdaten" type="xs:string" minOccurs="0"/>
      <xs:element name="Kommunikationsszenario" type="xs:string" minOccurs="0"/>
      <xs:element name="OptionalerContainer" type="xs:string" minOccurs="0"/>
      <xs:element name="NameMandatorischerContainer" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:group>

  <xs:complexType name="OSCITransportScenario">
    <xs:sequence>
      <xs:group ref="WSDLKonfiguration"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="bezeichnungUndStatus"/>
  </xs:complexType>

  <xs:simpleType name="WSDLPortKonfiguration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="optional"/>
      <xs:enumeration value="required"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="WSDLService">
    <xs:sequence>
      <xs:element name="osciTransportScenario" type="xs:string" minOccurs="0"/>
      <xs:group ref="WSDLKonfiguration"/>
      <xs:element name="Leistungserbringer" type="xs:string" minOccurs="0"/>
      <xs:element name="Hinweis" type="xs:string" minOccurs="0"/>
      <xs:element name="Nachrichtenbeschreibung" type="FliesstextUndDocBookType" minOccurs="0"/>
      <xs:element name="NamensraumOhneDateiname" type="xs:string" minOccurs="0"/>
      <xs:element name="Dateiname" type="xs:string" minOccurs="0"/>
      <xs:element name="SubjectOperation" type="xs:string" minOccurs="0"/>
      <xs:element name="TestaPort" type="WSDLPortKonfiguration" minOccurs="0" default="optional"/>
      <xs:element name="InternetPort" type="WSDLPortKonfiguration" minOccurs="0" default="required"/>
      <xs:element name="KategorieDesDienstanbieters" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="wsdlServiceMessage" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="wsdlServiceInputMessage" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="wsdlServiceOutputMessage" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="wsdlServiceFaultMessage" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="bezeichnungUndStatus"/>
  </xs:complexType>

  <xs:complexType name="PaketInSchemaType">
    <xs:annotation>
      <xs:documentation>Ein Paket zur Strukturierung von Inhalten unterhalb eines Schemapakets.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:group ref="dokumentation"/>
      <xs:group ref="baustein" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="paket" minOccurs="0" maxOccurs="unbounded" type="PaketInSchemaType"/>
      <xs:element ref="geschaeftsregel" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="bezeichnungUndStatus"/>
  </xs:complexType>

  <xs:complexType name="PaketType">
    <xs:annotation>
      <xs:documentation>Ein Paket zur Strukturierung von Inhalten.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:group ref="anyElemente"/>
      <xs:group ref="dokumentation"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="osciTransportScenario"/>
        <xs:element ref="wsdlService"/>
      </xs:choice>
      <xs:element ref="nutztSchema" minOccurs="0" maxOccurs="unbounded"/>
      <xs:group ref="paketstruktur" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="geschaeftsregel" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="anyAttribute"/>
    <xs:attributeGroup ref="bezeichnungUndStatus"/>
  </xs:complexType>

</xs:schema>
