sboag 00/03/03 04:35:51
Modified: src/org/apache/xalan/xpath/xdom XercesLiaison.java
Log:
Only conditionally call getNamespaceURI.
Revision Changes Path
1.13 +18 -2
xml-xalan/src/org/apache/xalan/xpath/xdom/XercesLiaison.java
Index: XercesLiaison.java
===================================================================
RCS file:
/home/cvs/xml-xalan/src/org/apache/xalan/xpath/xdom/XercesLiaison.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- XercesLiaison.java 2000/03/03 04:14:07 1.12
+++ XercesLiaison.java 2000/03/03 12:35:50 1.13
@@ -216,6 +216,7 @@
domParser.setFeature("http://apache.org/xml/features/dom/defer-node-expansion",
true);
domParser.setFeature("http://apache.org/xml/features/dom/create-entity-ref-nodes",
getShouldExpandEntityRefs()? false : true);
domParser.setFeature("http://xml.org/sax/features/namespaces", true);
+ this.setUseDOM2getNamespaceURI(true);
parser = domParser;
//((DOMParser)parser).setCreateEntityReferenceNodes(getShouldExpandEntityRefs());
}
@@ -314,15 +315,30 @@
}
return isIgnorable;
}
+
+ private boolean m_useDOM2getNamespaceURI = false;
+
+ /**
+ * Set whether or not getNamespaceOfNode should use the Xerces/DOM2
+ * getNamespaceURI. This has to be set to true if the
+ * http://xml.org/sax/features/namespaces is set to false, or if
+ * the tree is mutated.
+ */
+ public void setUseDOM2getNamespaceURI(boolean b)
+ {
+ m_useDOM2getNamespaceURI = b;
+ }
/**
* Get the namespace of the node. Calls org.apache.xerces.dom.NodeImpl's
- * getNamespaceURI().
+ * getNamespaceURI() if setUseDOM2getNamespaceURI(true) has been called.
*/
public String getNamespaceOfNode(Node n)
{
- return ((org.apache.xerces.dom.NodeImpl)n).getNamespaceURI();
+ return(m_useDOM2getNamespaceURI) ?
+ ((org.apache.xerces.dom.NodeImpl)n).getNamespaceURI()
+ : super.getNamespaceOfNode(n);
}