<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://ead3.archivists.org/schema/"
  elementFormDefault="qualified" targetNamespace="http://ead3.archivists.org/schema/">
  <!--
           Encoded Archival Description
       	Version: EAD3
       	Release: 1.1.1
       	Date: 2019-12-16

       	Hosted by the Library of Congress at http://www.loc.gov/ead/.

       	Developed by the Society of American Archivists'
       	Technical Subcommittee for Encoded Archival Description (TS-EAD)
       	and Schema Development Team, 2010-2015.

       	Adopted by SAA Council, July 2015.

       	Lead schema developer: Terry Catapano

       	EAD3 was possible because of the generous support of the
       	Society of American Archivists, the Gladys Krieble Delmas Foundation,
       	the National Endowment for the Humanities, the Nationaal Archief of the
       	Netherlands, the Beinecke Rare Book and Manuscript Library,
       	the Institute for Advanced Technology in the Humanities at the
       	University of Virginia, and OCLC Research.

       	EAD3 Deliverables

       	ead3.dtd	ead3_undeprecated.dtd
       	ead3.rng	ead3_undeprecated.rng
       	ead3.xsd	ead3_undeprecated.xsd
       	ead3.sch

       	Notes:
       	-EAD3 is available as DTD, Relax NG Schema, and W3C Schema.
       	-The EAD3 DTD does not support the <objectxmlwrap> element.
       	-In the EAD3 DTD, attributes with anyURI, token, and string
       	data types are converted to CDATA.
       	-Deprecated EAD 2002 elements are available in the undprecated
       	versions of EAD3.
       	-A Schematron schema (ead3.sch) is available to validate external code lists
       	not maintained within EAD, standard attribute value patterns,
       	attribute or element co-ocurrence not enforcable in the schema,
       	and some encoding practices recommended for future migration.
           -->

  <!--
           ***************************************************
           Changes in version 1.1.1:
           1. The foreign element is now available as a child of the ref element.
              See https://github.com/SAA-SDT/EAD3/issues/522

           2. Fixed a bug in the XSD schemas that resulted in empty-only c12 elements being valid.
              See https://github.com/SAA-SDT/EAD3/issues/523

           ***************************************************


           ***************************************************
           Changes in version 1.1:

           1. The @render attribute can now be used with the quote element.
              See https://github.com/SAA-SDT/EAD3/issues/485

           2. The objectxmlwrap element can now be validated properly in the XSD schemas.
              See https://github.com/SAA-SDT/EAD3/issues/499
              (bug fix)

           3. Manually fixed a bug that was causing the descgrp element not to validate correctly in the undeprecated DTD.
              See https://github.com/SAA-SDT/EAD3/issues/503
              (bug fix)

           4. The date element is now a valid child of the part element.
              See https://github.com/SAA-SDT/EAD3/issues/505

           5. rightsdeclaration, a new element, has been added to the control section.
              See https://github.com/SAA-SDT/EAD3/issues/506
              (new element)

           6. The @localtype attribute can now be used with the conventiondeclaration element.
              See https://github.com/SAA-SDT/EAD3/issues/507

           7. The datatype associated with the @containerid attribute has been relaxed to xsd:string (in EAD3 version 1.0, the datatype for this attribute was restricted to xsd:NMTOKEN).
              See https://github.com/SAA-SDT/EAD3/issues/512

           *****************************************************
           -->
  <!-- include "ead_revised_defs.rng" -->
  <!-- ELEMENTS -->
  <xs:element name="ead">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="control" type="control"/>
        <xs:element name="archdesc" type="archdesc"/>
      </xs:sequence>
      <xs:attributeGroup ref="am.common"/>
      <xs:attribute name="relatedencoding" type="xs:token"/>
      <xs:attribute name="base" type="xs:anyURI"/>
    </xs:complexType>
  </xs:element>
  <!-- control -->
  <xs:complexType name="control">
    <xs:sequence>
      <xs:element name="recordid" type="recordid"/>
      <xs:element name="otherrecordid" type="otherrecordid" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="representation" type="representation" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="filedesc" type="filedesc"/>
      <xs:element name="maintenancestatus" type="maintenancestatus"/>
      <xs:element name="publicationstatus" type="publicationstatus" minOccurs="0"/>
      <xs:element name="maintenanceagency" type="maintenanceagency"/>
      <xs:element name="languagedeclaration" type="languagedeclaration" minOccurs="0"
        maxOccurs="unbounded"/>
      <xs:element name="conventiondeclaration" type="conventiondeclaration" minOccurs="0"
        maxOccurs="unbounded"/>
      <xs:element name="rightsdeclaration" type="rightsdeclaration" minOccurs="0"
        maxOccurs="unbounded"/>
      <xs:element name="localtypedeclaration" type="localtypedeclaration" minOccurs="0"
        maxOccurs="unbounded"/>
      <xs:element name="localcontrol" type="localcontrol" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="maintenancehistory" type="maintenancehistory"/>
      <xs:element name="sources" type="sources" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="relatedencoding" type="xs:token"/>
    <xs:attribute name="base" type="xs:anyURI"/>
    <xs:attribute name="langencoding">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="iso639-1"/>
          <xs:enumeration value="iso639-2b"/>
          <xs:enumeration value="iso639-3"/>
          <xs:enumeration value="otherlangencoding"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="scriptencoding">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="iso15924"/>
          <xs:enumeration value="otherscriptencoding"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="dateencoding">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="iso8601"/>
          <xs:enumeration value="otherdateencoding"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="countryencoding">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="iso3166-1"/>
          <xs:enumeration value="othercountryencoding"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="repositoryencoding">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="iso15511"/>
          <xs:enumeration value="otherrepositoryencoding"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="recordid" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="instanceurl" type="xs:anyURI"/>
  </xs:complexType>
  <xs:complexType name="otherrecordid" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="representation" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attributeGroup ref="am.simplelink"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="filedesc">
    <xs:sequence>
      <xs:element name="titlestmt" type="titlestmt"/>
      <xs:element name="editionstmt" type="editionstmt" minOccurs="0"/>
      <xs:element name="publicationstmt" type="publicationstmt" minOccurs="0"/>
      <xs:element name="seriesstmt" type="seriesstmt" minOccurs="0"/>
      <xs:element name="notestmt" type="notestmt" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="titlestmt">
    <xs:sequence>
      <xs:element name="titleproper" type="titleproper" maxOccurs="unbounded"/>
      <xs:element name="subtitle" type="subtitle" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="author" type="author" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="sponsor" type="sponsor" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="editionstmt">
    <xs:choice maxOccurs="unbounded">
      <xs:element name="edition" type="edition"/>
      <xs:element name="p" type="p"/>
    </xs:choice>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="publicationstmt">
    <xs:choice maxOccurs="unbounded">
      <xs:element name="publisher" type="publisher"/>
      <xs:element name="date" type="date"/>
      <xs:element name="address" type="address"/>
      <xs:element name="num" type="num"/>
      <xs:element name="p" type="p"/>
    </xs:choice>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="seriesstmt">
    <xs:choice maxOccurs="unbounded">
      <xs:element name="titleproper" type="titleproper"/>
      <xs:element name="num" type="num"/>
      <xs:element name="p" type="p"/>
    </xs:choice>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="notestmt">
    <xs:sequence>
      <xs:element name="controlnote" type="controlnote" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="maintenancestatus" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="value" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="revised"/>
          <xs:enumeration value="deleted"/>
          <xs:enumeration value="new"/>
          <xs:enumeration value="deletedsplit"/>
          <xs:enumeration value="deletedmerged"/>
          <xs:enumeration value="deletedreplaced"/>
          <xs:enumeration value="cancelled"/>
          <xs:enumeration value="derived"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="publicationstatus" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="value" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="inprocess"/>
          <xs:enumeration value="approved"/>
          <xs:enumeration value="published"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="languagedeclaration">
    <xs:sequence>
      <xs:element name="language" type="language"/>
      <xs:element name="script" type="script"/>
      <xs:element name="descriptivenote" type="descriptivenote" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="conventiondeclaration">
    <xs:sequence>
      <xs:element name="abbr" type="abbr" minOccurs="0"/>
      <xs:element name="citation" type="citation"/>
      <xs:element name="descriptivenote" type="descriptivenote" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="rightsdeclaration">
    <xs:sequence>
      <xs:element name="abbr" type="abbr" minOccurs="0"/>
      <xs:element name="citation" type="citation"/>
      <xs:element name="descriptivenote" type="descriptivenote" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="localtypedeclaration">
    <xs:sequence>
      <xs:element name="abbr" type="abbr" minOccurs="0"/>
      <xs:element name="citation" type="citation"/>
      <xs:element name="descriptivenote" type="descriptivenote" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="localcontrol">
    <xs:sequence>
      <xs:element name="term" type="term" minOccurs="0"/>
      <xs:choice minOccurs="0">
        <xs:element name="datesingle" type="datesingle"/>
        <xs:element name="daterange" type="daterange"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="term" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="transliteration" type="xs:NMTOKEN"/>
    <xs:attribute name="lastdatetimeverified">
      <xs:simpleType>
        <xs:union>
          <xs:simpleType>
            <xs:restriction base="xs:date">
              <xs:maxInclusive value="2099-12-31"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:gYear">
              <xs:maxInclusive value="2099"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:gYearMonth">
              <xs:maxInclusive value="2099-12"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:dateTime">
              <xs:maxInclusive value="2099-12-31T23:59:59"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="am.access.no.normal"/>
  </xs:complexType>
  <xs:complexType name="maintenancehistory">
    <xs:sequence>
      <xs:element name="maintenanceevent" type="maintenanceevent" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="maintenanceevent">
    <xs:sequence>
      <xs:element name="eventtype" type="eventtype"/>
      <xs:element name="eventdatetime" type="eventdatetime"/>
      <xs:element name="agenttype" type="agenttype"/>
      <xs:element name="agent" type="agent"/>
      <xs:element name="eventdescription" type="eventdescription" minOccurs="0"
        maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="eventtype" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="value" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="created"/>
          <xs:enumeration value="revised"/>
          <xs:enumeration value="deleted"/>
          <xs:enumeration value="cancelled"/>
          <xs:enumeration value="derived"/>
          <xs:enumeration value="updated"/>
          <xs:enumeration value="unknown"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="eventdatetime" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="standarddatetime">
      <xs:simpleType>
        <xs:union>
          <xs:simpleType>
            <xs:restriction base="xs:date">
              <xs:maxInclusive value="2099-12-31"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:gYear">
              <xs:maxInclusive value="2099"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:gYearMonth">
              <xs:maxInclusive value="2099-12"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:dateTime">
              <xs:maxInclusive value="2099-12-31T23:59:59"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="agenttype" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="value" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="human"/>
          <xs:enumeration value="machine"/>
          <xs:enumeration value="unknown"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="agent" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="eventdescription" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="sources">
    <xs:sequence>
      <xs:element name="source" type="source" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="base" type="xs:anyURI"/>
  </xs:complexType>
  <xs:complexType name="source">
    <xs:sequence>
      <xs:element name="sourceentry" type="sourceentry" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="objectxmlwrap" type="objectxmlwrap" minOccurs="0"/>
      <xs:element name="descriptivenote" type="descriptivenote" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="lastdatetimeverified">
      <xs:simpleType>
        <xs:union>
          <xs:simpleType>
            <xs:restriction base="xs:date">
              <xs:maxInclusive value="2099-12-31"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:gYear">
              <xs:maxInclusive value="2099"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:gYearMonth">
              <xs:maxInclusive value="2099-12"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:dateTime">
              <xs:maxInclusive value="2099-12-31T23:59:59"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="am.simplelink"/>
  </xs:complexType>
  <xs:complexType name="sourceentry" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="transliteration" type="xs:NMTOKEN"/>
  </xs:complexType>
  <xs:complexType name="titleproper">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="render">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="altrender"/>
              <xs:enumeration value="bold"/>
              <xs:enumeration value="bolddoublequote"/>
              <xs:enumeration value="bolditalic"/>
              <xs:enumeration value="boldsinglequote"/>
              <xs:enumeration value="boldsmcaps"/>
              <xs:enumeration value="boldunderline"/>
              <xs:enumeration value="doublequote"/>
              <xs:enumeration value="italic"/>
              <xs:enumeration value="nonproport"/>
              <xs:enumeration value="singlequote"/>
              <xs:enumeration value="smcaps"/>
              <xs:enumeration value="sub"/>
              <xs:enumeration value="super"/>
              <xs:enumeration value="underline"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="subtitle">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="author">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="sponsor">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="edition">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="publisher">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="controlnote">
    <xs:group maxOccurs="unbounded" ref="m.blocks"/>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="maintenanceagency">
    <xs:sequence>
      <xs:element name="agencycode" type="agencycode" minOccurs="0"/>
      <xs:element name="otheragencycode" type="otheragencycode" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="agencyname" type="agencyname" maxOccurs="unbounded"/>
      <xs:element name="descriptivenote" type="descriptivenote" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attributeGroup ref="am.countrycode"/>
  </xs:complexType>
  <xs:complexType name="agencycode" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="otheragencycode" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="agencyname" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="citation">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
        <xs:attributeGroup ref="am.simplelink"/>
        <xs:attribute name="lastdatetimeverified">
          <xs:simpleType>
            <xs:union>
              <xs:simpleType>
                <xs:restriction base="xs:date">
                  <xs:maxInclusive value="2099-12-31"/>
                </xs:restriction>
              </xs:simpleType>
              <xs:simpleType>
                <xs:restriction base="xs:gYear">
                  <xs:maxInclusive value="2099"/>
                </xs:restriction>
              </xs:simpleType>
              <xs:simpleType>
                <xs:restriction base="xs:gYearMonth">
                  <xs:maxInclusive value="2099-12"/>
                </xs:restriction>
              </xs:simpleType>
              <xs:simpleType>
                <xs:restriction base="xs:dateTime">
                  <xs:maxInclusive value="2099-12-31T23:59:59"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:union>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- ARCHDESC -->
  <xs:complexType name="archdesc">
    <xs:sequence>
      <xs:element name="did" type="did"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="m.desc.base"/>
        <xs:element name="dsc" type="dsc"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="relatedencoding" type="xs:token"/>
    <xs:attributeGroup ref="am.desc.base"/>
    <xs:attributeGroup ref="a.level"/>
    <xs:attribute name="base" type="xs:anyURI"/>
  </xs:complexType>
  <!-- did -->
  <xs:complexType name="did">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:group maxOccurs="unbounded" ref="m.did"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="abstract">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic.plus.access">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="label" type="xs:string"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="container">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="label" type="xs:string"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
        <xs:attribute name="parent" type="xs:IDREFS"/>
        <xs:attribute name="containerid" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="dao">
    <xs:sequence>
      <xs:element name="descriptivenote" type="descriptivenote" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="label" type="xs:string"/>
    <xs:attributeGroup ref="am.simplelink"/>
    <xs:attribute name="identifier" type="xs:token"/>
    <xs:attribute name="xpointer" type="xs:token"/>
    <xs:attribute name="entityref" type="xs:ENTITY"/>
    <xs:attribute name="daotype" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="borndigital"/>
          <xs:enumeration value="derived"/>
          <xs:enumeration value="unknown"/>
          <xs:enumeration value="otherdaotype"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherdaotype" type="xs:token"/>
    <xs:attribute name="coverage">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="whole"/>
          <xs:enumeration value="part"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="daoset">
    <xs:sequence>
      <xs:element name="dao" type="dao"/>
      <xs:element name="dao" type="dao" maxOccurs="unbounded"/>
      <xs:element name="descriptivenote" type="descriptivenote" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="label" type="xs:string"/>
    <xs:attribute name="coverage">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="whole"/>
          <xs:enumeration value="part"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="base" type="xs:anyURI"/>
  </xs:complexType>
  <xs:complexType name="didnote">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="label" type="xs:string"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="langmaterial">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="language" type="language"/>
        <xs:element name="languageset" type="languageset"/>
      </xs:choice>
      <xs:element name="descriptivenote" type="descriptivenote" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="label" type="xs:string"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="materialspec">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="label" type="xs:string"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
        <xs:attribute name="localtype" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="physdescset">
    <xs:sequence>
      <xs:element name="physdescstructured" type="physdescstructured"/>
      <xs:element name="physdescstructured" type="physdescstructured" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="label" type="xs:string"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="parallel" type="av.boolean"/>
    <xs:attribute name="coverage">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="whole"/>
          <xs:enumeration value="part"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="physdesc">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="label" type="xs:string"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="physloc">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="label" type="xs:string"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
        <xs:attribute name="parent" type="xs:IDREFS"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="origination">
    <xs:choice maxOccurs="unbounded">
      <xs:element name="corpname" type="corpname"/>
      <xs:element name="famname" type="famname"/>
      <xs:element name="name" type="name"/>
      <xs:element name="persname" type="persname"/>
    </xs:choice>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="label" type="xs:string"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="physdescstructured">
    <xs:sequence>
      <xs:element name="quantity" type="quantity"/>
      <xs:element name="unittype" type="unittype"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="physfacet" type="physfacet"/>
        <xs:element name="dimensions" type="dimensions"/>
      </xs:choice>
      <xs:element name="descriptivenote" type="descriptivenote" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="label" type="xs:string"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="physdescstructuredtype" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="carrier"/>
          <xs:enumeration value="materialtype"/>
          <xs:enumeration value="spaceoccupied"/>
          <xs:enumeration value="otherphysdescstructuredtype"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherphysdescstructuredtype" type="xs:token"/>
    <xs:attributeGroup ref="a.coverage"/>
  </xs:complexType>
  <xs:complexType name="quantity" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="approximate" type="av.boolean"/>
  </xs:complexType>
  <xs:complexType name="unittype" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attributeGroup ref="am.access.no.normal"/>
  </xs:complexType>
  <xs:complexType name="repository">
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="corpname" type="corpname"/>
        <xs:element name="famname" type="famname"/>
        <xs:element name="name" type="name"/>
        <xs:element name="persname" type="persname"/>
      </xs:choice>
      <xs:element name="address" type="address" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="label" type="xs:string"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="unitdate">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="label" type="xs:string"/>
        <xs:attributeGroup ref="a.unitdatetype"/>
        <xs:attribute name="datechar" type="xs:token"/>
        <xs:attribute name="certainty" type="xs:NMTOKEN"/>
        <xs:attributeGroup ref="am.dates.era"/>
        <xs:attributeGroup ref="am.dates.calendar"/>
        <xs:attributeGroup ref="am.date.normal"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="unitdatestructured">
    <xs:choice>
      <xs:element name="datesingle" type="datesingle"/>
      <xs:element name="daterange" type="daterange"/>
      <xs:element name="dateset" type="dateset"/>
    </xs:choice>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="label" type="xs:string"/>
    <xs:attributeGroup ref="a.unitdatetype"/>
    <xs:attribute name="datechar" type="xs:token"/>
    <xs:attribute name="certainty" type="xs:NMTOKEN"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attributeGroup ref="am.dates.era"/>
    <xs:attributeGroup ref="am.dates.calendar"/>
  </xs:complexType>
  <xs:complexType name="unittitle">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic.plus.access">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="label" type="xs:string"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="normal" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="unitid">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="label" type="xs:string"/>
        <xs:attributeGroup ref="am.countrycode"/>
        <xs:attribute name="repositorycode" type="xs:token"/>
        <xs:attribute name="identifier"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- archdesc notes -->
  <xs:complexType name="accessrestrict">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="accessrestrict" type="accessrestrict"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="accruals">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="accruals" type="accruals"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="acqinfo">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="acqinfo" type="acqinfo"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="altformavail">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="altformavail" type="altformavail"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="appraisal">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="appraisal" type="appraisal"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="arrangement">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="arrangement" type="arrangement"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="bibliography">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="bibliography" type="bibliography"/>
        <xs:element name="archref" type="archref"/>
        <xs:element name="bibref" type="bibref"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="bioghist">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="bioghist" type="bioghist"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="controlaccess">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:group ref="m.access"/>
        <xs:element name="controlaccess" type="controlaccess"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="custodhist">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="custodhist" type="custodhist"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="fileplan">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="fileplan" type="fileplan"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="index">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="m.blocks"/>
      <xs:choice>
        <xs:sequence>
          <xs:element name="listhead" type="listhead" minOccurs="0"/>
          <xs:element name="indexentry" type="indexentry" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:element name="index" type="index" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="indexentry">
    <xs:sequence>
      <xs:choice>
        <xs:element name="namegrp" type="namegrp"/>
        <xs:group ref="m.access"/>
      </xs:choice>
      <xs:choice minOccurs="0">
        <xs:element name="ptrgrp" type="ptrgrp"/>
        <xs:group ref="m.refs"/>
      </xs:choice>
      <xs:element name="indexentry" type="indexentry" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
  </xs:complexType>
  <xs:complexType name="namegrp">
    <xs:group maxOccurs="unbounded" ref="m.access"/>
    <xs:attributeGroup ref="am.common"/>
  </xs:complexType>
  <xs:complexType name="ptrgrp">
    <xs:group maxOccurs="unbounded" ref="m.refs"/>
    <xs:attributeGroup ref="am.common"/>
  </xs:complexType>
  <xs:complexType name="legalstatus">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="legalstatus" type="legalstatus"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="odd">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="odd" type="odd"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="originalsloc">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="originalsloc" type="originalsloc"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="otherfindaid">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="otherfindaid" type="otherfindaid"/>
        <xs:element name="archref" type="archref"/>
        <xs:element name="bibref" type="bibref"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="phystech">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="phystech" type="phystech"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="prefercite">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="prefercite" type="prefercite"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="processinfo">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="processinfo" type="processinfo"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="relatedmaterial">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="relatedmaterial" type="relatedmaterial"/>
        <xs:element name="archref" type="archref"/>
        <xs:element name="bibref" type="bibref"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="scopecontent">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="scopecontent" type="scopecontent"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="separatedmaterial">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="separatedmaterial" type="separatedmaterial"/>
        <xs:element name="archref" type="archref"/>
        <xs:element name="bibref" type="bibref"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="userestrict">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice maxOccurs="unbounded">
        <xs:group ref="m.blocks"/>
        <xs:element name="userestrict" type="userestrict"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <!-- controlaccess elements -->
  <xs:complexType name="corpname">
    <xs:sequence>
      <xs:element name="part" type="part" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attributeGroup ref="am.access"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="relator" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="famname">
    <xs:sequence>
      <xs:element name="part" type="part" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attributeGroup ref="am.access"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="relator" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="function">
    <xs:sequence>
      <xs:element name="part" type="part" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attributeGroup ref="am.access"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="relator" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="genreform">
    <xs:sequence>
      <xs:element name="part" type="part" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attributeGroup ref="am.access"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="relator" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="geogname">
    <xs:sequence>
      <xs:element name="part" type="part" maxOccurs="unbounded"/>
      <xs:element name="geographiccoordinates" type="geographiccoordinates" minOccurs="0"
        maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attributeGroup ref="am.access"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="relator" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="geographiccoordinates" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="coordinatesystem" use="required" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="name">
    <xs:sequence>
      <xs:element name="part" type="part" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attributeGroup ref="am.access"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="relator" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="occupation">
    <xs:sequence>
      <xs:element name="part" type="part" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attributeGroup ref="am.access"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="relator" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="persname">
    <xs:sequence>
      <xs:element name="part" type="part" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attributeGroup ref="am.access"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="relator" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="subject">
    <xs:sequence>
      <xs:element name="part" type="part" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attributeGroup ref="am.access"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="relator" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="title">
    <xs:sequence>
      <xs:element name="part" type="part" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attributeGroup ref="am.access"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="relator" type="xs:token"/>
    <xs:attribute name="render">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="altrender"/>
          <xs:enumeration value="bold"/>
          <xs:enumeration value="bolddoublequote"/>
          <xs:enumeration value="bolditalic"/>
          <xs:enumeration value="boldsinglequote"/>
          <xs:enumeration value="boldsmcaps"/>
          <xs:enumeration value="boldunderline"/>
          <xs:enumeration value="doublequote"/>
          <xs:enumeration value="italic"/>
          <xs:enumeration value="nonproport"/>
          <xs:enumeration value="singlequote"/>
          <xs:enumeration value="smcaps"/>
          <xs:enumeration value="sub"/>
          <xs:enumeration value="super"/>
          <xs:enumeration value="underline"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="part">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic.date">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attributeGroup ref="am.access.no.normal"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- BLOCKS -->
  <!-- p -->
  <xs:complexType name="p">
    <xs:complexContent>
      <xs:extension base="m.para.content">
        <xs:attributeGroup ref="am.common"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- blockquote -->
  <xs:complexType name="blockquote">
    <xs:choice maxOccurs="unbounded">
      <xs:group ref="m.inter.noquote"/>
      <xs:element name="p" type="p"/>
    </xs:choice>
    <xs:attributeGroup ref="am.common"/>
  </xs:complexType>
  <!-- chronlist -->
  <xs:complexType name="chronlist">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:element name="listhead" type="listhead" minOccurs="0"/>
      <xs:element name="chronitem" type="chronitem" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="chronitem">
    <xs:sequence>
      <xs:choice>
        <xs:element name="datesingle" type="datesingle"/>
        <xs:element name="daterange" type="daterange"/>
        <xs:element name="dateset" type="dateset"/>
      </xs:choice>
      <xs:choice>
        <xs:sequence>
          <xs:element name="geogname" type="geogname" minOccurs="0"/>
          <xs:element name="event" type="event"/>
        </xs:sequence>
        <xs:element name="chronitemset" type="chronitemset" maxOccurs="unbounded"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="chronitemset">
    <xs:sequence>
      <xs:element name="geogname" type="geogname" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="event" type="event" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
  </xs:complexType>
  <xs:complexType name="event">
    <xs:complexContent>
      <xs:extension base="m.para.content">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- list -->
  <xs:complexType name="list">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:choice>
        <xs:element name="item" type="item" maxOccurs="unbounded"/>
        <xs:sequence>
          <xs:element name="listhead" type="listhead" minOccurs="0"/>
          <xs:element name="defitem" type="defitem" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="listtype">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="deflist"/>
          <xs:enumeration value="unordered"/>
          <xs:enumeration value="ordered"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="mark">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="disc"/>
          <xs:enumeration value="circle"/>
          <xs:enumeration value="square"/>
          <xs:enumeration value="none"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="numeration">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="decimal"/>
          <xs:enumeration value="decimal-leading-zero"/>
          <xs:enumeration value="lower-roman"/>
          <xs:enumeration value="upper-roman"/>
          <xs:enumeration value="lower-greek"/>
          <xs:enumeration value="lower-latin"/>
          <xs:enumeration value="upper-latin"/>
          <xs:enumeration value="armenian"/>
          <xs:enumeration value="georgian"/>
          <xs:enumeration value="lower-alpha"/>
          <xs:enumeration value="upper-alpha"/>
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="defitem">
    <xs:sequence>
      <xs:element name="label" type="label"/>
      <xs:element name="item" type="item"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
  </xs:complexType>
  <xs:complexType name="label">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="item">
    <xs:complexContent>
      <xs:extension base="m.para.content">
        <xs:attributeGroup ref="am.common"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="listhead">
    <xs:sequence>
      <xs:element name="head01" type="head01" minOccurs="0"/>
      <xs:element name="head02" type="head02" minOccurs="0"/>
      <xs:element name="head03" type="head03" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
  </xs:complexType>
  <xs:complexType name="head01">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="head02">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="head03">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- table -->
  <xs:complexType name="table">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:element name="tgroup" type="tgroup" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="frame">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="top"/>
          <xs:enumeration value="bottom"/>
          <xs:enumeration value="topbot"/>
          <xs:enumeration value="all"/>
          <xs:enumeration value="sides"/>
          <xs:enumeration value="none"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="colsep" type="av.boolean"/>
    <xs:attribute name="rowsep" type="av.boolean"/>
    <xs:attribute name="pgwide" type="av.boolean"/>
  </xs:complexType>
  <xs:complexType name="tgroup">
    <xs:sequence>
      <xs:element name="colspec" type="colspec" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="thead" type="thead" minOccurs="0"/>
      <xs:element name="tbody" type="tbody"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="cols" use="required" type="xs:NMTOKEN"/>
    <xs:attribute name="colsep" type="av.boolean"/>
    <xs:attribute name="rowsep" type="av.boolean"/>
    <xs:attribute name="align">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="left"/>
          <xs:enumeration value="right"/>
          <xs:enumeration value="center"/>
          <xs:enumeration value="justify"/>
          <xs:enumeration value="char"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="colspec">
    <xs:attribute name="colnum" type="xs:NMTOKEN"/>
    <xs:attribute name="colname" type="xs:NMTOKEN"/>
    <xs:attribute name="colwidth" type="xs:token"/>
    <xs:attribute name="colsep" type="av.boolean"/>
    <xs:attribute name="rowsep" type="av.boolean"/>
    <xs:attribute name="align">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="left"/>
          <xs:enumeration value="right"/>
          <xs:enumeration value="center"/>
          <xs:enumeration value="justify"/>
          <xs:enumeration value="char"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="char" type="xs:token"/>
    <xs:attribute name="charoff" type="xs:NMTOKEN"/>
  </xs:complexType>
  <xs:complexType name="tbody">
    <xs:sequence>
      <xs:element name="row" type="row" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="valign">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="top"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="bottom"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="row">
    <xs:sequence>
      <xs:element name="entry" type="entry" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="rowsep" type="av.boolean"/>
    <xs:attribute name="valign">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="top"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="bottom"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="entry">
    <xs:complexContent>
      <xs:extension base="m.para.content">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="colname" type="xs:NMTOKEN"/>
        <xs:attribute name="namest" type="xs:NMTOKEN"/>
        <xs:attribute name="nameend" type="xs:NMTOKEN"/>
        <xs:attribute name="morerows" type="xs:NMTOKEN"/>
        <xs:attribute name="colsep" type="av.boolean"/>
        <xs:attribute name="rowsep" type="av.boolean"/>
        <xs:attribute name="align">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="left"/>
              <xs:enumeration value="right"/>
              <xs:enumeration value="center"/>
              <xs:enumeration value="justify"/>
              <xs:enumeration value="char"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="char" type="xs:token"/>
        <xs:attribute name="charoff" type="xs:NMTOKEN"/>
        <xs:attribute name="valign">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="top"/>
              <xs:enumeration value="middle"/>
              <xs:enumeration value="bottom"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="thead">
    <xs:sequence>
      <xs:element name="row" type="row" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="valign">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="top"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="bottom"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <!-- language blocks -->
  <xs:complexType name="language" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="label" type="xs:string"/>
    <xs:attribute name="langcode" type="xs:NMTOKEN"/>
  </xs:complexType>
  <xs:complexType name="languageset">
    <xs:sequence>
      <xs:element name="language" type="language" maxOccurs="unbounded"/>
      <xs:element name="script" type="script" maxOccurs="unbounded"/>
      <xs:element name="descriptivenote" type="descriptivenote" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="script" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="label" type="xs:string"/>
    <xs:attribute name="scriptcode" type="xs:NMTOKEN"/>
  </xs:complexType>
  <!-- physdescstructured blocks -->
  <xs:complexType name="dimensions" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="m.mixed.basic.elements"/>
      <xs:element name="dimensions" type="dimensions"/>
    </xs:choice>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="unit" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="physfacet">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic.plus.access">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
        <xs:attributeGroup ref="am.access.no.normal"/>
        <xs:attribute name="localtype" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- other blocks -->
  <xs:complexType name="address">
    <xs:sequence>
      <xs:element name="addressline" type="addressline" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
  </xs:complexType>
  <xs:complexType name="addressline">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="archref">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic.plus.access">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="bibref">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic.plus.access">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="descriptivenote">
    <xs:sequence>
      <xs:element name="p" type="p" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="footnote">
    <xs:group maxOccurs="unbounded" ref="m.blocks"/>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="show">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="new"/>
          <xs:enumeration value="replace"/>
          <xs:enumeration value="embed"/>
          <xs:enumeration value="other"/>
          <xs:enumeration value="none"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="actuate">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="onload"/>
          <xs:enumeration value="onrequest"/>
          <xs:enumeration value="other"/>
          <xs:enumeration value="none"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="head">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="althead" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- DATES -->
  <xs:complexType name="datesingle">
    <xs:complexContent>
      <xs:extension base="m.datesingle">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="daterange">
    <xs:sequence>
      <xs:element name="fromdate" type="fromdate" minOccurs="0"/>
      <xs:element name="todate" type="todate" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="fromdate">
    <xs:complexContent>
      <xs:extension base="m.datesingle">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="todate">
    <xs:complexContent>
      <xs:extension base="m.datesingle">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="dateset">
    <xs:sequence>
      <xs:choice>
        <xs:element name="datesingle" type="datesingle"/>
        <xs:element name="daterange" type="daterange"/>
      </xs:choice>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="datesingle" type="datesingle"/>
        <xs:element name="daterange" type="daterange"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="localtype" type="xs:token"/>
  </xs:complexType>
  <!-- MIXED CONTENT -->
  <xs:complexType name="abbr" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="expan" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="date">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attributeGroup ref="am.dates.era"/>
        <xs:attributeGroup ref="am.dates.calendar"/>
        <xs:attributeGroup ref="am.date.normal"/>
        <xs:attribute name="certainty" type="xs:NMTOKEN"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="emph">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="render">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="altrender"/>
              <xs:enumeration value="bold"/>
              <xs:enumeration value="bolddoublequote"/>
              <xs:enumeration value="bolditalic"/>
              <xs:enumeration value="boldsinglequote"/>
              <xs:enumeration value="boldsmcaps"/>
              <xs:enumeration value="boldunderline"/>
              <xs:enumeration value="doublequote"/>
              <xs:enumeration value="italic"/>
              <xs:enumeration value="nonproport"/>
              <xs:enumeration value="singlequote"/>
              <xs:enumeration value="smcaps"/>
              <xs:enumeration value="sub"/>
              <xs:enumeration value="super"/>
              <xs:enumeration value="underline"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="expan" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="abbr" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="foreign" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="render">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="altrender"/>
          <xs:enumeration value="bold"/>
          <xs:enumeration value="bolddoublequote"/>
          <xs:enumeration value="bolditalic"/>
          <xs:enumeration value="boldsinglequote"/>
          <xs:enumeration value="boldsmcaps"/>
          <xs:enumeration value="boldunderline"/>
          <xs:enumeration value="doublequote"/>
          <xs:enumeration value="italic"/>
          <xs:enumeration value="nonproport"/>
          <xs:enumeration value="singlequote"/>
          <xs:enumeration value="smcaps"/>
          <xs:enumeration value="sub"/>
          <xs:enumeration value="super"/>
          <xs:enumeration value="underline"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="lb"/>
  <xs:complexType name="num">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="encodinganalog" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="quote">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attributeGroup ref="am.common"/>
        <xs:attribute name="localtype" type="xs:token"/>
        <xs:attribute name="render">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="altrender"/>
              <xs:enumeration value="bold"/>
              <xs:enumeration value="bolddoublequote"/>
              <xs:enumeration value="bolditalic"/>
              <xs:enumeration value="boldsinglequote"/>
              <xs:enumeration value="boldsmcaps"/>
              <xs:enumeration value="boldunderline"/>
              <xs:enumeration value="doublequote"/>
              <xs:enumeration value="italic"/>
              <xs:enumeration value="nonproport"/>
              <xs:enumeration value="singlequote"/>
              <xs:enumeration value="smcaps"/>
              <xs:enumeration value="sub"/>
              <xs:enumeration value="super"/>
              <xs:enumeration value="underline"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ptr">
    <xs:attributeGroup ref="am.common.empty"/>
    <xs:attributeGroup ref="am.internal.ptr"/>
    <xs:attribute name="entityref" type="xs:ENTITY"/>
  </xs:complexType>
  <xs:complexType name="ref" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="abbr" type="abbr"/>
      <xs:element name="expan" type="expan"/>
      <xs:element name="emph" type="emph"/>
      <xs:element name="foreign" type="foreign"/>
      <xs:element name="lb" type="lb"/>
      <xs:element name="ptr" type="ptr"/>
      <xs:element name="quote" type="quote"/>
      <xs:element name="num" type="num"/>
      <xs:element name="footnote" type="footnote"/>
      <xs:element name="date" type="date"/>
      <xs:group ref="m.access"/>
    </xs:choice>
    <xs:attributeGroup ref="am.common"/>
    <xs:attributeGroup ref="am.internal.ptr"/>
    <xs:attribute name="entityref" type="xs:ENTITY"/>
  </xs:complexType>
  <!-- DSC -->
  <xs:complexType name="dsc">
    <xs:sequence>
      <xs:sequence>
        <xs:element name="head" type="head" minOccurs="0"/>
        <xs:group minOccurs="0" maxOccurs="unbounded" ref="m.blocks"/>
      </xs:sequence>
      <xs:element name="thead" type="thead" minOccurs="0"/>
      <xs:group minOccurs="0" ref="m.cOrC01"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="dsctype">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="analyticover"/>
          <xs:enumeration value="combined"/>
          <xs:enumeration value="in-depth"/>
          <xs:enumeration value="otherdsctype"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherdsctype" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:complexType>
  <xs:complexType name="c">
    <xs:complexContent>
      <xs:extension base="m.c.base">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="thead" type="thead" minOccurs="0"/>
          <xs:element name="c" type="c" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="c01">
    <xs:complexContent>
      <xs:extension base="m.c.base">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="thead" type="thead" minOccurs="0"/>
          <xs:element name="c02" type="c02" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="c02">
    <xs:complexContent>
      <xs:extension base="m.c.base">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="thead" type="thead" minOccurs="0"/>
          <xs:element name="c03" type="c03" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="c03">
    <xs:complexContent>
      <xs:extension base="m.c.base">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="thead" type="thead" minOccurs="0"/>
          <xs:element name="c04" type="c04" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="c04">
    <xs:complexContent>
      <xs:extension base="m.c.base">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="thead" type="thead" minOccurs="0"/>
          <xs:element name="c05" type="c05" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="c05">
    <xs:complexContent>
      <xs:extension base="m.c.base">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="thead" type="thead" minOccurs="0"/>
          <xs:element name="c06" type="c06" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="c06">
    <xs:complexContent>
      <xs:extension base="m.c.base">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="thead" type="thead" minOccurs="0"/>
          <xs:element name="c07" type="c07" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="c07">
    <xs:complexContent>
      <xs:extension base="m.c.base">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="thead" type="thead" minOccurs="0"/>
          <xs:element name="c08" type="c08" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="c08">
    <xs:complexContent>
      <xs:extension base="m.c.base">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="thead" type="thead" minOccurs="0"/>
          <xs:element name="c09" type="c09" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="c09">
    <xs:complexContent>
      <xs:extension base="m.c.base">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="thead" type="thead" minOccurs="0"/>
          <xs:element name="c10" type="c10" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="c10">
    <xs:complexContent>
      <xs:extension base="m.c.base">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="thead" type="thead" minOccurs="0"/>
          <xs:element name="c11" type="c11" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="c11">
    <xs:complexContent>
      <xs:extension base="m.c.base">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="thead" type="thead" minOccurs="0"/>
          <xs:element name="c12" type="c12" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="c12">
    <xs:complexContent>
      <xs:extension base="m.c.base"/>
    </xs:complexContent>
  </xs:complexType>
  <!-- RELATIONS -->
  <xs:complexType name="relations">
    <xs:sequence>
      <xs:element name="relation" type="relation" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="base" type="xs:anyURI"/>
  </xs:complexType>
  <xs:complexType name="relation">
    <xs:sequence>
      <xs:element name="relationentry" type="relationentry" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="objectxmlwrap" type="objectxmlwrap" minOccurs="0"/>
      <xs:choice minOccurs="0">
        <xs:element name="datesingle" type="datesingle"/>
        <xs:element name="daterange" type="daterange"/>
        <xs:element name="dateset" type="dateset"/>
      </xs:choice>
      <xs:element name="geogname" type="geogname" minOccurs="0"/>
      <xs:element name="descriptivenote" type="descriptivenote" minOccurs="0"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="relationtype" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="cpfrelation"/>
          <xs:enumeration value="resourcerelation"/>
          <xs:enumeration value="functionrelation"/>
          <xs:enumeration value="otherrelationtype"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="otherrelationtype" type="xs:token"/>
    <xs:attribute name="lastdatetimeverified">
      <xs:simpleType>
        <xs:union>
          <xs:simpleType>
            <xs:restriction base="xs:date">
              <xs:maxInclusive value="2099-12-31"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:gYear">
              <xs:maxInclusive value="2099"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:gYearMonth">
              <xs:maxInclusive value="2099-12"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:dateTime">
              <xs:maxInclusive value="2099-12-31T23:59:59"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="am.simplelink"/>
  </xs:complexType>
  <xs:complexType name="relationentry" mixed="true">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
    <xs:attribute name="localtype" type="xs:token"/>
    <xs:attribute name="transliteration" type="xs:NMTOKEN"/>
  </xs:complexType>
  <xs:complexType name="objectxmlwrap">
    <xs:complexContent>
      <xs:extension base="e.anyname">
        <xs:attributeGroup ref="am.common"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="e.anyname">
    <xs:sequence>
      <xs:any namespace="##other" processContents="lax"/>
    </xs:sequence>
  </xs:complexType>
  <!-- ELEMENT MODELS -->
  <xs:group name="m.blocks">
    <xs:choice>
      <xs:group ref="m.inter"/>
      <xs:element name="p" type="p"/>
    </xs:choice>
  </xs:group>
  <xs:group name="m.inter">
    <xs:choice>
      <xs:group ref="m.inter.noquote"/>
      <xs:element name="blockquote" type="blockquote"/>
    </xs:choice>
  </xs:group>
  <xs:group name="m.inter.noquote">
    <xs:choice>
      <xs:element name="chronlist" type="chronlist"/>
      <xs:element name="list" type="list"/>
      <xs:element name="table" type="table"/>
    </xs:choice>
  </xs:group>
  <xs:group name="m.cOrC01">
    <xs:choice>
      <xs:element name="c" type="c" maxOccurs="unbounded"/>
      <xs:element name="c01" type="c01" maxOccurs="unbounded"/>
    </xs:choice>
  </xs:group>
  <xs:complexType name="m.c.base">
    <xs:sequence>
      <xs:element name="head" type="head" minOccurs="0"/>
      <xs:element name="did" type="did"/>
      <xs:group minOccurs="0" maxOccurs="unbounded" ref="m.desc.base"/>
    </xs:sequence>
    <xs:attributeGroup ref="am.desc.c"/>
  </xs:complexType>
  <xs:group name="m.access">
    <xs:choice>
      <xs:element name="persname" type="persname"/>
      <xs:element name="corpname" type="corpname"/>
      <xs:element name="famname" type="famname"/>
      <xs:element name="geogname" type="geogname"/>
      <xs:element name="name" type="name"/>
      <xs:element name="occupation" type="occupation"/>
      <xs:element name="subject" type="subject"/>
      <xs:element name="genreform" type="genreform"/>
      <xs:element name="function" type="function"/>
      <xs:element name="title" type="title"/>
    </xs:choice>
  </xs:group>
  <xs:complexType name="m.datesingle">
    <xs:complexContent>
      <xs:extension base="m.mixed.basic">
        <xs:attribute name="standarddate" type="xs:token"/>
        <xs:attribute name="notbefore" type="xs:token"/>
        <xs:attribute name="notafter" type="xs:token"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:group name="m.desc.base">
    <xs:choice>
      <xs:element name="accessrestrict" type="accessrestrict"/>
      <xs:element name="accruals" type="accruals"/>
      <xs:element name="acqinfo" type="acqinfo"/>
      <xs:element name="altformavail" type="altformavail"/>
      <xs:element name="appraisal" type="appraisal"/>
      <xs:element name="arrangement" type="arrangement"/>
      <xs:element name="bibliography" type="bibliography"/>
      <xs:element name="bioghist" type="bioghist"/>
      <xs:element name="controlaccess" type="controlaccess"/>
      <xs:element name="custodhist" type="custodhist"/>
      <xs:element name="fileplan" type="fileplan"/>
      <xs:element name="index" type="index"/>
      <xs:element name="legalstatus" type="legalstatus"/>
      <xs:element name="odd" type="odd"/>
      <xs:element name="originalsloc" type="originalsloc"/>
      <xs:element name="otherfindaid" type="otherfindaid"/>
      <xs:element name="phystech" type="phystech"/>
      <xs:element name="prefercite" type="prefercite"/>
      <xs:element name="processinfo" type="processinfo"/>
      <xs:element name="relatedmaterial" type="relatedmaterial"/>
      <xs:element name="relations" type="relations"/>
      <xs:element name="scopecontent" type="scopecontent"/>
      <xs:element name="separatedmaterial" type="separatedmaterial"/>
      <xs:element name="userestrict" type="userestrict"/>
    </xs:choice>
  </xs:group>
  <xs:group name="m.did">
    <xs:choice>
      <xs:element name="abstract" type="abstract"/>
      <xs:element name="container" type="container"/>
      <xs:element name="dao" type="dao"/>
      <xs:element name="daoset" type="daoset"/>
      <xs:element name="didnote" type="didnote"/>
      <xs:element name="langmaterial" type="langmaterial"/>
      <xs:element name="materialspec" type="materialspec"/>
      <xs:element name="origination" type="origination"/>
      <xs:element name="physdescset" type="physdescset"/>
      <xs:element name="physdesc" type="physdesc"/>
      <xs:element name="physdescstructured" type="physdescstructured"/>
      <xs:element name="physloc" type="physloc"/>
      <xs:element name="repository" type="repository"/>
      <xs:element name="unitdate" type="unitdate"/>
      <xs:element name="unitdatestructured" type="unitdatestructured"/>
      <xs:element name="unitid" type="unitid"/>
      <xs:element name="unittitle" type="unittitle"/>
    </xs:choice>
  </xs:group>
  <xs:group name="m.refs">
    <xs:choice>
      <xs:element name="ptr" type="ptr"/>
      <xs:element name="ref" type="ref"/>
    </xs:choice>
  </xs:group>
  <!-- MIXED CONTENT MODELS -->
  <xs:group name="m.mixed.basic.elements">
    <xs:choice>
      <xs:element name="abbr" type="abbr"/>
      <xs:element name="emph" type="emph"/>
      <xs:element name="expan" type="expan"/>
      <xs:element name="foreign" type="foreign"/>
      <xs:element name="lb" type="lb"/>
      <xs:element name="ptr" type="ptr"/>
      <xs:element name="ref" type="ref"/>
    </xs:choice>
  </xs:group>
  <xs:complexType name="m.mixed.basic" mixed="true">
    <xs:group minOccurs="0" maxOccurs="unbounded" ref="m.mixed.basic.elements"/>
  </xs:complexType>
  <xs:group name="m.mixed.basic.date.elements">
    <xs:choice>
      <xs:element name="abbr" type="abbr"/>
      <xs:element name="date" type="date"/>
      <xs:element name="emph" type="emph"/>
      <xs:element name="expan" type="expan"/>
      <xs:element name="foreign" type="foreign"/>
      <xs:element name="lb" type="lb"/>
      <xs:element name="ptr" type="ptr"/>
      <xs:element name="ref" type="ref"/>
    </xs:choice>
  </xs:group>
  <xs:complexType name="m.mixed.basic.date" mixed="true">
    <xs:group minOccurs="0" maxOccurs="unbounded" ref="m.mixed.basic.date.elements"/>
  </xs:complexType>
  <xs:group name="m.mixed.basic.plus.elements">
    <xs:choice>
      <xs:group ref="m.mixed.basic.elements"/>
      <xs:element name="date" type="date"/>
      <xs:element name="footnote" type="footnote"/>
      <xs:element name="num" type="num"/>
      <xs:element name="quote" type="quote"/>
    </xs:choice>
  </xs:group>
  <xs:complexType name="m.mixed.basic.plus.access" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="m.mixed.basic.elements"/>
      <xs:group ref="m.access"/>
      <xs:element name="date" type="date"/>
      <xs:element name="footnote" type="footnote"/>
      <xs:element name="num" type="num"/>
      <xs:element name="quote" type="quote"/>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="m.para.content" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="m.mixed.basic.plus.elements"/>
      <xs:group ref="m.access"/>
      <xs:element name="list" type="list"/>
    </xs:choice>
  </xs:complexType>
  <!-- ATTRIBUTE MODELS -->
  <xs:attributeGroup name="am.internal.ptr">
    <xs:attribute name="target" type="xs:IDREF"/>
    <xs:attribute name="xpointer" type="xs:token"/>
    <xs:attributeGroup ref="am.simplelink"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="am.simplelink">
    <xs:attribute name="href" type="xs:token"/>
    <xs:attribute name="linkrole" type="xs:anyURI"/>
    <xs:attribute name="arcrole" type="xs:anyURI"/>
    <xs:attribute name="linktitle" type="xs:token"/>
    <xs:attribute name="show">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="new"/>
          <xs:enumeration value="replace"/>
          <xs:enumeration value="embed"/>
          <xs:enumeration value="other"/>
          <xs:enumeration value="none"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="actuate">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="onload"/>
          <xs:enumeration value="onrequest"/>
          <xs:enumeration value="other"/>
          <xs:enumeration value="none"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="am.common.empty">
    <xs:attribute name="id" type="xs:ID"/>
    <xs:attribute name="altrender" type="xs:token"/>
    <xs:attribute name="audience">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="external"/>
          <xs:enumeration value="internal"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="am.common">
    <xs:attributeGroup ref="am.common.empty"/>
    <xs:attribute name="lang" type="xs:NMTOKEN"/>
    <xs:attribute name="script" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="am.desc.base">
    <xs:attribute name="otherlevel" type="xs:token"/>
    <xs:attribute name="encodinganalog" type="xs:token"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="am.desc.c">
    <xs:attributeGroup ref="am.common"/>
    <xs:attribute name="base" type="xs:anyURI"/>
    <xs:attribute name="level">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="class"/>
          <xs:enumeration value="collection"/>
          <xs:enumeration value="file"/>
          <xs:enumeration value="fonds"/>
          <xs:enumeration value="item"/>
          <xs:enumeration value="otherlevel"/>
          <xs:enumeration value="recordgrp"/>
          <xs:enumeration value="series"/>
          <xs:enumeration value="subfonds"/>
          <xs:enumeration value="subgrp"/>
          <xs:enumeration value="subseries"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attributeGroup ref="am.desc.base"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="am.access">
    <xs:attributeGroup ref="am.access.no.normal"/>
    <xs:attribute name="normal" type="xs:token"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="am.access.no.normal">
    <xs:attribute name="source" type="xs:token"/>
    <xs:attribute name="rules" type="xs:NMTOKEN"/>
    <xs:attribute name="identifier" type="xs:token"/>
  </xs:attributeGroup>
  <!-- ATTRIBUTE DEFINITIONS -->
  <!-- xlink-modelled attributes -->
  <xs:attributeGroup name="a.link.actuate">
    <xs:attribute name="actuate" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="onload"/>
          <xs:enumeration value="onrequest"/>
          <xs:enumeration value="other"/>
          <xs:enumeration value="none"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.link.arcrole">
    <xs:attribute name="arcrole" use="required" type="xs:anyURI"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.link.href">
    <xs:attribute name="href" use="required" type="xs:token"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.link.role">
    <xs:attribute name="linkrole" use="required" type="xs:anyURI"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.link.show">
    <xs:attribute name="show" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="new"/>
          <xs:enumeration value="replace"/>
          <xs:enumeration value="embed"/>
          <xs:enumeration value="other"/>
          <xs:enumeration value="none"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.link.title">
    <xs:attribute name="linktitle" use="required" type="xs:token"/>
  </xs:attributeGroup>
  <!-- other linking-related attributes -->
  <xs:attributeGroup name="a.base">
    <xs:attribute name="base" use="required" type="xs:anyURI"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.identifier">
    <xs:attribute name="identifier" use="required" type="xs:token"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.parent">
    <xs:attribute name="parent" use="required" type="xs:IDREFS"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.relator">
    <xs:attribute name="relator" use="required" type="xs:token"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.link.xpointer">
    <xs:attribute name="xpointer" use="required" type="xs:token"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.entityref">
    <xs:attribute name="entityref" use="required" type="xs:ENTITY"/>
  </xs:attributeGroup>
  <!-- display attributes -->
  <xs:attributeGroup name="a.align">
    <xs:attribute name="align" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="left"/>
          <xs:enumeration value="right"/>
          <xs:enumeration value="center"/>
          <xs:enumeration value="justify"/>
          <xs:enumeration value="char"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.valign">
    <xs:attribute name="valign" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="top"/>
          <xs:enumeration value="middle"/>
          <xs:enumeration value="bottom"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.render">
    <xs:attribute name="render" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="altrender"/>
          <xs:enumeration value="bold"/>
          <xs:enumeration value="bolddoublequote"/>
          <xs:enumeration value="bolditalic"/>
          <xs:enumeration value="boldsinglequote"/>
          <xs:enumeration value="boldsmcaps"/>
          <xs:enumeration value="boldunderline"/>
          <xs:enumeration value="doublequote"/>
          <xs:enumeration value="italic"/>
          <xs:enumeration value="nonproport"/>
          <xs:enumeration value="singlequote"/>
          <xs:enumeration value="smcaps"/>
          <xs:enumeration value="sub"/>
          <xs:enumeration value="super"/>
          <xs:enumeration value="underline"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.label">
    <xs:attribute name="label" use="required" type="xs:string"/>
  </xs:attributeGroup>
  <!-- date attributes -->
  <xs:attributeGroup name="am.dates.calendar">
    <xs:attribute name="calendar" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="am.dates.era">
    <xs:attribute name="era" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="am.date.normal">
    <xs:attribute name="normal" type="xs:token"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.lastdatetimeverified">
    <xs:attribute name="lastdatetimeverified" use="required">
      <xs:simpleType>
        <xs:union>
          <xs:simpleType>
            <xs:restriction base="xs:date">
              <xs:maxInclusive value="2099-12-31"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:gYear">
              <xs:maxInclusive value="2099"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:gYearMonth">
              <xs:maxInclusive value="2099-12"/>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:dateTime">
              <xs:maxInclusive value="2099-12-31T23:59:59"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.datechar">
    <xs:attribute name="datechar" use="required" type="xs:token"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.certainty">
    <xs:attribute name="certainty" use="required" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.normal">
    <xs:attribute name="normal" use="required" type="xs:token"/>
  </xs:attributeGroup>
  <!-- typing attributes -->
  <xs:attributeGroup name="a.encodinganalog">
    <xs:attribute name="encodinganalog" use="required" type="xs:token"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.level">
    <xs:attribute name="level" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="class"/>
          <xs:enumeration value="collection"/>
          <xs:enumeration value="file"/>
          <xs:enumeration value="fonds"/>
          <xs:enumeration value="item"/>
          <xs:enumeration value="otherlevel"/>
          <xs:enumeration value="recordgrp"/>
          <xs:enumeration value="series"/>
          <xs:enumeration value="subfonds"/>
          <xs:enumeration value="subgrp"/>
          <xs:enumeration value="subseries"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.localtype">
    <xs:attribute name="localtype" use="required" type="xs:token"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.relatedencoding">
    <xs:attribute name="relatedencoding" use="required" type="xs:token"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.unitdatetype">
    <xs:attribute name="unitdatetype">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="bulk"/>
          <xs:enumeration value="inclusive"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <!-- table attributes -->
  <xs:attributeGroup name="a.char">
    <xs:attribute name="char" use="required" type="xs:token"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.charoff">
    <xs:attribute name="charoff" use="required" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.colname">
    <xs:attribute name="colname" use="required" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.colsep">
    <xs:attribute name="colsep" use="required" type="av.boolean"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.rowsep">
    <xs:attribute name="rowsep" use="required" type="av.boolean"/>
  </xs:attributeGroup>
  <!-- other attributes -->
  <xs:attributeGroup name="a.coverage">
    <xs:attribute name="coverage" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="whole"/>
          <xs:enumeration value="part"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="am.countrycode">
    <xs:attribute name="countrycode" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="a.transliteration">
    <xs:attribute name="transliteration" use="required" type="xs:NMTOKEN"/>
  </xs:attributeGroup>
  <!-- ATTRIBUTE VALUE LISTS -->
  <xs:simpleType name="av.boolean">
    <xs:restriction base="xs:token">
      <xs:enumeration value="true"/>
      <xs:enumeration value="false"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
