<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns="http://toepasbare-regels.omgevingswet.overheid.nl/v1/opdracht.xsd"
  targetNamespace="http://toepasbare-regels.omgevingswet.overheid.nl/v1/opdracht.xsd"
  elementFormDefault="qualified"
>
  <xs:element name="opdrachten">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="idLevering" type="idLeveringType" minOccurs="0"/>
        <xs:element name="opdracht" type="opdrachttype" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="opdrachttype">
    <xs:sequence>
      <xs:choice>
        <xs:element name="updateActiviteit" type="updateActiviteit"/>
        <xs:element name="toevoegenToepasbareRegels" type="toevoegenToepasbareRegels"/>
        <xs:element name="toevoegenToepasbareRegelsAansluitpunt" type="toevoegenToepasbareRegelsAansluitpunt"/>
        <xs:element name="toevoegenToepasbareRegelsStandaardAansluiting" type="toevoegenToepasbareRegelsStandaardAansluiting"/>
        <xs:element name="toevoegenToepasbareRegelsLokaleAansluiting" type="toevoegenToepasbareRegelsLokaleAansluiting"/>
        <xs:element name="verwijderToepasbareRegels" type="verwijderToepasbareRegels"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="updateActiviteit">
    <xs:sequence>
      <xs:element name="activiteitIdentifier" type="nietLegeString"/>
      <xs:element name="bestandsnaam" type="nietLegeString"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="toevoegenToepasbareRegels">
    <xs:sequence>
      <xs:element name="geldigBegindatum" type="nietLegeString"/>
      <xs:element name="geldigEinddatum" type="nietLegeString" minOccurs="0"/>
      <xs:element name="bestandsnaam" type="nietLegeString"/>
      <xs:element name="beheerParameterSkipKjarBuild " type="xs:boolean" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="toevoegenToepasbareRegelsAansluitpunt">
    <xs:complexContent>
      <xs:extension base="toevoegenToepasbareRegels">
        <xs:sequence>
          <xs:element name="bestuurslaag" type="bestuurslaag"/>
          <xs:element name="beeindigAansluitingen" type="xs:boolean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="toevoegenToepasbareRegelsStandaardAansluiting">
    <xs:complexContent>
      <xs:extension base="toevoegenToepasbareRegels">
        <xs:sequence>
          <xs:element name="aansluitingOin" type="nietLegeString"/>
          <xs:element name="beeindigLokaleAansluitingen" type="xs:boolean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="toevoegenToepasbareRegelsLokaleAansluiting">
    <xs:complexContent>
      <xs:extension base="toevoegenToepasbareRegels">
        <xs:sequence>
          <xs:element name="aansluitingOin" type="nietLegeString"/>
          <xs:element name="locatiesAansluiting" type="locatiesAansluiting"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="verwijderToepasbareRegels">
    <xs:sequence>
      <xs:element name="toepasbareRegelsIdentifier" type="xs:long"/>
    </xs:sequence>
  </xs:complexType>


  <xs:complexType name="locatiesAansluiting">
    <xs:sequence>
      <xs:element name="locatie" maxOccurs="unbounded">
        <xs:complexType>
          <xs:attribute name="identificatie" type="xs:string" use="required"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType final="restriction" name="bestuurslaag">
    <xs:restriction base="xs:string">
      <xs:enumeration value="rijk"/>
      <xs:enumeration value="provincie"/>
      <xs:enumeration value="waterschap"/>
      <xs:enumeration value="gemeente"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="nietLegeString">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="idLeveringType">
    <xs:restriction base="xs:token">
      <xs:minLength value="1"/>
      <xs:maxLength value="80"/>
      <xs:pattern value="[0-9A-z][0-9A-z_-]+"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
