<?xml version = "1.0" encoding = "UTF-8"?>
<xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
            targetNamespace = "http://www.crossref.org/schema/2.0.5"
            xmlns = "http://www.crossref.org/schema/2.0.5">
	
	<!--Conforms to w3c http://www.w3.org/2001/XMLSchema-->
	
	<!-- =============================================================

                          Introduction

     CrossRef DTD Version 2.0.5
     for Journal, book and conferernce submissions

     Developed for CrossRef (www.crossref.org) by

     Inera Incorporated
     Newton, MA 02460
     http://www.inera.com
     email: info@inera.com

     Last Updated February 25, 2002
     (c) 2001-2002 PILA, Inc. All Rights Reserved.

	For more information on the use of this DTD, see 
	"CrossRef Schema Documentation 2.0.5.pdf". Also available are sample 
	files journal20.xml, book20.xml, conf20.xml. Document analysis and 
	publisher surveys used to build this schema are available on request
	from CrossRef.

     ============================================================= -->
	
	
	<!-- =============================================================

                          File Organization

     This schema is organized into the following sections:
	 1. Shared attributes
	 2. Schema-specific data types
	 3. Header Elements
	 4. Journal elements
	 5. Conference elements
	 6. Book elements
	 7. Elements common to books and conferences
	 8. Elements common to journals, books and conferences

     ============================================================= -->
	
	
	<!-- =============================================================

                          Change History

	Changes record version, author initials, date, and comments

        2.0.5 (CSK) 10/04/02 minor change, fully backward compatible

        Modifed	xrefMonth maxInclusive value to "34" to allow extended definitions

	2.0.5 (BDR) 05/02/02

	Brought into full conformance with Xerces 2.0

	2.0.4 (BDR) 02/25/02

	Changed default name space declaration and brought into full
	conformance with XML Spy 4.3

	2.0.3 (BDR) 01/18/02

	Changed item_data to resource and property where resource is the 
	container for a URI related to a DOI and property elements 
	qualify the resource or collection to which	they're applied.

	Changed data type of DOI from string to xsd:anyURI

	Changed the relationship of item and collection.

	2.0.2 (BDR) 01/15/02

	Tightened validation of ISBN and ISSN instances

	Changed item_number maxLength from 15 to 32, added an
	attribute for item_number_type, and changed publisher_item
	to allow up to three item_number elements.

	Added face markup to title, original_language_title, and subtitle
	elements. This addition allows basic face markup in titles for
	those disciplines (e.g. in genetics, mathematics) where lack of 
	face markup can result in ambiguous interpretation.

	Increased DOI maxLength from 255 to 2048 characters

	Changed the doi_data model from url to collection, item and item_data
	to allow future expansion for multiple resolution. WARNING: the 
	collection model is infinitely recursive and may only be used in 
	accordance with the documentation provide by CrossRef!

	2.0.1 (BDR) 10/25/01

	Added contributors as an optional element to journal_issue to allow
	for cases when a special issue of a journal has editors who may be
	listed when the entire issue is cited

	2.0.0 (BDR) 10/09/01

	First major release of version 2.0.0, based loosely on
	version 0.3 by Howard Ratner.

     ============================================================= -->
	
	
	<!-- =============================================================

                          1. Shared attributes

     ============================================================= -->
	
	<xsd:attributeGroup name = "publication_type.atts">
		<xsd:attribute name = "publication_type" default = "full_text">
			<xsd:simpleType>
				<xsd:restriction base = "xsd:NMTOKEN">
					<xsd:enumeration value = "abstract_only"/>
					<xsd:enumeration value = "full_text"/>
					<xsd:enumeration value = "bibliographic_record"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:attributeGroup>

	<xsd:attributeGroup name = "media_type.atts">
		<xsd:attribute name = "media_type" default = "print">
			<xsd:simpleType>
				<xsd:restriction base = "xsd:NMTOKEN">
					<xsd:enumeration value = "print"/>
					<xsd:enumeration value = "electronic"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:attributeGroup>

	<xsd:attributeGroup name = "contributor.atts">
		<xsd:attribute name = "sequence" use = "required">
			<xsd:simpleType>
				<xsd:restriction base = "xsd:NMTOKEN">
					<xsd:enumeration value = "first"/>
					<xsd:enumeration value = "additional"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>

		<xsd:attribute name = "contributor_role" use = "required">
			<xsd:simpleType>
				<xsd:restriction base = "xsd:NMTOKEN">
					<xsd:enumeration value = "author"/>
					<xsd:enumeration value = "editor"/>
					<xsd:enumeration value = "chair"/>
					<xsd:enumeration value = "translator"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:attributeGroup>

	<!-- lanuage attributes are based on iso 639  -->
	<xsd:attributeGroup name = "language.atts">
		<xsd:attribute name = "language" use = "optional">
			<xsd:simpleType>
				<xsd:restriction base = "xsd:NMTOKEN">
					<xsd:enumeration value = "aa"/>
					<xsd:enumeration value = "ab"/>
					<xsd:enumeration value = "af"/>
					<xsd:enumeration value = "am"/>
					<xsd:enumeration value = "ar"/>
					<xsd:enumeration value = "as"/>
					<xsd:enumeration value = "ay"/>
					<xsd:enumeration value = "az"/>
					<xsd:enumeration value = "ba"/>
					<xsd:enumeration value = "be"/>
					<xsd:enumeration value = "bg"/>
					<xsd:enumeration value = "bh"/>
					<xsd:enumeration value = "bi"/>
					<xsd:enumeration value = "bn"/>
					<xsd:enumeration value = "bo"/>
					<xsd:enumeration value = "br"/>
					<xsd:enumeration value = "ca"/>
					<xsd:enumeration value = "co"/>
					<xsd:enumeration value = "cs"/>
					<xsd:enumeration value = "cy"/>
					<xsd:enumeration value = "da"/>
					<xsd:enumeration value = "de"/>
					<xsd:enumeration value = "dz"/>
					<xsd:enumeration value = "el"/>
					<xsd:enumeration value = "en"/>
					<xsd:enumeration value = "eo"/>
					<xsd:enumeration value = "es"/>
					<xsd:enumeration value = "et"/>
					<xsd:enumeration value = "eu"/>
					<xsd:enumeration value = "fa"/>
					<xsd:enumeration value = "fi"/>
					<xsd:enumeration value = "fj"/>
					<xsd:enumeration value = "fo"/>
					<xsd:enumeration value = "fr"/>
					<xsd:enumeration value = "fy"/>
					<xsd:enumeration value = "ga"/>
					<xsd:enumeration value = "gd"/>
					<xsd:enumeration value = "gl"/>
					<xsd:enumeration value = "gn"/>
					<xsd:enumeration value = "gu"/>
					<xsd:enumeration value = "ha"/>
					<xsd:enumeration value = "he"/>
					<xsd:enumeration value = "hi"/>
					<xsd:enumeration value = "hr"/>
					<xsd:enumeration value = "hu"/>
					<xsd:enumeration value = "hy"/>
					<xsd:enumeration value = "ia"/>
					<xsd:enumeration value = "id"/>
					<xsd:enumeration value = "ie"/>
					<xsd:enumeration value = "ik"/>
					<xsd:enumeration value = "is"/>
					<xsd:enumeration value = "it"/>
					<xsd:enumeration value = "ja"/>
					<xsd:enumeration value = "jw"/>
					<xsd:enumeration value = "ka"/>
					<xsd:enumeration value = "kk"/>
					<xsd:enumeration value = "kl"/>
					<xsd:enumeration value = "km"/>
					<xsd:enumeration value = "kn"/>
					<xsd:enumeration value = "ko"/>
					<xsd:enumeration value = "ks"/>
					<xsd:enumeration value = "ku"/>
					<xsd:enumeration value = "ky"/>
					<xsd:enumeration value = "la"/>
					<xsd:enumeration value = "ln"/>
					<xsd:enumeration value = "lo"/>
					<xsd:enumeration value = "lt"/>
					<xsd:enumeration value = "lv"/>
					<xsd:enumeration value = "mg"/>
					<xsd:enumeration value = "mi"/>
					<xsd:enumeration value = "mk"/>
					<xsd:enumeration value = "ml"/>
					<xsd:enumeration value = "mn"/>
					<xsd:enumeration value = "mo"/>
					<xsd:enumeration value = "mr"/>
					<xsd:enumeration value = "ms"/>
					<xsd:enumeration value = "mt"/>
					<xsd:enumeration value = "my"/>
					<xsd:enumeration value = "na"/>
					<xsd:enumeration value = "ne"/>
					<xsd:enumeration value = "nl"/>
					<xsd:enumeration value = "no"/>
					<xsd:enumeration value = "oc"/>
					<xsd:enumeration value = "om"/>
					<xsd:enumeration value = "or"/>
					<xsd:enumeration value = "pa"/>
					<xsd:enumeration value = "pl"/>
					<xsd:enumeration value = "ps"/>
					<xsd:enumeration value = "pt"/>
					<xsd:enumeration value = "qu"/>
					<xsd:enumeration value = "rm"/>
					<xsd:enumeration value = "rn"/>
					<xsd:enumeration value = "ro"/>
					<xsd:enumeration value = "ru"/>
					<xsd:enumeration value = "rw"/>
					<xsd:enumeration value = "sa"/>
					<xsd:enumeration value = "sd"/>
					<xsd:enumeration value = "sg"/>
					<xsd:enumeration value = "si"/>
					<xsd:enumeration value = "sk"/>
					<xsd:enumeration value = "sl"/>
					<xsd:enumeration value = "sm"/>
					<xsd:enumeration value = "sn"/>
					<xsd:enumeration value = "so"/>
					<xsd:enumeration value = "sq"/>
					<xsd:enumeration value = "sr"/>
					<xsd:enumeration value = "ss"/>
					<xsd:enumeration value = "st"/>
					<xsd:enumeration value = "su"/>
					<xsd:enumeration value = "sv"/>
					<xsd:enumeration value = "sw"/>
					<xsd:enumeration value = "ta"/>
					<xsd:enumeration value = "te"/>
					<xsd:enumeration value = "tg"/>
					<xsd:enumeration value = "th"/>
					<xsd:enumeration value = "ti"/>
					<xsd:enumeration value = "tk"/>
					<xsd:enumeration value = "tl"/>
					<xsd:enumeration value = "tn"/>
					<xsd:enumeration value = "to"/>
					<xsd:enumeration value = "tr"/>
					<xsd:enumeration value = "ts"/>
					<xsd:enumeration value = "tt"/>
					<xsd:enumeration value = "tw"/>
					<xsd:enumeration value = "uk"/>
					<xsd:enumeration value = "ur"/>
					<xsd:enumeration value = "uz"/>
					<xsd:enumeration value = "vi"/>
					<xsd:enumeration value = "vo"/>
					<xsd:enumeration value = "wo"/>
					<xsd:enumeration value = "xh"/>
					<xsd:enumeration value = "yi"/>
					<xsd:enumeration value = "yo"/>
					<xsd:enumeration value = "zh"/>
					<xsd:enumeration value = "zu"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:attributeGroup>
	
	<!-- =============================================================

                     2. Schema-specific data types

     ============================================================= -->

