<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:doi="http://www.doi.org/2010/DOISchema"
   xmlns:doiavs="http://www.doi.org/2010/DOISchemaAVS"
   xmlns:ietfbcp47="http://www.doi.org/2022/ietfbcp47"
   targetNamespace="http://www.doi.org/2010/DOISchema" elementFormDefault="qualified"
   attributeFormDefault="unqualified" version="2.3">
   <xs:import namespace="http://www.doi.org/2010/DOISchemaAVS" schemaLocation="http://doi.org/10.1000/282"/>
   <xs:annotation>
      <xs:documentation>Copyright 2013, 2023 The DOI Foundation</xs:documentation>
   </xs:annotation>
   <xs:element name="kernelMetadata" type="doi:kernelMetadata">
      <xs:annotation>
         <xs:documentation>The XML schema for DOI Kernel metadata.</xs:documentation>
      </xs:annotation>
   </xs:element>
   <xs:complexType name="kernelMetadata">
      <xs:annotation>
         <xs:documentation>A complex element containing all kernel metadata for a specific DOI name.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="referentDoiName" type="doi:doiName">
            <xs:annotation>
               <xs:documentation>The specific DOI name allocated to the referent.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="primaryReferentType" type="doiavs:primaryReferentType">
            <xs:annotation>
               <xs:documentation>The primaryReferentType of the referent (Creation or Party).</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="registrationAgencyDoiName" type="doi:doiName">
            <xs:annotation>
               <xs:documentation>The DOI name of the Registration Agency responsible for issuing this Declaration.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="issueDate" type="xs:date">
            <xs:annotation>
               <xs:documentation>The date on which this Declaration was issued.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="issueNumber" type="xs:unsignedInt">
            <xs:annotation>
               <xs:documentation>The sequence number of this Declaration in the series of Kernel Metadata Declarations issued for this DOI name.</xs:documentation>
               <xs:documentation>Original issue=1. If a Kernel Metadata Declaration for a specific DOI name is re-issued, this number should be incremented by one.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:choice>
            <xs:element name="referentCreation" type="doi:referentCreation">
               <xs:annotation>
                  <xs:documentation>The creation identified by the DOI name (where the primary referentType is 'Creation').</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="referentParty" type="doi:referentParty">
               <xs:annotation>
                  <xs:documentation>The party identified by the DOI name (where the primary referentType is 'Party').</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:element name="referentPlace" type="doi:referentPlace">
               <xs:annotation>
                  <xs:documentation>The place identified by the DOI name (where the primary referentType is 'Place').</xs:documentation>
               </xs:annotation>
            </xs:element>
         </xs:choice>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="creationIdentifier">
      <xs:annotation>
         <xs:documentation>A complex element describing an identifier used to identify a creation. An identifier is a type of name of which each instance is unique of its type: for example , the ISBN '9780946014491' belongs to only one book.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:choice>
            <xs:element name="value" type="xs:string">
               <xs:annotation>
                  <xs:documentation>The value of the Identifier.</xs:documentation>
                  <xs:documentation>This element is deprecated and not to be used in XML data conforming to the current XSD version. It is only included to ensure that data conforming to the earlier XSD version remains valid and will be removed at a future date.</xs:documentation>
               </xs:annotation>
            </xs:element>
            <xs:sequence>
               <xs:element name="nonUriValue" minOccurs="0" type="xs:string">
                  <xs:annotation>
                     <xs:documentation>The value of the creationIdentifier if it is not a URI.</xs:documentation>
                  </xs:annotation>
               </xs:element>
               <xs:element name="uri" minOccurs="0" maxOccurs="unbounded" type="doi:uri">
                  <xs:annotation>
                     <xs:documentation>The value of the creationIdentifier if it is a URI.</xs:documentation>
                  </xs:annotation>
               </xs:element>
            </xs:sequence>
         </xs:choice>
         <xs:element name="type" type="doi:creationIdentifierType">
            <xs:annotation>
               <xs:documentation>The type of the creationIdentifier.</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="creationIdentifierType">
      <xs:annotation>
         <xs:documentation>A complex element describing the type of an identifier used to identify a creation.</xs:documentation>
      </xs:annotation>
      <xs:simpleContent>
         <xs:extension base="doiavs:creationIdentifierType">
            <xs:attribute name="userDefinedType" type="xs:string">
               <xs:annotation>
                  <xs:documentation>The type of the creationIdentifier if the creationIdentifierType is 'ProprietaryIdentifier'.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
            <xs:attribute name="validNamespace" type="xs:string">
               <xs:annotation>
                  <xs:documentation>The namespace of the creationIdentifier if the creationIdentifierType is 'ProprietaryIdentifier'.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
            <xs:attribute name="governingParty" type="xs:string">
               <xs:annotation>
                  <xs:documentation>The name or identifier of the party ultimately responsible for issuing the creationIdentifier if the creationIdentifierType is 'ProprietaryIdentifier'.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
         </xs:extension>
      </xs:simpleContent>
   </xs:complexType>
   <xs:complexType name="creationName">
      <xs:annotation>
         <xs:documentation>A complex element describing a name or title by which a creation is known.</xs:documentation>
         <xs:documentation>The distinction between 'name' and 'title' is a matter of convention: published creations such as books, serials, CDs, DVDs or broadcast programmes normally have 'titles', but other creations such as websites or datasets more commonly have 'names'. There is no functional difference. </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="value" type="xs:string">
            <xs:annotation>
               <xs:documentation>The text string representing the value of the creationName.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="subnameValue" minOccurs="0" type="xs:string">
            <xs:annotation>
               <xs:documentation>A text string representing a subname or subtitle which accompanies the creationName.</xs:documentation>
               <xs:documentation>This is not an alternative name for the creation which may be used independently, but a name or subtitle which supports the main creationName. For example, the book titled 'Knowledge Representation' by John F. Sowa has the subtitle 'Logical, Philosophical and Computational Foundations'. </xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="type" type="doiavs:creationNameType">
            <xs:annotation>
               <xs:documentation>The type of the creationName.</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="primaryLanguage" type="xs:language">
         <xs:annotation>
            <xs:documentation>The primary language in which the creationName is expressed.</xs:documentation>
         </xs:annotation>
      </xs:attribute>
   </xs:complexType>
   <xs:complexType name="date">
      <xs:annotation>
         <xs:documentation>A complex element describing a date.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="value" type="xs:date">
            <xs:annotation>
               <xs:documentation>The value of the date (for example, '1967').</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
      <xs:attribute name="proximity" type="doiavs:timeProximity">
         <xs:annotation>
            <xs:documentation>The proximity of the declared date to the actual date (for example, 'circa', 'not before'). A null value indicates that the date is accurate.</xs:documentation>
         </xs:annotation>
      </xs:attribute>
   </xs:complexType>
   <xs:complexType name="linkedCreation">
      <xs:annotation>
         <xs:documentation>A complex element describing another creation with which the referentCreation is associated. At least one of the elements 'creationName' or 'creationIdentifier' must be present (the latter being preferably a doiName), and at least one of the elements 'referentCreationRole' or 'linkedCreationRole'.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="name" minOccurs="0" maxOccurs="unbounded" type="doi:creationName">
            <xs:annotation>
               <xs:documentation>A name or title by which the linkedCreation is known.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="identifier" minOccurs="0" maxOccurs="unbounded"
            type="doi:creationIdentifier">
            <xs:annotation>
               <xs:documentation>An identifier of the linkedCreation.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="referentCreationRole" minOccurs="0"
            type="doiavs:creationToCreationLinkRole">
            <xs:annotation>
               <xs:documentation>A role played by the referentCreation in relation to the linkedCreation (for example, the referentCreation is an edition of the linkedCreation).</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="linkedCreationRole" minOccurs="0"
            type="doiavs:creationToCreationLinkRole">
            <xs:annotation>
               <xs:documentation>A role played by the linkedCreation in relation to the referentCreation (for example, the linkedCreation is an edition of the referentCreation).</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="referentCreationSequenceIdentifier" minOccurs="0" maxOccurs="unbounded"
            type="doi:sequenceIdentifier">
            <xs:annotation>
               <xs:documentation>An identifier of the referentCreation, giving the order in which it appears within a list of creations linked to the linkedCreation.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="linkedCreationSequenceIdentifier" minOccurs="0" maxOccurs="unbounded"
            type="doi:sequenceIdentifier">
            <xs:annotation>
               <xs:documentation>An identifier of the linkedCreation, giving the order in which it appears within a list of creations linked to the referentCreation.</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="linkedParty">
      <xs:annotation>
         <xs:documentation>A complex element describing another party with which the referentParty is associated. At least one of the elements 'partyName' or 'partyIdentifier' must be present, and at least one of the elements 'referentPartyRole' or 'linkedPartyRole'.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="name" minOccurs="0" type="doi:partyName">
            <xs:annotation>
               <xs:documentation>A name by which the linkedParty is known.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="identifier" minOccurs="0" type="doi:partyIdentifier">
            <xs:annotation>
               <xs:documentation>An identifier of the linkedParty.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="referentPartyRole" minOccurs="0" type="doiavs:partyToPartyLinkRole">
            <xs:annotation>
               <xs:documentation>A role played by the referentParty in relation to the linkedParty (for example, the referentParty is a corporateSubsidiary of the linkedParty).</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="linkedPartyRole" minOccurs="0" type="doiavs:partyToPartyLinkRole">
            <xs:annotation>
               <xs:documentation>A role played by the linkedParty in relation to the referentParty (for example, the linkedParty is a corporateSubsidiary of the referentParty).</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="partyIdentifier">
      <xs:annotation>
         <xs:documentation>A complex element describing an identifier used to identify a party.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="nonUriValue" minOccurs="0" type="xs:string">
           <xs:annotation>
              <xs:documentation>The value of the partyIdentifier if it is not a URI.</xs:documentation>
           </xs:annotation>
        </xs:element>
        <xs:element name="uri" minOccurs="0" maxOccurs="unbounded" type="doi:uri">
           <xs:annotation>
              <xs:documentation>The value of the partyIdentifier if it is a URI.</xs:documentation>
           </xs:annotation>
         </xs:element>
         <xs:element name="type" type="doiavs:partyIdentifierType">
            <xs:annotation>
               <xs:documentation>The type of the partyIdentifier.</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="placeName">
      <xs:annotation>
         <xs:documentation>A complex element describing a name by which a place is known.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="value" type="xs:string">
            <xs:annotation>
               <xs:documentation>A text string representing the value of the placeName (for example, 'Sydney', 'New South Wales').</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="language" type="xs:language" minOccurs="0">
            <xs:annotation>
               <xs:documentation>The language of the placeName.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="type" type="doiavs:placeNameType">
            <xs:annotation>
               <xs:documentation>The type of the partyName.</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="partyName">
      <xs:annotation>
         <xs:documentation>A complex element describing a name by which a party is known.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="value" type="xs:string">
            <xs:annotation>
               <xs:documentation>A text string representing the value of the partyName (for example, 'John Smith', 'ABC Publishing, Inc').</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="language" type="xs:language" minOccurs="0">
            <xs:annotation>
               <xs:documentation>The language of the partyName.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="type" type="doiavs:partyNameType">
            <xs:annotation>
               <xs:documentation>The type of the partyName.</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="principalAgent">
      <xs:annotation>
         <xs:documentation>A complex element describing a party principally responsible for the creation or publication of a referent.  Either a 'partyName' or a 'partyIdentifier' element must be present.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="name" minOccurs="0" type="doi:partyName">
            <xs:annotation>
               <xs:documentation>A name by which the principalAgent is known.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="identifier" minOccurs="0" type="doi:partyIdentifier">
            <xs:annotation>
               <xs:documentation>An identifier of the principalAgent.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="role" minOccurs="0" type="doiavs:agentRole">
            <xs:annotation>
               <xs:documentation>A role played by the principalAgent.</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="referentCreation">
      <xs:annotation>
         <xs:documentation>A complex element describing the creation identified by the doiName to which the kernelMetadata applies.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="name" maxOccurs="unbounded" type="doi:creationName">
            <xs:annotation>
               <xs:documentation>A name or title by which the referentCreation is known.</xs:documentation>
               <xs:documentation>For Kernel Metadata in a restricted Application Profile the string 'No information available' should be used, with a creationNameType of 'name'.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="identifier" minOccurs="0" maxOccurs="unbounded"
            type="doi:creationIdentifier">
            <xs:annotation>
               <xs:documentation>An identifier of the referentCreation.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="structuralType" type="doiavs:creationStructuralType">
            <xs:annotation>
               <xs:documentation>The primary structuralType of a referentCreation.</xs:documentation>
               <xs:documentation>For creations there are four mutually exclusive structuralTypes (physical, digital, performance and abstraction) that allow classification according to overall form. Where structuralTypes may be contained within one another, the referent's structuralType is defined by the overall form. For example a CD (physical) may contain files (digital) which contain recordings of performances of songs (abstractions), and elements of content can be further classified if necessary under referentType.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="mode" maxOccurs="unbounded" type="doiavs:mode">
            <xs:annotation>
               <xs:documentation>A principal sensory mode in which a referentCreation is intended to be perceived (audio, visual, tangible, olfactory, tasteable, none).</xs:documentation>
               <xs:documentation>Mode identifies only the principal intended modes of perception: most physical creations are perceivable with all five senses, but some of these perceptions may be trivial. For example, a printed book may be touched or smelled, but these are normally supplementary or incidental to the visual mode for its intended function as a content carrier. For a Braille book, however, touch would be a principal mode. One creation may be perceived in several modes (audio and visual being much the most common combination).</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="character" maxOccurs="unbounded" type="doiavs:character">
            <xs:annotation>
               <xs:documentation>A fundamental form of communication (language, music, image, other) in which the content of a referentCreation is expressed. </xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="type" maxOccurs="unbounded" type="doiavs:creationType">
            <xs:annotation>
               <xs:documentation>A class of creation to which the referentCreation belongs.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="principalAgent" maxOccurs="unbounded" type="doi:principalAgent">
            <xs:annotation>
               <xs:documentation>A party (either an individual or an organization) principally responsible for the creation or publication of the referentCreation.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="linkedCreation" minOccurs="0" maxOccurs="unbounded"
            type="doi:linkedCreation">
            <xs:annotation>
               <xs:documentation>Another creation with which the referentCreation is associated.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="language" minOccurs="0" type="xs:language">
            <xs:annotation>
               <xs:documentation>Language in which the DOI referentCreation record is provided.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="languageOfReferentContent" type="doi:languageOfReferentContent"
            minOccurs="0">
            <xs:annotation>
               <xs:documentation>For creations, the language of the referent expression.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="creationDate" type="doi:creationDate" minOccurs="0">
            <xs:annotation>
               <xs:documentation>For creations, the language of the referent expression.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="creationPlace" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
               <xs:documentation>Where the referentCreation came into existence.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
               <xs:complexContent>
                  <xs:extension base="doi:Place">
                     <xs:attribute name="placeType" type="doi:placeType"/>
                  </xs:extension>
               </xs:complexContent>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Place">
      <xs:sequence>
         <xs:element name="name" type="xs:string">
            <xs:annotation>
               <xs:documentation>The name of the place.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="placeIdentifier" type="doi:placeIdentifier" maxOccurs="unbounded">
            <xs:annotation>
               <xs:documentation>An identifier of the place.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="countryCode" type="doiavs:territoryCode" minOccurs="0">
            <xs:annotation>
               <xs:documentation>The country code of the place.</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="placeIdentifier">
      <xs:sequence>
         <xs:element name="nonUriValue" minOccurs="0" type="xs:string">
            <xs:annotation>
               <xs:documentation>The value of the partyIdentifier if it is not a URI.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="uri" minOccurs="0" maxOccurs="unbounded" type="doi:uri">
            <xs:annotation>
               <xs:documentation>The value of the partyIdentifier if it is a URI.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <!-- TODO: Make type in the following line a placeIdentifierType and start appropriate AVS enumeration -->
         <xs:element name="type" type="xs:string">
            <xs:annotation>
               <xs:documentation>The type of the place Identifier</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="creationDate">
      <xs:sequence>
         <xs:element name="date" type="doi:dateOrDateTime">
            <xs:annotation>
               <xs:documentation>When the referentCreation came into existence.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="creationDateType" minOccurs="0" type="doiavs:creationDateType">
            <xs:annotation>
               <xs:documentation>The type of a creation date, e.g. publication date</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>

   <!-- NEW 2022-04-08: creationDate - new element with date constraints implemented as union of date and dateTime to allow either form -->
   <!-- NEW 2022-06-11: added xs:gYear and xs:gYearMonth to union to support range if date expressions -->
   <xs:simpleType name="dateOrDateTime">
      <xs:annotation>
         <xs:documentation>A simple element describing the date/time of an event in a variety of granular forms: yyyy, yyyy-mm, yyyy-mm-dd or yyyy-mm-ddThh:mm:ss.</xs:documentation>
      </xs:annotation>
      <xs:union memberTypes="xs:gYear xs:gYearMonth xs:date xs:dateTime"/>
   </xs:simpleType>

   <!-- NEW 2022-04-08: referentCreation - add complex type languageOfContent with a language and a languageOfContentType -->
   <!-- MODIFIED 2022-06-14 to include Referent in name -->
   <xs:complexType name="languageOfReferentContent">
      <xs:annotation>
         <xs:documentation>A complex element describing the language in which a creation is expressed.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="language" type="xs:language"/>
         <xs:element name="languageOfReferentContentType" minOccurs="0"
            type="doi:languageOfReferentContentType"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="referentPlace">
      <xs:annotation>
         <xs:documentation>A complex element describing the place identified by the doiName to which the kernelMetadata applies.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="name" maxOccurs="unbounded" type="doi:placeName">
            <xs:annotation>
               <xs:documentation>A name by which the referentParty is known.</xs:documentation>
               <xs:documentation>For Kernel Metadata in a restricted Application Profile the string 'No information available' should be used, with a partyNameType of 'name'.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="identifier" minOccurs="0" maxOccurs="unbounded"
            type="doi:placeIdentifier">
            <xs:annotation>
               <xs:documentation>An identifier of the referentPlace.</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="referentParty">
      <xs:annotation>
         <xs:documentation>A complex element describing the party identified by the doiName to which the kernelMetadata applies.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="name" maxOccurs="unbounded" type="doi:partyName">
            <xs:annotation>
               <xs:documentation>A name by which the referentParty is known.</xs:documentation>
               <xs:documentation>For Kernel Metadata in a restricted Application Profile the string 'No information available' should be used, with a partyNameType of 'name'.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="identifier" minOccurs="0" maxOccurs="unbounded"
            type="doi:partyIdentifier">
            <xs:annotation>
               <xs:documentation>An identifier of the referentParty.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="structuralType" type="doiavs:partyStructuralType">
            <xs:annotation>
               <xs:documentation>The primary structuralType of the referentParty. </xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="associatedRole" maxOccurs="unbounded" type="doiavs:associatedPartyRole">
            <xs:annotation>
               <xs:documentation>For parties, the referentType represents a role with which the party is commonly associated, not necessarily a permanent type.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="dateOfBirthOrFormation" minOccurs="0" type="doi:date">
            <xs:annotation>
               <xs:documentation>The date of birth (for an individual or animal) or formation (for an organization) of the referentParty.  </xs:documentation>
               <xs:documentation>If an organization was (re)formed on one or more occasion, this date should represent the latest date of formation. </xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="dateOfDeathOrDissolution" minOccurs="0" type="doi:date">
            <xs:annotation>
               <xs:documentation>The date of death (for an individual or animal) or dissolution (for an organization) of the referentParty. </xs:documentation>
               <xs:documentation>If an organization was dissolved on one or more occasion, this date should represent the latest date of dissolution.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="associatedTerritory" minOccurs="0" maxOccurs="unbounded"
            type="doiavs:territoryCode">
            <xs:annotation>
               <xs:documentation>A territory with which the referentParty is associated (for example, a territory of birth, nationality or residence).</xs:documentation>
               <xs:documentation>As with other elements (dates and referentType) this element is included to support the disambiguation of one party with another.</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="linkedParty" minOccurs="0" maxOccurs="unbounded" type="doi:linkedParty">
            <xs:annotation>
               <xs:documentation>Another party to whom the referentParty is linked, with identification of link role (eg member, department, corporate subsiduary, child, sibling).</xs:documentation>
               <xs:documentation>This element is included in Kernel Metadata as it may be critical for the identification of an organization which exists only as part of another organization.</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="sequenceIdentifier">
      <xs:annotation>
         <xs:documentation>A complex element describing an identifier used to identify the order of a relationship between two entities.</xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="value" type="xs:string">
            <xs:annotation>
               <xs:documentation>A text string representing the value of the sequenceIdentifier (for example, '1A').</xs:documentation>
            </xs:annotation>
         </xs:element>
         <xs:element name="type" type="doi:sequenceIdentifierType">
            <xs:annotation>
               <xs:documentation>The type of the sequenceIdentifier.</xs:documentation>
            </xs:annotation>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="sequenceIdentifierType">
      <xs:annotation>
         <xs:documentation>A complex element describing the type of an identifier used to identify the order of a relationship between two entities.</xs:documentation>
      </xs:annotation>
      <xs:simpleContent>
         <xs:extension base="doiavs:sequenceIdentifierType">
            <xs:attribute name="userDefinedType" type="xs:string">
               <xs:annotation>
                  <xs:documentation>The type of the sequenceIdentifier if the sequenceIdentifierType is 'ProprietaryIdentifier'.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
            <xs:attribute name="validNamespace" type="xs:string">
               <xs:annotation>
                  <xs:documentation>The namespace of the sequenceIdentifier if the sequenceIdentifierType is 'ProprietaryIdentifier'.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
            <xs:attribute name="governingParty" type="xs:string">
               <xs:annotation>
                  <xs:documentation>The name or identifier of the party ultimately responsible for issuing the sequenceIdentifier if the sequenceIdentifierType is 'ProprietaryIdentifier'.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
         </xs:extension>
      </xs:simpleContent>
   </xs:complexType>
   <xs:complexType name="uri">
      <xs:annotation>
         <xs:documentation>A complex element describing an URI used to identify a creation.</xs:documentation>
      </xs:annotation>
      <xs:simpleContent>
         <xs:extension base="xs:string">
            <xs:attribute name="returnType" type="doiavs:returnType">
               <xs:annotation>
                  <xs:documentation>The type (MIME type or equivalent) of the page that is returned by the URI.</xs:documentation>
               </xs:annotation>
            </xs:attribute>
            <xs:attribute name="doesContentNegotiation" type="xs:boolean">
               <xs:annotation>
                  <xs:documentation>A flag that identifies the URI that does content negotiation (whose returnType acts as the default).</xs:documentation>
               </xs:annotation>
            </xs:attribute>
         </xs:extension>
      </xs:simpleContent>
   </xs:complexType>
   <xs:simpleType name="doiName">
      <xs:annotation>
         <xs:documentation>A DOI name issued under the authority of the International DOI Foundation.</xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:string">
         <xs:pattern value="10\.[^\./@]+(\.[^\./@]+)*/.+"/>
      </xs:restriction>
   </xs:simpleType>
   <!-- The simpleTypes below have been added for compatibility with version 2.1, so the AVS, which are now in the 'doiavs' namespace,
