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