<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
    name="TaxonomyManager"
    targetNamespace="http://isb.oio.dk/oioservice/service/public/2/"
    xmlns:isb="http://isb.oio.dk/oioservice/service/ISB/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tax="http://isb.oio.dk/oioservice/service/Taxonomy/"
    xmlns:tns="http://isb.oio.dk/oioservice/service/public/2/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
        <xs:schema
            elementFormDefault="qualified"
            targetNamespace="http://isb.oio.dk/oioservice/service/Taxonomy/"
            xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:tax="http://isb.oio.dk/oioservice/service/Taxonomy/"
            xmlns:xs="http://www.w3.org/2001/XMLSchema">
            <xs:import namespace="http://isb.oio.dk/oioservice/service/ISB/"/>
            <xs:element name="GetTaxonomyNodes" type="tax:GetTaxonomyNodesType"/>
            <xs:complexType name="GetTaxonomyNodesType">
                <xs:sequence>
                    <xs:element ref="tax:TaxonomyLanguage"/>
                    <xs:element ref="isb:ObjectID"/>
                </xs:sequence>
            </xs:complexType>
            <xs:element name="TaxonomyLanguage" type="tax:TaxonomyLanguageType"/>
            <xs:simpleType name="TaxonomyLanguageType">
                <xs:restriction base="xs:string">
                    <xs:enumeration value="en"/>
                    <xs:enumeration value="da"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:complexType name="TaxonomyType">
                <xs:sequence minOccurs="1">
                    <xs:element minOccurs="1" name="IDTaxonomy" type="xs:string"/>
                    <xs:element minOccurs="1" name="Name" type="xs:string"/>
                    <xs:element minOccurs="0" name="Description" type="xs:string"/>
                </xs:sequence>
            </xs:complexType>
            <xs:element name="Taxonomy" type="tax:TaxonomyType"/>
            <xs:element name="TaxonomyList" type="tax:TaxonomyListType"/>
            <xs:complexType name="TaxonomyListType">
                <xs:sequence minOccurs="0">
                    <xs:element maxOccurs="unbounded" ref="tax:Taxonomy"/>
                </xs:sequence>
            </xs:complexType>
            <xs:element name="TaxonomyNode" type="tax:TaxonomyNodeType"/>
            <xs:complexType name="TaxonomyNodeType">
                <xs:sequence minOccurs="1">
                    <xs:element minOccurs="1" name="IDNode" type="xs:string"/>
                    <xs:element minOccurs="1" name="Name" type="xs:string"/>
                    <xs:element minOccurs="0" name="Description" type="xs:string"/>
                    <xs:element minOccurs="0" name="NumberOfDocuments" type="xs:integer"/>
                </xs:sequence>
            </xs:complexType>
            <xs:complexType name="TaxonomyNodeListType">
                <xs:sequence minOccurs="0">
                    <xs:element maxOccurs="unbounded" ref="tax:TaxonomyNode"/>
                </xs:sequence>
            </xs:complexType>
            <xs:element name="TaxonomyNodeList" type="tax:TaxonomyNodeListType"/>
        </xs:schema>
        <xs:schema
            targetNamespace="http://isb.oio.dk/oioservice/service/ISB/"
            xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:isb="http://isb.oio.dk/oioservice/service/ISB/"
            xmlns:xs="http://www.w3.org/2001/XMLSchema">
            <xs:element name="ObjectID" type="isb:ObjectIDType"/>
            <xs:simpleType name="ObjectIDType">
                <xs:restriction base="xs:string">
                    <xs:pattern value="([a-f,A-F,0-9]{8}-)([a-f,A-F,0-9]{4}-){3}[a-f,A-F,0-9]{12}"/>
                </xs:restriction>
            </xs:simpleType>
            <xs:element name="ISBSoapException" type="isb:ISBSoapExceptionType"/>
            <xs:complexType name="ISBSoapExceptionType">
                <xs:sequence>
                    <xs:element name="Message" type="xs:string"/>
                    <xs:element name="ISBSoapExceptionCode" type="isb:ISBSoapExceptionCodeType"/>
                </xs:sequence>
            </xs:complexType>
            <xs:simpleType name="ISBSoapExceptionCodeType">
                <xs:restriction base="xs:string">
                    <xs:enumeration value="NotAuthorizedFaultCode"/>
                    <xs:enumeration value="ArgumentExceptionFaultCode"/>
                    <xs:enumeration value="RequiredFieldFaultCode"/>
                    <xs:enumeration value="NoObjectFaultCode"/>
                    <xs:enumeration value="NoWriteAccessFaultCode"/>
                    <xs:enumeration value="NamespaceAlreadyExistFaultCode"/>
                    <xs:enumeration value="UnableToDeleteFaultCode"/>
                    <xs:enumeration value="UnableToCreateFaultCode"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="GetTaxonomyNodesSoapOut">
        <wsdl:part element="tax:TaxonomyNodeList" name="TaxonomyNodeList">
            <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">A list of TaxonomyNodes containing ID of the taxonomy (in GUID format), The name of the taxonomy, The description of the taxonomy and the number of documents in this taxonomy, for each taxonomynode</wsdl:documentation>
        </wsdl:part>
    </wsdl:message>
    <wsdl:message name="ISBSoapExceptionSoapOut">
        <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">An Exception describing the nature of the fault</wsdl:documentation>
        <wsdl:part element="isb:ISBSoapException" name="ISBSoapException">
            <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">An exception object describing the error that occured</wsdl:documentation>
        </wsdl:part>
    </wsdl:message>
    <wsdl:message name="GetRootTaxonomiesSoapOut">
        <wsdl:part element="tax:TaxonomyList" name="TaxonomyList">
            <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">A list of TaxonomyNodes containing, ID of the taxonomy (in GUID format), The name of the taxonom and The description of the taxonomy, for each taxonomy</wsdl:documentation>
        </wsdl:part>
    </wsdl:message>
    <wsdl:message name="GetRootTaxonomiesSoapIn">
        <wsdl:part element="tax:TaxonomyLanguage" name="Language">
            <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">The language of the root nodes. Valid values are &quot;en&quot; and &quot;dk&quot;</wsdl:documentation>
        </wsdl:part>
    </wsdl:message>
    <wsdl:message name="GetTaxonomyNodesSoapIn">
        <wsdl:part element="tax:GetTaxonomyNodes" name="parameter">
            <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">an object containing the object ID of the taxonomy nodes to get children from and the language to get the children in</wsdl:documentation>
        </wsdl:part>
    </wsdl:message>
    <wsdl:portType name="TaxonomyManagerPortType">
        <wsdl:operation name="GetRootTaxonomies">
            <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns a list of the roots of the taxonomies for a specific language</wsdl:documentation>
            <wsdl:input message="tns:GetRootTaxonomiesSoapIn"/>
            <wsdl:output message="tns:GetRootTaxonomiesSoapOut"/>
            <wsdl:fault message="tns:ISBSoapExceptionSoapOut" name="ArgumentException"/>
        </wsdl:operation>
        <wsdl:operation name="GetTaxonomyNodes">
            <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Returns a list of all child nodes (taxonomies) of a specific node (taxomony)</wsdl:documentation>
            <wsdl:input message="tns:GetTaxonomyNodesSoapIn"/>
            <wsdl:output message="tns:GetTaxonomyNodesSoapOut"/>
            <wsdl:fault message="tns:ISBSoapExceptionSoapOut" name="NoObject"/>
            <wsdl:fault message="tns:ISBSoapExceptionSoapOut" name="ArgumentException"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="TaxonomyManagerBinding" type="tns:TaxonomyManagerPortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="GetRootTaxonomies">
            <soap:operation
                soapAction="http://isb.oio.dk/oioservice/service/public/2/GetRootTaxonomies"/>
            <wsdl:input>
                <soap:body parts="Language" use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body parts="TaxonomyList" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="ArgumentException">
                <soap:fault name="ArgumentException" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="GetTaxonomyNodes">
            <soap:operation
                soapAction="http://isb.oio.dk/oioservice/service/public/2/GetTaxonomyNodes"/>
            <wsdl:input>
                <soap:body parts="parameter" use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body parts="TaxonomyNodeList" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="NoObject">
                <soap:fault name="NoObject" use="literal"/>
            </wsdl:fault>
            <wsdl:fault name="ArgumentException">
                <soap:fault name="ArgumentException" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="TaxonomyManager">
        <wsdl:port binding="tns:TaxonomyManagerBinding" name="TaxonomyManagerPort">
            <soap:address
                location="http://isb.oio.dk/oioservice/service/public/2/TaxonomyManager.asmx"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
