This is my wsdl with the schema restrictions:
<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions
name="BiometricService" targetNamespace="http://ws.biometria.XXXX.com"
xmlns:ns1="http://schemas.xmlsoap.org/soap/http"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://ws.biometria.XXXX.com"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="unqualified"
targetNamespace="http://ws.biometria.XXXX.com"
xmlns="http://ws.biometria.XXXX.com"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="terminalData">
<xs:sequence>
<xs:element minOccurs="0" name="branchId">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="data">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="deviceSerialNumber">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="zipCode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="15"/>
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="supervisor">
<xs:sequence>
<xs:element minOccurs="0" name="birthDate" type="xs:dateTime"/>
<xs:element minOccurs="0" name="documentNumber">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="12"/>
<xs:pattern value="([0-9])*"/>
<xs:minLength value="5"/>
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="documentType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:pattern value="[12345]"/>
<xs:minLength value="1"/>
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="name">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="80"/>
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="nickName">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="25"/>
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="user">
<xs:sequence>
<xs:element minOccurs="0" name="birthDate" type="xs:dateTime"/>
<xs:element minOccurs="0" name="documentNumber">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="12"/>
<xs:pattern value="([0-9])*"/>
<xs:minLength value="5"/>
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" name="documentType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:pattern value="[12345]"/>
<xs:minLength value="1"/>
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="palmCredential">
<xs:sequence>
<xs:element minOccurs="0" name="hash" type="xs:string"/>
<xs:element minOccurs="0" name="palmData" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="InvalidBankException" type="InvalidBankException"/>
<xs:complexType name="InvalidBankException">
<xs:sequence>
<xs:element name="message" nillable="true" type="xs:string"/>
<xs:element name="errorCode" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="TicketExcpetion" type="TicketExcpetion"/>
<xs:complexType name="TicketExcpetion">
<xs:sequence>
<xs:element name="message" nillable="true" type="xs:string"/>
<xs:element name="errorCode" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="UserException" type="UserException"/>
<xs:complexType name="UserException">
<xs:sequence>
<xs:element name="message" nillable="true" type="xs:string"/>
<xs:element name="errorCode" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="getTicket" type="getTicket"/>
<xs:complexType name="getTicket">
<xs:sequence>
<xs:element minOccurs="0" name="terminalData" type="terminalData"/>
<xs:element minOccurs="0" name="supervisor" type="supervisor"/>
<xs:element name="operation" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:element name="getTicketResponse" type="getTicketResponse"/>
<xs:complexType name="getTicketResponse">
<xs:sequence>
<xs:element minOccurs="0" name="result" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="enrollment" type="enrollment"/>
<xs:complexType name="enrollment">
<xs:sequence>
<xs:element minOccurs="0" name="ticketData" type="xs:string"/>
<xs:element minOccurs="0" name="terminalData" type="terminalData"/>
<xs:element minOccurs="0" name="supervisor" type="supervisor"/>
<xs:element minOccurs="0" name="user" type="user"/>
<xs:element minOccurs="0" name="palmCredential" type="palmCredential"/>
</xs:sequence>
</xs:complexType>
<xs:element name="enrollmentResponse" type="enrollmentResponse"/>
<xs:complexType name="enrollmentResponse">
<xs:sequence>
<xs:element minOccurs="0" name="result" type="user"/>
</xs:sequence>
</xs:complexType>
<xs:element name="validate" type="validate"/>
<xs:complexType name="validate">
<xs:sequence>
<xs:element minOccurs="0" name="ticketData" type="xs:string"/>
<xs:element minOccurs="0" name="terminalData" type="terminalData"/>
<xs:element minOccurs="0" name="supervisor" type="supervisor"/>
<xs:element minOccurs="0" name="user" type="user"/>
<xs:element minOccurs="0" name="palmCredential" type="palmCredential"/>
</xs:sequence>
</xs:complexType>
<xs:element name="validateResponse" type="validateResponse"/>
<xs:complexType name="validateResponse">
<xs:sequence>
<xs:element minOccurs="0" name="result" type="user"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="SupervisorException">
<wsdl:part element="tns:UserException" name="SupervisorException">
</wsdl:part>
</wsdl:message>
<wsdl:message name="enrollmentResponse">
<wsdl:part element="tns:enrollmentResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getTicketResponse">
<wsdl:part element="tns:getTicketResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="UserException">
<wsdl:part element="tns:UserException" name="UserException">
</wsdl:part>
</wsdl:message>
<wsdl:message name="validateResponse">
<wsdl:part element="tns:validateResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="TicketException">
<wsdl:part element="tns:TicketExcpetion" name="TicketException">
</wsdl:part>
</wsdl:message>
<wsdl:message name="enrollment">
<wsdl:part element="tns:enrollment" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="InvalidBankException">
<wsdl:part element="tns:InvalidBankException"
name="InvalidBankException">
</wsdl:part>
</wsdl:message>
<wsdl:message name="validate">
<wsdl:part element="tns:validate" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="getTicket">
<wsdl:part element="tns:getTicket" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="biometricService">
<wsdl:operation name="getTicket">
<wsdl:documentation>Get ticket</wsdl:documentation>
<wsdl:input message="tns:getTicket" name="getTicket">
</wsdl:input>
<wsdl:output message="tns:getTicketResponse" name="getTicketResponse">
</wsdl:output>
<wsdl:fault message="tns:InvalidBankException"
name="InvalidBankException">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="enrollment">
<wsdl:documentation>Enroll user</wsdl:documentation>
<wsdl:input message="tns:enrollment" name="enrollment">
</wsdl:input>
<wsdl:output message="tns:enrollmentResponse"
name="enrollmentResponse">
</wsdl:output>
<wsdl:fault message="tns:SupervisorException"
name="SupervisorException">
</wsdl:fault>
<wsdl:fault message="tns:UserException" name="UserException">
</wsdl:fault>
<wsdl:fault message="tns:InvalidBankException"
name="InvalidBankException">
</wsdl:fault>
<wsdl:fault message="tns:TicketException" name="TicketException">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="validate">
<wsdl:documentation>Validate user</wsdl:documentation>
<wsdl:input message="tns:validate" name="validate">
</wsdl:input>
<wsdl:output message="tns:validateResponse" name="validateResponse">
</wsdl:output>
<wsdl:fault message="tns:SupervisorException"
name="SupervisorException">
</wsdl:fault>
<wsdl:fault message="tns:UserException" name="UserException">
</wsdl:fault>
<wsdl:fault message="tns:InvalidBankException"
name="InvalidBankException">
</wsdl:fault>
<wsdl:fault message="tns:TicketException" name="TicketException">
</wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="BiometricServiceSoapBinding"
type="tns:biometricService">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getTicket">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="getTicket">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getTicketResponse">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="InvalidBankException">
<soap:fault name="InvalidBankException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="enrollment">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="enrollment">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="enrollmentResponse">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="SupervisorException">
<soap:fault name="SupervisorException" use="literal"/>
</wsdl:fault>
<wsdl:fault name="UserException">
<soap:fault name="UserException" use="literal"/>
</wsdl:fault>
<wsdl:fault name="InvalidBankException">
<soap:fault name="InvalidBankException" use="literal"/>
</wsdl:fault>
<wsdl:fault name="TicketException">
<soap:fault name="TicketException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="validate">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="validate">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="validateResponse">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="SupervisorException">
<soap:fault name="SupervisorException" use="literal"/>
</wsdl:fault>
<wsdl:fault name="UserException">
<soap:fault name="UserException" use="literal"/>
</wsdl:fault>
<wsdl:fault name="InvalidBankException">
<soap:fault name="InvalidBankException" use="literal"/>
</wsdl:fault>
<wsdl:fault name="TicketException">
<soap:fault name="TicketException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="BiometricService">
<wsdl:port binding="tns:BiometricServiceSoapBinding"
name="BiometricPort">
<soap:address
location="http://localhost:8080/biometria/BiometricService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
For example, when I've invoked the getTicket services I get this error:
org.apache.cxf.interceptor.Fault: Unmarshalling Error: cvc-elt.1: Cannot
find the declaration of element 'terminalData'.
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:823)
at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:644)
at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:157)
at
org.apache.cxf.interceptor.DocLiteralInInterceptor.getPara(DocLiteralInInterceptor.java:259)
at
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:126)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122)
at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:193)
at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129)
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187)
at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:110)
I don't know why, but its happend in old services.
Any idea.
Regards
--
View this message in context:
http://cxf.547215.n5.nabble.com/SchemaValidation-tp5711721p5712188.html
Sent from the cxf-user mailing list archive at Nabble.com.