<?xml version="1.0"?>
<definitions
	name="KEGG_v3.0" 
	targetNamespace="SOAP/KEGG" 
	xmlns:typens="SOAP/KEGG"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
 	xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	xmlns="http://schemas.xmlsoap.org/wsdl/">

	<types>
		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
			targetNamespace="SOAP/KEGG" >

		<!-- common variable -->
		<xsd:complexType name="ArrayOfstring">
			<xsd:complexContent>
				<xsd:restriction base="soapenc:Array">
  					<xsd:attribute ref="soapenc:arrayType" 
					   wsdl:arrayType="xsd:string[]" /> 
  				</xsd:restriction>
 			</xsd:complexContent>
		</xsd:complexType>
	
		<!-- SSDB -->
		<xsd:complexType name="SSDBRelation">
			<xsd:all>
          			<xsd:element name="genes_id1"	type="xsd:string"/>
          			<xsd:element name="genes_id2"	type="xsd:string"/>
          			<xsd:element name="sw_score"	type="xsd:int"/>
          			<xsd:element name="bit_score"	type="xsd:float"/>
          			<xsd:element name="identity"	type="xsd:float"/>
          			<xsd:element name="overlap"	type="xsd:int"/>
          			<xsd:element name="start_position1"	type="xsd:int"/>
          			<xsd:element name="end_position1"	type="xsd:int"/>
          			<xsd:element name="start_position2"	type="xsd:int"/>
          			<xsd:element name="end_position2"	type="xsd:int"/>
          			<xsd:element name="best_flag_1to2"	type="xsd:boolean"/>
          			<xsd:element name="best_flag_2to1"	type="xsd:boolean"/>
          			<xsd:element name="definition1"	type="xsd:string"/>
          			<xsd:element name="definition2"	type="xsd:string"/>
          			<xsd:element name="length1"	type="xsd:int"/>
          			<xsd:element name="length2"	type="xsd:int"/>
        		</xsd:all>
      		</xsd:complexType>

		<xsd:complexType name="ArrayOfSSDBRelation">
			<xsd:complexContent>
        			<xsd:restriction base="soapenc:Array">
        				<xsd:attribute ref="soapenc:arrayType" 
					   wsdl:arrayType="typens:SSDBRelation[]"/>
        			</xsd:restriction>
        		</xsd:complexContent>
		</xsd:complexType>	

		<!-- MOTIF -->
		<xsd:complexType name="MotifResult">
			<xsd:all>
          			<xsd:element name="motif_id"	type="xsd:string"/>
          			<xsd:element name="definition"	type="xsd:string"/>
          			<xsd:element name="genes_id"	type="xsd:string"/>
          			<xsd:element name="start_position"	type="xsd:int"/>
          			<xsd:element name="end_position"	type="xsd:int"/>
          			<xsd:element name="score"	type="xsd:float"/>
          			<xsd:element name="evalue"	type="xsd:double"/>
        		</xsd:all>
      		</xsd:complexType>

		<xsd:complexType name="ArrayOfMotifResult">
                        <xsd:complexContent>
                                <xsd:restriction base="soapenc:Array">
                                        <xsd:attribute ref="soapenc:arrayType"
                                           wsdl:arrayType="typens:MotifResult[]"/>
                                </xsd:restriction>
                        </xsd:complexContent>
                </xsd:complexType>

		<!-- DEFINITION -->
		<xsd:complexType name="Definition">
			<xsd:all>
          			<xsd:element name="entry_id"	type="xsd:string"/>
          			<xsd:element name="definition"	type="xsd:string"/>
        		</xsd:all>
      		</xsd:complexType>

		<xsd:complexType name="ArrayOfDefinition">
                        <xsd:complexContent>
                                <xsd:restriction base="soapenc:Array">
                                        <xsd:attribute ref="soapenc:arrayType"
                                           wsdl:arrayType="typens:Definition[]"/>
                                </xsd:restriction>
                        </xsd:complexContent>
                </xsd:complexType>

		<!-- LinkDB -->
		<xsd:complexType name="LinkDBRelation">
                        <xsd:all>
                                <xsd:element name="entry_id1"	type="xsd:string"/>
                                <xsd:element name="entry_id2"	type="xsd:string"/>
                                <xsd:element name="type"	type="xsd:string"/>
                                <xsd:element name="path"	type="xsd:string"/>
                        </xsd:all>
                </xsd:complexType>

                <xsd:complexType name="ArrayOfLinkDBRelation">
                        <xsd:complexContent>
                                <xsd:restriction base="soapenc:Array">
                                        <xsd:attribute ref="soapenc:arrayType"
                                           wsdl:arrayType="typens:LinkDBRelation[]"/>
                                </xsd:restriction>
                        </xsd:complexContent>
                </xsd:complexType>

		</xsd:schema>
	</types>

	<!-- KEGG information -->
	<!-- list_databases -->
        <message name="list_databasesRequest" />
        <message name="list_databasesResponse">
                <part name="return"	type="typens:ArrayOfDefinition"/>
        </message>

	<!-- list_organisms -->
        <message name="list_organismsRequest" />
        <message name="list_organismsResponse">
                <part name="return"	type="typens:ArrayOfDefinition"/>
        </message>

	<!-- list_pathways -->
	<message name="list_pathwaysRequest">
                <part name="org"	type="xsd:string"/>
	</message>
	<message name="list_pathwaysResponse">
		<part name="return"	type="typens:ArrayOfDefinition"/>
	</message>

	<!-- DBGET -->
        <!-- binfo -->
        <message name="binfoRequest">
                <part name="db"	type="xsd:string"/>
        </message>
        <message name="binfoResponse">
                <part name="return"	type="xsd:string"/>
        </message>

	<!-- bget -->
        <message name="bgetRequest">
                <part name="string"	type="xsd:string"/>
        </message>
        <message name="bgetResponse">
                <part name="return"	type="xsd:string"/>
        </message>

	<!-- bfind -->
        <message name="bfindRequest">
                <part name="string"	type="xsd:string"/>
        </message>
        <message name="bfindResponse">
                <part name="return"	type="xsd:string"/>
        </message>

	<!-- btit -->
        <message name="btitRequest">
                <part name="string"	type="xsd:string"/>
        </message>
        <message name="btitResponse">
                <part name="return"	type="xsd:string"/>
        </message>

	<!-- LinkDB -->
        <message name="get_linkdb_by_entryRequest">
                <part name="entry_id"	type="xsd:string"/>
                <part name="db"		type="xsd:string"/>
		<part name="start"	type="xsd:int"/>
		<part name="max_results"	type="xsd:int"/>
        </message>

        <message name="get_linkdb_by_entryResponse">
                <part name="return"	type="typens:ArrayOfLinkDBRelation"/>
        </message>

	<!-- SSDB -->
	<!-- get_neighbors_by_gene -->
	<message name="get_neighbors_by_geneRequest">
		<part name="genes_id"	type="xsd:string"/>
		<part name="org"	type="xsd:string"/>
		<part name="start"	type="xsd:int"/>
		<part name="max_results"	type="xsd:int"/>
	</message>

	<message name="get_neighbors_by_geneResponse">
		<part name="return"	type="typens:ArrayOfSSDBRelation"/>
	</message>


	<!-- get_best_neighbors_by_gene -->
	<message name="get_best_neighbors_by_geneRequest">
		<part name="genes_id"	type="xsd:string"/>
		<part name="start"	type="xsd:int"/>
		<part name="max_results"	type="xsd:int"/>
	</message>

	<message name="get_best_neighbors_by_geneResponse">
		<part name="return"	type="typens:ArrayOfSSDBRelation"/>
	</message>

	<!-- get_best_best_neighbors_by_gene -->
	<message name="get_best_best_neighbors_by_geneRequest">
		<part name="genes_id"	type="xsd:string"/>
		<part name="start"	type="xsd:int"/>
		<part name="max_results"	type="xsd:int"/>
	</message>

	<message name="get_best_best_neighbors_by_geneResponse">
		<part name="return"	type="typens:ArrayOfSSDBRelation"/>
	</message>

	<!-- get_reverse_best_neighbors_by_gene -->
	<message name="get_reverse_best_neighbors_by_geneRequest">
		<part name="genes_id"	type="xsd:string"/>
		<part name="start"	type="xsd:int"/>
		<part name="max_results"	type="xsd:int"/>
	</message>

	<message name="get_reverse_best_neighbors_by_geneResponse">
		<part name="return"	type="typens:ArrayOfSSDBRelation"/>
	</message>

	
	<!-- get_paralogs_by_geneRequest -->
	<message name="get_paralogs_by_geneRequest">
		<part name="genes_id"	type="xsd:string"/>
		<part name="start"	type="xsd:int"/>
		<part name="max_results"	type="xsd:int"/>
	</message>

	<message name="get_paralogs_by_geneResponse">
		<part name="return"	type="typens:ArrayOfSSDBRelation"/>
	</message>

	<!-- get_similarity_between_genes -->
	<message name="get_similarity_between_genesRequest">
                <part name="genes_id1"	type="xsd:string"/>
                <part name="genes_id2"	type="xsd:string"/>
        </message>

        <message name="get_similarity_between_genesResponse">
                <part name="return"	type="typens:SSDBRelation"/>
        </message>
	
	<!-- MOTIF -->
	<!-- get_motifs_by_gene -->
        <message name="get_motifs_by_geneRequest">
		<part name="genes_id"	type="xsd:string"/>
		<part name="db"		type="xsd:string"/>
        </message>

        <message name="get_motifs_by_geneResponse">
                <part name="return"	type="typens:ArrayOfMotifResult"/>
        </message>
	
	<!-- get_genes_by_motifs -->
        <message name="get_genes_by_motifsRequest">
		<part name="motif_id_list"	type="typens:ArrayOfstring"/>
		<part name="start"		type="xsd:int"/>
		<part name="max_results"	type="xsd:int"/>
        </message>

        <message name="get_genes_by_motifsResponse">
                <part name="return"	type="typens:ArrayOfDefinition"/>
        </message>

	<!-- KO,OC,PC -->
	<!-- get_ko_by_gene -->
        <message name="get_ko_by_geneRequest">
                <part name="genes_id"	type="xsd:string"/>
        </message>

        <message name="get_ko_by_geneResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

	<!-- get_ko_members -->
        <message name="get_ko_membersRequest">
                <part name="ko_id"	type="xsd:string"/>
        </message>

        <message name="get_ko_membersResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

	<!-- get_oc_members_by_gene -->
        <message name="get_oc_members_by_geneRequest">
                <part name="genes_id"	type="xsd:string"/>
		<part name="start"	type="xsd:int"/>
		<part name="max_results"	type="xsd:int"/>
        </message>

        <message name="get_oc_members_by_geneResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

	<!-- get_pc_members_by_gene -->
        <message name="get_pc_members_by_geneRequest">
                <part name="genes_id"	type="xsd:string"/>
		<part name="start"	type="xsd:int"/>
		<part name="max_results"	type="xsd:int"/>
        </message>

        <message name="get_pc_members_by_geneResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>
	
	<!-- PATHWAY -->
	<!-- Coloring pathways -->
        <!-- mark_pathway_by_objects -->
        <message name="mark_pathway_by_objectsRequest">
                <part name="pathway_id"		type="xsd:string"/>
                <part name="object_id_list"	type="typens:ArrayOfstring"/>
        </message>

        <message name="mark_pathway_by_objectsResponse">
                <part name="return"	type="xsd:string"/>
        </message>

        <!-- color_pathway_by_objects -->
        <message name="color_pathway_by_objectsRequest">
                <part name="pathway_id"		type="xsd:string"/>
                <part name="object_id_list"	type="typens:ArrayOfstring"/>
                <part name="fg_color_list"	type="typens:ArrayOfstring"/>
                <part name="bg_color_list"	type="typens:ArrayOfstring"/>
        </message>

        <message name="color_pathway_by_objectsResponse">
                <part name="return"	type="xsd:string"/>
        </message>

        <!-- Objects on the pathway -->
	<!-- get_genes_by_pathway -->
        <message name="get_genes_by_pathwayRequest">
                <part name="pathway_id"	type="xsd:string"/>
        </message>

        <message name="get_genes_by_pathwayResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- get_enzymes_by_pathway -->
        <message name="get_enzymes_by_pathwayRequest">
                <part name="pathway_id"	type="xsd:string"/>
        </message>

        <message name="get_enzymes_by_pathwayResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- get_compounds_by_pathway -->
        <message name="get_compounds_by_pathwayRequest">
                <part name="pathway_id"	type="xsd:string"/>
        </message>

        <message name="get_compounds_by_pathwayResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- get_reactions_by_pathway -->
        <message name="get_reactions_by_pathwayRequest">
                <part name="pathway_id"	type="xsd:string"/>
        </message>

        <message name="get_reactions_by_pathwayResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- Pathways by objects -->
        <!-- get_pathways_by_genes -->
        <message name="get_pathways_by_genesRequest">
                <part name="genes_id_list"	type="typens:ArrayOfstring"/>
        </message>

        <message name="get_pathways_by_genesResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- get_pathways_by_enzymes  -->
        <message name="get_pathways_by_enzymesRequest">
                <part name="enzyme_id_list"	type="typens:ArrayOfstring"/>
        </message>

        <message name="get_pathways_by_enzymesResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- get_pathways_by_compounds -->
        <message name="get_pathways_by_compoundsRequest">
                <part name="compound_id_list"	type="typens:ArrayOfstring"/>
        </message>

        <message name="get_pathways_by_compoundsResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- get_pathways_by_reactions -->
        <message name="get_pathways_by_reactionsRequest">
                <part name="reaction_id_list"	type="typens:ArrayOfstring"/>
        </message>

        <message name="get_pathways_by_reactionsResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- Mutual transformation of objects -->
        <!-- Relation among pathways -->
	<!-- get_linked_pathways -->
        <message name="get_linked_pathwaysRequest">
		<part name="pathway_id"	type="xsd:string"/>
        </message>
        <message name="get_linked_pathwaysResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- Relation among genes and enzymes -->
        <!-- get_genes_by_enzyme -->
        <message name="get_genes_by_enzymeRequest">
                <part name="enzyme_id"	type="xsd:string"/>
                <part name="org"	type="xsd:string"/>
        </message>

        <message name="get_genes_by_enzymeResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- get_enzymes_by_gene -->
        <message name="get_enzymes_by_geneRequest">
                <part name="genes_id"	type="xsd:string"/>
        </message>

        <message name="get_enzymes_by_geneResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- Relation among enzymes, compounds and reactions -->
        <!-- get_enzymes_by_compound -->
        <message name="get_enzymes_by_compoundRequest">
                <part name="compound_id"	type="xsd:string"/>
        </message>

        <message name="get_enzymes_by_compoundResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- get_enzymes_by_reaction -->
        <message name="get_enzymes_by_reactionRequest">
                <part name="reaction_id"	type="xsd:string"/>
        </message>

        <message name="get_enzymes_by_reactionResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- get_compounds_by_enzyme -->
        <message name="get_compounds_by_enzymeRequest">
                <part name="enzyme_id"	type="xsd:string"/>
        </message>

        <message name="get_compounds_by_enzymeResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- get_compounds_by_reaction -->
        <message name="get_compounds_by_reactionRequest">
                <part name="reaction_id"	type="xsd:string"/>
        </message>

        <message name="get_compounds_by_reactionResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- get_reactions_by_enzyme -->
        <message name="get_reactions_by_enzymeRequest">
                <part name="enzyme_id"	type="xsd:string"/>
        </message>

        <message name="get_reactions_by_enzymeResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

        <!-- get_reactions_by_compound -->
        <message name="get_reactions_by_compoundRequest">
                <part name="compound_id"	type="xsd:string"/>
        </message>

        <message name="get_reactions_by_compoundResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

	<!-- GENES -->
        <!-- get_genes_by_organism -->
        <message name="get_genes_by_organismRequest">
		<part name="org"	type="xsd:string"/>
		<part name="start"	type="xsd:int"/>
		<part name="max_results"	type="xsd:int"/>
        </message>

        <message name="get_genes_by_organismResponse">
                <part name="return"	type="typens:ArrayOfstring"/>
        </message>

	<!-- GENOME -->
        <!-- get_number_of_genes_by_organism -->
        <message name="get_number_of_genes_by_organismRequest">
                <part name="abbr"	type="xsd:string"/>
        </message>

        <message name="get_number_of_genes_by_organismResponse">
                <part name="return"	type="xsd:int"/>
        </message>

	<portType name="KEGGPortType">
		<!-- KEGG information -->
		<operation name="list_databases">
                        <input message="typens:list_databasesRequest" />
                        <output message="typens:list_databasesResponse" />
                </operation>

                <operation name="list_organisms">
                        <input message="typens:list_organismsRequest" />
                        <output message="typens:list_organismsResponse" />
                </operation>

                <operation name="list_pathways">
                        <input message="typens:list_pathwaysRequest" />
                        <output message="typens:list_pathwaysResponse" />
                </operation>

		<!-- DBGET -->
                <operation name="binfo">
                        <input message="typens:binfoRequest" />
                        <output message="typens:binfoResponse" />
                </operation>

                <operation name="bget">
                        <input message="typens:bgetRequest" />
                        <output message="typens:bgetResponse" />
                </operation>

                <operation name="bfind">
                        <input message="typens:bfindRequest" />
                        <output message="typens:bfindResponse" />
                </operation>

                <operation name="btit">
                        <input message="typens:btitRequest" />
                        <output message="typens:btitResponse" />
                </operation>

		<!-- LinkDB -->
                <operation name="get_linkdb_by_entry">
                        <input message="typens:get_linkdb_by_entryRequest" />
                        <output message="typens:get_linkdb_by_entryResponse" />
                </operation>

		<!-- SSDB -->
		<operation name="get_neighbors_by_gene">
			<input message="typens:get_neighbors_by_geneRequest" />
			<output message="typens:get_neighbors_by_geneResponse" />
		</operation>

		<operation name="get_best_neighbors_by_gene">
			<input message="typens:get_best_neighbors_by_geneRequest" />
			<output message="typens:get_best_neighbors_by_geneResponse" />
		</operation>

		<operation name="get_best_best_neighbors_by_gene">
			<input message="typens:get_best_best_neighbors_by_geneRequest" />
			<output message="typens:get_best_best_neighbors_by_geneResponse" />
		</operation>

		<operation name="get_reverse_best_neighbors_by_gene">
			<input message="typens:get_reverse_best_neighbors_by_geneRequest" />
			<output message="typens:get_reverse_best_neighbors_by_geneResponse" />
		</operation>

		<operation name="get_paralogs_by_gene">
			<input message="typens:get_paralogs_by_geneRequest" />
			<output message="typens:get_paralogs_by_geneResponse" />
		</operation>

		<operation name="get_similarity_between_genes">
			<input message="typens:get_similarity_between_genesRequest" />
			<output message="typens:get_similarity_between_genesResponse" />
		</operation>

		<!-- MOTIF -->
		<operation name="get_motifs_by_gene">
			<input message="typens:get_motifs_by_geneRequest" />
			<output message="typens:get_motifs_by_geneResponse" />
		</operation>

		<operation name="get_genes_by_motifs">
			<input message="typens:get_genes_by_motifsRequest" />
			<output message="typens:get_genes_by_motifsResponse" />
		</operation>
			
		<!-- KO,OC,PC -->
                <operation name="get_ko_by_gene">
                        <input message="typens:get_ko_by_geneRequest" />
                        <output message="typens:get_ko_by_geneResponse" />
                </operation>

                <operation name="get_ko_members">
                        <input message="typens:get_ko_membersRequest" />
                        <output message="typens:get_ko_membersResponse" />
                </operation>

                <operation name="get_oc_members_by_gene">
                        <input message="typens:get_oc_members_by_geneRequest" />
                        <output message="typens:get_oc_members_by_geneResponse" />
                </operation>

                <operation name="get_pc_members_by_gene">
                        <input message="typens:get_pc_members_by_geneRequest" />
                        <output message="typens:get_pc_members_by_geneResponse" />
                </operation>

		<!-- PATHWAY -->
		<!-- Coloring pathways -->
                <operation name="mark_pathway_by_objects">
                        <input message="typens:mark_pathway_by_objectsRequest" />
                        <output message="typens:mark_pathway_by_objectsResponse" />
                </operation>

                <operation name="color_pathway_by_objects">
                        <input message="typens:color_pathway_by_objectsRequest" />
                        <output message="typens:color_pathway_by_objectsResponse" />
                </operation>

		<!-- Objects on the pathway -->
		<operation name="get_genes_by_pathway">
                        <input message="typens:get_genes_by_pathwayRequest" />
                        <output message="typens:get_genes_by_pathwayResponse" />
                </operation>

                <operation name="get_enzymes_by_pathway">
                        <input message="typens:get_enzymes_by_pathwayRequest" />
                        <output message="typens:get_enzymes_by_pathwayResponse" />
                </operation>

                <operation name="get_compounds_by_pathway">
                        <input message="typens:get_compounds_by_pathwayRequest" />
                        <output message="typens:get_compounds_by_pathwayResponse" />
                </operation>

                <operation name="get_reactions_by_pathway">
                        <input message="typens:get_reactions_by_pathwayRequest" />
                        <output message="typens:get_reactions_by_pathwayResponse" />
                </operation>

		<!-- Pathways by objects -->
                <operation name="get_pathways_by_genes">
                        <input message="typens:get_pathways_by_genesRequest" />
                        <output message="typens:get_pathways_by_genesResponse" />
                </operation>

                <operation name="get_pathways_by_enzymes">
                        <input message="typens:get_pathways_by_enzymesRequest" />
                        <output message="typens:get_pathways_by_enzymesResponse" />
                </operation>	

                <operation name="get_pathways_by_compounds">
                        <input message="typens:get_pathways_by_compoundsRequest" />
                        <output message="typens:get_pathways_by_compoundsResponse" />
                </operation>

                <operation name="get_pathways_by_reactions">
                        <input message="typens:get_pathways_by_reactionsRequest" />
                        <output message="typens:get_pathways_by_reactionsResponse" />
                </operation>

		<!-- Mutual transformation of objects -->
		<!-- Realtion among pathways -->
                <operation name="get_linked_pathways">
                        <input message="typens:get_linked_pathwaysRequest" />
                        <output message="typens:get_linked_pathwaysResponse" />
                </operation>

		<!-- Realtion among genes and enzymes -->
                <operation name="get_genes_by_enzyme">
                        <input message="typens:get_genes_by_enzymeRequest" />
                        <output message="typens:get_genes_by_enzymeResponse" />
                </operation>

                <operation name="get_enzymes_by_gene">
                        <input message="typens:get_enzymes_by_geneRequest" />
                        <output message="typens:get_enzymes_by_geneResponse" />
                </operation>

		<!-- Realtion among enzymes, compounds and reactions -->
                <operation name="get_enzymes_by_compound">
                        <input message="typens:get_enzymes_by_compoundRequest" />
                        <output message="typens:get_enzymes_by_compoundResponse" />
                </operation>

                <operation name="get_enzymes_by_reaction">
                        <input message="typens:get_enzymes_by_reactionRequest" />
                        <output message="typens:get_enzymes_by_reactionResponse" />
                </operation>

                <operation name="get_compounds_by_enzyme">
                        <input message="typens:get_compounds_by_enzymeRequest" />
                        <output message="typens:get_compounds_by_enzymeResponse" />
                </operation>

                <operation name="get_compounds_by_reaction">
                        <input message="typens:get_compounds_by_reactionRequest" />
                        <output message="typens:get_compounds_by_reactionResponse" />
                </operation>

                <operation name="get_reactions_by_enzyme">
                        <input message="typens:get_reactions_by_enzymeRequest" />
                        <output message="typens:get_reactions_by_enzymeResponse" />
                </operation>

                <operation name="get_reactions_by_compound">
                        <input message="typens:get_reactions_by_compoundRequest" />
                        <output message="typens:get_reactions_by_compoundResponse" />
                </operation>

		<!-- GENES -->
                <operation name="get_genes_by_organism">
                        <input message="typens:get_genes_by_organismRequest" />
                        <output message="typens:get_genes_by_organismResponse" />
                </operation>

		<!-- GENOME -->
                <operation name="get_number_of_genes_by_organism">
                        <input message="typens:get_number_of_genes_by_organismRequest" />
                        <output message="typens:get_number_of_genes_by_organismResponse" />
                </operation>
	</portType>

	<binding name="KEGGBinding" type="typens:KEGGPortType">
		<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

		<!-- KEGG information -->
		<operation name="list_databases">
                        <soap:operation soapAction="SOAP/KEGG#list_databases"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="list_organisms">
                        <soap:operation soapAction="SOAP/KEGG#list_organisms"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

		<operation name="list_pathways">
                        <soap:operation soapAction="SOAP/KEGG#list_pathways"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

		<!-- DBGET -->
                <operation name="binfo">
                        <soap:operation soapAction="SOAP/KEGG#binfo"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="bget">
                        <soap:operation soapAction="SOAP/KEGG#bget"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="bfind">
                        <soap:operation soapAction="SOAP/KEGG#bfind"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="btit">
                        <soap:operation soapAction="SOAP/KEGG#btit"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

		<!-- LinkDB -->
                <operation name="get_linkdb_by_entry">
                        <soap:operation soapAction="SOAP/KEGG#get_linkdb_by_entry"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

		<!-- SSDB -->
		<operation name="get_neighbors_by_gene">
			<soap:operation soapAction="SOAP/KEGG#get_neighbors_by_gene"/>
				<input>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</input>
				<output>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

		<operation name="get_best_neighbors_by_gene">
			<soap:operation soapAction="SOAP/KEGG#get_best_neighbors_by_gene"/>
				<input>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</input>
				<output>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

		<operation name="get_best_best_neighbors_by_gene">
			<soap:operation soapAction="SOAP/KEGG#get_best_best_neighbors_by_gene"/>
				<input>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</input>
				<output>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

		<operation name="get_reverse_best_neighbors_by_gene">
			<soap:operation soapAction="SOAP/KEGG#get_reverse_best_neighbors_by_gene"/>
				<input>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</input>
				<output>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

		<operation name="get_paralogs_by_gene">
			<soap:operation soapAction="SOAP/KEGG#get_paralogs_by_gene"/>
				<input>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</input>
				<output>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

		<operation name="get_similarity_between_genes">
			<soap:operation soapAction="SOAP/KEGG#get_similarity_between_genes"/>
				<input>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</input>
				<output>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

		<!-- MOTIF -->
		<operation name="get_motifs_by_gene">
			<soap:operation soapAction="SOAP/KEGG#get_motifs_by_gene"/>
				<input>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</input>
				<output>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

		<operation name="get_genes_by_motifs">
			<soap:operation soapAction="SOAP/KEGG#get_genes_by_motifs"/>
				<input>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</input>
				<output>
					<soap:body use="encoded"
                   			 namespace="SOAP/KEGG"
                   			 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

		<!-- KO,OC,PC -->
                <operation name="get_ko_by_gene">
                        <soap:operation soapAction="SOAP/KEGG#get_ko_by_gene"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

                <operation name="get_ko_members">
                        <soap:operation soapAction="SOAP/KEGG#get_ko_members"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

                <operation name="get_oc_members_by_gene">
                        <soap:operation soapAction="SOAP/KEGG#get_oc_members_by_gene"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

                <operation name="get_pc_members_by_gene">
                        <soap:operation soapAction="SOAP/KEGG#get_pc_members_by_gene"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
				</output>
		</operation>

		<!-- PATHWAY -->
                <!-- Coloring pathways -->
                <operation name="mark_pathway_by_objects">
                        <soap:operation soapAction="SOAP/KEGG#mark_pathway_by_objects"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="color_pathway_by_objects">
                        <soap:operation soapAction="SOAP/KEGG#color_pathway_by_objects"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <!-- Objects on the pathway -->
		<operation name="get_genes_by_pathway">
                        <soap:operation soapAction="SOAP/KEGG#get_genes_by_pathway"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="get_enzymes_by_pathway">
                        <soap:operation soapAction="SOAP/KEGG#get_enzymes_by_pathway"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="get_compounds_by_pathway">
                        <soap:operation soapAction="SOAP/KEGG#get_compounds_by_pathway"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="get_reactions_by_pathway">
                        <soap:operation soapAction="SOAP/KEGG#get_reactions_by_pathway"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <!-- Pathways by object -->
                <operation name="get_pathways_by_genes">
                        <soap:operation soapAction="SOAP/KEGG#get_pathways_by_genes"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="get_pathways_by_enzymes">
                        <soap:operation soapAction="SOAP/KEGG#get_pathways_by_enzymes"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="get_pathways_by_compounds">
                        <soap:operation soapAction="SOAP/KEGG#get_pathways_by_compounds"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="get_pathways_by_reactions">
                        <soap:operation soapAction="SOAP/KEGG#get_pathways_by_reactions"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

		<!-- Mutual transformation of objects -->
		<operation name="get_linked_pathways">
                        <soap:operation soapAction="SOAP/KEGG#get_linked_pathways"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

		<operation name="get_genes_by_enzyme">
                        <soap:operation soapAction="SOAP/KEGG#get_genes_by_enzyme"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

		<operation name="get_enzymes_by_gene">
                        <soap:operation soapAction="SOAP/KEGG#get_enzymes_by_gene"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="get_enzymes_by_compound">
                        <soap:operation soapAction="SOAP/KEGG#get_enzymes_by_compound"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="get_enzymes_by_reaction">
                        <soap:operation soapAction="SOAP/KEGG#get_enzymes_by_reaction"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="get_compounds_by_enzyme">
                        <soap:operation soapAction="SOAP/KEGG#get_compounds_by_enzyme"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="get_compounds_by_reaction">
                        <soap:operation soapAction="SOAP/KEGG#get_compounds_by_reaction"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="get_reactions_by_enzyme">
                        <soap:operation soapAction="SOAP/KEGG#get_reactions_by_enzyme"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

                <operation name="get_reactions_by_compound">
                        <soap:operation soapAction="SOAP/KEGG#get_reactions_by_compound"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

		<!-- GENES -->
		<operation name="get_genes_by_organism">
                        <soap:operation soapAction="SOAP/KEGG#get_genes_by_organism"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

		<!-- GENOME -->
                <operation name="get_number_of_genes_by_organism">
                        <soap:operation soapAction="SOAP/KEGG#get_number_of_genes_by_organism"/>
                                <input>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </input>
                                <output>
                                        <soap:body use="encoded"
                                         namespace="SOAP/KEGG"
                                         encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                                </output>
                </operation>

	</binding>

	<service name="KEGG">
		<port name="KEGGPort" binding="typens:KEGGBinding">
			<soap:address location="http://soap.genome.jp/keggapi/request_v3.0.cgi"/>
		</port>
	</service>

</definitions>

