datacite/orcid_client

View on GitHub
resources/record_3.0/work-3.0.xsd

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:sch="http://purl.oclc.org/dsdl/schematron" elementFormDefault="qualified"
    targetNamespace="http://www.orcid.org/ns/work" xmlns:work="http://www.orcid.org/ns/work"
    xmlns:common="http://www.orcid.org/ns/common" xmlns:error="http://www.orcid.org/ns/error">
    <xs:annotation> 
        <xs:documentation>
            =============================================================================

            ORCID (R) Open Source
            http://orcid.org

            Copyright (c) 2012-2018 ORCID,
            Inc.
            Licensed under an MIT-Style License (MIT)
            http://orcid.org/open-source-license

            This copyright and license
            information (including a link to the full
            license)
            shall be included in
            its entirety in all copies or substantial portion of
            the software.

            =============================================================================
            The schema describes the message format used for ORCID API requests
            and responses.
            The top level element is orcid-message.
        </xs:documentation>
        <xs:appinfo>
            <sch:title>Schematron validation</sch:title>
            <sch:ns prefix="orcid" uri="http://www.orcid.org/ns/orcid" />
        </xs:appinfo>
    </xs:annotation>
    <xs:import namespace="http://www.orcid.org/ns/common"
        schemaLocation="../common_3.0/common-3.0.xsd" />

    <xs:import namespace="http://www.orcid.org/ns/error"
         schemaLocation="error-3.0.xsd" />

    <xs:element name="work">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation>A work is any research output that the researcher produced or contributed to
                    * The put-code attribute is used only when reading this
                    element. When updating the item, the put-code attribute must be
                    included to indicate the specific record to be updated.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="common:element-summary">
                    <xs:sequence>

                        <xs:element name="title" type="work:work-title"
                            minOccurs="1" />
                        <xs:element name="journal-title" type="common:string-1000"
                            minOccurs="0" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>The title of the publication or group under which
                                    the work was published.
                                    * If a journal, include the journal title of the work.
                                    * If a book chapter, use the book title.
                                    * If a translation or a manual, use the series title.
                                    * If a dictionary entry, use the dictionary title.
                                    * If a conference poster, abstract or paper, use the conference name.
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="short-description" type="common:short-description"
                            minOccurs="0" />
                        <xs:element name="citation" minOccurs="0" type="work:citation">
                            <xs:annotation>
                                <xs:documentation>Element containing the type and content of the
                                    citation for this work
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element name="type" type="work:work-type">
                            <xs:annotation>
                                <xs:documentation>Required. The type of work
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="common:publication-date" minOccurs="0" />
                        <xs:element ref="common:external-ids"
                            minOccurs="0">
                            <xs:annotation>
                                <xs:documentation>Required when writing work items. The list of supported identifier types is at https://pub.qa.orcid.org/v2.0/identifiers
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="common:url" minOccurs="0" maxOccurs="1"/>
                        <xs:element name="contributors" type="work:work-contributors"
                            minOccurs="0" />
                        <xs:element ref="common:language-code" minOccurs="0"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>The language used for the metadata provided about the work
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="common:country" minOccurs="0" />
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>

    <xs:element name="work-summary">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="common:element-summary">
                    <xs:sequence>
                        <xs:element name="title" type="work:work-title"
                            minOccurs="1" />
                        <xs:element ref="common:external-ids"
                            minOccurs="0" />
                        <xs:element ref="common:url" minOccurs="0" maxOccurs="1"/>    
                        <xs:element name="type" type="work:work-type" />
                        <xs:element ref="common:publication-date" minOccurs="0" />
                        <xs:element name="journal-title" type="common:string-1000"
                            minOccurs="0" maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>The title of the publication or group under which
                                    the work was published.
                                    * If a journal, include the journal title of the work.
                                    * If a book chapter, use the book title.
                                    * If a translation or a manual, use the series title.
                                    * If a dictionary entry, use the dictionary title.
                                    * If a conference poster, abstract or paper, use the conference name.
                                </xs:documentation>
                            </xs:annotation>
                        </xs:element>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>

    <xs:simpleType name="work-type">
        <xs:annotation>
            <xs:documentation>The type of object that the work is, from the list of supported types in https://members.orcid.org/api/resources/work-types
            ORCID will validate this value against the enumeration 
            https://github.com/ORCID/orcid-model/blob/master/src/main/java/org/orcid/jaxb/model/common/WorkType.java and other rules when necessary
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string" />                
    </xs:simpleType>
    
    <xs:complexType name="work-contributors">
        <xs:annotation>
            <xs:documentation>Container for the contributors of a Work.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="contributor"
                type="work:contributor" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="contributor">
        <xs:annotation>
            <xs:documentation>A collaborator or other contributor to a work or
                other orcid-activity
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element ref="common:contributor-orcid" minOccurs="0"
                maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>ORCID iD for the contributor - only add if you have collected an authenticated iD for the contributor</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="credit-name" type="common:credit-name"
                minOccurs="0" maxOccurs="1" />
            <xs:element name="contributor-email" type="work:contributor-email"
                minOccurs="0" maxOccurs="1" />
            <xs:element name="contributor-attributes" type="work:contributor-attributes"
                minOccurs="0" maxOccurs="1" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="contributor-email">
        <xs:annotation>
            <xs:documentation>Email of the contributor. This field is not returned when reading a work
            </xs:documentation>
        </xs:annotation>

        <xs:simpleContent>
            <xs:extension base="common:email" />
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="contributor-attributes">
        <xs:annotation>
            <xs:documentation>Provides detail of the nature of the contribution
                by the collaborator or other contirbutor.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="contributor-sequence" type="work:contributor-sequence"
                minOccurs="0" />
            <xs:element name="contributor-role" type="common:contributor-role" 
                minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="contributor-sequence">
        <xs:annotation>
            <xs:documentation>Indication of where in the contributor list the
                collaborator or other contributor's name would appear
            </xs:documentation>
        </xs:annotation>

        <xs:restriction base="xs:string">
            <xs:enumeration value="first" />
            <xs:enumeration value="additional" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="work-title">
        <xs:annotation>
            <xs:documentation>Container for titles of the work.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element ref="common:title">
                <xs:annotation>
                    <xs:documentation>The main name or title of the work. For a
                        spin-off company, include use the company name
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element ref="common:subtitle" minOccurs="0" />
            <xs:element ref="common:translated-title" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="citation">
        <xs:annotation>
            <xs:documentation>Container for a work citation. Citations may be
                fielded (e.g., RIS, BibTeX - preferred citation type), or may be
                textual (APA, MLA, Chicago, etc.) The required work-citation-type
                element indicates the format of the citation.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="citation-type" default="formatted-unspecified"
                type="work:citation-type" maxOccurs="1" minOccurs="1" />
            <xs:element name="citation-value" type="xs:string" maxOccurs="1"
                minOccurs="1" />
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="citation-type">
        <xs:annotation>
            <xs:documentation>The type (format) of the citation, selected from the following options (bibtex is preferred):
            * bibtex
            * formatted-apa
            * formatted-chicago
            * formatted-harvard
            * formatted-ieee 
            * formatted-mla 
            * formatted-vancouver
            * formatted-unspecified
            * ris
            ORCID will validate this value against the enumeration 
            https://github.com/ORCID/orcid-model/blob/master/src/main/java/org/orcid/jaxb/model/common/CitationType.java and other rules when necessary
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string" />
    </xs:simpleType>
</xs:schema>