<!-- 
	The following are basic data types for face markup. Face markup that appears 
	in the title, subtitle, and original_language_title elements should be 
	retained when depositing metadata. Face markup in other elements (e.g. small 
	caps in author names) must be dropped. Face markup support includes bold (b), 
	italic (i), underline (u), over-line (ovl), superscript (sup), subscript (sub), 
	small caps (scp), and typewriter text (tt).
 -->
	<xsd:complexType name = "xrefFaces" mixed = "true">
		<xsd:choice minOccurs = "0" maxOccurs = "unbounded">
			<xsd:group ref = "face_markup"/>
		</xsd:choice>
	</xsd:complexType>

	<xsd:group name = "face_markup">
		<xsd:choice>
			<xsd:element ref = "b"/>
			<xsd:element ref = "i"/>
			<xsd:element ref = "u"/>
			<xsd:element ref = "ovl"/>
			<xsd:element ref = "sup"/>
			<xsd:element ref = "sub"/>
			<xsd:element ref = "scp"/>
			<xsd:element ref = "tt"/>
		</xsd:choice>
	</xsd:group>

	<xsd:element name = "b" type = "xrefFaces"/>
	<xsd:element name = "i" type = "xrefFaces"/>
	<xsd:element name = "u" type = "xrefFaces"/>
	<xsd:element name = "ovl" type = "xrefFaces"/>
	<xsd:element name = "sup" type = "xrefFaces"/>
	<xsd:element name = "sub" type = "xrefFaces"/>
	<xsd:element name = "scp" type = "xrefFaces"/>
	<xsd:element name = "tt" type = "xrefFaces"/>

