2013/5/10 Philippe Bossu <[email protected]>

> Thanks Aki.
>
> Reading you I feel totally stupid :-)
>
> Although I followed stupidly part of documentation:
>
>    - http://cxf.apache.org/docs/wsdlvalidator.html
>
> Which shows an example that I find "misleading" for stupid guys like me :
>
>    - wsdlvalidator -s http://cxf.apache.org/schemas -s
>    http://mycompany/schemas Greeting.wsdl
>
>
aha. that's where it's coming from. It could be that this url used to
return a schema some years ago and in that case, it used to work.

we will update the page to avoid confusion.

thanks for spotting this.

regards, aki



>
>
> I must say I didn't understand the part and should have investigated this
> part:
>
>    - -s http://cxf.apache.org/schemas
>
>
> But now it's a bit clearer although I don't understand how to validate
> against WS-I rules
>
> I tried this which seems the most reasonable:
>
>    - wsdlvalidator -V -s
>
> http://cxf.apache.org/schemas/wsdl/wsdl.xsdsrc/main/resources/wsdl/CustomerService.wsdl
>
> it works.
>
> Anyway many thanks for your answers.
>
> Regards
>
> On Fri, May 10, 2013 at 3:58 PM, Aki Yoshida <[email protected]> wrote:
>
> > 2013/5/10 Philippe Bossu <[email protected]>
> >
> > > Note I have searched on StackOverflow and in users mailing list, this
> > error
> > > is rather generic (not always related to CXF) and users mention it
> > happens
> > > when an included XSD is wrong or returns HTML but in my case I am not
> > > concerned as I am not using any external XSD.
> > >
> >
> > You are using the "-s" option to pull an external schema but the url
> passed
> > to this option is not a schema url but just a directory url. As a result,
> > you get an html directory listing page which can't be interpreted as a
> > valid xml document.
> >
> > I don't think CXF goes on the internet to grab the XSD used in its
> > > validation, and note I am not behind a proxy so it should not be an
> > issue.
> > >
> > > Note also this is not my real WSDL which included XSDs, but I
> simplified
> > it
> > > to see if issue was related.
> > >
> > > So for now I don't see what I am doing wrong here.
> > >
> > > In fact there is something not clear for me about how "-s
> > > http://cxf.apache.org/schemas"; is  supposed to work, any explanation
> is
> > > welcome maybe it can help me fix my issue.
> > >
> > > Thanks for your help.
> > >
> > > On Fri, May 10, 2013 at 2:20 PM, Philippe Bossu <[email protected]>
> > wrote:
> > >
> > > > Hello,
> > > > Thanks for answer.
> > > >
> > > > The space was removed when copy pasting in mail, my comman is not:
> > > > wsdlvalidator -V -s
> > > >
> > >
> >
> http://cxf.apache.org/schemassrc/main/resources/wsdl/CustomerService.wsdl
> > > > but
> > > > wsdlvalidator -V -s http://cxf.apache.org/schemas
> > > >   src/main/resources/wsdl/CustomerService.wsdl
> > > >
> > > > Regards
> > > >
> > > > On Fri, May 10, 2013 at 2:17 PM, Aki Yoshida <[email protected]>
> > wrote:
> > > >
> > > >> I think what you described in incomplete.
> > > >> You mention that you are using the "-s" option. So I suppose you are
> > > >> passing your extra schema to this option. And that schema has
> > something
> > > >> that is related to this error. Your wsdl itself is okay. You should
> be
> > > >> able
> > > >> to validate it directly as it has no external references.
> > > >>
> > > >>
> > > >>
> > > >>
> > > >> 2013/5/10 Philippe Bossu <[email protected]>
> > > >>
> > > >> > Hello,
> > > >> > I am trying to use wsdlvalidator with the following command line
> > > >> options:
> > > >> > wsdlvalidator -s -V
> > > >> >
> > > >>
> > >
> >
> http://cxf.apache.org/schemassrc/main/resources/wsdl/CustomerService.wsdl
> > > >> >
> > > >> > I get this output:
> > > >> > wsdlvalidator -V -s
> > > >> >
> > > >>
> > >
> >
> http://cxf.apache.org/schemassrc/main/resources/wsdl/CustomerService.wsdl
> > > >> > wsdlvalidator - Apache CXF 2.7.4
> > > >> >
> > > >> > [Fatal Error] :1:55: White spaces are required between publicId
> and
> > > >> > systemId.
> > > >> > WSDLValidator Error : org.xml.sax.SAXParseException: White spaces
> > are
> > > >> > required between publicId and systemId.
> > > >> >
> > > >> > [+] Verbose turned on
> > > >> >
> > > >> > org.apache.cxf.tools.common.ToolException:
> > > >> org.xml.sax.SAXParseException:
> > > >> > White spaces are required between publicId and systemId.
> > > >> > at
> > > >> >
> > > >> >
> > > >>
> > >
> >
> org.apache.cxf.tools.validator.internal.SchemaValidator.validate(SchemaValidator.java:211)
> > > >> > at
> > > >> >
> > > >> >
> > > >>
> > >
> >
> org.apache.cxf.tools.validator.internal.SchemaValidator.validate(SchemaValidator.java:119)
> > > >> > at
> > > >> >
> > > >> >
> > > >>
> > >
> >
> org.apache.cxf.tools.validator.internal.SchemaValidator.isValid(SchemaValidator.java:103)
> > > >> > at
> > > >> >
> > > >> >
> > > >>
> > >
> >
> org.apache.cxf.tools.validator.internal.WSDL11Validator.isValid(WSDL11Validator.java:157)
> > > >> > at
> > > >> >
> > > >>
> > >
> >
> org.apache.cxf.tools.validator.WSDLValidator.execute(WSDLValidator.java:81)
> > > >> > at
> > > >> >
> > > >> >
> > > >>
> > >
> >
> org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
> > > >> > at
> > > >> >
> > > >>
> > >
> >
> org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:58)
> > > >> > at
> > > >> >
> > > >>
> > >
> >
> org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:40)
> > > >> > at
> > > >> >
> > > >>
> > >
> org.apache.cxf.tools.validator.WSDLValidator.main(WSDLValidator.java:110)
> > > >> > Caused by: org.xml.sax.SAXParseException: White spaces are
> required
> > > >> between
> > > >> > publicId and systemId.
> > > >> > at
> > > >> >
> > > >> >
> > > >>
> > >
> >
> com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:246)
> > > >> > at
> > > >> >
> > > >> >
> > > >>
> > >
> >
> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
> > > >> > at
> javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:180)
> > > >> > at
> > > >> >
> > > >> >
> > > >>
> > >
> >
> org.apache.cxf.tools.validator.internal.SchemaValidator.createSchema(SchemaValidator.java:145)
> > > >> > at
> > > >> >
> > > >> >
> > > >>
> > >
> >
> org.apache.cxf.tools.validator.internal.SchemaValidator.validate(SchemaValidator.java:190)
> > > >> > ... 8 more
> > > >> >
> > > >> >
> > > >> > Thanks for your help
> > > >> >
> > > >> > My wsdl has no xsd imports:
> > > >> >
> > > >> > <?xml version="1.0" encoding="UTF-8"?>
> > > >> >
> > > >> > <wsdl:definitions name="CustomerServiceService"
> > > >> >
> > > >> > targetNamespace="http://customerservice.example.com/";
> > > >> >
> > > >> > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> > > >> >
> > > >> > xmlns:tns="http://customerservice.example.com/";
> > > >> >
> > > >> > xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> > > >> >
> > > >> >  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";>
> > > >> >
> > > >> >   <wsdl:types>
> > > >> >
> > > >> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
> xmlns:tns="
> > > >> > http://customerservice.example.com/";
> > > >> >
> > > >> > attributeFormDefault="unqualified"
> elementFormDefault="unqualified"
> > > >> > targetNamespace="http://customerservice.example.com/";>
> > > >> >
> > > >> >   <xs:element name="getCustomerById" type="tns:getCustomerById"/>
> > > >> >
> > > >> >   <xs:element name="getCustomerByIdResponse" type=
> > > >> > "tns:getCustomerByIdResponse"/>
> > > >> >
> > > >> >   <xs:element name="getCustomersByName"
> > > type="tns:getCustomersByName"/>
> > > >> >
> > > >> >   <xs:element name="getCustomersByNameResponse" type=
> > > >> > "tns:getCustomersByNameResponse"/>
> > > >> >
> > > >> >   <xs:complexType name="getCustomerById">
> > > >> >
> > > >> >     <xs:sequence>
> > > >> >
> > > >> >       <xs:element minOccurs="0" name="id" type="xs:string"/>
> > > >> >
> > > >> >     </xs:sequence>
> > > >> >
> > > >> >   </xs:complexType>
> > > >> >
> > > >> >   <xs:complexType name="getCustomerByIdResponse">
> > > >> >
> > > >> >     <xs:sequence>
> > > >> >
> > > >> >       <xs:element minOccurs="0" name="return"
> type="tns:customer"/>
> > > >> >
> > > >> >     </xs:sequence>
> > > >> >
> > > >> >   </xs:complexType>
> > > >> >
> > > >> >   <xs:complexType name="customer">
> > > >> >
> > > >> >     <xs:sequence>
> > > >> >
> > > >> >       <xs:element minOccurs="0" name="name" type="xs:string"/>
> > > >> >
> > > >> >       <xs:element maxOccurs="unbounded" minOccurs="0"
> name="address"
> > > >> > nillable="true" type="xs:string"/>
> > > >> >
> > > >> >       <xs:element name="numOrders" type="xs:int"/>
> > > >> >
> > > >> >       <xs:element name="revenue" type="xs:double"/>
> > > >> >
> > > >> >       <xs:element minOccurs="0" name="test" type="xs:decimal"/>
> > > >> >
> > > >> >       <xs:element minOccurs="0" name="birthDate"
> > type="xs:dateTime"/>
> > > >> >
> > > >> >       <xs:element minOccurs="0" name="type"
> > type="tns:customerType"/>
> > > >> >
> > > >> >     </xs:sequence>
> > > >> >
> > > >> >   </xs:complexType>
> > > >> >
> > > >> >   <xs:complexType name="getCustomersByName">
> > > >> >
> > > >> >     <xs:sequence>
> > > >> >
> > > >> >       <xs:element minOccurs="0" name="name" type="xs:string"/>
> > > >> >
> > > >> >     </xs:sequence>
> > > >> >
> > > >> >   </xs:complexType>
> > > >> >
> > > >> >   <xs:complexType name="getCustomersByNameResponse">
> > > >> >
> > > >> >     <xs:sequence>
> > > >> >
> > > >> >       <xs:element maxOccurs="unbounded" minOccurs="0"
> name="return"
> > > >> type=
> > > >> > "tns:customer"/>
> > > >> >
> > > >> >     </xs:sequence>
> > > >> >
> > > >> >   </xs:complexType>
> > > >> >
> > > >> >   <xs:simpleType name="customerType">
> > > >> >
> > > >> >     <xs:restriction base="xs:string">
> > > >> >
> > > >> >       <xs:enumeration value="PRIVATE"/>
> > > >> >
> > > >> >       <xs:enumeration value="BUSINESS"/>
> > > >> >
> > > >> >     </xs:restriction>
> > > >> >
> > > >> >   </xs:simpleType>
> > > >> >
> > > >> >   <xs:element name="NoSuchCustomer" type="tns:NoSuchCustomer"/>
> > > >> >
> > > >> >   <xs:complexType name="NoSuchCustomer">
> > > >> >
> > > >> >     <xs:sequence>
> > > >> >
> > > >> >       <xs:element name="customerName" nillable="true"
> > > type="xs:string"/>
> > > >> >
> > > >> >     </xs:sequence>
> > > >> >
> > > >> >   </xs:complexType>
> > > >> >
> > > >> > </xs:schema>
> > > >> >
> > > >> >   </wsdl:types>
> > > >> >
> > > >> >   <wsdl:message name="getCustomersByNameResponse">
> > > >> >
> > > >> >     <wsdl:part name="parameters"
> > > >> element="tns:getCustomersByNameResponse">
> > > >> >
> > > >> >     </wsdl:part>
> > > >> >
> > > >> >   </wsdl:message>
> > > >> >
> > > >> >   <wsdl:message name="getCustomerById">
> > > >> >
> > > >> >     <wsdl:part name="parameters" element="tns:getCustomerById">
> > > >> >
> > > >> >     </wsdl:part>
> > > >> >
> > > >> >   </wsdl:message>
> > > >> >
> > > >> >   <wsdl:message name="getCustomersByName">
> > > >> >
> > > >> >     <wsdl:part name="parameters" element="tns:getCustomersByName">
> > > >> >
> > > >> >     </wsdl:part>
> > > >> >
> > > >> >   </wsdl:message>
> > > >> >
> > > >> >   <wsdl:message name="getCustomerByIdResponse">
> > > >> >
> > > >> >     <wsdl:part name="parameters"
> > > element="tns:getCustomerByIdResponse">
> > > >> >
> > > >> >     </wsdl:part>
> > > >> >
> > > >> >   </wsdl:message>
> > > >> >
> > > >> >   <wsdl:message name="NoSuchCustomerException">
> > > >> >
> > > >> >     <wsdl:part name="NoSuchCustomerException"
> > > >> element="tns:NoSuchCustomer">
> > > >> >
> > > >> >     </wsdl:part>
> > > >> >
> > > >> >   </wsdl:message>
> > > >> >
> > > >> >   <wsdl:portType name="CustomerService">
> > > >> >
> > > >> >     <wsdl:operation name="getCustomerById">
> > > >> >
> > > >> >       <wsdl:input name="getCustomerById"
> > > message="tns:getCustomerById">
> > > >> >
> > > >> >     </wsdl:input>
> > > >> >
> > > >> >       <wsdl:output name="getCustomerByIdResponse" message=
> > > >> > "tns:getCustomerByIdResponse">
> > > >> >
> > > >> >     </wsdl:output>
> > > >> >
> > > >> >       <wsdl:fault name="NoSuchCustomerException" message=
> > > >> > "tns:NoSuchCustomerException">
> > > >> >
> > > >> >     </wsdl:fault>
> > > >> >
> > > >> >     </wsdl:operation>
> > > >> >
> > > >> >     <wsdl:operation name="getCustomersByName">
> > > >> >
> > > >> >       <wsdl:input name="getCustomersByName"
> > > >> > message="tns:getCustomersByName"
> > > >> > >
> > > >> >
> > > >> >     </wsdl:input>
> > > >> >
> > > >> >       <wsdl:output name="getCustomersByNameResponse" message=
> > > >> > "tns:getCustomersByNameResponse">
> > > >> >
> > > >> >     </wsdl:output>
> > > >> >
> > > >> >       <wsdl:fault name="NoSuchCustomerException" message=
> > > >> > "tns:NoSuchCustomerException">
> > > >> >
> > > >> >     </wsdl:fault>
> > > >> >
> > > >> >     </wsdl:operation>
> > > >> >
> > > >> >   </wsdl:portType>
> > > >> >
> > > >> >   <wsdl:binding name="CustomerServiceServiceSoapBinding" type=
> > > >> > "tns:CustomerService">
> > > >> >
> > > >> >     <soap:binding style="document" transport="
> > > >> > http://schemas.xmlsoap.org/soap/http"/>
> > > >> >
> > > >> >     <wsdl:operation name="getCustomerById">
> > > >> >
> > > >> >       <soap:operation soapAction="" style="document"/>
> > > >> >
> > > >> >       <wsdl:input name="getCustomerById">
> > > >> >
> > > >> >         <soap:body use="literal"/>
> > > >> >
> > > >> >       </wsdl:input>
> > > >> >
> > > >> >       <wsdl:output name="getCustomerByIdResponse">
> > > >> >
> > > >> >         <soap:body use="literal"/>
> > > >> >
> > > >> >       </wsdl:output>
> > > >> >
> > > >> >       <wsdl:fault name="NoSuchCustomerException">
> > > >> >
> > > >> >         <soap:fault name="NoSuchCustomerException" use="literal"/>
> > > >> >
> > > >> >       </wsdl:fault>
> > > >> >
> > > >> >     </wsdl:operation>
> > > >> >
> > > >> >     <wsdl:operation name="getCustomersByName">
> > > >> >
> > > >> >       <soap:operation soapAction="" style="document"/>
> > > >> >
> > > >> >       <wsdl:input name="getCustomersByName">
> > > >> >
> > > >> >         <soap:body use="literal"/>
> > > >> >
> > > >> >       </wsdl:input>
> > > >> >
> > > >> >       <wsdl:output name="getCustomersByNameResponse">
> > > >> >
> > > >> >         <soap:body use="literal"/>
> > > >> >
> > > >> >       </wsdl:output>
> > > >> >
> > > >> >       <wsdl:fault name="NoSuchCustomerException">
> > > >> >
> > > >> >         <soap:fault name="NoSuchCustomerException" use="literal"/>
> > > >> >
> > > >> >       </wsdl:fault>
> > > >> >
> > > >> >     </wsdl:operation>
> > > >> >
> > > >> >   </wsdl:binding>
> > > >> >
> > > >> >   <wsdl:service name="CustomerServiceService">
> > > >> >
> > > >> >     <wsdl:port name="CustomerServicePort" binding=
> > > >> > "tns:CustomerServiceServiceSoapBinding">
> > > >> >
> > > >> >       <soap:address location="
> > > http://localhost:9090/CustomerServicePort
> > > >> "/>
> > > >> >
> > > >> >     </wsdl:port>
> > > >> >
> > > >> >   </wsdl:service>
> > > >> >
> > > >> > </wsdl:definitions>
> > > >> >
> > > >>
> > > >
> > > >
> > >
> >
>

Reply via email to