<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:dc="http://purl.org/dc/elements/1.1/"
           targetNamespace="http://purl.org/dc/elements/1.1/"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">

  <xs:annotation>
    <xs:documentation xml:lang="en">
      DCMES 1.1 XML Schema
      XML Schema for http://purl.org/dc/elements/1.1/ namespace

      Created 2003-04-02

      Created by

      Tim Cole (t-cole3@uiuc.edu)
      Tom Habing (thabing@uiuc.edu)
      Jane Hunter (jane@dstc.edu.au)
      Pete Johnston (p.johnston@ukoln.ac.uk),
      Carl Lagoze (lagoze@cs.cornell.edu)

      This schema declares XML elements for the 15 DC elements from the
      http://purl.org/dc/elements/1.1/ namespace.

      It defines a complexType SimpleLiteral which permits mixed content
      and makes the xml:lang attribute available. It disallows child elements by
      use of minOcccurs/maxOccurs.

      However, this complexType does permit the derivation of other complexTypes
      which would permit child elements.

      All elements are declared as substitutable for the abstract element any,
      which means that the default type for all elements is dc:SimpleLiteral.

    </xs:documentation>

  </xs:annotation>


  <xs:import namespace="http://www.w3.org/XML/1998/namespace"
             schemaLocation="xml.xsd"/>

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


  <xs:complexType name="SimpleLiteral">
    <xs:annotation>
      <xs:documentation xml:lang="en">
        This is the default type for all of the DC elements.
        It permits text content only with optional
        xml:lang attribute.
        Text is allowed because mixed="true", but sub-elements
        are disallowed because minOccurs="0" and maxOccurs="0"
        are on the xs:any tag.

        This complexType allows for restriction or extension permitting
        child elements.
      </xs:documentation>
    </xs:annotation>

    <!--
    RGFIX: commented by RG/AC
    <xs:complexContent mixed="true">
      <xs:restriction base="xs:anyType">
	     <xs:sequence>
          <xs:any processContents="lax" minOccurs="0" maxOccurs="0"/>
        </xs:sequence>
        <xs:attribute ref="xml:lang" use="optional"/>
      </xs:restriction>
    </xs:complexContent>
    -->

    <xs:simpleContent>
      <xs:extension base="xs:string"/>
    </xs:simpleContent>

  </xs:complexType>

  <xs:element name="any" type="dc:SimpleLiteral" abstract="true"/>

  <xs:element name="title" substitutionGroup="dc:any"/>
  <xs:element name="creator" substitutionGroup="dc:any"/>
  <xs:element name="subject" substitutionGroup="dc:any"/>
  <xs:element name="description" substitutionGroup="dc:any"/>
  <xs:element name="publisher" substitutionGroup="dc:any"/>
  <xs:element name="contributor" substitutionGroup="dc:any"/>
  <xs:element name="date" substitutionGroup="dc:any"/>
  <xs:element name="type" substitutionGroup="dc:any"/>
  <xs:element name="format" substitutionGroup="dc:any"/>
  <xs:element name="identifier" substitutionGroup="dc:any"/>
  <xs:element name="source" substitutionGroup="dc:any"/>
  <xs:element name="language" substitutionGroup="dc:any"/>
  <xs:element name="relation" substitutionGroup="dc:any"/>
  <xs:element name="coverage" substitutionGroup="dc:any"/>
  <xs:element name="rights" substitutionGroup="dc:any"/>

  <xs:group name="elementsGroup">
    <xs:annotation>
      <xs:documentation xml:lang="en">
        This group is included as a convenience for schema authors
        who need to refer to all the elements in the
        http://purl.org/dc/elements/1.1/ namespace.
      </xs:documentation>
    </xs:annotation>

    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="dc:any"/>
      </xs:choice>
    </xs:sequence>
  </xs:group>

  <xs:complexType name="elementContainer">
    <xs:annotation>
      <xs:documentation xml:lang="en">
        This complexType is included as a convenience for schema authors who need to define a root
        or container element for all of the DC elements.
      </xs:documentation>
    </xs:annotation>

    <xs:choice>
      <xs:group ref="dc:elementsGroup"/>
    </xs:choice>
  </xs:complexType>


</xs:schema>