<!-- 
	The following are basic data types for date parts.
 -->
	<xsd:simpleType name = "xrefYear">
		<xsd:restriction base = "xsd:positiveInteger">
			<xsd:maxInclusive value = "2200"/>
			<xsd:minInclusive value = "1400"/>
			<xsd:totalDigits value = "4"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name = "xrefMonth">
		<xsd:restriction base = "xsd:positiveInteger">
			<xsd:maxInclusive value = "34"/>
			<xsd:minInclusive value = "01"/>
			<xsd:totalDigits value = "2"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name = "xrefDay">
		<xsd:restriction base = "xsd:positiveInteger">
			<xsd:maxInclusive value = "31"/>
			<xsd:minInclusive value = "01"/>
			<xsd:totalDigits value = "2"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<!-- =============================================================

                          3. Header elements

     ============================================================= -->
	
	<xsd:element name = "doi_batch">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "head"/>
				<xsd:element ref = "body"/>
			</xsd:sequence>
			<xsd:attribute name = "version" fixed = "2.0.5" type = "xsd:string"/>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name = "head">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "doi_batch_id"/>
				<xsd:element ref = "timestamp"/>
				<xsd:element ref = "depositor"/>
				<xsd:element ref = "registrant"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

<!-- 
	Publisher generated item that identifies the DOI submission batch.
	It will be used as a reference in error messages sent by the MDDB
 -->
	<xsd:element name = "doi_batch_id">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "100"/>
				<xsd:minLength value = "4"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	timestamp is an integer representation of date and time that serves as a 
	version number for the record that is being deposited. Because CrossRef 
	uses it as a version number, the format need not follow any public standard 
	and therefore the publisher can determine the internal format.

	When depositing data, CrossRef will  check to see if a DOI has  been 
	deposited. If the newer data carries a time stamp value that is equal to or 
	greater than the old data based on a strict numeric comparison, the new 
	data will replace the old data. If the new data value is less than the old 
	data value, the new data will not replace the old data.
 -->
	<xsd:element name = "timestamp" type = "xsd:double"/>

	<xsd:element name = "depositor">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "name"/>
				<xsd:element ref = "email_address"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The name placed in this element should match the name under which 
	a depositing organization has registered with CrossRef.
 -->
	<xsd:element name = "name">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "130"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	It is recommended that this address be unique to a position within 
	the organization submitting data (e.g. "doi@...") rather than unique to 
	a person. In this way, the alias for delivery of this mail can be 
	changed as responsibility for submission of DOI data within the 
	organization changes from one person to another.
 -->
	<xsd:element name = "email_address">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:pattern value="[\p{L}\p{N}!/+-_]+(\.[\p{L}\p{N}!/+-_]+)*@[\p{L}\p{N}!/+-_]+(\.[\p{L}_]+)+"/>
				<xsd:maxLength value = "200"/>
				<xsd:minLength value = "6"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	The organization that owns the information being registered
 -->
	<xsd:element name = "registrant">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "255"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

	<xsd:element name = "body">
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref = "journal" maxOccurs = "unbounded"/>
				<xsd:element ref = "book" maxOccurs = "unbounded"/>
				<xsd:element ref = "conference" maxOccurs = "unbounded"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	
	<!-- =============================================================

                          4. Journal elements

     ============================================================= -->
	
	<xsd:element name = "journal">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "journal_metadata"/>
				<xsd:element ref = "journal_issue" minOccurs = "0"/>
				<xsd:element ref = "journal_article" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name = "journal_metadata">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "full_title"/>
				<xsd:element ref = "abbrev_title" maxOccurs = "10"/>
				<xsd:element ref = "issn" maxOccurs = "6"/>
				<xsd:element ref = "coden" minOccurs = "0"/>
				<xsd:element ref = "doi_data" minOccurs = "0"/>
			</xsd:sequence>
			<xsd:attributeGroup ref = "language.atts"/>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The full title by which a journal is commonly known or cited.
	full_title and abbrev_title must both be submitted if they are identical.
 -->
	<xsd:element name = "full_title">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "255"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	The abbreviated title(s) by which a journal is commonly cited.
	It is preferred, but not required, that periods be included after 
	abbreviated words within the title.
 -->
	<xsd:element name = "abbrev_title">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "150"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

	<xsd:element name = "journal_issue">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "contributors" minOccurs = "0"/>
				<xsd:element ref = "publication_date" maxOccurs = "10"/>
				<xsd:element ref = "journal_volume" minOccurs = "0"/>
				<xsd:element ref = "issue" minOccurs = "0"/>
				<xsd:element ref = "special_numbering" minOccurs = "0"/>
				<xsd:element ref = "doi_data" minOccurs = "0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The container for the journal volume and DOI number assigned to an
	entire journal volume.
 -->
	<xsd:element name = "journal_volume">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "volume"/>
				<xsd:element ref = "publisher_item" minOccurs = "0"/>
				<xsd:element ref = "doi_data" minOccurs = "0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

