You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mo...@apache.org on 2001/08/16 14:29:19 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/runtime AbstractTranslet.java DefaultSAXOutputHandler.java SAXAdapter.java TextOutput.java TransletOutputBase.java

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: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org