axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hall, Alex A." <alex.h...@ngc.com>
Subject wsdl2java error using Xmlbeans binding
Date Mon, 30 Apr 2007 23:11:50 GMT
Axis Users,

I'm having trouble attempting to generate server-side skeletons for a
WSDL which imports a fairly complex schema.  I extracted the troublesome
part and am including it here.  Using Axis2 version 1.2 and running the
following command on Test.wsdl (contents listed at [1] below):

% wsdl2java -o C:\wsdl\gensrc -d xmlbeans -ss -uri C:\wsdl\Test.wsdl

I get the chained error shown at [2] below.

The exception seems to indicate an invalid schema, but the schema
validates fine using the W3C validator and the WSDL compiles using
Xmlbeans 2.2.0 from the command-line.  It's complaining about the
"xs:minInclusive" element in the Angle type, but interestingly, when I
comment out the "xs:attribute" element in Angle, everything works.  Am I
missing something here?  Perhaps there is a problem in the Axis-Xmlbeans
interface?  Any help or suggestions for a workaround would be greatly
appreciated.

Regards,
Alex Hall
alex.hall@ngc.com

[1] Contents of Test.wsdl:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns:xs="http://www.w3.org/2001/XMLSchema"
             xmlns:tns="http://example.com/TestDataManagerService"
             targetNamespace="http://example.com/TestDataManagerService"
             name="TestDataManagerService">
  <types>
    <xs:schema
targetNamespace="http://example.com/TestDataManagerService">
      <xs:element name="getDataRequest" type="tns:GetDataRequestType"/>
      <xs:element name="getDataResponse"
type="tns:GetDataResponseType"/>
      <xs:complexType name="GetDataRequestType">
        <xs:sequence>
           <xs:element name="id" type="xs:string"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="GetDataResponseType">
        <xs:sequence>
           <xs:element name="resultValue" type="tns:Angle"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Measure" abstract="true">
        <xs:simpleContent>
          <xs:extension base="xs:decimal">
            <xs:attribute name="uom" type="xs:string" use="optional"/>
            <xs:attribute name="factor" type="xs:decimal" use="optional"
default="1"/>
          </xs:extension>
        </xs:simpleContent>
      </xs:complexType>
      <xs:complexType name="Angle">
        <xs:simpleContent>
          <xs:restriction base="tns:Measure">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="360"/>
            <xs:attribute name="uom" use="optional" default="deg">
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="deg"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
          </xs:restriction>
        </xs:simpleContent>
      </xs:complexType>
    </xs:schema>
  </types>
  <message name="GetDataRequest">
    <part name="getDataRequest" element="tns:getDataRequest"/>
  </message>
  <message name="GetDataResponse">
    <part name="getDataResponse" element="tns:getDataResponse"/>
  </message>
  <portType name="TestDataManagerServicePortType">
    <operation name="getData">
      <input message="tns:GetDataRequest"/>
      <output message="tns:GetDataResponse"/>
    </operation>
  </portType>
  <binding name="TestDataManagerServiceSoapBinding"
type="tns:TestDataManagerServicePortType">
    <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="getData">
      <soap:operation soapAction="getData"/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
  </binding>
  <service name="TestDataManagerService">
    <port name="TestDataManagerServiceSoapEndpoint"
binding="tns:TestDataManagerServiceSoapBinding">
      <soap:address
location="http://example.com/TestDataManagerService"/>
    </port>
  </service>
</definitions>

[2] wsdl2java exception:
[chained exceptions removed]
Caused by: org.apache.xmlbeans.XmlException: error:
cvc-complex-type.2.4a: Expected elements
'attribute@http://www.w3.org/2001/XMLSchema
attributeGroup@http://www.w3.org/2001/XMLSchema
anyAttribute@http://www.w3.org/2001/XMLSchema' instead of
'minInclusive@http://www.w3.org/2001/XMLSchema' here in element
restriction@http://www.w3.org/2001/XMLSchema
        at
org.apache.xmlbeans.impl.schema.SchemaTypeSystemCompiler.compile(SchemaT
ypeSystemCompiler.java:225)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
org.apache.xmlbeans.XmlBeans.compileXmlBeans(XmlBeans.java:667)
        at
org.apache.axis2.xmlbeans.CodeGenerationUtility.processSchemas(CodeGener
ationUtility.java:174)
        ... 8 more


Mime
View raw message