You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by tw...@apache.org on 2001/10/18 21:04:25 UTC
cvs commit: xml-xerces/java/src/org/apache/xerces/parsers AbstractDOMParser.java
twl 01/10/18 12:04:25
Modified: java/src/org/apache/xerces/dom DeferredAttrNSImpl.java
java/src/org/apache/xerces/parsers AbstractDOMParser.java
Log:
Modify Deferred DOM implementation to create DOML2 nodes based on setting
of parser's namespace feature. Joint work with Elena Litani.
Revision Changes Path
1.19 +2 -2 xml-xerces/java/src/org/apache/xerces/dom/DeferredAttrNSImpl.java
Index: DeferredAttrNSImpl.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DeferredAttrNSImpl.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- DeferredAttrNSImpl.java 2001/08/28 13:04:51 1.18
+++ DeferredAttrNSImpl.java 2001/10/18 19:04:25 1.19
@@ -61,7 +61,7 @@
* DeferredAttrImpl.java at the same time.
*/
-/* $Id: DeferredAttrNSImpl.java,v 1.18 2001/08/28 13:04:51 elena Exp $ */
+/* $Id: DeferredAttrNSImpl.java,v 1.19 2001/10/18 19:04:25 twl Exp $ */
package org.apache.xerces.dom;
@@ -147,7 +147,7 @@
isSpecified(ownerDocument.getNodeExtra(fNodeIndex) == 1);
namespaceURI = ownerDocument.getNodeURI(fNodeIndex);
// hide the fact that our parser uses an empty string for null
- if (namespaceURI.length() == 0) {
+ if (namespaceURI != null && namespaceURI.length() == 0) {
namespaceURI = null;
}
// DOM Level 2 wants all namespace declaration attributes
1.7 +25 -10 xml-xerces/java/src/org/apache/xerces/parsers/AbstractDOMParser.java
Index: AbstractDOMParser.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/AbstractDOMParser.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AbstractDOMParser.java 2001/09/17 07:45:39 1.6
+++ AbstractDOMParser.java 2001/10/18 19:04:25 1.7
@@ -62,6 +62,7 @@
import org.apache.xerces.dom.EntityReferenceImpl;
import org.apache.xerces.dom.TextImpl;
+import org.apache.xerces.impl.Constants;
import org.apache.xerces.xni.QName;
import org.apache.xerces.xni.XMLAttributes;
import org.apache.xerces.xni.XMLLocator;
@@ -92,7 +93,7 @@
* @author Arnaud Le Hors, IBM
* @author Andy Clark, IBM
*
- * @version $Id: AbstractDOMParser.java,v 1.6 2001/09/17 07:45:39 andyc Exp $
+ * @version $Id: AbstractDOMParser.java,v 1.7 2001/10/18 19:04:25 twl Exp $
*/
public abstract class AbstractDOMParser
extends AbstractXMLDocumentParser {
@@ -105,6 +106,9 @@
protected static final String CREATE_ENTITY_REF_NODES =
"http://apache.org/xml/features/dom/create-entity-ref-nodes";
+ protected static final String NAMESPACES =
+ Constants.SAX_FEATURE_PREFIX+Constants.NAMESPACES_FEATURE;
+
/** Feature id: include ignorable whitespace. */
protected static final String INCLUDE_IGNORABLE_WHITESPACE =
"http://apache.org/xml/features/dom/include-ignorable-whitespace";
@@ -156,6 +160,7 @@
// deferred expansion data
protected boolean fDeferNodeExpansion;
+ protected boolean fNamespaceAware;
protected DeferredDocumentImpl fDeferredDocumentImpl;
protected int fDocumentIndex;
protected int fDocumentTypeIndex;
@@ -289,6 +294,8 @@
fDeferNodeExpansion =
fConfiguration.getFeature(DEFER_NODE_EXPANSION);
+ fNamespaceAware = fConfiguration.getFeature(NAMESPACES);
+
// get property
setDocumentClassName((String)
fConfiguration.getProperty(DOCUMENT_CLASS_NAME));
@@ -461,7 +468,7 @@
fCurrentNode = fDocument;
}
else {
- fDeferredDocumentImpl = new DeferredDocumentImpl();
+ fDeferredDocumentImpl = new DeferredDocumentImpl(fNamespaceAware);
fDocument = fDeferredDocumentImpl;
fDocumentIndex = fDeferredDocumentImpl.createDeferredDocument();
fCurrentNodeIndex = fDocumentIndex;
@@ -514,16 +521,24 @@
throws XNIException {
if (!fDeferNodeExpansion) {
- Element el = element.prefix != null
- ? fDocument.createElementNS(element.uri, element.rawname)
- : fDocument.createElement(element.rawname);
+ Element el;
+ if (fNamespaceAware) {
+ el = fDocument.createElementNS(element.uri, element.rawname);
+ }
+ else {
+ el = fDocument.createElement(element.rawname);
+ }
int attrCount = attributes.getLength();
for (int i = 0; i < attrCount; i++) {
attributes.getName(i, fAttrQName);
- Attr attr = fAttrQName.prefix != null
- ? fDocument.createAttributeNS(fAttrQName.uri,
- fAttrQName.rawname)
- : fDocument.createAttribute(fAttrQName.rawname);
+ Attr attr;
+ if (fNamespaceAware) {
+ attr = fDocument.createAttributeNS(fAttrQName.uri,
+ fAttrQName.rawname);
+ }
+ else {
+ attr = fDocument.createAttribute(fAttrQName.rawname);
+ }
String attrValue = attributes.getValue(i);
attr.setNodeValue(attrValue);
el.setAttributeNode(attr);
@@ -534,7 +549,7 @@
}
else {
int el = fDeferredDocumentImpl.
- createDeferredElement(element.prefix != null ?
+ createDeferredElement(fNamespaceAware ?
element.uri : null,
element.rawname, attributes);
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org