WSDL2JAVA ignores attributes in certain schema structures
---------------------------------------------------------
Key: AXIS-2294
URL: http://issues.apache.org/jira/browse/AXIS-2294
Project: Apache Axis
Type: Bug
Components: WSDL processing
Versions: 1.2, 1.2.1, 1.3
Environment: JDK 1.4.1
JDK 1.5
Reporter: Marko Sormunen
WSDL2JAVA seems to ignore attributes in certain schema structures. For example:
<?xml version="1.0" encoding="UTF-8"?>
<definitions targetNamespace="urn:plugit:CommonServices/IdentifyProfile"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:impl="urn:plugit:CommonServices/IdentifyProfile"
xmlns:type="urn:plugit:CommonServices/type"
xmlns:excep="urn:plugit:CommonServices/exception"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
name="IdentifyProfile">
<types>
<schema targetNamespace="urn:plugit:CommonServices/IdentifyProfile"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="findCandidates">
<complexType>
<sequence>
<element name="coupon" type="string"/>
<element name="findCandidate" type="type:FindCandidate"/>
<element name="maxReturned" minOccurs="0" maxOccurs="1" type="short"/>
<element name="maxStored" minOccurs="0" maxOccurs="1" type="short"/>
</sequence>
</complexType>
</element>
<element name="findCandidatesResponse">
<complexType>
<sequence>
<element name="candidate" minOccurs="0" maxOccurs="unbounded"
type="type:Candidate"/>
<element name="storedCandidates" minOccurs="0" maxOccurs="1"
type="short"/>
</sequence>
</complexType>
</element>
</schema>
<schema targetNamespace="urn:plugit:CommonServices/type"
xmlns="http://www.w3.org/2001/XMLSchema">
<complexType name="FindTrait">
<sequence>
<element name="caseSensitive" minOccurs="0" maxOccurs="1" type="boolean"/>
<element name="sortDirection" minOccurs="0" maxOccurs="1" type="string"/>
<element name="partial" minOccurs="0" maxOccurs="1" type="short"/>
<element name="returned" minOccurs="0" maxOccurs="1" type="boolean"
default="true"/>
<element name="value" minOccurs="0" maxOccurs="1" type="string"/>
</sequence>
<attribute name="id" type="string" use="required"/>
</complexType>
<complexType name="FindCandidate">
<sequence>
<element name="findTrait" minOccurs="1" maxOccurs="unbounded"
type="type:FindTrait"/>
</sequence>
</complexType>
<complexType name="Trait">
<sequence>
<element name="mimeType" minOccurs="0" maxOccurs="1" type="string"/>
<element name="value" minOccurs="0" maxOccurs="1" type="string"/>
</sequence>
<attribute name="id" type="string" use="required"/>
</complexType>
<complexType name="Candidate">
<sequence>
<element name="trait" minOccurs="0" maxOccurs="unbounded"
type="type:Trait"/>
</sequence>
<attribute name="id" type="string" use="required"/>
</complexType>
</schema>
</types>
<message name="findCandidatesRsp">
<part element="impl:findCandidatesResponse" name="parameters"/>
</message>
<message name="getMoreCandidatesRsp">
<part element="impl:getMoreCandidatesResponse" name="parameters"/>
</message>
(The rest of WSDL snipped)
The problem is that Candidate is not generated as a class, even though it
should contain the id attribute. Instead a CandidateHolder class like this is
generated:
public final class CandidateArrayHolder implements javax.xml.rpc.holders.Holder
{
public org.plugit.soap.type.Trait[][] value;
public CandidateArrayHolder() {
}
public CandidateArrayHolder(org.plugit.soap.type.Trait[][] value) {
this.value = value;
}
}
When it should generate this:
public final class CandidateArrayHolder implements javax.xml.rpc.holders.Holder
{
public org.plugit.soap.type.Candidate[] value;
public CandidateArrayHolder() {
}
public CandidateArrayHolder(org.plugit.soap.type.Candidate[] value) {
this.value = value;
}
}
and of course a Candidate class with a Trait-array and id property. This worked
correctly with Axis 1.2RC3 , but not in newer versions..
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira