<?xml version="1.0" encoding="UTF-8"?>
<!--File version: 8 -->
<xs:schema xmlns:pbr="xmlns://afsprakenstelsel.medmij.nl/PortabiliteitsRapport/release1/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="xmlns://afsprakenstelsel.medmij.nl/PortabiliteitsRapport/release1/"
    elementFormDefault="qualified">
    <!--Root element-->
    <xs:element name="PortabiliteitsRapport">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="PortabiliteitsRapportMeta" type="pbr:MedMijRapport"/>
                <xs:element name="Zorgaanbieders" type="pbr:Zorgaanbieders"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <!--Logische klassen-->
    <xs:complexType name="MedMijRapport">
        <xs:sequence>
            <xs:element name="Deelnemer" type="pbr:DeelnemerId"/>
            <xs:element name="Van" type="pbr:DatumTijd"/>
            <xs:element name="Tot" type="pbr:DatumTijd"/>
            <xs:element name="Tijdstempel" type="pbr:DatumTijd"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Zorgaanbieders">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="Zorgaanbieder"
                type="pbr:Zorgaanbieder"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Zorgaanbieder">
        <xs:sequence>
            <xs:element name="Zorgaanbiedernaam" type="pbr:Zorgaanbiedernaam"/>
            <xs:element name="Gegevensdiensten" type="pbr:Gegevensdiensten"> </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Gegevensdiensten">
        <xs:sequence>
            <xs:element name="Gegevensdienst" maxOccurs="unbounded" type="pbr:Gegevensdienst"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Gegevensdienst">
        <xs:sequence>
            <xs:element name="GegevensdienstId" type="pbr:GegevensdienstId"/>
            <xs:element name="Tijdstempel" type="pbr:DatumTijd"/>
            <xs:element name="ResourceRequests" type="pbr:ResourceRequests"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ResourceRequests">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="1" name="ResourceRequest"
                type="pbr:ResourceRequest"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ResourceRequest">
        <xs:sequence>
            <xs:element name="RequestUri" type="pbr:RequestUri"/>
            <xs:element name="Tijdstempel" type="pbr:DatumTijd"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="DeelnemerId">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="30"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="RequestUri">
        <xs:restriction base="xs:string">
            <xs:minLength value="3"/>
            <xs:maxLength value="2048"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="DatumTijd">
        <xs:restriction base="xs:dateTime">
            <xs:pattern value=".{20,}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="GegevensdienstId">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="30"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Zorgaanbiedernaam">
        <xs:restriction base="xs:string">
            <xs:minLength value="10"/>
            <xs:maxLength value="287"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
