You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by di...@apache.org on 2001/09/17 15:34:02 UTC
cvs commit: xml-cocoon2/src/org/apache/cocoon/components/sax XMLByteStreamCompiler.java XMLByteStreamInterpreter.java
dims 01/09/17 06:34:02
Modified: src/org/apache/cocoon/components/sax
XMLByteStreamCompiler.java
XMLByteStreamInterpreter.java
Log:
Patch for adding Locator to the XML Byte Stream compiler/interpreter. This is needed by all components that rely on setDocumentLocator like XIncludeTransformer.
Revision Changes Path
1.4 +13 -2 xml-cocoon2/src/org/apache/cocoon/components/sax/XMLByteStreamCompiler.java
Index: XMLByteStreamCompiler.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/sax/XMLByteStreamCompiler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- XMLByteStreamCompiler.java 2001/08/20 13:55:12 1.3
+++ XMLByteStreamCompiler.java 2001/09/17 13:34:02 1.4
@@ -20,7 +20,7 @@
*
* @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
* @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
- * @version CVS $Revision: 1.3 $ $Date: 2001/08/20 13:55:12 $
+ * @version CVS $Revision: 1.4 $ $Date: 2001/09/17 13:34:02 $
*/
public final class XMLByteStreamCompiler
@@ -67,6 +67,7 @@
private static final int IGNORABLE_WHITESPACE = 7;
private static final int PROCESSING_INSTRUCTION = 8;
private static final int COMMENT = 9;
+ private static final int LOCATOR = 10;
public Object getSAXFragment() {
@@ -140,7 +141,17 @@
}
public void setDocumentLocator(Locator locator) {
- // ignore.
+ try {
+ this.writeEvent(LOCATOR);
+ String publicId = locator.getPublicId();
+ String systemId = locator.getSystemId();
+ this.writeString(publicId!=null?publicId:"");
+ this.writeString(systemId!=null?systemId:"");
+ this.write(locator.getLineNumber());
+ this.write(locator.getColumnNumber());
+ } catch (Exception e) {
+ throw new RuntimeException(e.toString());
+ }
}
public void skippedEntity(java.lang.String name) throws SAXException {
1.6 +16 -1 xml-cocoon2/src/org/apache/cocoon/components/sax/XMLByteStreamInterpreter.java
Index: XMLByteStreamInterpreter.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/components/sax/XMLByteStreamInterpreter.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- XMLByteStreamInterpreter.java 2001/08/20 13:55:12 1.5
+++ XMLByteStreamInterpreter.java 2001/09/17 13:34:02 1.6
@@ -20,7 +20,7 @@
*
* @author <a href="mailto:stefano@apache.org">Stefano Mazzocchi</a>
* @author <a href="mailto:cziegeler@apache.org">Carsten Ziegeler</a>
- * @version CVS $Revision: 1.5 $ $Date: 2001/08/20 13:55:12 $
+ * @version CVS $Revision: 1.6 $ $Date: 2001/09/17 13:34:02 $
*/
public final class XMLByteStreamInterpreter
@@ -37,6 +37,7 @@
private static final int IGNORABLE_WHITESPACE = 7;
private static final int PROCESSING_INSTRUCTION = 8;
private static final int COMMENT = 9;
+ private static final int LOCATOR = 10;
private ArrayList list = new ArrayList();
private byte[] input;
@@ -105,6 +106,20 @@
len = chars.length;
while (len > 0 && chars[len-1]==0) len--;
if (len > 0) lexicalHandler.comment(chars, 0, len);
+ }
+ break;
+ case LOCATOR:
+ {
+ String publidId = this.readString();
+ String systemId = this.readString();
+ int lineNumber = this.read();
+ int columnNumber = this.read();
+ org.xml.sax.helpers.LocatorImpl locator = new org.xml.sax.helpers.LocatorImpl();
+ locator.setPublicId(publidId);
+ locator.setSystemId(systemId);
+ locator.setLineNumber(lineNumber);
+ locator.setColumnNumber(columnNumber);
+ contentHandler.setDocumentLocator(locator);
}
break;
default:
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org