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