[
https://issues.apache.org/jira/browse/AXIS2-2594?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Paul Chisholm updated AXIS2-2594:
---------------------------------
Description:
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:sequence>
<xs:element name="value" nillable="true" type="xs:string" />
</xs:sequence>
<xs:attribute name="status" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="attributeResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="value" nillable="true" type="xs:string" />
</xs:sequence>
<xs:attribute name="status" type="xs:string" />
</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.
was:
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.
> 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:sequence>
> <xs:element name="value" nillable="true" type="xs:string" />
> </xs:sequence>
> <xs:attribute name="status" type="xs:string" />
> </xs:complexType>
> </xs:element>
> <xs:element name="attributeResponse">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="value" nillable="true" type="xs:string" />
> </xs:sequence>
> <xs:attribute name="status" type="xs:string" />
> </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]