<?xml version="1.0" encoding="UTF-8" ?>
<definitions targetNamespace="http://www.gbv.de/wsdl/collectionws-1.0"
	     xmlns="http://schemas.xmlsoap.org/wsdl/"
	     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	     xmlns:ws="http://www.gbv.de/wsdl/collectionws-1.0"
	     xmlns:typ="http://www.gbv.de/schema/collectionws-1.0">
  <types>
    <xsd:schema targetNamespace="http://www.gbv.de/schema/collectionws-1.0">
      <xsd:complexType name="listCollections">
	<xsd:sequence>
	  <xsd:element name="username" type="xsd:string" />
	  <xsd:element name="password" type="xsd:string" />
	  <xsd:element name="dbsid" type="xsd:string" />
	  <xsd:element minOccurs="0" maxOccurs="1" name="offset" type="xsd:int" />
	  <xsd:element minOccurs="0" maxOccurs="1" name="limit" type="xsd:int" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="getCollection">
	<xsd:sequence>
	  <xsd:element name="username" type="xsd:string" />
	  <xsd:element name="password" type="xsd:string" />
	  <xsd:element name="dbsid" type="xsd:string" />
	  <xsd:element name="cid" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="createCollection">
	<xsd:sequence>
	  <xsd:element name="username" type="xsd:string" />
	  <xsd:element name="password" type="xsd:string" />
	  <xsd:element name="dbsid" type="xsd:string" />
	  <xsd:element name="name" type="xsd:string" />
	  <xsd:element name="description" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="updateCollection">
	<xsd:sequence>
	  <xsd:element name="username" type="xsd:string" />
	  <xsd:element name="password" type="xsd:string" />
	  <xsd:element name="dbsid" type="xsd:string" />
	  <xsd:element name="cid" type="xsd:string" />
	  <xsd:element name="name" type="xsd:string" />
	  <xsd:element name="description" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="deleteCollection">
	<xsd:sequence>
	  <xsd:element name="username" type="xsd:string" />
	  <xsd:element name="password" type="xsd:string" />
	  <xsd:element name="dbsid" type="xsd:string" />
	  <xsd:element name="cid" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="flushCollection">
	<xsd:sequence>
	  <xsd:element name="username" type="xsd:string" />
	  <xsd:element name="password" type="xsd:string" />
	  <xsd:element name="dbsid" type="xsd:string" />
	  <xsd:element name="cid" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="cleanupCollections">
	<xsd:sequence>
	  <xsd:element name="username" type="xsd:string" />
	  <xsd:element name="password" type="xsd:string" />
	  <xsd:element name="dbsid" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="listRecordPPNs">
	<xsd:sequence>
	  <xsd:element name="username" type="xsd:string" />
	  <xsd:element name="password" type="xsd:string" />
	  <xsd:element name="dbsid" type="xsd:string" />
	  <xsd:element name="cid" type="xsd:string" />
	  <xsd:element minOccurs="0" maxOccurs="1" name="offset" type="xsd:int" />
	  <xsd:element minOccurs="0" maxOccurs="1" name="limit" type="xsd:int" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="getRecord">
	<xsd:sequence>
	  <xsd:element name="username" type="xsd:string" />
	  <xsd:element name="password" type="xsd:string" />
	  <xsd:element name="dbsid" type="xsd:string" />
	  <xsd:element name="cid" type="xsd:string" />
	  <xsd:element name="ppn" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="createRecord">
	<xsd:sequence>
	  <xsd:element name="username" type="xsd:string" />
	  <xsd:element name="password" type="xsd:string" />
	  <xsd:element name="dbsid" type="xsd:string" />
	  <xsd:element name="cid" type="xsd:string" />
	  <xsd:element name="record" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="updateRecord">
	<xsd:sequence>
	  <xsd:element name="username" type="xsd:string" />
	  <xsd:element name="password" type="xsd:string" />
	  <xsd:element name="dbsid" type="xsd:string" />
	  <xsd:element name="cid" type="xsd:string" />
	  <xsd:element name="ppn" type="xsd:string" />
	  <xsd:element name="version" type="xsd:string" />
	  <xsd:element name="record" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="deleteRecord">
	<xsd:sequence>
	  <xsd:element name="username" type="xsd:string" />
	  <xsd:element name="password" type="xsd:string" />
	  <xsd:element name="dbsid" type="xsd:string" />
	  <xsd:element name="cid" type="xsd:string" />
	  <xsd:element name="ppn" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="collection">
	<xsd:sequence>
	  <xsd:element name="cid" type="xsd:string" />
	  <xsd:element name="name" type="xsd:string" />
	  <xsd:element name="description" type="xsd:string" />
	  <xsd:element name="count" type="xsd:string" />
	  <xsd:element name="url_open" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="collections">
	<xsd:sequence>
	  <xsd:element name="count" type="xsd:string" />
	  <xsd:element name="url_open_all" type="xsd:string" />
	  <xsd:element name="url_open_database" type="xsd:string" />
	  <xsd:element minOccurs="0" maxOccurs="unbounded" name="collection" type="typ:collection" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="ppn">
	<xsd:sequence>
	  <xsd:element name="ppn" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="ppns">
	<xsd:sequence>
	  <xsd:element name="count" type="xsd:string" />
	  <xsd:element minOccurs="0" maxOccurs="unbounded" name="ppn" type="typ:ppn" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="record">
	<xsd:sequence>
	  <xsd:element name="dbsid" type="xsd:string" />
	  <xsd:element name="cid" type="xsd:string" />
	  <xsd:element name="ppn" type="xsd:string" />
	  <xsd:element name="version" type="xsd:string" />
	  <xsd:element name="record" type="xsd:string" />
	</xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="records">
	<xsd:sequence>
	  <xsd:element minOccurs="0" maxOccurs="unbounded" name="record" type="typ:record" />
	</xsd:sequence>
      </xsd:complexType>
    </xsd:schema>
  </types>

  <message name="listCollections">
    <part name="listCollections" type="typ:listCollections" />
  </message>
  <message name="getCollection">
    <part name="getCollection" type="typ:getCollection" />
  </message>
  <message name="createCollection">
    <part name="createCollection" type="typ:createCollection" />
  </message>
  <message name="updateCollection">
    <part name="updateCollection" type="typ:updateCollection" />
  </message>
  <message name="deleteCollection">
    <part name="deleteCollection" type="typ:deleteCollection" />
  </message>
  <message name="flushCollection">
    <part name="flushCollection" type="typ:flushCollection" />
  </message>
  <message name="cleanupCollections">
    <part name="cleanupCollections" type="typ:cleanupCollections" />
  </message>
  <message name="listRecordPPNs">
    <part name="listRecordPPNs" type="typ:listRecordPPNs" />
  </message>
  <message name="getRecord">
    <part name="getRecord" type="typ:getRecord" />
  </message>
  <message name="createRecord">
    <part name="createRecord" type="typ:createRecord" />
  </message>
  <message name="updateRecord">
    <part name="updateRecord" type="typ:updateRecord" />
  </message>
  <message name="deleteRecord">
    <part name="deleteRecord" type="typ:deleteRecord" />
  </message>
  <message name="collection">
    <part name="collection" type="typ:collection" />
  </message>
  <message name="collections">
    <part name="collections" type="typ:collections" />
  </message>
  <message name="ppns">
    <part name="ppns" type="typ:ppns" />
  </message>
  <message name="record">
    <part name="record" type="typ:record" />
  </message>
  <message name="error" />

  <portType name="collectionws_porttype">
    <operation name="listCollections">
      <input message="ws:listCollections" />
      <output message="ws:collections" />
      <fault name="error" message="ws:error" />
    </operation>
    <operation name="getCollection">
      <input message="ws:getCollection" />
      <output message="ws:collection" />
      <fault name="error" message="ws:error" />
    </operation>
    <operation name="createCollection">
      <input message="ws:createCollection" />
      <output message="ws:collection" />
      <fault name="error" message="ws:error" />
    </operation>
    <operation name="updateCollection">
      <input message="ws:updateCollection" />
      <output message="ws:collection" />
      <fault name="error" message="ws:error" />
    </operation>
    <operation name="deleteCollection">
      <input message="ws:deleteCollection" />
      <output message="ws:collection" />
      <fault name="error" message="ws:error" />
    </operation>
    <operation name="flushCollection">
      <input message="ws:flushCollection" />
      <output message="ws:collection" />
      <fault name="error" message="ws:error" />
    </operation>
    <operation name="cleanupCollections">
      <input message="ws:cleanupCollections" />
      <output message="ws:collections" />
      <fault name="error" message="ws:error" />
    </operation>
    <operation name="listRecordPPNs">
      <input message="ws:listRecordPPNs" />
      <output message="ws:ppns" />
      <fault name="error" message="ws:error" />
    </operation>
    <operation name="getRecord">
      <input message="ws:getRecord" />
      <output message="ws:record" />
      <fault name="error" message="ws:error" />
    </operation>
    <operation name="createRecord">
      <input message="ws:createRecord" />
      <output message="ws:record" />
      <fault name="error" message="ws:error" />
    </operation>
    <operation name="updateRecord">
      <input message="ws:updateRecord" />
      <output message="ws:record" />
      <fault name="error" message="ws:error" />
    </operation>
    <operation name="deleteRecord">
      <input message="ws:deleteRecord" />
      <output message="ws:record" />
      <fault name="error" message="ws:error" />
    </operation>
  </portType>

  <binding name="collectionws_binding" type="ws:collectionws_porttype">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="listCollections">
      <soap:operation soapAction="listCollections" />
      <input><soap:body use="literal" /></input>
      <output><soap:body use="literal" /></output>
      <fault name="error"><soap:fault name="error" use="literal" /></fault>
    </operation>
    <operation name="getCollection">
      <soap:operation soapAction="getCollection" />
      <input><soap:body use="literal" /></input>
      <output><soap:body use="literal" /></output>
      <fault name="error"><soap:fault name="error" use="literal" /></fault>
    </operation>
    <operation name="createCollection">
      <soap:operation soapAction="createCollection" />
      <input><soap:body use="literal" /></input>
      <output><soap:body use="literal" /></output>
      <fault name="error"><soap:fault name="error" use="literal" /></fault>
    </operation>
    <operation name="updateCollection">
      <soap:operation soapAction="updateCollection" />
      <input><soap:body use="literal" /></input>
      <output><soap:body use="literal" /></output>
      <fault name="error"><soap:fault name="error" use="literal" /></fault>
    </operation>
    <operation name="deleteCollection">
      <soap:operation soapAction="deleteCollection" />
      <input><soap:body use="literal" /></input>
      <output><soap:body use="literal" /></output>
      <fault name="error"><soap:fault name="error" use="literal" /></fault>
    </operation>
    <operation name="flushCollection">
      <soap:operation soapAction="flushCollection" />
      <input><soap:body use="literal" /></input>
      <output><soap:body use="literal" /></output>
      <fault name="error"><soap:fault name="error" use="literal" /></fault>
    </operation>
    <operation name="cleanupCollections">
      <soap:operation soapAction="cleanupCollections" />
      <input><soap:body use="literal" /></input>
      <output><soap:body use="literal" /></output>
      <fault name="error"><soap:fault name="error" use="literal" /></fault>
    </operation>
    <operation name="listRecordPPNs">
      <soap:operation soapAction="listRecordPPNs" />
      <input><soap:body use="literal" /></input>
      <output><soap:body use="literal" /></output>
      <fault name="error"><soap:fault name="error" use="literal" /></fault>
    </operation>
    <operation name="getRecord">
      <soap:operation soapAction="getRecord" />
      <input><soap:body use="literal" /></input>
      <output><soap:body use="literal" /></output>
      <fault name="error"><soap:fault name="error" use="literal" /></fault>
    </operation>
    <operation name="createRecord">
      <soap:operation soapAction="createRecord" />
      <input><soap:body use="literal" /></input>
      <output><soap:body use="literal" /></output>
      <fault name="error"><soap:fault name="error" use="literal" /></fault>
    </operation>
    <operation name="updateRecord">
      <soap:operation soapAction="updateRecord" />
      <input><soap:body use="literal" /></input>
      <output><soap:body use="literal" /></output>
      <fault name="error"><soap:fault name="error" use="literal" /></fault>
    </operation>
    <operation name="deleteRecord">
      <soap:operation soapAction="deleteRecord" />
      <input><soap:body use="literal" /></input>
      <output><soap:body use="literal" /></output>
      <fault name="error"><soap:fault name="error" use="literal" /></fault>
    </operation>
  </binding>

  <service name="collectionws_service">
    <port name="collectionws_port" binding="ws:collectionws_binding">
      <soap:address location="http://cws.gbv.de/ws/collectionws" />
    </port>
  </service>
</definitions>