<!-- 
	Only one issue name should be used for the issue. The issue number 
	takes precedence over any other name. For example, if an issue has 
	only a seasonal name, then the season should be listed in issue. 
	However, if an issue has a number and a season, then only the number 
	should be listed in issue, and the season should be placed in month.
	
	Do not include the words "issue", "No" or "number" in this element.
 -->
	<xsd:element name = "issue">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "15"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	Issue level numbering for supplements or special issues.

	Text defining the type of special issue (e.g. "suppl") should 
	be included in this element along with the number.
 -->
	<xsd:element name = "special_numbering">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "15"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	A journal article is required to have title and doi_data. All other 
	information is optional. When registering items that do not have 
	titles, use the appropriate heading from the journal section or 
	table of contents (e.g. "Errata") in title.

	journal_article allows for multiple titles per item. In some cases 
	it may be helpful to submit multiple titles. For example, if an 
	erratum carries title of the original article and the heading "Errata", 
	both should be submitted by using two titles elements.
 -->
	<xsd:element name = "journal_article">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "titles" maxOccurs = "20"/>
				<xsd:element ref = "contributors" minOccurs = "0"/>
				<xsd:element ref = "publication_date" maxOccurs = "10"/>
				<xsd:element ref = "pages" minOccurs = "0"/>
				<xsd:element ref = "publisher_item" minOccurs = "0"/>
				<xsd:element ref = "doi_data"/>
			</xsd:sequence>
			<xsd:attributeGroup ref = "publication_type.atts"/>
			<xsd:attributeGroup ref = "language.atts"/>
		</xsd:complexType>
	</xsd:element>
	
	<!-- =============================================================

                          5. Conference elements

     ============================================================= -->
	
<!-- 
	conference is the core container for information about a single 
	conference and its proceedings.

	If a conference proceedings spans multiple volumes, each volume 
	must be contained in a unique conference element.
 -->
	<xsd:element name = "conference">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "contributors" minOccurs = "0"/>
				<xsd:element ref = "event_metadata"/>
				<xsd:element ref = "proceedings_metadata"/>
				<xsd:element ref = "conference_paper" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

<!-- 
	event_metadata captures information about a conference event. Data 
	about conference proceedings is captured in proceedings_metadata.
 -->
	<xsd:element name = "event_metadata">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "conference_name"/>
				<xsd:element ref = "conference_theme" minOccurs = "0"/>
				<xsd:element ref = "conference_acronym" minOccurs = "0"/>
				<xsd:element ref = "conference_sponsor" minOccurs = "0" maxOccurs = "10"/>
				<xsd:element ref = "conference_number" minOccurs = "0"/>
				<xsd:element ref = "conference_location"/>
				<xsd:element ref = "conference_date"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

