Author: natalia
Date: Thu Feb 28 18:13:21 2008
New Revision: 632207
URL: http://svn.apache.org/viewvc?rev=632207&view=rev
Log:
Add URI for implicitly declared namespace prefix "xml"
Modified:
xml/xindice/trunk/java/src/org/apache/xindice/xml/dom/NodeImpl.java
xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/dom/NodeTest.java
xml/xindice/trunk/status.xml
Modified: xml/xindice/trunk/java/src/org/apache/xindice/xml/dom/NodeImpl.java
URL:
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/xml/dom/NodeImpl.java?rev=632207&r1=632206&r2=632207&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/xml/dom/NodeImpl.java
(original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/xml/dom/NodeImpl.java Thu Feb
28 18:13:21 2008
@@ -51,6 +51,7 @@
private static final Log log = LogFactory.getLog(NodeImpl.class);
public static final String XMLNS_PREFIX = "xmlns";
+ public static final String XML_PREFIX = "xml";
public static final String OBJECT_NS =
"http://xml.apache.org/xindice/XMLObject";
public static final String OBJECT_HREF = "href";
@@ -63,6 +64,8 @@
public static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/";
+ public static final String XML_URI =
"http://www.w3.org/XML/1998/namespace";
+
// Static Exception Instances
public static final DOMException EX_NO_MODIFICATION_ALLOWED =
new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, "This
Node Is Read-Only");
@@ -733,7 +736,7 @@
}
/**
- * The namespace URI of this node, or <code>null</code> if it is
+ * The namespace URI of this node, or <code>null</code> if it is
* unspecified.
* <br> This is not a computed value that is the result of a namespace
* lookup based on an examination of the namespace declarations in scope.
@@ -751,10 +754,14 @@
public final String getNamespaceURI() {
short nodeType = getNodeType();
- if ((nodeType == Node.ATTRIBUTE_NODE)
- && (nodeName.equals(XMLNS_PREFIX) ||
nodeName.startsWith(XMLNS_PREFIX + ":"))) {
-
- return XMLNS_URI;
+ if (nodeType == Node.ATTRIBUTE_NODE) {
+ if (nodeName.equals(XMLNS_PREFIX) ||
nodeName.startsWith(XMLNS_PREFIX + ":")) {
+ // defined by specification, must not be declared
+ return XMLNS_URI;
+ } else if (nodeName.startsWith(XML_PREFIX + ":")) {
+ // defined by specification, does not need to be declared
+ return XML_URI;
+ }
}
if (nsURI != null) {
return nsURI;
Modified:
xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/dom/NodeTest.java
URL:
http://svn.apache.org/viewvc/xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/dom/NodeTest.java?rev=632207&r1=632206&r2=632207&view=diff
==============================================================================
--- xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/dom/NodeTest.java
(original)
+++ xml/xindice/trunk/java/tests/src/org/apache/xindice/xml/dom/NodeTest.java
Thu Feb 28 18:13:21 2008
@@ -19,6 +19,7 @@
package org.apache.xindice.xml.dom;
+import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.UserDataHandler;
@@ -181,6 +182,21 @@
((DocumentImpl) node1.getOwnerDocument()).renameNode(node1,
"http://newURI", "test:bar");
assertEquals(getExpectedResult(UserDataHandler.NODE_RENAMED, "key",
"data", node1), handler.getResult());
+ }
+
+ /*
+ * Test checks if node correctly identifies xml namespace prefix bound to
+ * http://www.w3.org/XML/1998/namespace URI, even if it was not explicitly
+ * declared.
+ */
+ public void testStandardDefinedNamespaces() throws Exception {
+ Document doc = DOMParser.toDocument("<root
xmlns:xml='http://www.w3.org/XML/1998/namespace' xml:lang='en'/>");
+ Node n = doc.getDocumentElement().getAttributeNode("xml:lang");
+ assertEquals("Incorrect URI for explicitly declared xml prefix",
NodeImpl.XML_URI, n.getNamespaceURI());
+
+ doc = DOMParser.toDocument("<root xml:lang='en'/>");
+ n = doc.getDocumentElement().getAttributeNode("xml:lang");
+ assertEquals("Incorrect URI for implicitly declared xml prefix",
NodeImpl.XML_URI, n.getNamespaceURI());
}
private String getExpectedResult(short op, String key, Object data, Node
src) {
Modified: xml/xindice/trunk/status.xml
URL:
http://svn.apache.org/viewvc/xml/xindice/trunk/status.xml?rev=632207&r1=632206&r2=632207&view=diff
==============================================================================
--- xml/xindice/trunk/status.xml (original)
+++ xml/xindice/trunk/status.xml Thu Feb 28 18:13:21 2008
@@ -114,6 +114,9 @@
<changes>
<release version="1.2-dev" date="unreleased">
+ <action dev="NS" type="fix">
+ Fix implicitly declared namespace prefix "xml" in DOM implementation.
+ </action>
<action dev="NS" type="add">
Change IndexPattern format to allow to specify path to
element/attribute.