santiagopg    02/04/05 14:44:48

  Modified:    java/src/org/apache/xalan/xsltc/trax Tag:
                        jaxp-ri-1_2_0-fcs-branch SAX2DOM.java
                        TransformerImpl.java
  Log:
  Fixed problem when a DOMResult is created with a root node.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.4.8.2   +15 -15    
xml-xalan/java/src/org/apache/xalan/xsltc/trax/SAX2DOM.java
  
  Index: SAX2DOM.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/SAX2DOM.java,v
  retrieving revision 1.4.8.1
  retrieving revision 1.4.8.2
  diff -u -r1.4.8.1 -r1.4.8.2
  --- SAX2DOM.java      3 Apr 2002 19:26:50 -0000       1.4.8.1
  +++ SAX2DOM.java      5 Apr 2002 22:44:47 -0000       1.4.8.2
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: SAX2DOM.java,v 1.4.8.1 2002/04/03 19:26:50 tmiller Exp $
  + * @(#)$Id: SAX2DOM.java,v 1.4.8.2 2002/04/05 22:44:47 santiagopg Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -82,35 +82,35 @@
   
   class SAX2DOM implements ContentHandler, Constants {
   
  -    private Stack _nodeStk = null;
  -    private Document _document = null;
  -    private DocumentBuilder _builder = null;
  - 
  +    private Document _root = null;
  +    private Stack _nodeStk = new Stack();
       private Vector _namespaceDecls = null;
   
       public SAX2DOM() throws ParserConfigurationException {
  -     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  -     _builder = factory.newDocumentBuilder();
  -     _nodeStk = new Stack();
  +     final DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
  +     _root = factory.newDocumentBuilder().newDocument();
  +    }
  +
  +    public SAX2DOM(Node root) throws ParserConfigurationException {
  +     _root = (Document) root;   // TODO: add support for frags and elems
       }
   
       public Node getDOM() {
  -     return _document;
  +     return _root;
       }
   
       public void characters(char[] ch, int start, int length) {
        final Node last = (Node)_nodeStk.peek();
  -     final String text = new String(ch, start, length);
   
        // No text nodes can be children of root (DOM006 exception)
  -     if (last != _document) {
  -         last.appendChild(_document.createTextNode(text));
  +     if (last != _root) {
  +         final String text = new String(ch, start, length);
  +         last.appendChild(_root.createTextNode(text));
        }
       }
   
       public void startDocument() {
  -     _document = _builder.newDocument();
  -     _nodeStk.push(_document);
  +     _nodeStk.push(_root);
       }
   
       public void endDocument() {
  @@ -119,7 +119,7 @@
       public void startElement(String namespace, String localName, String 
qName,
        Attributes attrs) 
       {
  -     final Element tmp = (Element)_document.createElementNS(namespace, 
qName);
  +     final Element tmp = (Element)_root.createElementNS(namespace, qName);
   
        // Add namespace declarations first
        if (_namespaceDecls != null) {
  
  
  
  1.32.8.2  +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerImpl.java
  
  Index: TransformerImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerImpl.java,v
  retrieving revision 1.32.8.1
  retrieving revision 1.32.8.2
  diff -u -r1.32.8.1 -r1.32.8.2
  --- TransformerImpl.java      3 Apr 2002 19:26:50 -0000       1.32.8.1
  +++ TransformerImpl.java      5 Apr 2002 22:44:47 -0000       1.32.8.2
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransformerImpl.java,v 1.32.8.1 2002/04/03 19:26:50 tmiller Exp $
  + * @(#)$Id: TransformerImpl.java,v 1.32.8.2 2002/04/05 22:44:47 santiagopg 
Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -211,7 +211,7 @@
                   if (handler != null) return handler;
               }
            else if (result instanceof DOMResult) {
  -                return (new SAX2DOM());
  +                return new SAX2DOM(((DOMResult) result).getNode());
               }
            else if (result instanceof StreamResult) {
                // Get StreamResult
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to