You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2011/07/23 16:35:40 UTC

svn commit: r1150109 - /webservices/commons/trunk/modules/axiom/src/docbkx/userguide.xml

Author: veithen
Date: Sat Jul 23 14:35:39 2011
New Revision: 1150109

URL: http://svn.apache.org/viewvc?rev=1150109&view=rev
Log:
AXIOM-372: Finalized the user guide section about illegal namespace bindings.

Modified:
    webservices/commons/trunk/modules/axiom/src/docbkx/userguide.xml

Modified: webservices/commons/trunk/modules/axiom/src/docbkx/userguide.xml
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/src/docbkx/userguide.xml?rev=1150109&r1=1150108&r2=1150109&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/src/docbkx/userguide.xml (original)
+++ webservices/commons/trunk/modules/axiom/src/docbkx/userguide.xml Sat Jul 23 14:35:39 2011
@@ -1254,8 +1254,15 @@ while (iterator.hasNext()) {
                         </para>
                     </blockquote>
                     <para>
+                        In Axiom 1.2.12, the <methodname>declareNamespace</methodname> methods in <classname>OMElement</classname>
+                        didn't enforce this constraint and namespace declarations violating this requirement were silently
+                        dropped during serialization. This behavior is problematic because it may result in subtle issues
+                        such as unbound namespace prefixes. In Axiom 1.2.13 these methods have been changed so that they
+                        throw an exception if an attempt is made to bind the empty namespace name to a prefix.
+                    </para>                     
+                    <para>
                         In XML 1.1, prefixed namespace bindings may be empty, but rather than binding the empty namespace name
-                        to a prefix, such a namespace declaration "unbinds" the prefix, as explained in section 5
+                        to a prefix, such a namespace declaration "undeclares" the prefix, as explained in section 5
                         of <xref linkend="bib.xmlns11"/>:
                     </para>
                     <blockquote>
@@ -1267,7 +1274,21 @@ while (iterator.hasNext()) {
                             value in the innermost such declaration must not be an empty string.
                         </para>
                     </blockquote>
-                    
+                    <para>
+                        Although the same syntax is used in both cases, adding a namespace declaration to bind a prefix
+                        to a (non empty) namespace URI and adding a namespace declaration to undeclare a prefix are two
+                        fundamentally different operations from the point of view of the application. Therefore, to
+                        support prefix undeclaring for XML 1.1 infosets, a new method <methodname>undeclarePrefix</methodname>
+                        has been added to <classname>OMElement</classname> in Axiom 1.2.13.
+                    </para>
+                    <para>
+                        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. In Axiom 1.2.12, when attempting to create such invalid
+                        information items, the behavior was inconsistent: in some cases,
+                        the prefix was silently dropped, in other cases the invalid information item was actually created,
+                        resulting in problems during serialization. Axiom 1.2.13 consistently throws an exception when
+                        an attempt is made to create such an invalid information item.
+                    </para>
                 </section>
                 <section>
                     <title>New abstract APIs</title>