﻿<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="0.1" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://rs.tdwg.org/dwc/terms/"
    xmlns:dwc="http://rs.tdwg.org/dwc/terms/">
    <xs:include schemaLocation="tdwg_dwcterms.xsd"/>
    
    <xs:annotation>
        <xs:documentation>
            This schema redefines all darwin core classes to disallow compound objects, i.e. within a class no other nested class is allowed.
            It allows properties to occurr in any order and as many times as needed.
        </xs:documentation>
    </xs:annotation>
    

    <!-- DATASET domain -->
    <xs:element name="Dataset" substitutionGroup="dwc:anyClass">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="dwc:anyIdentifier"/>
                <xs:element ref="dwc:anyDatasetTerm"/>
                <xs:element ref="dwc:anyRecordLevelTerm"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>
    
    <!-- OCCURRENCE domain -->
    <xs:element name="Occurrence" substitutionGroup="dwc:anyClass">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="dwc:anyIdentifier"/>
                <xs:element ref="dwc:anyOccurrenceTerm"/>
                <xs:element ref="dwc:anyRecordLevelTerm"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>
    
    
    <!-- EVENT domain -->
    <xs:element name="Event" substitutionGroup="dwc:anyClass">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="dwc:anyIdentifier"/>
                <xs:element ref="dwc:anyEventTerm"/>
                <xs:element ref="dwc:anyRecordLevelTerm"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>
    
    
    <!-- LOCATION domain -->
    <!-- reuses the dc:location term, so see dublin_core.xsd for definition -->
    <!-- 
    <xs:element name="Location" substitutionGroup="dwc:anyClass">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="dwc:anyIdentifier"/>
                <xs:element ref="dwc:anyLocationTerm"/>
                <xs:element ref="dwc:anyRecordLevelTerm"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>  
    -->
    
    <!-- GEOLOGICALCONTEXT domain -->
    <xs:element name="GeologicalContext" substitutionGroup="dwc:anyClass">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="dwc:anyIdentifier"/>
                <xs:element ref="dwc:anyGeologicalContextTerm"/>
                <xs:element ref="dwc:anyRecordLevelTerm"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>  

    <!-- IDENTIFICATION domain -->
    <xs:element name="Identification" substitutionGroup="dwc:anyClass">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="dwc:anyIdentifier"/>
                <xs:element ref="dwc:anyIdentificationTerm"/>
                <xs:element ref="dwc:anyRecordLevelTerm"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>
    
    
    <!-- TAXON domain -->
    <xs:element name="Taxon" substitutionGroup="dwc:anyClass">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="dwc:anyIdentifier"/>
                <xs:element ref="dwc:anyTaxonTerm"/>
                <xs:element ref="dwc:anyRecordLevelTerm"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>
    
    


    <!-- RESOURCE RELATIONSHIP domain -->
    <xs:element name="ResourceRelationship" substitutionGroup="dwc:anyClass">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="dwc:anyIdentifier"/>
                <xs:element ref="dwc:anyResourceRelationshipTerm"/>
                <xs:element ref="dwc:anyRecordLevelTerm"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>

    
    
    <!-- MEASUREMENTORFACT domain -->
    <xs:element name="MeasurementOrFact" substitutionGroup="dwc:anyClass">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="dwc:anyIdentifier"/>
                <xs:element ref="dwc:anyMeasurementTerm"/>
                <xs:element ref="dwc:anyRecordLevelTerm"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>
    

</xs:schema>
