[
https://issues.apache.org/jira/browse/AXIOM-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16837808#comment-16837808
]
Unifiers Pega commented on AXIOM-497:
-------------------------------------
Thank you for your email request. Your request ID is S-1055
------------------------------------------------------------
[email protected] wrote:
[
https://issues.apache.org/jira/browse/AXIOM-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16837807#comment-16837807
]
Andreas Veithen commented on AXIOM-497:
---------------------------------------
I can't reproduce this. This is more likely a problem with the StAX parser
than a bug in Axiom. In particular, the StAX implementation in Weblogic is
known to have issues and because it's not Open Source, it's not well
tested with Axiom. Please add the Woodstox StAX implementation to your project
and try again. If the problem persists please provide a self-contained test
project to reproduce the issue.
> Removal of namespace declaration breaks type attribute
> ------------------------------------------------------
>
> Key: AXIOM-497
> URL: https://issues.apache.org/jira/browse/AXIOM-497
> Project: Axiom
> Issue Type: Bug
> Components: Core Model, OM Mixins
> Affects Versions: 1.2.13
> Environment: Weblogic 12.2.1.3 version application server
> Reporter: Unifiers Pega
> Priority: Critical
>
> When the following XML is converted to an OMElement, then written back
out, the namespace prefix used by the xsi:type attribute refers to the
incorrect namespace URI. That is because the local prefix mapping used in the
type name reference is removed from the element that contains the type
attribute during parsing.
> It appears to be caused by a null return value from the getNsBuilder
method of AttributeCollector when it thinks the namespace declaration is
redundant.
> Original XML:
> <ns1:A xmlns:ns1="urn:foo">
> <ns1:B xmlns:ns1="urn:bar">
> <ns2:C xmlns:ns1="urn:foo"
xmlns:ns2="urn:bar"
xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance]"
xsi:type="ns1:TypeA"/>
> </ns1:B>
> </ns1:A>
> After conversion to OMElement, xsi:type name cannot be resolved because it
is mapped to the wrong namespace URI:
> <ns1:A xmlns:ns1="urn:foo">
> <ns1:B xmlns:ns1="urn:bar">
> <ns2:C xmlns:ns2="urn:bar"
xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance]"
xsi:type="ns1:TypeA"/>
> </ns1:B>
> </ns1:A>
>
> Here's some sample code to reproduce the issue:
> ```
> System.out.println("Before StAX
parsing:\n"+xmlString);
> try {
> java.io.StringReader stringReader = new
java.io.StringReader(xmlString);
> javax.xml.stream.XMLInputFactory inputFactory =
javax.xml.stream.XMLInputFactory.newInstance();
> javax.xml.stream.XMLStreamReader streamReader =
inputFactory.createXMLStreamReader(stringReader);
> org.apache.axiom.om.impl.builder.StAXOMBuilder builder = new
org.apache.axiom.om.impl.builder.StAXOMBuilder(streamReader);
> xmlString =
builder.getDocumentElement().toString();
> } catch (Exception e) {
> System.out.println("Caught exception " + e);
> }
> System.out.println("After StAX
parsing:\n"+xmlString);
> ```
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
> Removal of namespace declaration breaks type attribute
> ------------------------------------------------------
>
> Key: AXIOM-497
> URL: https://issues.apache.org/jira/browse/AXIOM-497
> Project: Axiom
> Issue Type: Bug
> Components: Core Model, OM Mixins
> Affects Versions: 1.2.13
> Environment: Weblogic 12.2.1.3 version application server
> Reporter: Unifiers Pega
> Priority: Critical
>
> When the following XML is converted to an OMElement, then written back out,
> the namespace prefix used by the xsi:type attribute refers to the incorrect
> namespace URI. That is because the local prefix mapping used in the type name
> reference is removed from the element that contains the type attribute during
> parsing.
> It appears to be caused by a null return value from the getNsBuilder method
> of AttributeCollector when it thinks the namespace declaration is redundant.
> Original XML:
> <ns1:A xmlns:ns1="urn:foo">
> <ns1:B xmlns:ns1="urn:bar">
> <ns2:C xmlns:ns1="urn:foo" xmlns:ns2="urn:bar"
> xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance]" xsi:type="ns1:TypeA"/>
> </ns1:B>
> </ns1:A>
> After conversion to OMElement, xsi:type name cannot be resolved because it is
> mapped to the wrong namespace URI:
> <ns1:A xmlns:ns1="urn:foo">
> <ns1:B xmlns:ns1="urn:bar">
> <ns2:C xmlns:ns2="urn:bar"
> xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance]" xsi:type="ns1:TypeA"/>
> </ns1:B>
> </ns1:A>
>
> Here's some sample code to reproduce the issue:
> ```
> System.out.println("Before StAX parsing:\n"+xmlString);
> try {
> java.io.StringReader stringReader = new java.io.StringReader(xmlString);
> javax.xml.stream.XMLInputFactory inputFactory =
> javax.xml.stream.XMLInputFactory.newInstance();
> javax.xml.stream.XMLStreamReader streamReader =
> inputFactory.createXMLStreamReader(stringReader);
> org.apache.axiom.om.impl.builder.StAXOMBuilder builder = new
> org.apache.axiom.om.impl.builder.StAXOMBuilder(streamReader);
> xmlString = builder.getDocumentElement().toString();
> } catch (Exception e) {
> System.out.println("Caught exception " + e);
> }
> System.out.println("After StAX parsing:\n"+xmlString);
> ```
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]