remain accessible in the 'doi' namespace. They will be removed in a future version of the XSD. -->
   <xs:simpleType name="agentRole">
      <xs:restriction base="doiavs:agentRole"/>
   </xs:simpleType>
   <xs:simpleType name="associatedPartyRole">
      <xs:restriction base="doiavs:associatedPartyRole"/>
   </xs:simpleType>
   <xs:simpleType name="character">
      <xs:restriction base="doiavs:character"/>
   </xs:simpleType>
   <xs:simpleType name="creationNameType">
      <xs:restriction base="doiavs:creationNameType"/>
   </xs:simpleType>
   <xs:simpleType name="creationStructuralType">
      <xs:restriction base="doiavs:creationStructuralType"/>
   </xs:simpleType>
   <xs:simpleType name="creationToCreationLinkRole">
      <xs:restriction base="doiavs:creationToCreationLinkRole"/>
   </xs:simpleType>
   <xs:simpleType name="creationType">
      <xs:restriction base="doiavs:creationType"/>
   </xs:simpleType>
   <xs:simpleType name="languageOfReferentContentType">
      <xs:restriction base="doiavs:languageOfReferentContentType"/>
   </xs:simpleType>
   <xs:simpleType name="mode">
      <xs:restriction base="doiavs:mode"/>
   </xs:simpleType>
   <xs:simpleType name="nonIsoTerritoryCode">
      <xs:restriction base="doiavs:nonIsoTerritoryCode"/>
   </xs:simpleType>
   <xs:simpleType name="partyIdentifierType">
      <xs:restriction base="doiavs:partyIdentifierType"/>
   </xs:simpleType>
   <xs:simpleType name="partyNameType">
      <xs:restriction base="doiavs:partyNameType"/>
   </xs:simpleType>
   <xs:simpleType name="partyStructuralType">
      <xs:restriction base="doiavs:partyStructuralType"/>
   </xs:simpleType>
   <xs:simpleType name="partyToPartyLinkRole">
      <xs:restriction base="doiavs:partyToPartyLinkRole"/>
   </xs:simpleType>
   <xs:simpleType name="placeType">
      <xs:restriction base="doiavs:placeType"/>
   </xs:simpleType>
   <xs:simpleType name="primaryReferentType">
      <xs:restriction base="doiavs:primaryReferentType"/>
   </xs:simpleType>
   <xs:simpleType name="returnType">
      <xs:restriction base="doiavs:returnType"/>
   </xs:simpleType>
   <xs:simpleType name="territoryCode">
      <xs:restriction base="doiavs:territoryCode"/>
   </xs:simpleType>
   <xs:simpleType name="timeProximity">
      <xs:restriction base="doiavs:timeProximity"/>
   </xs:simpleType>
</xs:schema>
