Incorrect serialize of attribute sharing namespace as owning element
--------------------------------------------------------------------

                 Key: XERCESJ-1191
                 URL: http://issues.apache.org/jira/browse/XERCESJ-1191
             Project: Xerces2-J
          Issue Type: Bug
          Components: Serialization
    Affects Versions: 2.8.1
            Reporter: Derek Denny-Brown


I found this in the copy of Xerces incorporated into J2SE 5.  I verified that 
the issue still exists in the current source for XMLSerializer.  The issue is 
that if an attributes.getQName() returns "", and attributes.getURI() returns 
the same namespace as the element tag where the attribute occurs, no prefix is 
applied.  This is incorrect.  According to the XML + XML-Namespace specs, the 
following are different documents (they represents different XML InfoSets, 
XPath claims they are different, and DOM also claims they are different).
  <p:e p:a="123" xmlns:p="test" />
  <p:e a="123" xmlns:p="test" />
The current XMLSerializer code will serialize the first as the 2nd.

Here is the offending code block.  I indicate the erroneous test which causes 
this issue.

                        if (( attrURI != null && attrURI.length() != 0 ) &&
                            ( namespaceURI == null || namespaceURI.length() == 
0 ||
                              ! attrURI.equals( namespaceURI ) )) { 
<------------------------ this equality test should _not_ be there
                            prefix = getPrefix( attrURI );
                            if (prefix != null && prefix.length() > 0)
                                name = prefix + ":" + name;
                        }

The correct fix (according to the various XML specs) would be to remove the 
"attrURI.equals( namespaceURI )" test entirely.


-- 
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

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to