<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dcterms="http://purl.org/dc/terms/"
    xmlns:overheid="http://standaarden.overheid.nl/owms/terms/" targetNamespace="http://standaarden.overheid.nl/owms/terms/">

    <!-- File: owms.xsd
        
         Created: 2008-07-25
         
         Function: this XML-scheme definition contains references to definitions of all elements that are part of 
         version 3.5 of the metadata standard for Dutch government information: the Overheid.nl Web Metadata Standaard (OWMS 3.5).
         In this XML-scheme definition we also declare cardinality (optional or mandatory and repeatability) of the owms properties.
         More information: see metadata.overheid.nl. 
    -->

    <xs:include schemaLocation="overheid-elem.xsd"/>

    <xs:import namespace="http://purl.org/dc/terms/" schemaLocation="dcterms-elem.xsd"/>

    <xs:group name="owmskern">
        <!-- Owmskern defines the properties that are mandatory or mandatory if applicable under owms.

             Change: 2017-08-01 
                Hans Overbeek
                RFC 20170713-2
                language, creator and spatial set to maxOccurs="unbounded".
                In OWMS 3.5 authority is part of the owmsmantel, which is implemented as a choice.
                Repeatabilty of the properties in owmsmantel is determined in template.xsd, not here. 
        -->
        <xs:sequence>
            <xs:element ref="dcterms:identifier"/>
            <xs:element ref="dcterms:title"/>
            <xs:element ref="dcterms:language" maxOccurs="unbounded"/>
            <xs:element ref="dcterms:type"/>
            <xs:element ref="dcterms:creator" maxOccurs="unbounded"/>
            <xs:element ref="dcterms:modified"/>
            <xs:element ref="dcterms:spatial" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="dcterms:temporal" minOccurs="0"/>
        </xs:sequence>
    </xs:group>

    <xs:group name="owmsmantel">
        <!-- owmskern defines all other properties that are defined under owms -->
        <xs:choice>
            <!-- properties in the overheid namespace -->
            <xs:element ref="overheid:abbreviation"/>
            <xs:element ref="overheid:isRatifiedBy"/>
            <xs:element ref="overheid:authority"/>

            <!-- properties in the dcterms namespace -->
            <xs:element ref="dcterms:abstract"/>
            <xs:element ref="dcterms:accessRights"/>
            <xs:element ref="dcterms:alternative"/>
            <xs:element ref="dcterms:audience"/>
            <xs:element ref="dcterms:available"/>
            <xs:element ref="dcterms:conformsTo"/>
            <xs:element ref="dcterms:contributor"/>
            <xs:element ref="dcterms:coverage"/>
            <xs:element ref="dcterms:created"/>
            <xs:element ref="dcterms:date"/>
            <xs:element ref="dcterms:dateAccepted"/>
            <xs:element ref="dcterms:dateCopyrighted"/>
            <xs:element ref="dcterms:dateSubmitted"/>
            <xs:element ref="dcterms:description"/>
            <xs:element ref="dcterms:educationLevel"/>
            <xs:element ref="dcterms:extent"/>
            <xs:element ref="dcterms:format"/>
            <xs:element ref="dcterms:hasFormat"/>
            <xs:element ref="dcterms:hasPart"/>
            <xs:element ref="dcterms:hasVersion"/>
            <xs:element ref="dcterms:instructionalMethod"/>
            <xs:element ref="dcterms:isFormatOf"/>
            <xs:element ref="dcterms:isPartOf"/>
            <xs:element ref="dcterms:isReferencedBy"/>
            <xs:element ref="dcterms:isReplacedBy"/>
            <xs:element ref="dcterms:isRequiredBy"/>
            <xs:element ref="dcterms:isVersionOf"/>
            <xs:element ref="dcterms:issued"/>
            <xs:element ref="dcterms:license"/>
            <xs:element ref="dcterms:mediator"/>
            <xs:element ref="dcterms:provenance"/>
            <xs:element ref="dcterms:publisher"/>
            <xs:element ref="dcterms:references"/>
            <xs:element ref="dcterms:relation"/>
            <xs:element ref="dcterms:replaces"/>
            <xs:element ref="dcterms:requires"/>
            <xs:element ref="dcterms:rights"/>
            <xs:element ref="dcterms:rightsHolder"/>
            <xs:element ref="dcterms:source"/>
            <xs:element ref="dcterms:subject"/>
            <xs:element ref="dcterms:tableOfContents"/>
            <xs:element ref="dcterms:valid"/>
        </xs:choice>
    </xs:group>

</xs:schema>
