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:[EMAIL PROTECTED]">Stefano Mazzocchi</a> * @author <a href="mailto:[EMAIL PROTECTED]">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:[EMAIL PROTECTED]">Stefano Mazzocchi</a> * @author <a href="mailto:[EMAIL PROTECTED]">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: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]