<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://petals.ow2.org/components/sql/version-1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="PersonValidationService" targetNamespace="http://petals.ow2.org/components/sql/version-1">
  <wsdl:types>
    <xsd:schema targetNamespace="http://petals.ow2.org/components/sql/version-1">
      <xsd:element name="result" type="tns:Result" />
	  <xsd:element name="filter" type="tns:Result" />
	  <xsd:element name="filtered" type="tns:Result" />

	<xsd:complexType name="Result">
			<xsd:sequence>
				<xsd:element name="row" type="tns:rowType" maxOccurs="unbounded" minOccurs="0" />
			</xsd:sequence>
		</xsd:complexType>
		
	<xsd:complexType name="rowType">
		<xsd:sequence>
			<xsd:element name="column" type="tns:columnType" maxOccurs="unbounded" minOccurs="0" />
		</xsd:sequence>
		<xsd:attribute name="index" type="xsd:int" use="optional" />
	</xsd:complexType>
	
	<xsd:complexType name="columnType">
		<xsd:simpleContent>
			<xsd:extension base="xsd:string">
				<xsd:attribute name="name" type="xsd:string" use="optional" />
				<xsd:attribute name="type" type="xsd:string" use="optional" />
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
      
      <xsd:element name="validation-result" type="xsd:boolean"/>
	  <xsd:element name="validationFault">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="message" type="xsd:string" />
					</xsd:sequence>
				</xsd:complexType>
		</xsd:element>
    </xsd:schema>
  </wsdl:types>
  
  <wsdl:message name="NewOperationRequest">
    <wsdl:part element="tns:result" name="result"/>
  </wsdl:message>
  <wsdl:message name="NewOperationResponse">
    <wsdl:part element="tns:validation-result" name="result"/>
  </wsdl:message>
  <wsdl:message name="filterRequest">
		<wsdl:part 	name="filterRequest" element="tns:filter" />
	</wsdl:message>
	<wsdl:message name="filterResponse">
		<wsdl:part 	name="filterResponse" element="tns:filtered" />
	</wsdl:message>
	<wsdl:message name="filterFault">
		<wsdl:part name="filterFault" element="tns:validationFault" />
	</wsdl:message>
  
  
  <wsdl:portType name="PersonValidationService">
    <wsdl:operation name="validate">
      <wsdl:input message="tns:NewOperationRequest"/>
      <wsdl:output message="tns:NewOperationResponse"/>
    </wsdl:operation>
	
	<wsdl:operation name="filter">
			<wsdl:input message="tns:filterRequest" />
			<wsdl:output message="tns:filterResponse" />
			<wsdl:fault name="fault" message="tns:filterFault" />
		</wsdl:operation>
  </wsdl:portType>
  
  <wsdl:binding name="PersonValidationServiceSOAP" type="tns:PersonValidationService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="validate">
      <soap:operation soapAction="http://petals.ow2.org/components/sql/version-1/validate"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
	
	<wsdl:operation name="filter">
		<soap:operation soapAction="http://petals.ow2.org/components/sql/version-1/filter"/>		
		<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal" />
			</wsdl:output>
			<wsdl:fault name="fault">
				<soap:fault use="literal" name="fault" />
			</wsdl:fault>
		</wsdl:operation>
  </wsdl:binding>
  
  <wsdl:service name="PersonValidationService">
    <wsdl:port binding="tns:PersonValidationServiceSOAP" name="PersonValidationServiceSOAP">
      <soap:address location="http://www.example.org/"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>
