<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE schema
[
<!ENTITY dcNS "http://purl.org/dc/elements/1.1/">
<!ENTITY dctermsNS "http://purl.org/dc/terms/">
<!ENTITY epubtkNS "http://dev.livingreviews.org/epubtk">
<!ENTITY importNS "/refdb/import">
]>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	    elementFormDefault="qualified"
	    attributeFormDefault="unqualified"
            version="1.0"
            targetNamespace="&epubtkNS;&importNS;"
	    xmlns="&epubtkNS;&importNS;">
  <xsd:annotation>
    <xsd:documentation xml:lang="en">
      input schema for the reference database (refdb) component of the 
      ePublishingToolkit.
      
      this schema will be publicly available from the schema location
         &epubtkNS;&importNS;.xsd
    </xsd:documentation>
  </xsd:annotation>

  <xsd:annotation>
    <xsd:documentation xml:lang="en">
      the schema is split in three schema documents. the first one (this one) 
      defines the fixed components which need to be kept for compatibility with the 
      database structure.
      the other two schema documents can be created dynamically from a reference
      database to validate keywords and journal names against controlled lists of 
      values. the static (publicly available) schema documents do not provide
      for this kind of checking.
      
      the main schema document is also used by import filter applications to
      infer the metadata model. to allow for this, the following interfaces need to
      be provided:
      1) the genre-types have to be declared as 'xsd:element' children (having the 
      genre-name as value of their 'ref' attribute) of a 'xsd:group' with 'name'
      attribute set to 'genre'.
      2) fields have to be declared as xsd:element with a 'name' attribute and an
      'id' attribute with a unique value of the format 'field-*' where * is an 
      integer number.
      the order imposed on the bibData items in records is given by the element's
      'id'-attribute.
      
      note: the format of the id-value needs to correspond to the parser!
      
      3) if a field requires non-default processing, it must provide information
      in a 'epubtk' child of its 'xsd:appinfo' child.
      
      note: a field of type complexTex should be specified with 'keepTex' set to
      'true'.
      
      additional information for the bibtex import filter may be provided in a
      'bibtex' child of the 'epubtk' element. the following attributes are
      recognized:
      - 'field': specifies the bibtex-field name, the value of which should be
      mapped to the xml-field.
      - 'separatorPattern': can be used to specify a patter used to split the 
      bibtex value, if it is mapped to a repeatable field.
      
      note: the field of dataType 'author' is treated completely different; and it
      must be taken care, to declare exactly one field with this dataType!
    </xsd:documentation>
  </xsd:annotation>
  <xsd:include schemaLocation="keywords.xsd"/>
  <xsd:include schemaLocation="journals.xsd"/>
  
  <xsd:element name="RefList">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	bibliographical records are imported as lists of references
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="record"  minOccurs="0"  maxOccurs="unbounded"/>
      </xsd:sequence>
      <xsd:attribute name="pubNo"         use="required" type="pubNoType"/>
      <xsd:attribute name="source"        use="required" type="xsd:string"/>
      <xsd:attribute name="created"       use="required" type="xsd:dateTime"/>
      <xsd:attribute name="schemaVersion" use="required" type="xsd:decimal"/>
      <xsd:attribute name="journal"       use="optional" type="xsd:string"/>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:element name="record" >
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	the main structure 'record' may contain one of the genre elements defined in
	one of the included schema documents. genre elements themselves contain
	various bibData elements. 
	
	the attribute 'id' is used to store the citation key. a group with name 
	"genre" has to be provided by one of the included schema documents.
	the attribute 'ord' is used to store the order of records within the reference
	list.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<!-- genre-interface needs to be implemented by ref_md.xsd -->
	<xsd:group ref="genre" />
      </xsd:sequence>
      <xsd:attribute name="id" use="required" type="xsd:string"/>
      <xsd:attribute name="ord" use="required" type="xsd:positiveInteger"/>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:group name="genre">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	the 'genre' group is the container for the different entry types in the 
	reference database.
	
	note: this group implements the required interface between the schema's main 
	document and the definition of bibliographic records.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element ref="article"/>
      <xsd:element ref="book"/>
      <xsd:element ref="inbook"/>   
      <xsd:element ref="incollection"/>               
      <xsd:element ref="inproceedings"/>
      <xsd:element ref="misc"/>
      <xsd:element ref="online"/>
      <xsd:element ref="preprint"/>
      <xsd:element ref="proceedings"/>
      <xsd:element ref="techreport"/>
      <xsd:element ref="thesis"/>
      <xsd:element ref="unpublished"/>
      <xsd:element ref="newspaperarticle"/>
    </xsd:choice>
  </xsd:group>
  
  <xsd:simpleType name="pubNoType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	this type implements a required interface to the schema's main document.
	
	the pattern matches 'Living Reviews in Relativity'-type article identifiers.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[a-z]+-[0-9]+(-[1-9][0-9]*)?" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <!--
    content models for the different genres
  -->
  <xsd:annotation>
    <xsd:documentation xml:lang="en">
      notes: 
      1) imposing an order on the elements in the content of records is somewhat
      artificial. we do it to make the schema less complex and because of the
      non-standard implementation of the 'xsd:all' element in the schema validator
      we want to use. once the validator handles the 'xsd:all' element correctly,
      all bibData elements which can occur only at most once may be grouped within
      an 'xsd:all' element to allow their appearance in any order.
      
      but as complying schema instances are assumed to be created automatically this
      order is just a question of implementation in the import filter applications.
      
      2) the "format" bibData-element specifies a category within a genre. its valid
      values are defined per genre. depending on the genre, the categorisation by 
      'format' may be based on different criteria; hence may have to be mapped to 
      different dc-elements.
    </xsd:documentation>
  </xsd:annotation>
  
  <xsd:element name="article">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	Article published in a journal, magazine. Includes also article published in 
	e-journal.
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
	<risMapping name="JOUR"/>
	<replaces>
	  <genre>article</genre>
	  <genre>inejournal</genre>
	</replaces>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="author"             minOccurs="1" maxOccurs="unbounded"/>
	<xsd:element ref="title"/>
	<xsd:element ref="year"/>
	<xsd:element ref="month"              minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="journal"/>
	<xsd:element ref="publisher"          minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="address"            minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="volume"/>
	<xsd:element ref="pages"              minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="id"                 minOccurs="0" maxOccurs="1"/>
	<xsd:group   ref="urlAndCitedOrOnlineversionAndCited" minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="number"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded"/>
	<xsd:element name="format" type="articleFormatType"/>
	<xsd:element ref="doi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="eprint"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="adsurl"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="archiveprefix"      minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="primaryclass"       minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="isi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="numpages"           minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="collaboration"      minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="articleFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation by media of dissemination
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="print"/>
      <xsd:enumeration value="electronic"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="book">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	Book, including an edited book.
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
	<risMapping name="BOOK"/>
	<replaces>
	  <genre>book</genre>
	</replaces>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:group ref="editorOrAuthor"/>
	<xsd:element ref="title" />
	<xsd:element ref="year" />
	<xsd:element ref="publisher" />
	<xsd:element ref="address" />
	<xsd:element ref="volume"             minOccurs="0" maxOccurs="1" />
	<xsd:group   ref="urlAndCitedOrOnlineversionAndCited" minOccurs="0" maxOccurs="1" />
	<xsd:element ref="edition"            minOccurs="0" maxOccurs="1" />
	<xsd:element ref="series"             minOccurs="0" maxOccurs="1" />
	<xsd:element ref="number"             minOccurs="0" maxOccurs="1" />
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded" />
	<xsd:element name="format" type="bookFormatType" />
	<xsd:element ref="doi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="eprint"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="adsurl"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="archiveprefix"      minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="primaryclass"       minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="isi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="gbs_id"             minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="bookFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation by media of dissemination; 
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="print" />
      <xsd:enumeration value="electronic" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="inbook">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	Specific chapter of book (which is not a collection of articles).
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
	<risMapping name="CHAP"/>
	<replaces>
	  <genre>inbook</genre>
	</replaces>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="author"             minOccurs="1" maxOccurs="unbounded" />
	<xsd:element ref="title"              minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="booktitle" />
	<xsd:element ref="year" />
	<xsd:element ref="publisher" />
	<xsd:element ref="address" />
	<xsd:element ref="volume"             minOccurs="0" maxOccurs="1"/>
	<xsd:group   ref="pagesOrId"          minOccurs="0" maxOccurs="1"/>
	<xsd:group   ref="urlAndCitedOrOnlineversionAndCited" minOccurs="0" maxOccurs="1" />
	<xsd:element ref="edition"            minOccurs="0" maxOccurs="1" />
	<xsd:element ref="series"             minOccurs="0" maxOccurs="1" />
	<xsd:element ref="chapter"            minOccurs="0" maxOccurs="1" />
	<xsd:element ref="number"             minOccurs="0" maxOccurs="1" />
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded" />
	<xsd:element name="format" type="inbookFormatType" />
	<xsd:element ref="doi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="eprint"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="adsurl"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="archiveprefix"      minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="primaryclass"       minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="isi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="gbs_id"             minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="inbookFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation by media of dissemination
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="print" />
      <xsd:enumeration value="electronic" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="incollection">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	Part of collection (complete collection however cited as book)
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
	<risMapping name="CHAP"/>
	<replaces>
	  <genre>inbook</genre>
	</replaces>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="author"             minOccurs="1" maxOccurs="unbounded" />
	<xsd:element ref="editor" />
	<xsd:element ref="title" />
	<xsd:element ref="booktitle" />
	<xsd:element ref="year" />
	<xsd:element ref="publisher" />
	<xsd:element ref="address" />
	<xsd:element ref="volume"             minOccurs="0" maxOccurs="1"/>
	<xsd:group   ref="pagesOrId"          minOccurs="0" maxOccurs="1"/>
	<xsd:group   ref="urlAndCitedOrOnlineversionAndCited" minOccurs="0" maxOccurs="1" />
	<xsd:element ref="edition"            minOccurs="0" maxOccurs="1" />
	<xsd:element ref="series"             minOccurs="0" maxOccurs="1" />
	<xsd:element ref="chapter"            minOccurs="0" maxOccurs="1" />
	<xsd:element ref="number"             minOccurs="0" maxOccurs="1" />
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded" />
	<xsd:element name="format" type="incollectionFormatType" />
	<xsd:element ref="doi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="eprint"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="adsurl"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="archiveprefix"      minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="primaryclass"       minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="isi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="gbs_id"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="collaboration"      minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="incollectionFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation by media of dissemination
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="print" />
      <xsd:enumeration value="electronic" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="inproceedings">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	Paper published in conference proceedings.
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
	<risMapping name="CONF"/>
	<replaces>
	  <genre>inproceedings</genre>
	</replaces>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="author"             minOccurs="1" maxOccurs="unbounded" />
	<xsd:element ref="editor" />
	<xsd:element ref="title" />
	<xsd:element ref="booktitle" />
	<xsd:element ref="conference"         minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="year" />
	<xsd:element ref="publisher" />
	<xsd:element ref="address" />
	<xsd:element ref="volume"             minOccurs="0" maxOccurs="1"/>
	<xsd:group   ref="pagesOrId"          minOccurs="0" maxOccurs="1"/>
	<xsd:group   ref="urlAndCitedOrOnlineversionAndCited" minOccurs="0" maxOccurs="1" />
	<xsd:element ref="edition"            minOccurs="0" maxOccurs="1" />
	<xsd:element ref="series"             minOccurs="0" maxOccurs="1" />
	<xsd:element ref="number"             minOccurs="0" maxOccurs="1" />
	<xsd:element ref="organization"       minOccurs="0" maxOccurs="1" />
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded" />
	<xsd:element name="format" type="inproceedingsFormatType" />
	<xsd:element ref="doi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="eprint"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="adsurl"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="archiveprefix"      minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="primaryclass"       minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="isi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="gbs_id"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="collaboration"      minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="inproceedingsFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation by media of dissemination
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="print" />
      <xsd:enumeration value="electronic" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="misc">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	Catchall category, including e.g. Private communication, but also CD-ROMs, 
	etc., if online version is availabe - genre online.
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
	<risMapping name="GEN"/>
	<replaces>
	  <genre>misc</genre>
	</replaces>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="author"             minOccurs="0" maxOccurs="unbounded" />
	<xsd:element ref="title"              minOccurs="0" maxOccurs="1" />
	<xsd:element ref="year"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="month"              minOccurs="0" maxOccurs="1" />
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded" />
	<xsd:element name="format" type="miscFormatType" />
	<xsd:element ref="adsurl"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="collaboration"      minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="miscFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation as appropriate ('catchall' genre!)
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="personal communication"/>
      <xsd:enumeration value="data medium"/>
      <xsd:enumeration value="unknown"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="online">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	Resources available online: entire www, ftp or gopher site, animations, and 
	computer software. Does not include articles published on preprint server ->
	extra genre, does not include articles published in e journals - those are 
	articles.
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
	<risMapping name="ELEC"/>
	<replaces>
	  <genre>online</genre>
	  <genre>lr_url</genre>
	</replaces>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="author"             minOccurs="0" maxOccurs="unbounded" />
	<xsd:element ref="title" />
	<xsd:element ref="conference"         minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="year"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="month"              minOccurs="0" maxOccurs="1" />
	<xsd:element ref="publisher" />
	<xsd:element ref="url" />
	<xsd:element ref="cited" />
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded" />
	<xsd:element name="format" type="onlineFormatType" />
	<xsd:element ref="doi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="collaboration"      minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="onlineFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation by type of serving web site; maps to dc:type
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="conference homepage" />
      <xsd:enumeration value="image" />
      <xsd:enumeration value="institutional homepage" />
      <xsd:enumeration value="institutional repository" />
      <xsd:enumeration value="lecture notes" />
      <xsd:enumeration value="personal homepage" />
      <xsd:enumeration value="project homepage" />
      <xsd:enumeration value="web interface to database" />
      <xsd:enumeration value="other" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="preprint">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	article available on preprint server, not yet published
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
	<risMapping name="ELEC"/>
	<replaces>
	  <genre>online</genre>
	</replaces>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="author"             minOccurs="1" maxOccurs="unbounded" />
	<xsd:element ref="title" />
	<xsd:element ref="year" />
	<xsd:element ref="month"              minOccurs="0" maxOccurs="1" />
	<xsd:element ref="id"                 minOccurs="0" maxOccurs="1" />
	<xsd:group   ref="urlAndCitedOrOnlineversionAndCited" minOccurs="0" maxOccurs="1" />
	<xsd:element ref="publishedversion"   minOccurs="0" maxOccurs="1" />
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded" />
	<xsd:element name="format" type="preprintFormatType" />
	<xsd:element ref="doi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="eprint"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="adsurl"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="archiveprefix"      minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="primaryclass"       minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="isi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="collaboration"      minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="preprintFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation by preprint server
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="arxiv" />
      <xsd:enumeration value="cern" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="proceedings">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	Conference proceedings.
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
	<risMapping name="CONF"/>
	<replaces>
	  <genre>proceedings</genre>
	</replaces>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="editor" />
	<xsd:element ref="title" />
	<xsd:element ref="conference"         minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="year" />
	<xsd:element ref="publisher" />
	<xsd:element ref="address" />
	<xsd:element ref="volume"             minOccurs="0" maxOccurs="1" />
	<xsd:group   ref="urlAndCitedOrOnlineversionAndCited" minOccurs="0" maxOccurs="1" />
	<xsd:element ref="edition"            minOccurs="0" maxOccurs="1" />
	<xsd:element ref="series"             minOccurs="0" maxOccurs="1" />
	<xsd:element ref="number"             minOccurs="0" maxOccurs="1" />
	<xsd:element ref="organization"       minOccurs="0" maxOccurs="1" />
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded" />
	<xsd:element name="format" type="proceedingsFormatType" />
	<xsd:element ref="doi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="eprint"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="adsurl"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="archiveprefix"      minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="primaryclass"       minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="isi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="gbs_id"             minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="proceedingsFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation by media of dissemination; maps to dc:format
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="print" />
      <xsd:enumeration value="electronic" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="techreport">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	Technical reports or working papers (if part of a series with an ISSN, they are regarded as journal articles).
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
	<risMapping name="RPRT"/>
	<replaces>
	  <genre>techreport</genre>
	</replaces>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="author"             minOccurs="0" maxOccurs="unbounded" />
	<xsd:element ref="editor"             minOccurs="0" maxOccurs="unbounded" />
	<xsd:element ref="title" />
	<xsd:element ref="year" />
	<xsd:element ref="month"              minOccurs="0" maxOccurs="1" />
	<xsd:element ref="publisher" />
	<xsd:element ref="address" />
	<xsd:element ref="id"                 minOccurs="0" maxOccurs="1" />
	<xsd:group   ref="urlAndCitedOrOnlineversionAndCited" minOccurs="0" maxOccurs="1" />
	<xsd:element ref="edition"            minOccurs="0" maxOccurs="1" />
	<xsd:element ref="series"             minOccurs="0" maxOccurs="1" />
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded" />
	<xsd:element name="format" type="techreportFormatType" />
	<xsd:element ref="doi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="eprint"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="adsurl"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="archiveprefix"      minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="primaryclass"       minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="isi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="gbs_id"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="collaboration"      minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="techreportFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation by media of dissemination
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="print" />
      <xsd:enumeration value="electronic" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="thesis">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	dissertation written to obtain a degree
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
	<risMapping name="THES"/>
	<replaces>
	  <genre>mastersthesis</genre>
	  <genre>phdthesis</genre>
	</replaces>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="author"             minOccurs="1" maxOccurs="unbounded" />
	<xsd:element ref="title" />
	<xsd:element ref="year" />
	<xsd:element ref="month"              minOccurs="0" maxOccurs="1" />
	<xsd:element ref="school" />
	<xsd:element ref="address" />
	<xsd:group   ref="urlAndCitedOrOnlineversionAndCited" minOccurs="0" maxOccurs="1" />
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded" />
	<xsd:element name="format" type="thesisFormatType" />
	<xsd:element ref="doi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="eprint"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="adsurl"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="archiveprefix"      minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="primaryclass"       minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="isi"                minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="thesisFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation by corresponding degree
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="licentiate" />
      <xsd:enumeration value="ba" />
      <xsd:enumeration value="ma" />
      <xsd:enumeration value="msc" />
      <xsd:enumeration value="phd" />
      <xsd:enumeration value="dipl" />
      <xsd:enumeration value="habil" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="unpublished">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	Print articles not formally published. Includes conference papers, articles in preparation, or 
	submitted for publication, or accepted for publication. Does not include 
	articles ot this kind that are already published on preprint server or are 
	elsewhere available online.
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
	<risMapping name="UNPB"/>
	<replaces>
	  <genre>unpublished</genre>
	</replaces>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="author"             minOccurs="1" maxOccurs="unbounded" />
	<xsd:element ref="title" />
	<xsd:element ref="booktitle"          minOccurs="0" maxOccurs="1" />
	<xsd:element ref="conference"         minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="year"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="month"              minOccurs="0" maxOccurs="1" />
	<xsd:element ref="journal"            minOccurs="0" maxOccurs="1" />
	<xsd:element ref="id"                 minOccurs="0" maxOccurs="1" />
	<xsd:group   ref="urlAndCitedOrOnlineversionAndCited" minOccurs="0" maxOccurs="1" />
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded" />
	<xsd:element name="format" type="unpublishedFormatType" />
	<xsd:element ref="eprint"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="adsurl"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="archiveprefix"      minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="primaryclass"       minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="isi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="collaboration"      minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="unpublishedFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation by status of publication process
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="submitted"/>
      <xsd:enumeration value="accepted"/>
      <xsd:enumeration value="in review"/>
      <xsd:enumeration value="in preparation"/>
      <xsd:enumeration value="conference paper"/>
      <xsd:enumeration value="unknown"/>
      <xsd:enumeration value="unpublished manuscript"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:element name="newspaperarticle">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	article published in (possibly the online version of) a newspaper 
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="type" namespace="&dcNS;"/>
	<risMapping name="NEWS"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
	<xsd:element ref="author"             minOccurs="0" maxOccurs="unbounded" />
	<xsd:element ref="title"/>
	<xsd:element ref="year"/>
	<xsd:element ref="month"/>
	<xsd:element ref="day"/>
	<xsd:element ref="newspaper"/>
	<xsd:group   ref="pagesOrId"          minOccurs="0" maxOccurs="1"/>
	<xsd:group   ref="urlAndCitedOrOnlineversionAndCited" minOccurs="0" maxOccurs="1" />
	<xsd:element ref="note"               minOccurs="0" maxOccurs="1" />
	<xsd:element ref="keyword"            minOccurs="1" maxOccurs="unbounded" />
	<xsd:element name="format" type="newspaperarticleFormatType" />
	<xsd:element ref="doi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="eprint"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="adsurl"             minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="archiveprefix"      minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="primaryclass"       minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="isi"                minOccurs="0" maxOccurs="1"/>
	<xsd:element ref="collaboration"      minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:simpleType name="newspaperarticleFormatType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	categorisation by media of dissemination
      </xsd:documentation>
      <xsd:appinfo>
	<dcMapping name="format" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="print" />
      <xsd:enumeration value="electronic" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <!-- 
    bibData items 
  -->
  <xsd:annotation>
    <xsd:documentation xml:lang="en">
      the single bibData items are defined independent of the genres - although some
      may be used exclusively for one genre.

      bibData elements may have the following attributes:
      @tex (xsd:string): attribute to store tex-source of element content.
      @scope (scopeType): used to distinguish general bibliographic data from 
                          citation-context specific data.
      @dataType (dataTypeType): controls how the data will be interpreted.
    </xsd:documentation>
  </xsd:annotation>
  
  <!-- groups of bibData elements -->
  <xsd:annotation>
    <xsd:documentation xml:lang="en">
      grouping is used to model exclusive-or relations between different bibData
      elements.
      due to the global order we impose on the fields, a group is restricted to
      neighbouring fields (with respect to the genre).
    </xsd:documentation>
  </xsd:annotation>
  
  <xsd:group name="editorOrAuthor">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
    </xsd:annotation>
    
    <xsd:choice>   
      <xsd:element ref="editor" />
      <xsd:element ref="author" minOccurs="1" maxOccurs="unbounded" />
    </xsd:choice>
  </xsd:group>
  
  <xsd:group name="pagesOrId">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>   
      <xsd:element ref="pages" />
      <xsd:element ref="id" />
    </xsd:choice>
  </xsd:group>
  
  <xsd:group name="urlAndCitedOrOnlineversionAndCited">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>   
      <xsd:sequence>  
	<xsd:element ref="url" />
	<xsd:element ref="cited" />
      </xsd:sequence>
      <xsd:sequence>  
	<xsd:element ref="onlineversion" />
	<xsd:element ref="cited" />
      </xsd:sequence>
    </xsd:choice>
  </xsd:group>
  
  <!-- 
    bibData elements 
  -->
  <xsd:element name="author" id="field-1">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	name of a person, 'et al.', or name of (Collaboration).
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="author" docSpecific="false" repeatable="true" keepTex="false">
	  <bibtex separatorDefault=" and "/>
	</epubtk>
	<dcMapping name="creator" namespace="&dcNS;"/>
	<risMapping name="AU"/>
      </xsd:appinfo>
      <xsd:appinfo>
	author names follow the pattern:
	(lastname),+[(\s+(initial)\.)+[\-(initial)\.]]
	examples: 
	Forkel, R.
	Forkel, R.-R.
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:simpleContent>
	<xsd:extension base="xsd:string">
	  <xsd:attribute name="type" type="authorTypeType" use="required" />
	</xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:element name="editor" type="xsd:string" id="field-2">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="creator" namespace="&dcNS;"/>
	<risMapping name="ED"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="title" type="complexTex" id="field-3">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="title" docSpecific="false" repeatable="false" keepTex="true"/>
	<dcMapping name="title" namespace="&dcNS;"/>
	<risMapping name="TI"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="booktitle" type="complexTex" id="field-4">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="title" docSpecific="false" repeatable="false" keepTex="true"/>
	<dcMapping name="source" namespace="&dcNS;"/>
	<risMapping name="BT"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="conference" type="complexTex" id="field-5">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	field for (in)proceedings to provide additional data about the conference 
	they are related to.
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="title" docSpecific="false" repeatable="false" keepTex="true"/>
	<dcMapping name="source" namespace="&dcNS;"/>
	<risMapping name="T3"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="year" type="yearType" id="field-6">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="date" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="month" type="monthType" id="field-7"> 
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="date" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="day" type="dayType" id="field-8">  
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="date" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="journal" type="journalType" id="field-9">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	note: journalType will be defined in the dynamically created schema 
	document journals.xsd
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="source" namespace="&dcNS;"/>
	<risMapping name="JA"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="newspaper" type="xsd:string" id="field-10">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="source" namespace="&dcNS;"/>
	<risMapping name="JO"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="publisher" type="complexTex" id="field-11">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="true"/>
	<dcMapping name="publisher" namespace="&dcNS;"/>
	<risMapping name="PB"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="school" type="complexTex" id="field-12">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="true"/>
	<dcMapping name="publisher" namespace="&dcNS;"/>
	<risMapping name="PB"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="address" type="complexTex" id="field-13"> 
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="true"/>
	<dcMapping name="publisher" namespace="&dcNS;"/>
	<risMapping name="CY"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="volume" type="volumeType" id="field-14"> 
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
	<risMapping name="VL"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="pages" type="pagesType" id="field-15">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="pages" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="id" type="xsd:string" id="field-16">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	field to store identifiers (which cannot be described in the traditional, i.e.
	print-related way by pages, volume, etc.)
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
	<risMapping name="ID"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="url" type="xsd:anyURI" id="field-17">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	url for online resources 
	note: see also onlineversion!
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="url" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
	<risMapping name="L2"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <!-- doc-specific! needs dataType attribute! -->
  <xsd:element name="onlineversion" id="field-18">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	url which points to a related online resource for a non-online reference
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="url" docSpecific="true" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:simpleContent>
	<xsd:extension base="xsd:anyURI">
	  <xsd:attribute name="scope" type="scopeType"/>
	</xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>
  
  <!-- doc-specific! needs dataType attribute! -->
  <xsd:element name="cited" id="field-19"> 
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	specifies the date at which a cited online-resource was accessed by the author
	citing it.
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="date" docSpecific="true" repeatable="false" keepTex="false"/>
	<dcMapping name="valid" namespace="&dctermsNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:simpleContent>
	<xsd:extension base="xsd:date">
	  <xsd:attribute name="scope" type="scopeType"/>
	</xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:element name="publishedversion" type="complexTex" id="field-20">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	to store information about a related published version of a preprint
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="true"/>
	<dcMapping name="hasVersion" namespace="&dctermsNS;"/>
	<risMapping name="L3"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="edition" type="editionType" id="field-21">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="series" type="complexTex" id="field-22">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="true"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="chapter" type="chapterType" id="field-23">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="number" type="numberType" id="field-24"> 
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
	<risMapping name="IS"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="organization" type="complexTex" id="field-25"> 
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="true"/>
	<dcMapping name="publisher" namespace="&dcNS;"/>
	<risMapping name="PB"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <!-- doc-specific! dataType attribute provided by complexTex! -->
  <xsd:element name="note" type="complexTex" id="field-26">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="true" repeatable="false" keepTex="true"/>
	<dcMapping name="description" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <!-- doc-specific! dataType attribute! -->
  <xsd:element name="keyword" id="field-27">
    <xsd:annotation>
    <xsd:documentation xml:lang="en">
      note: keywordType will be defined in the dynamically created schema 
      document keywords.xsd
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="true" repeatable="true" keepTex="false">
	  <bibtex field="keywords" separatorDefault=", " separatorPattern="\s*,\s*"/>
	</epubtk>
	<dcMapping name="subject" namespace="&dcNS;"/>
	<risMapping name="KW"/>
      </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:simpleContent>
	<xsd:extension base="keywordType">
	  <xsd:attribute name="scope" type="scopeType"/>
	</xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>
  
  <xsd:element name="format" id="field-28">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	the actual format elements need to be defined per genre, because their valid
	values vary. the declaration here is to provide documentation and application
	info!
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="type" namespace="&dcNS;"/>
	<dcMapping>dc:subject</dcMapping>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="doi" type="xsd:string" id="field-29">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	a digital object identifier
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
	<risMapping name="ID"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="eprint" type="xsd:string" id="field-30">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	preprint id of e.g. arXiv
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
	<risMapping name="ID"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="adsurl" type="xsd:string" id="field-31">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	ADS record url
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="url" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
	<risMapping name="ID"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="isi" type="xsd:string" id="field-32">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	ISI identifier
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
	<risMapping name="ID"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="archiveprefix" type="xsd:string" id="field-33">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	archive identifier
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
	<risMapping name="ID"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="primaryclass" type="xsd:string" id="field-34">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	arXiv identifier
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
	<risMapping name="ID"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="gbs_id" type="xsd:string" id="field-35">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        google books identifier
      </xsd:documentation>
      <xsd:appinfo>
        <epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="false"/>
        <dcMapping name="identifier" namespace="&dcNS;"/>
        <risMapping name="ID"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="numpages" type="pagesType" id="field-36">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	total number of pages
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="pages" docSpecific="false" repeatable="false" keepTex="false"/>
	<dcMapping name="identifier" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="collaboration" type="complexTex" id="field-37">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	additional field for team of authors or project group
      </xsd:documentation>
      <xsd:appinfo>
	<epubtk dataType="u" docSpecific="false" repeatable="false" keepTex="true"/>
	<dcMapping name="creator" namespace="&dcNS;"/>
      </xsd:appinfo>
    </xsd:annotation>
  </xsd:element>

  <!--
    types for bib data elements 
  -->
  <xsd:complexType name="complexTex" mixed="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	complex text plus tex- and dataType-attribute
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexContent>
      <xsd:extension base="complexTextType">
	<xsd:attribute name="scope" type="scopeType"/>
	<xsd:attribute name="tex" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  
  <xsd:simpleType name="editionType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[1-9]+(st|nd|rd|th)|[1-9]+(st|nd|rd|th) (corr\.|exp\.|corr\.|rev\.)|corr\.|exp\.|rev\.|[1-9][0-9]{3}" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="chapterType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	A chapter (or section or whatever) identifier.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[0-9a-zA-Z ]+" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="volumeType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	A volume identifier.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[0-9a-zA-Z-\&#8211;]+" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="numberType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	The number of a journal, magazine, or of a
	work in a series.  An issue of a journal or magazine is usually
	identified by its volume and number; and sometimes books are
	given numbers in a named series.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[0-9a-zA-Z-\&#8211;]+" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="editorType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	Name(s) of editor(s), typed as indicated in the LaTeX book.
	If there is also an author field, then the editor field gives the
	editor of the book or collection in which the reference appears.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string" />
  </xsd:simpleType>
  
  <xsd:simpleType name="pagesType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	One or more page numbers or range of numbers, such as 42-111
	or 7,41,73-97 or 43+ (the `+' in this last example indicates pages
	following that don't form a simple range).
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string" >
      <!--xsd:pattern value="[0-9a-zA-Z]+\+?([-,][0-9a-zA-Z]+)*" /-->
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="yearType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	The year of publication or, for an unpublished work, the year
	it was written.  Generally it should consist of four numerals, such as
	1984. Although the standard styles can handle any year whose last four
	nonpunctuation characters are numerals, such as `(about 1984)', it
	is decided here to keep the year limited to four numerals, as such a
	type is pre-defined in XML Schema.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="n.d.|[1-9][0-9]{3}[-\&#8211;]" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="monthType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
      </xsd:documentation>
    </xsd:annotation>
    <xsd:union memberTypes="monthTypeString monthTypeInt" />
  </xsd:simpleType>
  
  <xsd:simpleType name="monthTypeString">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="January" />
      <xsd:enumeration value="February" />
      <xsd:enumeration value="March" />
      <xsd:enumeration value="April" />
      <xsd:enumeration value="May" />
      <xsd:enumeration value="June" />
      <xsd:enumeration value="July" />
      <xsd:enumeration value="August" />
      <xsd:enumeration value="September" />
      <xsd:enumeration value="October" />
      <xsd:enumeration value="November" />
      <xsd:enumeration value="December" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="monthTypeInt">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="(0[1-9])|(1[0-2])" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="dayType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="([0-2][0-9])|(3[0-1])|([1-9])"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="authorTypeType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	type only used with author element
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="person"/>
      <xsd:enumeration value="other"/>
      <xsd:enumeration value="etal"/>
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:simpleType name="dataTypeType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="default"/>
      <xsd:enumeration value="author"/>
      <xsd:enumeration value="url"/>
      <xsd:enumeration value="date"/>
      <xsd:enumeration value="title"/>
      <!--xsd:enumeration value=""/-->
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="scopeType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="docSpecific" />
      <xsd:enumeration value="general" />
    </xsd:restriction>
  </xsd:simpleType>
  
  <xsd:complexType name="complexTextType" mixed="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
	type for bibData element content.
	
	this type of mixed content corresponds to refdb's extended unicode strings
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="sub" type="xsd:string"/>
      <xsd:element name="sup" type="xsd:string"/>
      <!--xsd:element name="url" type="xsd:string"/-->
    </xsd:choice>
  </xsd:complexType>  
</xsd:schema>
