3 Replies Latest reply on Sep 11, 2007 3:24 AM by vashistvishal

    wsconsume - Problems regarding http://www.w3.org/2001/XMLSch

    mars58

      Hello all,

      I am using wsconsume to generate the client side components for a web service written in .NET.

      Originally my error was:


      warning: src-resolve.4.2: Error resolving component 's:schema'. It was detected
      that 's:schema' is in namespace 'http://www.w3.org/2001/XMLSchema', but componen
      ts from this namespace are not referenceable from schema document 'http://dev-bi
      services/Reporting/ReportRequest.asmx?WSDL#types?schema1'. If this is the incorr
      ect namespace, perhaps the prefix of 's:schema' needs to be changed. If this is
      the correct namespace, then an appropriate 'import' tag should be added to 'http
      ://dev-biservices/Reporting/ReportRequest.asmx?WSDL#types?schema1'.
      line 0 of http://dev-biservices/Reporting/ReportRequest.asmx?WSDL#types?schema
      1
      error: undefined element declaration 's:schema'
      line 0 of http://dev-biservices/Reporting/ReportRequest.asmx?WSDL#types?schema
      1
      org.xml.sax.SAXParseException: undefined element declaration 's:schema'
      at org.jboss.com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildMo
      del(WSDLModeler.java:213)
      at org.jboss.com.sun.tools.ws.processor.config.ModelInfo.buildModel(Mode
      lInfo.java:88)


      So I got local copies of the dtds and added the following import statement to a local copy of the WSDL...

      <s:import namespace="http://www.w3.org/2001/XMLSchema" schemaLocation="XMLSchema.xsd"/>

      Now I am getting the following errors:

      C:\jboss-4.0.5.GA\bin>wsconsume -k C:\jboss-4.0.5.GA\bin\wstools\BI.wsdl

      warning: rcase-Recurse.2: There is not a complete functional mapping between the particles.
      line 405 of file:/C:/jboss-4.0.5.GA/bin/wstools/XMLSchema.xsd

      warning: derivation-ok-restriction.5.4.2: Error for type 'complexRestrictionType'.
      The particle of the type is not a valid restriction of the particle of the base.
      line 405 of file:/C:/jboss-4.0.5.GA/bin/wstools/XMLSchema.xsd

      warning: rcase-Recurse.2: There is not a complete functional mapping between the particles.
      line 451 of file:/C:/jboss-4.0.5.GA/bin/wstools/XMLSchema.xsd

      warning: derivation-ok-restriction.5.4.2: Error for type 'simpleRestrictionType'.
      The particle of the type is not a valid restriction of the particle of the base.
      line 451 of file:/C:/jboss-4.0.5.GA/bin/wstools/XMLSchema.xsd

      warning: rcase-Recurse.2: There is not a complete functional mapping between the particles.
      line 749 of file:/C:/jboss-4.0.5.GA/bin/wstools/XMLSchema.xsd

      warning: derivation-ok-restriction.5.4.2: Error for type 'all'. The particle of
      the type is not a valid restriction of the particle of the base.
      line 749 of file:/C:/jboss-4.0.5.GA/bin/wstools/XMLSchema.xsd

      error: Two declarations cause a collision in the ObjectFactory class.
      line 0 of file:/C:/jboss-4.0.5.GA/bin/wstools/BI.wsdl#types?schema1
      error: (Related to above error) This is the other declaration.
      line 0 of file:/C:/jboss-4.0.5.GA/bin/wstools/BI.wsdl#types?schema1
      error: Two declarations cause a collision in the ObjectFactory class.
      line 0 of file:/C:/jboss-4.0.5.GA/bin/wstools/BI.wsdl#types?schema1
      error: (Related to above error) This is the other declaration.
      line 0 of file:/C:/jboss-4.0.5.GA/bin/wstools/BI.wsdl#types?schema1
      error: Two declarations cause a collision in the ObjectFactory class.
      line 0 of file:/C:/jboss-4.0.5.GA/bin/wstools/BI.wsdl#types?schema1
      error: (Related to above error) This is the other declaration.
      line 0 of file:/C:/jboss-4.0.5.GA/bin/wstools/BI.wsdl#types?schema1

      com.sun.istack.SAXParseException2: (Related to above error) This is the other declaration.
      at org.jboss.com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:213)
      at org.jboss.com.sun.tools.ws.processor.config.ModelInfo.buildModel(ModelInfo.java:88)
      at org.jboss.com.sun.tools.ws.processor.Processor.runModeler(Processor.java:82)
      at org.jboss.com.sun.tools.ws.wscompile.CompileTool.run(CompileTool.java:543)
      at org.jboss.com.sun.tools.ws.util.ToolBase.run(ToolBase.java:57)
      at org.jboss.ws.tools.jaxws.impl.WSContractConsumerImpl$1.run(WSContractConsumerImpl.java:163)
      at org.jboss.ws.tools.jaxws.impl.WSContractConsumerImpl.consume(WSContractConsumerImpl.java:166)
      at org.jboss.ws.tools.jaxws.command.wsconsume.importServices(wsconsume.java:193)
      at org.jboss.ws.tools.jaxws.command.wsconsume.main(wsconsume.java:76)

      Caused by: com.sun.istack.SAXParseException2: (Related to above error) This is the other declaration.
      at org.jboss.com.sun.tools.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:128)
      at org.jboss.com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WSDLModeler.java:2207)
      at org.jboss.com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:224)
      at org.jboss.com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:181)
      ... 8 more

      Caused by: com.sun.istack.SAXParseException2: (Related to above error) This is the other declaration.
      at com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:66)
      at com.sun.tools.xjc.generator.bean.ObjectFactoryGeneratorImpl.populate(ObjectFactoryGeneratorImpl.java:152)
      at com.sun.tools.xjc.generator.bean.PublicObjectFactoryGenerator.populate(PublicObjectFactoryGenerator.java:19)
      at com.sun.tools.xjc.generator.bean.BeanGenerator.(BeanGenerator.java:210)
      at com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:151)
      at com.sun.tools.xjc.model.Model.generateCode(Model.java:230)
      at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:217)
      at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:67)
      at org.jboss.com.sun.tools.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:126)
      ... 11 more

      error: com.sun.istack.SAXParseException2: (Related to above error) This is the other declaration.


      Here is the WSDL:

      <?xml version="1.0" encoding="utf-8"?>
      <wsdl:definitions
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
      xmlns:tns="http://biservices.corp.espn.pvt/ReportRequest"
      xmlns:s="http://www.w3.org/2001/XMLSchema"
      xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
      xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"

      targetNamespace="http://biservices.corp.espn.pvt/ReportRequest"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

      <wsdl:types>
      <s:schema elementFormDefault="qualified" targetNamespace="http://biservices.corp.espn.pvt/ReportRequest">
      <s:import namespace="http://www.w3.org/2001/XMLSchema" schemaLocation="XMLSchema.xsd"/>

      <s:element name="SubmitForViewer">
      <s:complexType>
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="theReportInfo" type="tns:ReportInfo" />
      </s:sequence>
      </s:complexType>
      </s:element>
      <s:complexType name="ReportInfo">
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="CMSLogon" type="tns:CMSLogon" />
      <s:element minOccurs="0" maxOccurs="1" name="DBLogon" type="tns:DBLogon" />
      <s:element minOccurs="0" maxOccurs="1" name="ExportFormat" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="FormulaCollection" type="tns:ArrayOfFormula" />
      <s:element minOccurs="0" maxOccurs="1" name="ParameterCollection" type="tns:ArrayOfParameter" />
      <s:element minOccurs="0" maxOccurs="1" name="ParameterListCollection" type="tns:ArrayOfParameterList" />
      <s:element minOccurs="0" maxOccurs="1" name="Printer" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="RecordSelection" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="ReportName" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="ReportPath" type="s:string" />
      </s:sequence>
      </s:complexType>
      <s:complexType name="CMSLogon">
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="Authentication" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="CMS" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="UserName" type="s:string" />
      </s:sequence>
      </s:complexType>
      <s:complexType name="DBLogon">
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="Database" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="UserName" type="s:string" />
      </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfFormula">
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="unbounded" name="Formula" nillable="true" type="tns:Formula" />
      </s:sequence>
      </s:complexType>
      <s:complexType name="Formula">
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="ReportName" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="SValue" type="s:string" />
      </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfParameter">
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="unbounded" name="Parameter" nillable="true" type="tns:Parameter" />
      </s:sequence>
      </s:complexType>
      <s:complexType name="Parameter">
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="ReportName" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="SValue" type="s:string" />
      </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfParameterList">
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="unbounded" name="ParameterList" nillable="true" type="tns:ParameterList" />
      </s:sequence>
      </s:complexType>
      <s:complexType name="ParameterList">
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="__Name" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="__ReportName" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="__SValueCollection" type="tns:ArrayOfString" />
      <s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="ReportName" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="SValueCollection" type="tns:ArrayOfString" />
      </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfString">
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
      </s:sequence>
      </s:complexType>
      <s:element name="SubmitForViewerResponse">
      <s:complexType>
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="SubmitForViewerResult" type="s:string" />
      </s:sequence>
      </s:complexType>
      </s:element>
      <s:element name="Submit">
      <s:complexType>
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="theReportInfo" type="tns:ReportInfo" />
      </s:sequence>
      </s:complexType>
      </s:element>
      <s:element name="SubmitResponse">
      <s:complexType>
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="SubmitResult" type="s:base64Binary" />
      </s:sequence>
      </s:complexType>
      </s:element>
      <s:element name="SubmitWithData">
      <s:complexType>
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="theReportInfo" type="tns:ReportInfo" />
      <s:element minOccurs="0" maxOccurs="1" name="theDataSet">
      <s:complexType>
      <s:sequence>
      <s:element ref="s:schema" />
      <s:any />
      </s:sequence>
      </s:complexType>
      </s:element>
      </s:sequence>
      </s:complexType>
      </s:element>
      <s:element name="SubmitWithDataResponse">
      <s:complexType>
      <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="SubmitWithDataResult" type="s:base64Binary" />
      </s:sequence>
      </s:complexType>
      </s:element>
      </s:schema>
      </wsdl:types>
      <wsdl:message name="SubmitForViewerSoapIn">
      <wsdl:part name="parameters" element="tns:SubmitForViewer" />
      </wsdl:message>
      <wsdl:message name="SubmitForViewerSoapOut">
      <wsdl:part name="parameters" element="tns:SubmitForViewerResponse" />
      </wsdl:message>
      <wsdl:message name="SubmitSoapIn">
      <wsdl:part name="parameters" element="tns:Submit" />
      </wsdl:message>
      <wsdl:message name="SubmitSoapOut">
      <wsdl:part name="parameters" element="tns:SubmitResponse" />
      </wsdl:message>
      <wsdl:message name="SubmitWithDataSoapIn">
      <wsdl:part name="parameters" element="tns:SubmitWithData" />
      </wsdl:message>
      <wsdl:message name="SubmitWithDataSoapOut">
      <wsdl:part name="parameters" element="tns:SubmitWithDataResponse" />
      </wsdl:message>
      <wsdl:portType name="ReportRequestSoap">
      <wsdl:operation name="SubmitForViewer">
      <wsdl:input message="tns:SubmitForViewerSoapIn" />
      <wsdl:output message="tns:SubmitForViewerSoapOut" />
      </wsdl:operation>
      <wsdl:operation name="Submit">
      <wsdl:input message="tns:SubmitSoapIn" />
      <wsdl:output message="tns:SubmitSoapOut" />
      </wsdl:operation>
      <wsdl:operation name="SubmitWithData">
      <wsdl:input message="tns:SubmitWithDataSoapIn" />
      <wsdl:output message="tns:SubmitWithDataSoapOut" />
      </wsdl:operation>
      </wsdl:portType>
      <wsdl:binding name="ReportRequestSoap" type="tns:ReportRequestSoap">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
      <wsdl:operation name="SubmitForViewer">
      <soap:operation soapAction="http://biservices.corp.espn.pvt/ReportRequest/SubmitForViewer" style="document" />
      <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="Submit">
      <soap:operation soapAction="http://biservices.corp.espn.pvt/ReportRequest/Submit" style="document" />
      <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="SubmitWithData">
      <soap:operation soapAction="http://biservices.corp.espn.pvt/ReportRequest/SubmitWithData" style="document" />
      <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:binding name="ReportRequestSoap12" type="tns:ReportRequestSoap">
      <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
      <wsdl:operation name="SubmitForViewer">
      <soap12:operation soapAction="http://biservices.corp.espn.pvt/ReportRequest/SubmitForViewer" style="document" />
      <wsdl:input>
      <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
      <soap12:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="Submit">
      <soap12:operation soapAction="http://biservices.corp.espn.pvt/ReportRequest/Submit" style="document" />
      <wsdl:input>
      <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
      <soap12:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="SubmitWithData">
      <soap12:operation soapAction="http://biservices.corp.espn.pvt/ReportRequest/SubmitWithData" style="document" />
      <wsdl:input>
      <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
      <soap12:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="ReportRequest">
      <wsdl:port name="ReportRequestSoap" binding="tns:ReportRequestSoap">
      <soap:address location="http://dev-biservices/Reporting/ReportRequest.asmx" />
      </wsdl:port>
      <wsdl:port name="ReportRequestSoap12" binding="tns:ReportRequestSoap12">
      <soap12:address location="http://dev-biservices/Reporting/ReportRequest.asmx" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>

      Sorry for the post from hell, but any help would be much appreciated.

      -Rob.



        • 1. Re: wsconsume - Problems regarding http://www.w3.org/2001/XM
          heiko.braun

          Could you create a JIRA issue for this and attach the relevant files prior to modification?

          • 2. Re: wsconsume - Problems regarding http://www.w3.org/2001/XM
            deanouk

            Did u get this issue resolved, I'm seeing a similar thing.

            • 3. Re: wsconsume - Problems regarding http://www.w3.org/2001/XM

              Have a look at this... what i have posted

              http://www.jboss.com/index.html?module=bb&op=viewtopic&t=118062

              I have also experienced issues like this when generating stubs for clients.

              To resolve issues like this even with the newer stack i had to modify wsdl by hand for interoperability.

              The way i did is first i created a service and client within Jboss and see how it work and what SOAP packet goes on wire...

              Then do a same sort of thing on .NEt side and capture SOAP packet.

              Now try to send the SOAP packet what .NET expects, for that you will have to modify your wsdl by hand. Once you know the difference between .NET side generated WSDL and required by Jboss ws client stack you cam modify other WSDLs. Some heavy lifting required to grasp the differences

              Mos of the issues i have come across is Because JAX-WS is pretty strict where as older stacks were not that strict in some conventions.
              All SOAP toolkit work fine within same envioronment but when used with other you normally have to fiddle with WSDL to make them work. Interoperability is their but with some modifications not just out of box yet.

              I hope this helps..