From e9ecb69392d895d72614a32e8ea46056122ffa6a Mon Sep 17 00:00:00 2001 From: Peter Bernard West Date: Wed, 14 Jan 2004 16:15:13 +0000 Subject: [PATCH] SyncedFoXmlEventsBuffer renamed to SyncedXmlEventsBuffer Handling of character changed to use the DefAttNSpace and to generate an XMLEvent rather than ah FoXMLEvent. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/FOP_0-20-0_Alt-Design@197179 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/fop/xml/FoXMLSerialHandler.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/java/org/apache/fop/xml/FoXMLSerialHandler.java b/src/java/org/apache/fop/xml/FoXMLSerialHandler.java index 03ee32b9d..9a61148ed 100644 --- a/src/java/org/apache/fop/xml/FoXMLSerialHandler.java +++ b/src/java/org/apache/fop/xml/FoXMLSerialHandler.java @@ -78,7 +78,7 @@ public class FoXMLSerialHandler extends DefaultHandler implements Runnable { private static final String tag = "$Name$"; private static final String revision = "$Revision$"; - private SyncedFoXmlEventsBuffer events; + private SyncedXmlEventsBuffer events; private XMLReader parser; private XMLNamespaces namespaces; private InputSource source; @@ -91,7 +91,7 @@ public class FoXMLSerialHandler extends DefaultHandler implements Runnable { * @param source the parser input source. */ public FoXMLSerialHandler - (SyncedFoXmlEventsBuffer events, XMLReader parser, InputSource source) + (SyncedXmlEventsBuffer events, XMLReader parser, InputSource source) { this.events = events; this.parser = parser; @@ -127,7 +127,7 @@ public class FoXMLSerialHandler extends DefaultHandler implements Runnable { /** * Utility routine for the callback methods. It captures the * InterruptedException that is possible from the put - * method of a SyncedFoXmlEventsBuffer. + * method of a SyncedXmlEventsBuffer. */ public void putEvent(XMLEvent event) throws NoSuchElementException { synchronized (events) { @@ -177,7 +177,7 @@ public class FoXMLSerialHandler extends DefaultHandler implements Runnable { private XMLEvent acquireXMLEvent(int nsIndex) { try { return - namespaces.acquireXMLEvent(XMLNamespaces.DefAttrNSIndex); + namespaces.acquireXMLEvent(nsIndex); } catch (FOPException ex) { throw new RuntimeException( "Namespace index " + nsIndex + " not recognized"); @@ -208,7 +208,7 @@ public class FoXMLSerialHandler extends DefaultHandler implements Runnable { // + Thread.currentThread().getName()); event.type = XMLEvent.STARTELEMENT; // Is this from the fo: namespace? - event.uriIndex = namespaces.getURIIndex(uri); + event.uriIndex = uriIndex; event.localName = localName; //event.qName = qName; event.attributes = new AttributesImpl(attributes); @@ -265,18 +265,20 @@ public class FoXMLSerialHandler extends DefaultHandler implements Runnable { { synchronized (events) { try { - // TODO chars events are legitimate XSL-FO events - // This may cause problems with other namespaces, and will have - // to be checked as those namepsaces are implemented. - // As SAX provides no URI information for chars, such - // such discrimination may have to be done at a higher level. + // TODO chars events have no namespace, but a namespace is + // essential for subsequent processing. Use the default + // attribute namespace (the empty string), and rely on + // downstream processing to determine the environment in + // which the characters belong. XMLEvent event - = namespaces.acquireXMLEvent(XMLNamespaces.XSLNSpaceIndex); + = namespaces.acquireXMLEvent(XMLNamespaces.DefAttrNSIndex); //System.out.println("characters thread " // + Thread.currentThread().getName()); event.type = XMLEvent.CHARACTERS; event.chars = new String(ch, start, length); - event.setFoType(FObjectNames.PCDATA); + // Can't setFoType, because this event is now an XMLEvent, + // not an FoXMLEvent + //event.setFoType(FObjectNames.PCDATA); //System.out.println("SerialHandler: " + event); putEvent(event); } catch (FOPException e) { -- 2.39.5