<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://api.bioinfo.no/stylesheets/WSDLDocumentation.xslt"?>
<!-- edited with XMLSpy v2007 rel. 3 sp1 (http://www.altova.com) by Jan Christian Bryne (University of Bergen) -->
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jas="http://bccs.uib.no/Jaspar" targetNamespace="http://bccs.uib.no/Jaspar">
	<types>
		<xs:schema xmlns:ns1="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://bccs.uib.no/Jaspar" xmlns:jas="http://bccs.uib.no/Jaspar" targetNamespace="http://bccs.uib.no/Jaspar" elementFormDefault="qualified" attributeFormDefault="unqualified">
			<xs:element name="Matrix" type="jas:MatrixType">
				<xs:annotation>
					<xs:documentation>A matrix is a representation of a profile. The matrix has the nucleotides as row labels and equence position as column labels. A matrix also includes annotation in the form of tags consisting of name and value.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:complexType name="MatrixType">
				<xs:sequence>
					<xs:element name="A" type="jas:RowType">
						<xs:annotation>
							<xs:documentation>This is the Adenine row in the matrix.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="T" type="jas:RowType">
						<xs:annotation>
							<xs:documentation>This is the Thymine row in the matrix.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="C" type="jas:RowType">
						<xs:annotation>
							<xs:documentation>This is the Cytosine row in the matrix.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="G" type="jas:RowType">
						<xs:annotation>
							<xs:documentation>This is the Guanine row in the matrix.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Tag" type="jas:TagType" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>This is a collection of tags that contain annotation of the matrix.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="Format" type="xs:string" use="required">
					<xs:annotation>
						<xs:documentation>The format of this Matrix. This is usually Position Frequency Matrix, Position Weight Matrix or Information Content Matrix.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="ID" type="xs:string" use="required">
					<xs:annotation>
						<xs:documentation>A identifier for this matrix</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:complexType>
			<xs:complexType name="RowType">
				<xs:annotation>
					<xs:documentation>This element represents a row in tha matrix.</xs:documentation>
				</xs:annotation>
				<xs:sequence>
					<xs:element name="col" type="xs:string" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>This is a collection of columns for this row.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:complexType>
			<xs:complexType name="TagType">
				<xs:annotation>
					<xs:documentation>This is a type that contains annotation information.</xs:documentation>
				</xs:annotation>
				<xs:sequence>
					<xs:element name="Name" type="xs:string">
						<xs:annotation>
							<xs:documentation>The name of this tag.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Value" type="xs:string" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>The values of this tag.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:complexType>
			<xs:element name="Database" default="CORE">
				<xs:annotation>
					<xs:documentation>This element indicates one of the Jaspar sub-databases.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="CORE"/>
						<xs:enumeration value="FAM"/>
						<xs:enumeration value="PHYLOFACTS"/>
						<xs:enumeration value="POLII"/>
						<xs:enumeration value="CNE"/>
						<xs:enumeration value="SPLICE"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Format" default="PFM">
				<xs:annotation>
					<xs:documentation>This element indicates the format of a matrix. It can be either PFM, PWM or ICM.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="PFM"/>
						<xs:enumeration value="PWM"/>
						<xs:enumeration value="ICM"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="searchByTag">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Tag" type="jas:TagType" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>The tags used to seach the database with.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element ref="Format"/>
						<xs:element ref="Database"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="searchByTagResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="Matrix" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="getMatrixByName">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Name" type="xs:string">
							<xs:annotation>
								<xs:documentation>The name of a matrix.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element ref="Format"/>
						<xs:element ref="Database"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="getMatrixByNameResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="Matrix"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="getMatrixById">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Id" type="xs:string">
							<xs:annotation>
								<xs:documentation>The Id of a matrix.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element ref="Format"/>
						<xs:element ref="Database"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="getMatrixByIdResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="Matrix"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="getAllMatrices">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="Format"/>
						<xs:element ref="Database"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="getAllMatricesResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="Matrix" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:schema>
	</types>
	<message name="getMatrixByNameResponseMsg">
		<part name="parameters" element="jas:getMatrixByNameResponse"/>
	</message>
	<message name="getMatrixByNameRequestMsg">
		<part name="parameters" element="jas:getMatrixByName"/>
	</message>
	<message name="searchByTagRequestMsg">
		<part name="parameters" element="jas:searchByTag"/>
	</message>
	<message name="searchByTagResponseMsg">
		<part name="parameters" element="jas:searchByTagResponse"/>
	</message>
	<message name="getAllMatricesRequestMsg">
		<part name="parameters" element="jas:getAllMatrices"/>
	</message>
	<message name="getAllMatricesResponseMsg">
		<part name="parameters" element="jas:getAllMatricesResponse"/>
	</message>
	<message name="getMatrixByIdRequestMsg">
		<part name="parameters" element="jas:getMatrixById"/>
	</message>
	<message name="getMatrixByIdResponseMsg">
		<part name="parameters" element="jas:getMatrixByIdResponse"/>
	</message>
	<portType name="JasparDB">
		<operation name="getMatrixByName">
			<documentation>Fetch a Matrix by it's name.</documentation>
			<input message="jas:getMatrixByNameRequestMsg"/>
			<output message="jas:getMatrixByNameResponseMsg"/>
		</operation>
		<operation name="getMatrixById">
			<documentation>Fetch a Matrix by it's accession Id.</documentation>
			<input message="jas:getMatrixByIdRequestMsg"/>
			<output message="jas:getMatrixByIdResponseMsg"/>
		</operation>
		<operation name="searchByTag">
			<documentation>Fetch matrices by the tags thay are annotated with.</documentation>
			<input message="jas:searchByTagRequestMsg"/>
			<output message="jas:searchByTagResponseMsg"/>
		</operation>
		<operation name="getAllMatrices">
			<documentation>Fetch all matrices in the database.</documentation>
			<input message="jas:getAllMatricesRequestMsg"/>
			<output message="jas:getAllMatricesResponseMsg"/>
		</operation>
	</portType>
	<binding name="JasparDB" type="jas:JasparDB">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="getMatrixByName">
			<soap:operation soapAction="http://bccs.uib.no/Jaspar/getMatrixByName" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
		<operation name="getMatrixById">
			<soap:operation soapAction="http://bccs.uib.no/Jaspar/getMatrixById" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
		<operation name="searchByTag">
			<soap:operation soapAction="http://bccs.uib.no/Jaspar/searchByTag" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
		<operation name="getAllMatrices">
			<soap:operation soapAction="http://bccs.uib.no/Jaspar/getAllMatrices" style="document"/>
			<input>
				<soap:body use="literal"/>
			</input>
			<output>
				<soap:body use="literal"/>
			</output>
		</operation>
	</binding>
	<service name="JasparDB">
		<documentation>
This is a Web service interface to the Jaspar database which contain profiles of transcription factor binding sites. 
Profiles can be fetched as Position Frequency Matrices (PFM), Position Weight Matrices (PWM), or
Information Content Matrices (ICM).

<doc:ServiceDocumentation xmlns:doc="http://www.bccs.uib.no/ServiceDocumentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bccs.uib.no/ServiceDocumentation http://api.bioinfo.no/schema/ServiceDocumentation.xsd">
	<doc:Reference>JASPAR, the open access database of transcription factor-binding profiles: new content and tools in the 2008 update. Bryne JC, Valen E, Tang MH, Marstrand T, Winther O, da Piedade I, Krogh A, Lenhard B, Sandelin A. Nucleic Acids Res. 2008 Jan;36(Database issue):D102-6. Epub 2007 Nov 15.</doc:Reference>
	<doc:WebSite>http://jaspar.genereg.net/</doc:WebSite>
	<doc:SampleClient>http://api.bioinfo.no/clients/JasparClient.java</doc:SampleClient>
	<doc:SampleClient>http://api.bioinfo.no/clients/JasparClient.py</doc:SampleClient>
	<doc:SampleClient>http://api.bioinfo.no/clients/JasparClient.pl</doc:SampleClient>
	<doc:Version>0.2 (beta service)</doc:Version>
</doc:ServiceDocumentation></documentation>
		<port name="JasparDB" binding="jas:JasparDB">
			<soap:address location="http://api.bioinfo.no/services/JasparDB"/>
		</port>
	</service>
</definitions>
