sboag       00/08/07 14:34:00

  Modified:    java/src/org/apache/xalan/utils TreeWalker.java
  Log:
  Use DOMHelper to process namespaced elements.
  
  Revision  Changes    Path
  1.3       +32 -21    xml-xalan/java/src/org/apache/xalan/utils/TreeWalker.java
  
  Index: TreeWalker.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/utils/TreeWalker.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TreeWalker.java   2000/07/30 23:05:02     1.2
  +++ TreeWalker.java   2000/08/07 21:33:59     1.3
  @@ -59,6 +59,8 @@
   import org.w3c.dom.*;
   import org.xml.sax.*;
   import org.xml.sax.ext.LexicalHandler;
  +import org.apache.xpath.DOM2Helper;
  +import org.apache.xpath.DOMHelper;
   
   /**
    * <meta name="usage" content="advanced"/>
  @@ -67,14 +69,18 @@
    */
   public class TreeWalker
   {
  -  private ContentHandler m_formatterListener =   null;
  +  private ContentHandler m_contentHandler =   null;
     
  +  // ARGHH!!  JAXP Uses Xerces without setting the namespace processing to 
ON!
  +  // DOM2Helper m_dh = new DOM2Helper();
  +  DOMHelper m_dh = new DOMHelper();
  +  
     /**
      * Get the ContentHandler used for the tree walk.
      */
     public ContentHandler getFormatterListener()
     {
  -    return m_formatterListener;
  +    return m_contentHandler;
     }
     
     /**
  @@ -84,7 +90,7 @@
      */
     public TreeWalker(ContentHandler formatterListener) 
     {
  -    this.m_formatterListener = formatterListener;
  +    this.m_contentHandler = formatterListener;
     }
   
     /**
  @@ -176,9 +182,9 @@
       case Node.COMMENT_NODE:
         {
           String data = ((Comment)node).getData();
  -        if(m_formatterListener instanceof LexicalHandler)
  +        if(m_contentHandler instanceof LexicalHandler)
           {
  -          LexicalHandler lh = ((LexicalHandler)this.m_formatterListener);
  +          LexicalHandler lh = ((LexicalHandler)this.m_contentHandler);
             lh.comment(data.toCharArray(), 0, data.length());
           }
         }
  @@ -187,11 +193,16 @@
         // ??;
         break;
       case Node.DOCUMENT_NODE:
  -      this.m_formatterListener.startDocument();
  +      this.m_contentHandler.startDocument();
         break;
       case Node.ELEMENT_NODE:
         NamedNodeMap atts = ((Element)node).getAttributes();
  -      this.m_formatterListener.startElement ("", "", node.getNodeName(), new 
AttList(atts));
  +      // System.out.println("m_dh.getNamespaceOfNode(node): 
"+m_dh.getNamespaceOfNode(node));
  +      // System.out.println("m_dh.getLocalNameOfNode(node): 
"+m_dh.getLocalNameOfNode(node));
  +      this.m_contentHandler.startElement (m_dh.getNamespaceOfNode(node), 
  +                                          m_dh.getLocalNameOfNode(node), 
  +                                          node.getNodeName(), 
  +                                          new AttList(atts, m_dh));
         break;
       case Node.PROCESSING_INSTRUCTION_NODE:
         {
  @@ -204,20 +215,20 @@
           }
           else
           {
  -          this.m_formatterListener.processingInstruction(pi.getNodeName(), 
pi.getData());
  +          this.m_contentHandler.processingInstruction(pi.getNodeName(), 
pi.getData());
           }
         }
         break;
       case Node.CDATA_SECTION_NODE:
         {
           String data = ((Text)node).getData();
  -        boolean isLexH = (m_formatterListener instanceof LexicalHandler);
  -        LexicalHandler lh = isLexH ? 
((LexicalHandler)this.m_formatterListener) : null;
  +        boolean isLexH = (m_contentHandler instanceof LexicalHandler);
  +        LexicalHandler lh = isLexH ? ((LexicalHandler)this.m_contentHandler) 
: null;
           if(isLexH)
           {
             lh.startCDATA();
           }
  -        this.m_formatterListener.characters(data.toCharArray(), 0, 
data.length());
  +        this.m_contentHandler.characters(data.toCharArray(), 0, 
data.length());
           {
             if(isLexH)
             {
  @@ -232,28 +243,28 @@
           if(nextIsRaw)
           {
             nextIsRaw = false;
  -          if(this.m_formatterListener instanceof RawCharacterHandler)
  +          if(this.m_contentHandler instanceof RawCharacterHandler)
             {
  -            
((RawCharacterHandler)this.m_formatterListener).charactersRaw(data.toCharArray(),
 0, data.length());
  +            
((RawCharacterHandler)this.m_contentHandler).charactersRaw(data.toCharArray(), 
0, data.length());
             }
             else
             {
               System.out.println("Warning: can't output raw characters!");
  -            this.m_formatterListener.characters(data.toCharArray(), 0, 
data.length());
  +            this.m_contentHandler.characters(data.toCharArray(), 0, 
data.length());
             }
           }
           else
           {
  -          this.m_formatterListener.characters(data.toCharArray(), 0, 
data.length());
  +          this.m_contentHandler.characters(data.toCharArray(), 0, 
data.length());
           }
         }
         break;
       case Node.ENTITY_REFERENCE_NODE:
         {
           EntityReference eref = (EntityReference)node;
  -        if(m_formatterListener instanceof LexicalHandler)
  +        if(m_contentHandler instanceof LexicalHandler)
           {
  -          
((LexicalHandler)this.m_formatterListener).startEntity(eref.getNodeName());
  +          
((LexicalHandler)this.m_contentHandler).startEntity(eref.getNodeName());
           }
           else
           {
  @@ -271,19 +282,19 @@
       switch(node.getNodeType())
       {
       case Node.DOCUMENT_NODE:
  -      this.m_formatterListener.endDocument();
  +      this.m_contentHandler.endDocument();
         break;
       case Node.ELEMENT_NODE:
  -      this.m_formatterListener.endElement("", "", node.getNodeName());
  +      this.m_contentHandler.endElement("", "", node.getNodeName());
         break;
       case Node.CDATA_SECTION_NODE:
         break;
       case Node.ENTITY_REFERENCE_NODE:
         {
           EntityReference eref = (EntityReference)node;
  -        if(m_formatterListener instanceof LexicalHandler)
  +        if(m_contentHandler instanceof LexicalHandler)
           {
  -          LexicalHandler lh = ((LexicalHandler)this.m_formatterListener);
  +          LexicalHandler lh = ((LexicalHandler)this.m_contentHandler);
             lh.endEntity(eref.getNodeName());
           }
         }
  
  
  

Reply via email to