<?xml version="1.0" encoding="utf-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="art" form="unqualified">
        <xsd:complexType>
            <xsd:choice maxOccurs="unbounded" minOccurs="0">
                <xsd:element maxOccurs="unbounded" minOccurs="0" name="abstract">
                    <xsd:complexType>
                        <xsd:choice maxOccurs="unbounded" minOccurs="0">
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="abstract" type="xsd:string"/>
                        </xsd:choice>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element maxOccurs="unbounded" minOccurs="0" name="article">
                    <xsd:complexType>
                        <xsd:choice maxOccurs="unbounded" minOccurs="0">
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="language" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="nrRef" type="xsd:integer"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="title" type="xsd:string"/>
                        </xsd:choice>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element maxOccurs="unbounded" minOccurs="0" name="author">
                    <xsd:complexType>
                        <xsd:choice maxOccurs="unbounded" minOccurs="0">
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="affiliation" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="name" type="xsd:string"/>
                        </xsd:choice>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element maxOccurs="unbounded" minOccurs="0" name="class">
                    <xsd:complexType>
                        <xsd:choice maxOccurs="unbounded" minOccurs="0">
                            <xsd:element name="class" type="xsd:string"/>
                        </xsd:choice>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element maxOccurs="unbounded" minOccurs="0" name="ctrlT">
                    <xsd:complexType>
                        <xsd:choice maxOccurs="unbounded" minOccurs="0">
                            <xsd:element maxOccurs="unbounded" minOccurs="1" name="term" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="thesaurus" type="xsd:string"/>
                        </xsd:choice>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element maxOccurs="unbounded" minOccurs="0" name="editor">
                    <xsd:complexType>
                        <xsd:choice maxOccurs="unbounded" minOccurs="0">
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="name" type="xsd:string"/>
                        </xsd:choice>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element maxOccurs="unbounded" minOccurs="0" name="fullText">
                    <xsd:complexType>
                        <xsd:choice maxOccurs="unbounded" minOccurs="0">
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="media">
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="electronic"/>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="pad">
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                        <xsd:pattern value="\d+"/>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="url" type="xsd:string"/>
                        </xsd:choice>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element maxOccurs="unbounded" minOccurs="0" name="journal">
                    <xsd:complexType>
                        <xsd:choice maxOccurs="unbounded" minOccurs="0">
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="atitle" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="coden" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="country" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="ctitle" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="dateDis" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="eissn">
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                        <xsd:pattern value="\d{8}|\d{7}[A-Za-z]{1}"/>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="isbn">
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                        <xsd:pattern value="\d{9,11}[A-Za-z]*"/>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="issn" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="issue" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="month" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="page" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="part" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="ppage" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="publisher" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="title" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="titleId" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="vol" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="year" type="xsd:gYear"/>
                        </xsd:choice>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element maxOccurs="unbounded" minOccurs="0" name="localInfo">
                    <xsd:complexType>
                        <xsd:choice maxOccurs="unbounded" minOccurs="0">
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="cdate">
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:positiveInteger">
                                        <xsd:pattern value="\d{8}"/>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="fileId" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="fullTxtRef" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="key" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="media">
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="electronic"/>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="orderRef" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="source">
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:string">
                                        <xsd:enumeration value="acpress"/>
                                        <xsd:enumeration value="elsevier"/>
                                        <xsd:enumeration value="emerald"/>
                                        <xsd:enumeration value="iee_article"/>
                                        <xsd:enumeration value="iee_conference"/>
                                        <xsd:enumeration value="ieee_article"/>
                                        <xsd:enumeration value="ieee_conference"/>
                                        <xsd:enumeration value="iel"/>
                                        <xsd:enumeration value="iop"/>
                                        <xsd:enumeration value="karger"/>
                                        <xsd:enumeration value="kluwer"/>
                                        <xsd:enumeration value="oup"/>
                                        <xsd:enumeration value="publisher"/>
                                        <xsd:enumeration value="rsc"/>
                                        <xsd:enumeration value="science"/>
                                        <xsd:enumeration value="siam"/>
                                        <xsd:enumeration value="springer"/>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="udate">
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:positiveInteger">
                                        <xsd:pattern value="\d{8}"/>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                        </xsd:choice>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element name="openURL" type="xsd:string"/>
                <xsd:element maxOccurs="unbounded" minOccurs="0" name="recordID">
                    <xsd:complexType>
                        <xsd:choice maxOccurs="unbounded" minOccurs="0">
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="PII" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="accessNr">
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:integer">
                                        <xsd:pattern value="\d{7}"/>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="artId" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="artIdTr" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="copyright" type="xsd:string"/>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="recTypeNr">
                                <xsd:simpleType>
                                    <xsd:restriction base="xsd:integer">
                                        <xsd:pattern value="\d{2}"/>
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="recTypeTxt" type="xsd:string"/>
                        </xsd:choice>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element maxOccurs="unbounded" minOccurs="0" name="uctrlT">
                    <xsd:complexType>
                        <xsd:choice maxOccurs="unbounded" minOccurs="0">
                            <xsd:element maxOccurs="unbounded" minOccurs="0" name="term" type="xsd:string"/>
                        </xsd:choice>
                    </xsd:complexType>
                </xsd:element>
            </xsd:choice>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

