master/ldif/ldif-core/src/main/resources/xsd/IntegrationJob.xsd

User picture

Commiter: a12z

Author: a12z

Revision: 67000aced3


File Size: 4.71 KB

(26 Mar 15:27 UTC) About 1 month ago

Instead of the sources element in the integration config, also a single source Element can be used, adapted test config files to changes

 
Show/hide line numbers
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ldif="http://www4.wiwiss.fu-berlin.de/ldif/"
           elementFormDefault="qualified"
           targetNamespace="http://www4.wiwiss.fu-berlin.de/ldif/">

    <xs:simpleType name="runScheduleType">
        <xs:restriction base="xs:normalizedString">
            <xs:enumeration value="onStartup"/>
            <xs:enumeration value="always"/>
            <xs:enumeration value="hourly"/>
            <xs:enumeration value="daily"/>
            <xs:enumeration value="weekly"/>
            <xs:enumeration value="monthly"/>
            <xs:enumeration value="yearly"/>
            <xs:enumeration value="never"/>
        </xs:restriction>
    </xs:simpleType>


    <!-- Source element -->

    <xs:element name="in" abstract="true" />

    <xs:element name="source" type="xs:string" substitutionGroup="ldif:in"/>

    <xs:element name="sources" substitutionGroup="ldif:in">
      <xs:complexType>
            <xs:sequence>
                 <!-- support files and directories, both from local and hdfs -->
                <xs:element name="source" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>


    <!-- Output elements -->

    <xs:element name="out" abstract="true" />

    <xs:element name="outputs" substitutionGroup="ldif:out">
      <xs:complexType>
            <xs:sequence>
                <xs:element ref="ldif:output" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="output" substitutionGroup="ldif:out">
        <xs:complexType>
            <xs:all>
                <xs:element ref="ldif:abstractOutput" />
                <xs:element name="phase" type="ldif:outputPhaseType" minOccurs="0" />
            </xs:all>
        </xs:complexType>
    </xs:element>

    <xs:element name="abstractOutput" abstract="true" />

    <xs:element name="file" substitutionGroup="ldif:abstractOutput">
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="format" type="ldif:outputFormat" use="optional"/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>

    <xs:element name="sparql" substitutionGroup="ldif:abstractOutput">
        <xs:complexType>
            <xs:all>
                <xs:element name="endpointURI" type="xs:anyURI" />
                <xs:element name="user" type="xs:string" minOccurs="0" />
                <xs:element name="password" type="xs:string" minOccurs="0" />
                <xs:element name="sparqlVersion" type="ldif:sparqlVersion" minOccurs="0" />
                <xs:element name="useDirectPost" type="xs:boolean" minOccurs="0" />
                <xs:element name="queryParameter" type="ldif:queryParameter" minOccurs="0" />
            </xs:all>
        </xs:complexType>
    </xs:element>

    <xs:simpleType name="outputPhaseType">
        <xs:restriction base="xs:normalizedString">
            <xs:enumeration value="r2r"/>
            <xs:enumeration value="silk"/>
            <xs:enumeration value="complete"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="outputFormat">
        <xs:restriction base="xs:normalizedString">
            <xs:enumeration value="nquads"/>
            <xs:enumeration value="ntriples"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="queryParameter">
        <xs:restriction base="xs:normalizedString">
            <xs:enumeration value="update"/>
            <xs:enumeration value="query"/>
            <xs:enumeration value="command"/>
            <xs:enumeration value="request"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="sparqlVersion">
        <xs:restriction base="xs:normalizedString">
            <xs:enumeration value="1.0"/>
            <xs:enumeration value="1.1"/>
        </xs:restriction>
    </xs:simpleType>


    <!-- integration job element -->

    <xs:element name="integrationJob">
        <xs:complexType>
            <xs:all>
                <!-- the elements are unordered -->

                <xs:element name="properties" type="xs:string" minOccurs="0"/>

                <xs:element ref="ldif:in" />

                <xs:element name="linkSpecifications" type="xs:string" minOccurs="0"/>

                <xs:element name="mappings" type="xs:string" minOccurs="0"/>

                <xs:element name="sieve" type="xs:string" minOccurs="0"/>

                <xs:element ref="ldif:out"/>

                <xs:element name="runSchedule" type="ldif:runScheduleType" minOccurs="0" />

            </xs:all>
        </xs:complexType>
    </xs:element>

</xs:schema>