Using attributeFormDefault="qualified" in a schema causes null attribute values
in Java objects
-----------------------------------------------------------------------------------------------
Key: AXIS2-2594
URL: https://issues.apache.org/jira/browse/AXIS2-2594
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Affects Versions: 1.1.1
Environment: Windows XP
Java 1.6.0
XMLBeans data binding
Reporter: Paul Chisholm
Priority: Minor
When the schema that appears in the wsdl:types section of a WSDL file specifies
attributeFormDefault="qualified" then the the getter corresponding to an
attribute returns null even though an attribute value is specified in the XML.
Example:
Schema is
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://quickstart.samples/xsd">
<xs:element name="attribute">
<xs:complexType>
<xs:attribute name="status" type="xs:string" />
<xs:sequence>
<xs:element name="value" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="attributeResponse">
<xs:complexType>
<xs:attribute name="status" type="xs:string" />
<xs:sequence>
<xs:element name="value" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Message/port definition is
<wsdl:message name="attributeMessage">
<wsdl:part name="part1" element="ns:attribute"/>
</wsdl:message>
<wsdl:message name="attributeResponseMessage">
<wsdl:part name="part1" element="ns:attributeResponse"/>
</wsdl:message>
<wsdl:portType name="MyServicePortType">
<wsdl:operation name="attribute">
<wsdl:input message="axis2:attributeMessage"/>
<wsdl:output message="axis2:attributeResponseMessage"/>
</wsdl:operation>
</wsdl:portType>
Client code is
public static void attribute(MyServiceStub stub){
try{
AttributeDocument reqDoc = AttributeDocument.Factory.newInstance();
AttributeDocument.Attribute req = reqDoc.addNewAttribute();
req.setStatus("OK");
req.setValue("Testing");
AttributeResponseDocument res = stub.attribute(reqDoc);
System.err.println("Status="+res.getAttributeResponse().getStatus());
System.err.println("Value="+res.getAttributeResponse().getValue());
} catch(Exception e){
e.printStackTrace();
System.err.println("\n\n\n");
}
}
Service code is
public AttributeResponseDocument attribute(AttributeDocument param1) {
String status = param1.getAttribute().getStatus();
String value = param1.getAttribute().getValue();
System.err.println();
System.err.println("Status="+status);
System.err.println("Value="+value);
AttributeResponseDocument resDoc =
AttributeResponseDocument.Factory.newInstance();
AttributeResponseDocument.AttributeResponse res =
resDoc.addNewAttributeResponse();
res.setStatus(status);
res.setValue(value);
return resDoc;
}
When the client is run tracing of the element values displays as expected, but
tracing of the attributes always shows null.
If the schema is changed to attributeFormDefault="unqualified" the attribute
values are displayed successfully.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]