[ 
https://issues.apache.org/jira/browse/AXIOM-372?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13068923#comment-13068923
 ] 

Andreas Veithen commented on AXIOM-372:
---------------------------------------

As a corollary of the above, neither XML 1.0 nor XML 1.1 allows creating 
prefixed elements or attributes with an empty namespace name. When attempting 
to create such invalid information items, the current behavior of OMFactory is 
inconsistent: in some cases, the prefix is silently dropped, in other cases the 
invalid information item is actually created, resulting in problems during 
serialization. This should be changed so that an exception is thrown by the 
relevant methods in OMFactory.

> Axiom should reject attempts to create illegal namespace declarations
> ---------------------------------------------------------------------
>
>                 Key: AXIOM-372
>                 URL: https://issues.apache.org/jira/browse/AXIOM-372
>             Project: Axiom
>          Issue Type: Bug
>          Components: API, DOOM, LLOM
>    Affects Versions: 1.2.12
>            Reporter: Andreas Veithen
>            Assignee: Andreas Veithen
>            Priority: Minor
>
> According to the Namespaces in XML 1.0 (Second Edition) specification, it is 
> illegal to bind a namespace prefix to the empty namespace URI. Only the 
> default namespace can have an empty URI:
> "[Definition: If the attribute name matches PrefixedAttName, then the NCName 
> gives the namespace prefix, used to associate element and attribute names 
> with the namespace name in the attribute value in the scope of the element to 
> which the declaration is attached. In such declarations, the namespace name 
> may not be empty. ]"
> (Note that this constraint was dropped in the Namespaces in XML 1.1 
> specification)
> OMElement#declareNamespace doesn't enforce this constraint and namespace 
> declarations that violate this requirement are silently dropped during 
> serialization (by code in OMSerializerUtil#isAssociated). This behavior is 
> problematic because it may result in subtle issues such as unbound namespace 
> prefixes.
> The serialization code should throw an exception if the object model contains 
> an invalid namespace declaration. We should also make sure that Axiom itself 
> never generates such invalid namespace declarations. Indeed, the code in 
> OMSerializerUtil#isAssociated has the following comment:
> "Cannot associate a prefix with an unqualifed name. However sometimes axiom 
> creates a fake prefix name if xmns="" is not in effect."
> If this is true, then Axiom needs to be fixed.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ws.apache.org
For additional commands, e-mail: dev-h...@ws.apache.org

Reply via email to