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);
     }
     
   
  
  
  

Reply via email to