morten      01/08/16 05:29:19

  Modified:    java/src/org/apache/xalan/xsltc TransletOutputHandler.java
               java/src/org/apache/xalan/xsltc/dom DupFilterIterator.java
               java/src/org/apache/xalan/xsltc/runtime
                        AbstractTranslet.java DefaultSAXOutputHandler.java
                        SAXAdapter.java TextOutput.java
                        TransletOutputBase.java
  Log:
  missing file
  
  Revision  Changes    Path
  1.5       +4 -3      
xml-xalan/java/src/org/apache/xalan/xsltc/TransletOutputHandler.java
  
  Index: TransletOutputHandler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/TransletOutputHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TransletOutputHandler.java        2001/07/18 15:36:01     1.4
  +++ TransletOutputHandler.java        2001/08/16 12:29:19     1.5
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransletOutputHandler.java,v 1.4 2001/07/18 15:36:01 morten Exp $
  + * @(#)$Id: TransletOutputHandler.java,v 1.5 2001/08/16 12:29:19 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -71,13 +71,14 @@
   
       public void startDocument() throws TransletException;
       public void endDocument() throws TransletException;
  -    public void characters(char[] characters, int offset, int length)
  -     throws TransletException;
       public void startElement(String elementName) throws TransletException;
       public void endElement(String elementName) throws TransletException;
  +    public void characters(char[] characters, int offset, int length)
  +     throws TransletException;
       public void attribute(String attributeName, String attributeValue)
        throws TransletException;
       public void namespace(String prefix, String uri) throws 
TransletException;
  +    public String getPrefix(String uri) throws TransletException;
       public void comment(String comment) throws TransletException;
       public void processingInstruction(String target, String data)
        throws TransletException;
  
  
  
  1.3       +2 -1      
xml-xalan/java/src/org/apache/xalan/xsltc/dom/DupFilterIterator.java
  
  Index: DupFilterIterator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DupFilterIterator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DupFilterIterator.java    2001/08/16 12:06:45     1.2
  +++ DupFilterIterator.java    2001/08/16 12:29:19     1.3
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: DupFilterIterator.java,v 1.2 2001/08/16 12:06:45 morten Exp $
  + * @(#)$Id: DupFilterIterator.java,v 1.3 2001/08/16 12:29:19 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -62,6 +62,7 @@
   
   package org.apache.xalan.xsltc.dom;
   
  +import org.apache.xalan.xsltc.DOM;
   import org.apache.xalan.xsltc.NodeIterator;
   import org.apache.xalan.xsltc.TransletException;
   
  
  
  
  1.18      +3 -5      
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/AbstractTranslet.java
  
  Index: AbstractTranslet.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/AbstractTranslet.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- AbstractTranslet.java     2001/08/13 15:25:56     1.17
  +++ AbstractTranslet.java     2001/08/16 12:29:19     1.18
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: AbstractTranslet.java,v 1.17 2001/08/13 15:25:56 morten Exp $
  + * @(#)$Id: AbstractTranslet.java,v 1.18 2001/08/16 12:29:19 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -552,8 +552,7 @@
                    handler.setIndent(_indent);
                else
                    handler.setIndent(true);
  -             if (_doctypeSystem != null)
  -                 handler.setDoctype(_doctypeSystem, _doctypePublic);
  +             handler.setDoctype(_doctypeSystem, _doctypePublic);
                if (_mediaType != null) handler.setMediaType(_mediaType);
            }
            else if (_method.equals("text")) {
  @@ -569,8 +568,7 @@
            if (_standalone != null) handler.setStandalone(_standalone);
            if (_omitHeader) handler.omitHeader(true);
            if (_indent) handler.setIndent(_indent);
  -         if (_doctypeSystem != null)
  -             handler.setDoctype(_doctypeSystem, _doctypePublic);
  +         handler.setDoctype(_doctypeSystem, _doctypePublic);
        }
       }
   
  
  
  
  1.14      +10 -5     
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/DefaultSAXOutputHandler.java
  
  Index: DefaultSAXOutputHandler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/DefaultSAXOutputHandler.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- DefaultSAXOutputHandler.java      2001/08/14 09:16:45     1.13
  +++ DefaultSAXOutputHandler.java      2001/08/16 12:29:19     1.14
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: DefaultSAXOutputHandler.java,v 1.13 2001/08/14 09:16:45 morten 
Exp $
  + * @(#)$Id: DefaultSAXOutputHandler.java,v 1.14 2001/08/16 12:29:19 morten 
Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -453,11 +453,16 @@
            else {
                buf.append(" PUBLIC \"");
                buf.append(publicId);
  -             buf.append("\" ");
  +             buf.append("\"");
            }
  -         buf.append('\"');
  -         buf.append(systemId);
  -         buf.append("\">\n");
  +         if (systemId != null) {
  +             buf.append(" \"");
  +             buf.append(systemId);
  +             buf.append("\">\n");
  +         }
  +         else {
  +             buf.append(">\n");
  +         }
            _writer.write(buf.toString());
        }
           catch (IOException e) {
  
  
  
  1.6       +2 -1      
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/SAXAdapter.java
  
  Index: SAXAdapter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/SAXAdapter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SAXAdapter.java   2001/07/18 15:36:01     1.5
  +++ SAXAdapter.java   2001/08/16 12:29:19     1.6
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: SAXAdapter.java,v 1.5 2001/07/18 15:36:01 morten Exp $
  + * @(#)$Id: SAXAdapter.java,v 1.6 2001/08/16 12:29:19 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -179,4 +179,5 @@
       public boolean setEscaping(boolean escape)  throws TransletException {
           return(true);
       }
  +    public String getPrefix(String uri) { return(""); }
   }
  
  
  
  1.20      +56 -5     
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/TextOutput.java
  
  Index: TextOutput.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/TextOutput.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- TextOutput.java   2001/08/14 09:16:45     1.19
  +++ TextOutput.java   2001/08/16 12:29:19     1.20
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TextOutput.java,v 1.19 2001/08/14 09:16:45 morten Exp $
  + * @(#)$Id: TextOutput.java,v 1.20 2001/08/16 12:29:19 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -66,6 +66,7 @@
   
   import java.io.*;
   import java.util.Stack;
  +import java.util.Enumeration;
   
   import org.xml.sax.ContentHandler;
   import org.xml.sax.SAXException;
  @@ -125,16 +126,25 @@
       private AttributeList _attributes = new AttributeList();
       private String        _elementName = null;
   
  +    // Each entry (prefix) in this hashtable points to a Stack of URIs
       private Hashtable _namespaces;
  +    // The top of this stack contains an id of the element that last declared
  +    // a namespace. Used to ensure prefix/uri map scopes are closed correctly
       private Stack     _nodeStack;
  +    // The top of this stack is the prefix that was last mapped to an URI
       private Stack     _prefixStack;
  +
  +    // The top of this stack contains the QName of the currently open element
       private Stack     _qnameStack;
  +
  +    // The top of this stack contains the element id of the last element 
whose
  +    // contents should be output as CDATA sections.
       private Stack     _cdataStack;
   
       // Holds the current tree depth (see startElement() and endElement()).
       private int _depth = 0;
   
  -    // Reference to the SAX2 handler that consumes this handler's output
  +    // Reference to the SAX2 handlers that consume this handler's output
       private ContentHandler _saxHandler;
       private LexicalHandler _lexHandler;
   
  @@ -478,9 +488,12 @@
            }
   
            // Handle document type declaration (for first element only)
  -         if ((_doctypeSystem != null) && (_lexHandler != null)) {
  -             _lexHandler.startDTD(elementName,_doctypePublic,_doctypeSystem);
  -             _doctypeSystem = null;
  +         if (_lexHandler != null) {
  +             if (((_outputType == XML) && (_doctypeSystem != null)) ||
  +                 ((_doctypeSystem != null) || (_doctypePublic != null)))
  +                 _lexHandler.startDTD(elementName,
  +                                      _doctypePublic,_doctypeSystem);
  +             _lexHandler = null;
            }
   
            _depth++;
  @@ -685,6 +698,7 @@
        if (!stack.empty() && uri.equals(stack.peek())) return;
        // Put this URI on top of the stack for this prefix
        stack.push(uri);
  +
        _prefixStack.push(prefix);
        _nodeStack.push(new Integer(_depth));
        _saxHandler.startPrefixMapping(prefix, uri);
  @@ -728,6 +742,43 @@
       private String lookupNamespace(String prefix) {
        final Stack stack = (Stack)_namespaces.get(prefix);
        return stack != null && !stack.isEmpty() ? (String)stack.peek() : null;
  +    }
  +
  +    /**
  +     * Generates a namespace prefix for URIs that have no associated
  +     * prefix. Can happen quite frequently since we do not store
  +     * namespace prefixes in the tree (we only store the URIs).
  +     */
  +    private int _nsCounter = 0;
  +
  +    private String generateNamespacePrefix() {
  +     return(new String("ns"+Integer.toString(_nsCounter++)));
  +    }
  +
  +    /**
  +     * Returns a prefix that is currently mapped to a given URI
  +     */
  +    public String getPrefix(String uri) throws TransletException {
  +     try {
  +         String prefix = EMPTYSTRING;
  +         String theuri;
  +
  +         // First a quick check for the default namespace
  +         if (uri.equals(lookupNamespace(prefix))) return prefix;
  +
  +         Enumeration prefixes = _namespaces.keys();
  +         while (prefixes.hasMoreElements()) {
  +             prefix = (String)prefixes.nextElement();
  +             theuri = lookupNamespace(prefix);
  +             if (theuri.equals(uri)) return prefix;
  +         }
  +         prefix = generateNamespacePrefix();
  +         pushNamespace(prefix, uri);
  +         return prefix;
  +     }
  +     catch (SAXException e) {
  +         throw new TransletException(e);
  +     }
       }
   
       /**
  
  
  
  1.5       +2 -2      
xml-xalan/java/src/org/apache/xalan/xsltc/runtime/TransletOutputBase.java
  
  Index: TransletOutputBase.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/TransletOutputBase.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TransletOutputBase.java   2001/07/18 15:36:01     1.4
  +++ TransletOutputBase.java   2001/08/16 12:29:19     1.5
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransletOutputBase.java,v 1.4 2001/07/18 15:36:01 morten Exp $
  + * @(#)$Id: TransletOutputBase.java,v 1.5 2001/08/16 12:29:19 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -79,13 +79,13 @@
        throws TransletException {}
       public void namespace(String prefix, String uri)
        throws TransletException {}
  +    public String getPrefix(String uri) throws TransletException { 
return(""); }
       public void comment(String comment) throws TransletException {}
       public void processingInstruction(String target, String data)
        throws TransletException {}
       public boolean setEscaping(boolean escape) 
        throws TransletException { return true; }
       public String expandQName(String withPrefix) { return(withPrefix); }
  -
       public void setType(int type) {}
       public void setIndent(boolean indent) {}
       public void omitHeader(boolean value) {}
  
  
  

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

Reply via email to