<?xml version="1.0" encoding="UTF-8"?>

<!-- 
  Variations/FRBR Project schema release 1.1
-->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

            xmlns:frbr-work="http://vfrbr.info/frbr/1.1/work"
            xmlns:frbr-expression="http://vfrbr.info/frbr/1.1/expression"
            xmlns:frbr-manifestation="http://vfrbr.info/frbr/1.1/manifestation"
            xmlns:frbr-item="http://vfrbr.info/frbr/1.1/item"
            xmlns:frbr-person="http://vfrbr.info/frbr/1.1/person"
            xmlns:frbr-family="http://vfrbr.info/frad/1.1/family"
            xmlns:frbr-corporateBody="http://vfrbr.info/frbr/1.1/corporateBody"
            xmlns:frbr-concept="http://vfrbr.info/frbr/1.1/concept"
            xmlns:frbr-event="http://vfrbr.info/frbr/1.1/event"
            xmlns:frbr-object="http://vfrbr.info/frbr/1.1/object"
            xmlns:frbr-place="http://vfrbr.info/frbr/1.1/place"

            xmlns:frbr-structure="http://vfrbr.info/frbr/1.1/structure"
            xmlns:frbr-responsible="http://vfrbr.info/frbr/1.1/responsible"
            xmlns:frbr-subject="http://vfrbr.info/frbr/1.1/subject"
            xmlns:frbr-other="http://vfrbr.info/frbr/1.1/other"

            xmlns="http://vfrbr.info/frbr/1.1"
            targetNamespace="http://vfrbr.info/frbr/1.1"
            elementFormDefault="qualified"
            attributeFormDefault="unqualified"
            >

  <!--
    import the FRBR entity
    (separately namespaced) schemas
    -->
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/work"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-work.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/expression"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-expression.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/manifestation"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-manifestation.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/item"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-item.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/person"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-person.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frad/1.1/family"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-family.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/corporateBody"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-corporateBody.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/concept"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-concept.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/event"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-event.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/object"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-object.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/place"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-place.xsd"/>

  <!--
    import the FRBR relation
    (separately namespaced) schemas
    -->
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/structure"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-structure.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/responsible"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-responsible.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/subject"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-subject.xsd"
              />
  <xsd:import namespace="http://vfrbr.info/frbr/1.1/other"
              schemaLocation="http://vfrbr.info/schemas/1.1/frbr-other.xsd"/>

  <!--
    XML element defintion
    for the document root
    -->
  <xsd:element name="recordSet">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="entities"
                     minOccurs="0" maxOccurs="1"
                     />
        <xsd:element ref="relationships"
                     minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <!--
    XML element definition
    for the entities collection
    -->
  <xsd:element name="entities">
    <xsd:complexType>
      <xsd:sequence>
        <!-- group1 -->
        <xsd:element ref="frbr-work:work"
                     minOccurs="0" maxOccurs="unbounded"
                     />
        <xsd:element ref="frbr-expression:expression"
                     minOccurs="0" maxOccurs="unbounded"
                     />
        <xsd:element ref="frbr-manifestation:manifestation"
                     minOccurs="0" maxOccurs="unbounded"
                     />
        <xsd:element ref="frbr-item:item"
                     minOccurs="0" maxOccurs="unbounded"/>
        <!-- group2 -->
        <xsd:element ref="frbr-person:person"
                     minOccurs="0" maxOccurs="unbounded"
                     />
        <xsd:element ref="frbr-family:family"
                     minOccurs="0" maxOccurs="unbounded"
                     />
        <xsd:element ref="frbr-corporateBody:corporateBody"
                     minOccurs="0" maxOccurs="unbounded"/>
        <!-- group3 -->
        <xsd:element ref="frbr-concept:concept"
                     minOccurs="0" maxOccurs="unbounded"
                     />
        <xsd:element ref="frbr-object:object"
                     minOccurs="0" maxOccurs="unbounded"
                     />
        <xsd:element ref="frbr-event:event"
                     minOccurs="0" maxOccurs="unbounded"
                     />
        <xsd:element ref="frbr-place:place"
                     minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <!--
    XML element defintion
    for the relationships collection
    -->
  <xsd:element name="relationships">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="frbr-structure:structureRelations"
                     minOccurs="0" maxOccurs="1"
                     />
        <xsd:element ref="frbr-responsible:responsibleRelations"
                     minOccurs="0" maxOccurs="1"
                     />
        <xsd:element ref="frbr-subject:subjectRelations"
                     minOccurs="0" maxOccurs="1"
                     />
        <xsd:element ref="frbr-other:otherRelations"
                     minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

</xsd:schema>