<!-- 
	conference_name does not include "Proceedings of". For example, 
	"The 23rd Annual Meeting of the American Society for Information Science" 
	is a correct conference name. It is quite common for a conference name to 
	include the conference number. When the number appears in the name, it 
	should be included in this element.
 -->
	<xsd:element name = "conference_name">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "512"/>
				<xsd:minLength value = "3"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	The theme is the slogan of the conference. It typically changes from 
	conference to conference, e.g. "Knowledge Innovations"
 -->
	<xsd:element name = "conference_theme">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "255"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	The popularly known as or jargon name (e.g. SIGGRAPH for "Special 
	Interest Group on Computer Graphics").

	The conference acronym often includes the year of the conference 
	(e.g. SGML '97) or, less often, the conference number. It is preferred, 
	but not required, that submission of metadata exclude number or year 
	information from the conference acronym. It is better to include such 
	information in conference_number, or conference_date, respectively.
 -->
	<xsd:element name = "conference_acronym">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "127"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>


<!-- 
	The sponsoring organization(s) of a conference. Multiple sponsors may be 
	given if a conference is hosted by more than one organization.
 -->
	<xsd:element name = "conference_sponsor">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "255"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	conference_number should include only the number of the conference without 
	any extra text. For example, "The 24th Annual Conference on" should be 
	tagged as <conference_number>24</conference_number>, and "th" should not be 
	included.

	When a conference is named such that the year of the conference indicates 
	the number (e.g. "SGML 1994"), the year appears in conference_name, 
	conference_date, and conference_number, as in:

	<conference_name>SGML 1994</conference_name>
	<conference_acronym>SGML</conference_acronym>
	<conference_number>1994</conference_number>
	<conference_date start_day="07" start_month="11" start_year="1994" end_day="10"
		 end_month="11" end_year="1994">November 7-10, 1994<conference_date>
 -->
	<xsd:element name = "conference_number">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "15"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	The city and country of the conference. If the conference is in the United 
	States, the appropriate state should also be provided, and the country may 
	be omitted. The specific venue or address within a city (e.g. conference 
	center, hotel, etc.) should not be provided.
 -->
	<xsd:element name = "conference_location">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "255"/>
				<xsd:minLength value = "2"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	conference_date may be used in three ways:

	1. If publishers that do not have parsed date values, they provide just text 
	with the conference dates. The date text should be taken from the proceedings 
	title page. 

	2. If publishers do have parsed date values, they should provide them in the
	 attributes.

	3. If both parsed date values and the date text are available, both should be 
	provided. This is the preferred tagging for conference_date. For example:

	<conference_date start_month="01" start_year="1997" start_day="15"
		end_year="1997" end_month="01" end_day="17">Jan. 15-17, 1997</conference_date>
 -->
	<xsd:simpleType name = "conference_date_t">
		<xsd:restriction base = "xsd:string">
			<xsd:maxLength value = "100"/>
			<xsd:minLength value = "0"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:element name = "conference_date">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "conference_date_t">
					<xsd:attribute name = "start_day" use = "optional" type = "xrefDay"/>
					<xsd:attribute name = "start_month" use = "optional" type = "xrefMonth"/>
					<xsd:attribute name = "start_year" use = "optional" type = "xrefYear"/>
					<xsd:attribute name = "end_day" use = "optional" type = "xrefDay"/>
					<xsd:attribute name = "end_month" use = "optional" type = "xrefMonth"/>
					<xsd:attribute name = "end_year" use = "optional" type = "xrefYear"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>

<!-- 
	proceedings_metadata captures information about conference proceedings. Data about 
	conference events is captured in event_metadata
 -->
	<xsd:element name = "proceedings_metadata">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "proceedings_title"/>
				<xsd:element ref = "proceedings_subject" minOccurs = "0"/>
				<xsd:element ref = "publisher" maxOccurs = "5"/>
				<xsd:element ref = "publication_date" maxOccurs = "10"/>
				<xsd:element ref = "volume" minOccurs = "0"/>
				<xsd:element ref = "series_metadata" minOccurs = "0"/>
				<xsd:element ref = "isbn" minOccurs = "0" maxOccurs = "6"/>
				<xsd:element ref = "issn" minOccurs = "0" maxOccurs = "6"/>
				<xsd:element ref = "coden" minOccurs = "0"/>
				<xsd:element ref = "publisher_item" minOccurs = "0"/>
				<xsd:element ref = "doi_data" minOccurs = "0"/>
			</xsd:sequence>
			<xsd:attributeGroup ref = "language.atts"/>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The title of the conference proceedings as printed on title page of the published 
	conference proceedings.

	In some cases, proceedings_title may differ from conference_name only in that the 
	text "Proceedings of" often appears at the start of the proceedings_title, and it 
	this text should never be included in conference_name. In other cases, the 
	proceedings_title and conference_name may be quite different.
 -->
	<xsd:element name = "proceedings_title">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "511"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	The subject of the printed conference proceedings, e.g. "Computer Graphics" is the 
	subject matter of SIGGRAPH.

	This element is useful because an author may cite a conference paper by the conference 
	subject. For example, "Proceedings of the 1999 ACM Conference on Computer Graphics".
 -->
	<xsd:element name = "proceedings_subject">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "255"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	This element is useful because an author may cite a conference paper by the conference 
	subject. For example, "Proceedings of the 1999 ACM Conference on Computer Graphics"
 -->
	<xsd:element name = "conference_paper">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "contributors"/>
				<xsd:element ref = "titles"/>
				<xsd:element ref = "publication_date" minOccurs = "0" maxOccurs = "10"/>
				<xsd:element ref = "pages" minOccurs = "0"/>
				<xsd:element ref = "publisher_item" minOccurs = "0"/>
				<xsd:element ref = "doi_data"/>
			</xsd:sequence>
			<xsd:attributeGroup ref = "publication_type.atts"/>
			<xsd:attributeGroup ref = "language.atts"/>
		</xsd:complexType>
	</xsd:element>
	
	<!-- =============================================================

                          6. Book elements

     ============================================================= -->
	
<!-- 
	book is the core container for information about a specific book. 
	Books may be in the form of edited books (i.e. a contributed volume with one or 
	more editors), monographs (single-authored works), or reference works (e.g. encyclopedias)

	If a book contains multiple volumes, each volume must be contained in a unique book element.

	You may chose to submit only top level contributors and book_metadata for any book, or 
	you may chose to submit these elements along with metadata for each content_item. A content 
	item is typically any item that is listed on the table of contents such as a chapter, 
	section, etc. It is not necessary to submit metadata for all items listed on the table of 
	contents. You may chose to drop items of lesser significance such as front and back matter.
 -->
	<xsd:element name = "book">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "book_metadata"/>
				<xsd:element ref = "content_item" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
			<xsd:attribute name = "book_type" use = "required">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:NMTOKEN">
						<xsd:enumeration value = "edited_book"/>
						<xsd:enumeration value = "monograph"/>
						<xsd:enumeration value = "reference"/>
						<xsd:enumeration value = "other"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The language of the book should be specified in the book_metadata language attribute. 
	If a book contains items in multiple languages this attribute should be set for the 
	predominant language of the book. Individual items may have their language specified 
	in the content_item. If all content items are the same language, it is only necessary 
	to specify the language of the book in this element.

	The contributors are the author(s) or editor(s) of the entire work. If a multi-volume 
	work has separate editors for each volume, those editors should be specified in this 
	element, and the series editors are listed in the series_metadata contributors.

	Books may have their title specified in one of two ways. For a monograph or single 
	volume work, you should use titles in book_metadata. If a work spans multiple volumes, 
	you should use titles in series_metadata. If a work spans multiple volumes with a unique 
	title for each volume and the whole series, you should specify the series title in 
	titles in series_metadata and the volume title in titles in book_metadata.

	Up to 6 titles or series_metadata may be used per book_metadata, however in practice 
	there should not be more than one series_metadata per book_metadata, and only in rare 
	situations should there be more than one titles per book_metadata.

	volume and edition_number, when given, should include only a number and not additional 
	text such as "volume" or "edition". For example, you should submit "3", not "third edition".

	For a monograph or single volume work, you should use isbn in book_metadata. If a work 
	spans multiple volumes, you should use isbn in series_metadata. If a work spans multiple 
	volumes with a unique ISBN for each volume and the whole series, you should specify the 
	series ISBN in sibn in series_metadata and the volume ISBN in isbn in book_metadata.

	publisher_item, when given, specifies this information for the entire book or volume. 
	This element also appears in content_item.

	doi_data is required for each book or volume that you submit. It is not possible to 
	submit DOI information for individual chapters without assigning a DOI to the entire work.
 -->
	<xsd:element name = "book_metadata">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "contributors"/>
				<xsd:choice maxOccurs = "6">
					<xsd:element ref = "series_metadata"/>
					<xsd:element ref = "titles"/>
				</xsd:choice>
				<xsd:element ref = "volume" minOccurs = "0"/>
				<xsd:element ref = "edition_number" minOccurs = "0"/>
				<xsd:element ref = "publication_date" maxOccurs = "10"/>
				<xsd:element ref = "isbn" minOccurs = "0" maxOccurs = "6"/>
				<xsd:element ref = "issn" minOccurs = "0" maxOccurs = "6"/>
				<xsd:element ref = "publisher"/>
				<xsd:element ref = "publisher_item" minOccurs = "0"/>
				<xsd:element ref = "doi_data"/>
			</xsd:sequence>
			<xsd:attributeGroup ref = "language.atts"/>
		</xsd:complexType>
	</xsd:element>

<!-- 
	edition_number should include only a number and not additional text such as  "edition". 
	For example, you should submit "3", not "third edition" or "3rd edition".
 -->
	<xsd:element name = "edition_number">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "15"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	A content item is typically an item listed on the table of contents for a book. 
	There need not be a one-to-one correlation between content listings and content items 
	(e.g. you may choose not to register front and back matter items listed in the table 
	of contents).

	The language of a content_item only need be set if it differs from the language of book_metadata.

	The component_type indicates the type of content item you are registering.

	level_sequence_number indicates the level of nesting for content items. For example, 
	you may use it to indicate when one content item, such as a chapter, is actually 
	inside another content item, such as a section. Please see the example of a book 
	submission in this documentation for a better understanding of how this item may 
	be used in nested tables of contents.

	Note: Because the CrossRef schema uses a flat model to indicate hierarchically nested 
	content items, there is an implicit assumption that content items will be listed in the 
	CrossRef submission in the same order in which they appear in the table of contents. 
	Please follow this protocol when submitting DOI data.

	contributors for a content_item need not be listed if all items in a book have the same 
	contributors listed in book_metadata. In other words, contributors must be listed for 
	edited books, but they should not be listed for each content_item in a monograph. The 
	exception case is when a content item such as a Preface or Forward for a monograph has 
	a different author from that of the monograph. In this case, the contributors should be given.

	The title of each content item must be submitted. If, however, you are submitted data for 
	a monograph that simply has "Chapter 1", "Chapter 2", etc., you should put this information 
	in component_number, not titles.
 -->
	<xsd:element name = "content_item">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "contributors" minOccurs = "0"/>
				<xsd:element ref = "titles" minOccurs = "0"/>
				<xsd:element ref = "component_number" minOccurs = "0"/>
				<xsd:element ref = "publication_date" minOccurs = "0" maxOccurs = "10"/>
				<xsd:element ref = "pages" minOccurs = "0"/>
				<xsd:element ref = "publisher_item" minOccurs = "0"/>
				<xsd:element ref = "doi_data"/>
			</xsd:sequence>
			<xsd:attribute name = "component_type" use = "required">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:NMTOKEN">
						<xsd:enumeration value = "chapter"/>
						<xsd:enumeration value = "section"/>
						<xsd:enumeration value = "part"/>
						<xsd:enumeration value = "track"/>
						<xsd:enumeration value = "reference_entry"/>
						<xsd:enumeration value = "other"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "level_sequence_number" default = "1">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:positiveInteger">
						<xsd:maxInclusive value = "9"/>
						<xsd:minInclusive value = "1"/>
						<xsd:totalDigits value = "1"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attributeGroup ref = "publication_type.atts"/>
			<xsd:attributeGroup ref = "language.atts"/>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The chapter, section, part, etc. number for a content item in a book.

	Unlike volume and edition_number, component_number should include any additional 
	text that helps identify the type of component. In the example above, the text 
	"Section 8" appeared on the table of contents and it is reflected here. "8" is 
	also acceptable, however the former treatment is preferred.
 -->
	<xsd:element name = "component_number">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "50"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>
	
	<!-- =============================================================

              7. Elements common to books and conferences

     ============================================================= -->
	
<!-- 
	When a book or conference proceedings consists of multiple volumes, 
	series_metadata is used to describe information about the entire set or series.
 -->
	<xsd:element name = "series_metadata">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "titles"/>
				<xsd:element ref = "contributors" minOccurs = "0"/>
				<xsd:element ref = "isbn" minOccurs = "0" maxOccurs = "6"/>
				<xsd:element ref = "series_number" minOccurs = "0"/>
				<xsd:element ref = "publisher_item" minOccurs = "0"/>
				<xsd:element ref = "doi_data" minOccurs = "0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The series number is different from the volume number. A volume number is expected 
	to be the number of a book in a physically printed set and typically appears in sequence. 
	The series number is not tied to the physical manifestation of the printed volume 
	and need not be strictly in sequence.

	This element is available in series_metadata, however it should only be used for 
	conference proceedings and not for books.
 -->
	<xsd:element name = "series_number">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "15"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

	<xsd:element name = "publisher">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "publisher_name"/>
				<xsd:element ref = "publisher_place" minOccurs = "0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

<!-- 
	publisher_place gives the primary city location of the publisher. When the location 
	is a major city (e.g. New York, Amsterdam), no qualifying country or U.S. state need 
	be given. If the city is not a major city, the appropriate country or U.S. state 
	should be added.
 -->
	<xsd:element name = "publisher_place">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "255"/>
				<xsd:minLength value = "2"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	The name of the publisher of a book or conference proceedings.

	publisher_name is the imprint of the publication (what the author will likely cite), 
	not the organization registering the DOI, if for any reason they are different.
 -->
	<xsd:element name = "publisher_name">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "255"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>
	
	<!-- =============================================================

       8. Elements common to journals, books and conferences

     ============================================================= -->
	
	<xsd:element name = "contributors">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:choice maxOccurs = "255">
					<xsd:element ref = "organization"/>
					<xsd:element ref = "person_name"/>
				</xsd:choice>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The name of an organization (as opposed to a person) that contributed to authoring an item
 -->
	<xsd:simpleType name = "organization_t">
		<xsd:restriction base = "xsd:string">
			<xsd:maxLength value = "511"/>
			<xsd:minLength value = "1"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:element name = "organization">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "organization_t">
					<xsd:attributeGroup ref = "contributor.atts"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The name of a person (as opposed to an organization) that contributed to authoring an item
 -->
	<xsd:element name = "person_name">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "given_name" minOccurs = "0"/>
				<xsd:element ref = "surname"/>
				<xsd:element ref = "suffix" minOccurs = "0"/>
			</xsd:sequence>
			<xsd:attributeGroup ref = "contributor.atts"/>
		</xsd:complexType>
	</xsd:element>

<!-- 
	A contributor's given name.

	Do not include titles such as "Dr.", "Prof.", or "President" in given_name. 
	These titles should not be submitted to CrossRef.
 -->
	<xsd:element name = "given_name">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "35"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	The surname of an author or editor.

	If an author is an organization, you should use organization, not surname.

	Author degrees (e.g. M.D., Ph.D.) should not be included in CrossRef submissions.
 -->
	<xsd:element name = "surname">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "35"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	The suffix of an author name, e.g. junior or senior.
 -->
	<xsd:element name = "suffix">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "10"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	The next few elements are used to encode the title of an item.
 -->
	<xsd:element name = "titles">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:sequence>
					<xsd:element ref = "title"/>
					<xsd:element ref = "subtitle" minOccurs = "0"/>
				</xsd:sequence>
				<xsd:sequence minOccurs = "0">
					<xsd:element ref = "original_language_title"/>
					<xsd:element ref = "subtitle" minOccurs = "0"/>
				</xsd:sequence>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name = "title">
		<xsd:complexType mixed = "true">
			<xsd:choice minOccurs = "0" maxOccurs = "unbounded">
				<xsd:group ref = "face_markup"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The title of an item in its original language if this registration is for a translation 
	of a work. When providing the original language of a title, you should set the language 
	attribute.
 -->
	<xsd:element name = "original_language_title">
		<xsd:complexType mixed = "true">
			<xsd:choice minOccurs = "0" maxOccurs = "unbounded">
				<xsd:group ref = "face_markup"/>
			</xsd:choice>
			<xsd:attributeGroup ref = "language.atts"/>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name = "subtitle">
		<xsd:complexType mixed = "true">
			<xsd:choice minOccurs = "0" maxOccurs = "unbounded">
				<xsd:group ref = "face_markup"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The next few elements are used to encode the publication date(s) of an item.
 -->
	<xsd:element name = "publication_date">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "month" minOccurs = "0"/>
				<xsd:element ref = "day" minOccurs = "0"/>
				<xsd:element ref = "year"/>
			</xsd:sequence>
			<xsd:attribute name = "media_type" default = "print">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:NMTOKEN">
						<xsd:enumeration value = "online"/>
						<xsd:enumeration value = "print"/>
						<xsd:enumeration value = "other"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name = "month" type = "xrefMonth"/>
	<xsd:element name = "day" type = "xrefDay"/>
	<xsd:element name = "year" type = "xrefYear"/>

<!-- 
	The next few elements are used to encode the page number(s) of an item.

	When an item has non-contiguous page information, you should capture the first page 
	range in first_page and last_page. Any additional page information should be captured 
	in other_pages.

	You should include commas or hyphens to express discrete pages or page ranges. 
	endash entities should be converted to ASCII hyphens. Spaces should not be included. 
	Note that punctuation should never appear in first_page and last_page.
 -->
	<xsd:element name = "pages">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "first_page"/>
				<xsd:element ref = "last_page" minOccurs = "0"/>
				<xsd:element ref = "other_pages" minOccurs = "0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name = "first_page">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "15"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

	<xsd:element name = "last_page">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "15"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	Used to capture additional page information when items do not encompass contiguous 
	page ranges. For example:

	<pages><first_page>15</first_page><last_page>26</last_page>
		<other_pages>29-35,41-45,49</other_pages></pages>
 -->
	<xsd:element name = "other_pages">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "100"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	doi_data contains the doi, timestamp (version) and corresponding resource
	data for the doi.

	Depositors submitting a single URL for a DOI should do so by providing
	the resource element in doi_data with the URL/URI of the item.

	For further information about use of the collection element, please refer
	to the schema documentation.
 -->
	<xsd:element name = "doi_data">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "doi"/>
				<xsd:element ref = "timestamp" minOccurs = "0"/>
				<xsd:choice>
					<xsd:element ref = "resource"/>
					<xsd:sequence>
						<xsd:element ref = "collection"/>
						<xsd:element ref = "property" minOccurs = "0" maxOccurs = "unbounded"/>
					</xsd:sequence>
				</xsd:choice>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name = "doi">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:anyURI">
				<xsd:maxLength value = "2048"/>
				<xsd:minLength value = "6"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	Depositors submitting a single URI for a DOI should do so by providing
	the resource element in doi_data.
 -->
	<xsd:element name = "resource">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:anyURI">
				<xsd:maxLength value = "2048"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	A collection is a container for one or more items that may be given
	an explicit order to choice context. Collections may be qualified
	within an item by use of property elements.
 -->
	<xsd:element name = "collection">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "item" maxOccurs = "unbounded"/>
			</xsd:sequence>
			<xsd:attribute name = "order" default = "unordered">
				<xsd:simpleType>
					<xsd:restriction base = "xsd:NMTOKEN">
						<xsd:enumeration value = "unordered"/>
						<xsd:enumeration value = "sequenced"/>
						<xsd:enumeration value = "choice"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>

<!-- 
	An item is a container holding a resource or a collection and
	optional property elements that qualify the resource or collection.
 -->
	<xsd:element name = "item">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:choice>
					<xsd:element ref = "resource"/>
					<xsd:element ref = "collection"/>
				</xsd:choice>
				<xsd:element ref = "property" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

<!-- 
	property contains information that qualifies a given  resource or collection.
 -->
	<xsd:simpleType name = "property_t">
		<xsd:restriction base = "xsd:string">
			<xsd:maxLength value = "2048"/>
			<xsd:minLength value = "1"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:element name = "property">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "property_t">
					<xsd:attribute name = "type" use = "required" type = "xsd:string"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The next few elements allow an item to be tied to publisher internal
	identifiers. item_number and identifier are publisher-assigned numbers 
	that uniquely identify the item being registered.

	item_number should be used for identifiers based on publisher internal 
	standards. identifier should be used for identifiers based on a public standard.

	If the item_number and identifier are identical, there is no need to submit 
	both. In this case, the preferred element to use is identifier.
 -->
	<xsd:element name = "publisher_item">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "item_number" minOccurs = "0" maxOccurs = "3"/>
				<xsd:element ref = "identifier" minOccurs = "0" maxOccurs = "10"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

<!-- 
	item_number has an optional attribute, item_number_type. It is assigned by 
	the publisher to provide context for the data in item_number. If item_number 
	contains only a publisher's tracking number, this attribute need not be supplied. 
	If the item_number contains other data, this attribute can be used to define the 
	content.

	Please check with CrossRef before using this attribute to determine if a standard 
	attribute has already been defined for your specific needs
 -->
	<xsd:simpleType name = "item_number_t">
		<xsd:restriction base = "xsd:string">
			<xsd:maxLength value = "32"/>
			<xsd:minLength value = "1"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:element name = "item_number">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "item_number_t">
					<xsd:attribute name = "item_number_type" use = "optional" type = "xsd:string"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:simpleType name = "identifier_t">
		<xsd:restriction base = "xsd:string">
			<xsd:maxLength value = "255"/>
			<xsd:minLength value = "1"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:element name = "identifier">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "identifier_t">
					<xsd:attribute name = "id_type" use = "required">
						<xsd:simpleType>
							<xsd:restriction base = "xsd:NMTOKEN">
								<xsd:enumeration value = "pii"/>
								<xsd:enumeration value = "sici"/>
								<xsd:enumeration value = "doi"/>
								<xsd:enumeration value = "other"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The ISBN must be 10 digits (the last digit may be 'X'), or it must be four 
	groups of digits, separated by a hyphens or spaces. Although not required, 
	the ISBN number should retain spaces or hyphens that appear in the formatted 
	number because they aid in human-readability
 -->
	<xsd:simpleType name = "isbn_t">
		<xsd:restriction base = "xsd:string">
			<xsd:pattern value="\d[\d -]+[\dX]"/>
			<xsd:maxLength value = "13"/>
			<xsd:minLength value = "10"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:element name = "isbn">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "isbn_t">
					<xsd:attributeGroup ref = "media_type.atts"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>

<!-- 
	The ISSN must consist of eight digits (where the last digit may be an X), or 
	it must consist of eight digits in two groups of four with a hyphen between 
	the two groups
 -->
	<xsd:simpleType name = "issn_t">
		<xsd:restriction base = "xsd:string">
			<xsd:pattern value="\d{4}-?\d{3}[\dX]"/>
			<xsd:maxLength value = "9"/>
			<xsd:minLength value = "8"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:element name = "issn">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "issn_t">
					<xsd:attributeGroup ref = "media_type.atts"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name = "coden">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "6"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>

<!-- 
	The volume number of a published journal, or the number of a printed volume 
	for a book or conference proceedings. Do not include the words "Volume" or "vol." 
	in this element.
 -->
	<xsd:element name = "volume">
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:maxLength value = "15"/>
				<xsd:minLength value = "1"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>
</xsd:schema>
