|
From: David R. <dw...@co...> - 2007-06-28 08:38:53
|
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:annotation> <xs:documentation>Name: dpubs_journal_issue.xsd</xs:documentation> <xs:documentation>Version: <xs:appinfo source="xsdVersion">1.5</xs:appinfo></xs:documentation> <xs:documentation>Date: 2007-03-28</xs:documentation> <xs:documentation>Purpose: XML Schema for encoding journal issues (issue and article level metadata) for submission to DPubS.</xs:documentation> <xs:documentation>See dpubs.org for more information</xs:documentation> </xs:annotation> <xs:element name="journal_issue"> <xs:complexType> <xs:sequence> <xs:element ref="header"/> <xs:element ref="issue"/> </xs:sequence> <xs:attribute name="version"/> </xs:complexType> </xs:element> <xs:element name="header"> <xs:complexType> <xs:sequence> <xs:element name="issue_identifier" type="xs:string"/> <xs:element name="timestamp" type="xs:string"/> <xs:element name="journal_id" type="xs:string"/> <xs:element ref="contact"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="contact"> <xs:complexType> <xs:sequence> <xs:element name="contact_name" type="xs:string"/> <xs:element ref="email" /> <xs:element maxOccurs="unbounded" ref="phone" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="email" type="xs:string"/> <xs:element name="phone" type="xs:string"/> <xs:element name="issue"> <xs:complexType> <xs:sequence> <xs:element ref="issue_data"/> <xs:choice maxOccurs="unbounded"> <xs:element ref="div"/> <xs:element ref="record"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="issue_data"> <xs:complexType> <xs:sequence> <xs:element ref="identifiers"/> <xs:element minOccurs="0" ref="series"/> <xs:element ref="journal_vol_number"/> <xs:element minOccurs="0" ref="issue_title"/> <xs:element minOccurs="0" ref="issue_sortList_title"/> <xs:element ref="issue_number"/> <xs:element maxOccurs="unbounded" ref="issue_publ_date"/> <xs:choice minOccurs="0"> <xs:sequence> <xs:element ref="start_page"/> <xs:element ref="end_page"/> </xs:sequence> <xs:element ref="extent"/> </xs:choice> <xs:element minOccurs="0" ref="editorial_board"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="series"> <xs:complexType mixed="true"> <xs:attribute ref="order" use="required"/> </xs:complexType> </xs:element> <xs:attribute name="order"> <xs:simpleType> <xs:restriction base="xs:positiveInteger"> <xs:minInclusive value="1"/> <xs:maxInclusive value="10"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:element name="journal_vol_number" type="xs:string"/> <xs:element name="issue_title" type="xs:string"/> <xs:element name="issue_sortList_title"> <xs:complexType mixed="true"> <xs:attributeGroup ref="attlist.issue_sortList_title"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.issue_sortList_title"> <xs:attribute name="sortKey"/> </xs:attributeGroup> <xs:element name="issue_number"> <xs:complexType mixed="true"> <xs:attributeGroup ref="attlist.issue_number"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.issue_number"> <xs:attribute name="label"/> </xs:attributeGroup> <xs:element name="issue_publ_date"> <xs:complexType mixed="true"> <xs:attributeGroup ref="attlist.issue_publ_date"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.issue_publ_date"> <xs:attribute name="iso8601" use="required"> <xs:simpleType> <xs:union memberTypes="xs:gYear xs:gYearMonth xs:date" /> </xs:simpleType> </xs:attribute> <xs:attribute name="type" default="print"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="print"/> <xs:enumeration value="online"/> <xs:enumeration value="other"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="other"/> </xs:attributeGroup> <xs:element name="start_page" type="xs:string"/> <xs:element name="end_page" type="xs:string"/> <xs:element name="extent" type="xs:string" /> <xs:element name="editorial_board"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="editor"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="editor"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" ref="editor_specialty"/> <xs:element minOccurs="0" ref="role"/> <xs:element ref="name"/> <xs:element minOccurs="0" ref="email"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="web_page"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="affiliation"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="editor_specialty" type="xs:string"/> <xs:element name="role" type="xs:string"/> <xs:element name="name"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" ref="name_prefix"/> <xs:element ref="given_name"/> <xs:element ref="surname"/> <xs:element minOccurs="0" ref="name_suffix"/> <xs:element minOccurs="0" ref="display_name"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="name_prefix" type="xs:string"/> <xs:element name="given_name" type="xs:string"/> <xs:element name="surname" type="xs:string"/> <xs:element name="name_suffix" type="xs:string"/> <xs:element name="display_name" type="xs:string"/> <xs:element name="web_page" type="xs:string"/> <xs:element name="affiliation"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" ref="label"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="prof_title"/> <xs:element minOccurs="0" ref="department"/> <xs:element minOccurs="0" ref="organization"/> <xs:element minOccurs="0" ref="address"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="phone"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="fax"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="label" type="xs:string"/> <xs:element name="prof_title" type="xs:string"/> <xs:element name="department" type="xs:string"/> <xs:element name="organization" type="xs:string"/> <xs:element name="address"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="addressline"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="addressline" type="xs:string"/> <xs:element name="fax" type="xs:string"/> <xs:element name="div"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="record"/> </xs:sequence> <xs:attributeGroup ref="attlist.div"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.div"> <xs:attribute name="label"/> </xs:attributeGroup> <xs:element name="record"> <xs:complexType> <xs:sequence> <xs:element ref="identifiers"/> <xs:element maxOccurs="unbounded" ref="title"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="author"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="contributor"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="abstract"/> <xs:element minOccurs="0" ref="reviewed_items"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="related_item"/> <xs:element minOccurs="0" ref="keywords"/> <xs:element minOccurs="0" ref="subjects"/> <xs:choice minOccurs="0"> <xs:sequence> <xs:element ref="start_page"/> <xs:element ref="end_page"/> </xs:sequence> <xs:element ref="extent"/> </xs:choice> <xs:choice maxOccurs="unbounded"> <xs:element ref="record_filename"/> <xs:element ref="record_filename_set"/> </xs:choice> </xs:sequence> <xs:attributeGroup ref="attlist.record"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.record"> <xs:attribute name="lang" default="EN"/> <xs:attribute name="type" default="article"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="frontmatter"/> <xs:enumeration value="backmatter"/> <xs:enumeration value="article"/> <xs:enumeration value="review"/> <xs:enumeration value="index"/> <xs:enumeration value="other"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="other"/> </xs:attributeGroup> <xs:element name="identifiers"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="identifier"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="identifier"> <xs:complexType mixed="true"> <xs:attributeGroup ref="attlist.identifier"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.identifier"> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="doi"/> <xs:enumeration value="dpubs"/> <xs:enumeration value="jstorURL"/> <xs:enumeration value="pii"/> <xs:enumeration value="sici"/> <xs:enumeration value="url"/> <xs:enumeration value="other"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="other"/> </xs:attributeGroup> <xs:element name="title"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="b"/> <xs:element ref="i"/> <xs:element ref="u"/> <xs:element ref="sub"/> <xs:element ref="sup"/> </xs:choice> <xs:attributeGroup ref="attlist.title"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.title"> <xs:attribute name="lang" default="EN"/> <xs:attribute name="type" default="main"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="main"/> <xs:enumeration value="alternative"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:attributeGroup> <xs:element name="b"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="i"/> <xs:element ref="u"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="i"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="b"/> <xs:element ref="u"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="u"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="b"/> <xs:element ref="i"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="sub"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="b"/> <xs:element ref="i"/> <xs:element ref="u"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="sup"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="b"/> <xs:element ref="i"/> <xs:element ref="u"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="ul"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="li"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="li"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="b"/> <xs:element ref="i"/> <xs:element ref="u"/> <xs:element ref="sub"/> <xs:element ref="sup"/> <xs:element ref="ul"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="author"> <xs:complexType> <xs:sequence> <xs:element ref="name"/> <xs:element minOccurs="0" ref="email"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="web_page"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="affiliation"/> </xs:sequence> <xs:attribute ref="order"/> </xs:complexType> </xs:element> <xs:element name="contributor"> <xs:complexType> <xs:sequence> <xs:element ref="role"/> <xs:element ref="name"/> <xs:element minOccurs="0" ref="email"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="web_page"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="affiliation"/> </xs:sequence> <xs:attributeGroup ref="attlist.contributor"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.contributor"> <xs:attribute name="order"/> </xs:attributeGroup> <xs:element name="abstract"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="p"/> </xs:sequence> <xs:attributeGroup ref="attlist.abstract"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.abstract"> <xs:attribute name="lang" default="EN"/> </xs:attributeGroup> <xs:element name="p"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="b"/> <xs:element ref="i"/> <xs:element ref="u"/> <xs:element ref="sub"/> <xs:element ref="sup"/> <xs:element ref="ul"/> </xs:choice> <xs:attributeGroup ref="attlist.p"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.p"> <xs:attribute name="align"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="left"/> <xs:enumeration value="center"/> <xs:enumeration value="right"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:attributeGroup> <xs:element name="reviewed_items"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="citation"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="citation"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" ref="author"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="contributor"/> <xs:element ref="title"/> <xs:element minOccurs="0" ref="add_desc_data"/> <xs:element minOccurs="0" ref="identifiers"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="add_desc_data" type="xs:string"/> <xs:element name="related_item"> <xs:complexType> <xs:sequence> <xs:element ref="label"/> <xs:element ref="citation"/> <xs:element minOccurs="0" ref="record_filename"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="keywords"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="keyword"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="keyword"> <xs:complexType mixed="true"> <xs:attributeGroup ref="attlist.keyword"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.keyword"> <xs:attribute name="lang" default="EN"/> <xs:attribute name="rank"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="primary"/> <xs:enumeration value="secondary"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:attributeGroup> <xs:element name="subjects"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="subject"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="subject"> <xs:complexType mixed="true"> <xs:attributeGroup ref="attlist.subject"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.subject"> <xs:attribute name="lang" default="EN"/> <xs:attribute name="rank" use="required"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="primary"/> <xs:enumeration value="secondary"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="scheme" use="required"/> </xs:attributeGroup> <xs:element name="record_filename"> <xs:complexType mixed="true"> <xs:attributeGroup ref="attlist.record_filename"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.record_filename"> <xs:attribute name="filetype" use="required"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="pdf"/> <xs:enumeration value="pdfhighres"/> <xs:enumeration value="djvu"/> <xs:enumeration value="ps"/> <xs:enumeration value="doc"/> <xs:enumeration value="html"/> <xs:enumeration value="xhtml"/> <xs:enumeration value="refxml"/> <xs:enumeration value="txt-ocr"/> <xs:enumeration value="mtif"/> <xs:enumeration value="other"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="other"/> <xs:attribute name="anchor"/> </xs:attributeGroup> <xs:element name="record_filename_set"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="set_item"/> </xs:sequence> <xs:attributeGroup ref="attlist.record_filename_set"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.record_filename_set"> <xs:attribute name="setID" use="required"/> </xs:attributeGroup> <xs:element name="set_item"> <xs:complexType> <xs:attributeGroup ref="attlist.set_item"/> </xs:complexType> </xs:element> <xs:attributeGroup name="attlist.set_item"> <xs:attribute name="seq" use="required"/> <xs:attribute name="filename" use="required"/> <xs:attribute name="filetype" use="required"> <xs:simpleType> <xs:restriction base="xs:token"> <xs:enumeration value="tif"/> <xs:enumeration value="mtif"/> <xs:enumeration value="gif"/> <xs:enumeration value="jpg"/> <xs:enumeration value="pdf"/> <xs:enumeration value="ps"/> <xs:enumeration value="txt"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="n"/> <xs:attribute name="ftr"/> </xs:attributeGroup> </xs:schema> |