Details
Description
We have recently migrated from Axis2 1.6.2 to 1.7.3.
We have multiple XSDs that extend complex-type elements from a common parent XSD.
After the migration, we now have different namespace prefixes on our attributes.
For example:
1.6.2 <child:Object id="1234" name="JohnDoe".../>
1.7.3 <child:Object child:id="1234" parent:name="JohnDoe".../>
According to the namespace spec ():
"Default namespace declarations do not apply directly to attribute names; the interpretation of unprefixed attributes is determined by the element on which they appear."
In the generated Java code, for example the parse methods now have fully qualified attribute names:
if (localName != null){ writeAttribute("http://www.example.org/core", "name", org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localName), xmlWriter); } ... if (localId != null){ writeAttribute("http://www.example.org/child", "id", org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localId), xmlWriter); }
Previously I believe, the given attribute namespace was null.
The serialized XML generated with this approach does not validate in AltovaXML editor. (The attribute 'core:name' is not permitted in the element <child:Object>).
I will attach an example with two XSDs and the Axis 1.7.3 generated source-code.
Attachments
Attachments
Issue Links
- is duplicated by
-
AXIS2-5802 ADBException on parsing valid response
- Resolved