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