Quote: 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'.
Does this same error occur if you *don't* activate schema validation? What values are you calling getTicket services to get that error?
Hopefully someone else can quickly answer your question for you. In the meantime, your WSDL can probably be shrunk about 80% and still demonstrate the same problem--doing that simplification beforehand helps us in spotting errors, indeed you might even spot the error on your own while simplifying the problem. You might also wish to modify my WSDL-web service using its downloadable source code ( http://www.jroller.com/gmazza/entry/web_service_tutorial) to your (greatly simplified) WSDL, with whatever modifications to replicate the error and go ahead and attach it as a JIRA. With all the incoming issues and other work the CXF team has, it's time-consuming for us to rig up a web service provider and a SOAP client just by receiving a WSDL--giving us a minimal Maven project that we can immediately deploy will increase the chances of the problem being solved.
Glen On 08/08/2012 09:25 AM, Alejandro wrote:
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.
