datacite/orcid_client

View on GitHub
resources/record_3.0/funding-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/funding" xmlns:funding="http://www.orcid.org/ns/funding"
    xmlns:common="http://www.orcid.org/ns/common">
    <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:element name="funding">
        <xs:annotation>
            <xs:documentation>Funding received by the researcher or contributor.
                * REQUIRED FIELDS: Funding-type, Funding-title, Funding Agency
                (organization)
                * The put-code attribute is returned when reading this element. 
                When updating the item, the put-code attribute must be included to indicate the specific item to be updated.
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="common:element-summary">
                    <xs:sequence>
                        <xs:element name="type" type="funding:funding-type"
                            minOccurs="1" maxOccurs="1" />
                        <xs:element name="organization-defined-type" type="common:organization-defined-type"
                            minOccurs="0" maxOccurs="1" />
                        <xs:element name="title" type="funding:funding-title"
                            minOccurs="0" />
                        <xs:element name="short-description" type="common:short-description"
                            minOccurs="0" />
                        <xs:element name="amount" type="common:amount"
                            minOccurs="0" maxOccurs="1" />
                        <xs:element ref="common:url" minOccurs="0" maxOccurs="1"/>
                        <xs:element ref="common:start-date" minOccurs="0"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>Start date for the funding.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="common:end-date" minOccurs="0"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>End date for the funding.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="common:external-ids"
                            minOccurs="0" />
                        <xs:element name="contributors" type="funding:contributors"
                            minOccurs="0" />
                        <xs:element ref="common:organization" minOccurs="1" maxOccurs="1"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>

    <xs:element name="funding-summary">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="common:element-summary">
                    <xs:sequence>
                        <xs:element name="title" type="funding:funding-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="funding:funding-type"
                            minOccurs="1" maxOccurs="1" />
                        <xs:element ref="common:start-date" minOccurs="0"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>Start date for the funding.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="common:end-date" minOccurs="0"
                            maxOccurs="1">
                            <xs:annotation>
                                <xs:documentation>End date for the funding.</xs:documentation>
                            </xs:annotation>
                        </xs:element>
                        <xs:element ref="common:organization" minOccurs="1" maxOccurs="1"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="funding-title">
        <xs:annotation>
            <xs:documentation>Container for titles of the funding.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element ref="common:title">
                <xs:annotation>
                    <xs:documentation>The main name or title of the funding.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element ref="common:translated-title" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="funding-type">
        <xs:annotation>
            <xs:documentation>
            The type of funding, selected from the following options:
            * award: Peer-reviewed funding providing direct research costs through competitions
            * contract: Works commissioned by external public agencies or industry building on research expertise and aimed at deliverables. Include research contracts awarded by federal agencies for both direct and indirect costs, and honoraria
            * grant: Peer-reviewed funding providing direct research costs through competitions
            * salary-award: A competitive, peer-reviewed award that is paid as salary to the awardee/faculty member
            ORCID will validate this value against the enumeration 
            https://github.com/ORCID/orcid-model/blob/master/src/main/java/org/orcid/jaxb/model/common/FundingType.java and other rules when necessary
            </xs:documentation>
        </xs:annotation>

        <xs:restriction base="xs:string" />
    </xs:simpleType>
    
    <xs:complexType name="contributors">
        <xs:annotation>
            <xs:documentation>Container for the contributors of a funding.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="contributor"
                type="funding:contributor" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="contributor">
        <xs:annotation>
            <xs:documentation>A collaborator or other contributor to the funding.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element ref="common:contributor-orcid" minOccurs="0"
                maxOccurs="1" />
            <xs:element name="credit-name" type="common:credit-name"
                minOccurs="0" maxOccurs="1" />
            <xs:element name="contributor-email" type="common:contributor-email"
                minOccurs="0" maxOccurs="1" />
            <xs:element name="contributor-attributes" type="funding:contributor-attributes"
                minOccurs="0" maxOccurs="1" />
        </xs:sequence>
    </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-role" type="funding:contributor-role"
                minOccurs="0" />
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="contributor-role">
        <xs:annotation>
            <xs:documentation>The role performed by the collaborator or other
                contributor, selected from the following options:
                * lead
                * co-lead:
                * supported-by
                * other-contribution
                ORCID will validate this value against the enumeration 
                https://github.com/ORCID/orcid-model/blob/master/src/main/java/org/orcid/jaxb/model/common/FundingContributorRole.java and other rules when necessary
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string" />
    </xs:simpleType>

</xs:schema>