diff options
author | Chris Burdess <dog@bluezoo.org> | 2006-03-03 12:30:59 +0000 |
---|---|---|
committer | Chris Burdess <dog@bluezoo.org> | 2006-03-03 12:30:59 +0000 |
commit | 85b35b1bda7ca489cbe770303289ed28c2a49363 (patch) | |
tree | 6ad41665c318feeebd7793a292b9f53d3bf3c52d /gnu/xml/stream/XMLParser.java | |
parent | 6ecf858745c60dcbf2b5ffac9da4e07ec15862d4 (diff) | |
download | classpath-85b35b1bda7ca489cbe770303289ed28c2a49363.tar.gz |
2006-03-03 Chris Burdess <dog@gnu.org>
Fixes PR 26503
* gnu/xml/stream/EntityReferenceImpl.java,
gnu/xml/stream/FilteredEventReader.java,
gnu/xml/stream/SAXParser.java,
gnu/xml/stream/XIncludeFilter.java,
gnu/xml/stream/XMLEventAllocatorImpl.java,
gnu/xml/stream/XMLEventFactoryImpl.java,
gnu/xml/stream/XMLEventImpl.java,
gnu/xml/stream/XMLEventReaderImpl.java,
gnu/xml/stream/XMLEventWriterImpl.java,
gnu/xml/stream/XMLInputFactoryImpl.java,
gnu/xml/stream/XMLOutputFactoryImpl.java,
gnu/xml/stream/XMLParser.java,
javax/xml/stream/EventFilter.java,
javax/xml/stream/Location.java,
javax/xml/stream/StreamFilter.java,
javax/xml/stream/XMLEventFactory.java,
javax/xml/stream/XMLEventReader.java,
javax/xml/stream/XMLEventWriter.java,
javax/xml/stream/XMLInputFactory.java,
javax/xml/stream/XMLOutputFactory.java,
javax/xml/stream/XMLReporter.java,
javax/xml/stream/XMLResolver.java,
javax/xml/stream/XMLStreamConstants.java,
javax/xml/stream/XMLStreamReader.java,
javax/xml/stream/events/EntityDeclaration.java,
javax/xml/stream/events/EntityReference.java,
javax/xml/stream/events/XMLEvent.java,
javax/xml/stream/util/EventReaderDelegate.java,
javax/xml/stream/util/ReaderDelegate.java: Updated to final version of
StAX API as specified in JWSDP 2.0.
* gnu/xml/stream/EndEntityImpl.java,
gnu/xml/stream/LocationImpl.java,
gnu/xml/stream/StartEntityImpl.java,
gnu/xml/stream/XMLStreamReaderImpl.java,
javax/xml/stream/XMLFilter.java,
javax/xml/stream/XMLIterator.java,
javax/xml/stream/events/EndEntity.java,
javax/xml/stream/events/StartEntity.java: Removed legacy files.
Diffstat (limited to 'gnu/xml/stream/XMLParser.java')
-rw-r--r-- | gnu/xml/stream/XMLParser.java | 63 |
1 files changed, 35 insertions, 28 deletions
diff --git a/gnu/xml/stream/XMLParser.java b/gnu/xml/stream/XMLParser.java index 147fff720..9bb483426 100644 --- a/gnu/xml/stream/XMLParser.java +++ b/gnu/xml/stream/XMLParser.java @@ -137,6 +137,10 @@ public class XMLParser final static int ATTRIBUTE_DEFAULT_REQUIRED = 33; final static int ATTRIBUTE_DEFAULT_FIXED = 34; + // -- additional event types -- + final static int START_ENTITY = 50; + final static int END_ENTITY = 51; + /** * The current input. */ @@ -318,6 +322,12 @@ public class XMLParser private final boolean baseAware; /** + * Whether to report extended event types (START_ENTITY and END_ENTITY) + * in addition to the standard event types. Used by the SAX parser. + */ + private final boolean extendedEventTypes; + + /** * The reporter to receive parsing warnings. */ final XMLReporter reporter; @@ -389,6 +399,7 @@ public class XMLParser boolean supportDTD, boolean baseAware, boolean stringInterning, + boolean extendedEventTypes, XMLReporter reporter, XMLResolver resolver) { @@ -400,6 +411,7 @@ public class XMLParser this.supportDTD = supportDTD; this.baseAware = baseAware; this.stringInterning = stringInterning; + this.extendedEventTypes = extendedEventTypes; this.reporter = reporter; this.resolver = resolver; if (validating) @@ -446,6 +458,7 @@ public class XMLParser boolean supportDTD, boolean baseAware, boolean stringInterning, + boolean extendedEventTypes, XMLReporter reporter, XMLResolver resolver) { @@ -457,6 +470,7 @@ public class XMLParser this.supportDTD = supportDTD; this.baseAware = baseAware; this.stringInterning = stringInterning; + this.extendedEventTypes = extendedEventTypes; this.reporter = reporter; this.resolver = resolver; if (validating) @@ -561,7 +575,7 @@ public class XMLParser return attrs.size(); } - public String getAttributeName(int index) + public String getAttributeLocalName(int index) { Attribute a = (Attribute) attrs.get(index); return a.localName; @@ -579,7 +593,7 @@ public class XMLParser return a.prefix; } - public QName getAttributeQName(int index) + public QName getAttributeName(int index) { Attribute a = (Attribute) attrs.get(index); String namespaceURI = getNamespaceURI(a.prefix); @@ -995,16 +1009,16 @@ public class XMLParser String entityName = (String) startEntityStack.removeFirst(); buf.setLength(0); buf.append(entityName); - event = XMLStreamConstants.START_ENTITY; - return event; + event = START_ENTITY; + return extendedEventTypes ? event : next(); } else if (!endEntityStack.isEmpty()) { String entityName = (String) endEntityStack.removeFirst(); buf.setLength(0); buf.append(entityName); - event = XMLStreamConstants.END_ENTITY; - return event; + event = END_ENTITY; + return extendedEventTypes ? event : next(); } try { @@ -1499,10 +1513,10 @@ public class XMLParser InputStream in = null; if (resolver != null) { - if (resolver instanceof XMLResolver2) - in = ((XMLResolver2) resolver).resolve(ids.publicId, url); - else - in = resolver.resolve(url); + Object obj = resolver.resolveEntity(ids.publicId, url, getXMLBase(), + null); + if (obj instanceof InputStream) + in = (InputStream) obj; } if (in == null) in = resolve(url); @@ -4249,6 +4263,7 @@ public class XMLParser true, // supportDTD true, // baseAware true, // stringInterning + true, // extendedEventTypes null, null); XMLStreamReader reader = p; @@ -4280,7 +4295,7 @@ public class XMLParser "='"+reader.getNamespaceURI(i)+"'"); l = reader.getAttributeCount(); for (int i = 0; i < l; i++) - System.out.println("\tattribute "+reader.getAttributeQName(i)+ + System.out.println("\tattribute "+reader.getAttributeName(i)+ "='"+reader.getAttributeValue(i)+"'"); break; case XMLStreamConstants.END_ELEMENT: @@ -4308,10 +4323,10 @@ public class XMLParser System.out.println("PROCESSING_INSTRUCTION "+reader.getPITarget()+ " "+reader.getPIData()); break; - case XMLStreamConstants.START_ENTITY: + case START_ENTITY: System.out.println("START_ENTITY "+reader.getText()); break; - case XMLStreamConstants.END_ENTITY: + case END_ENTITY: System.out.println("END_ENTITY "+reader.getText()); break; default: @@ -4324,7 +4339,7 @@ public class XMLParser Location l = reader.getLocation(); System.out.println("At line "+l.getLineNumber()+ ", column "+l.getColumnNumber()+ - " of "+l.getLocationURI()); + " of "+l.getSystemId()); throw e; } } @@ -4933,19 +4948,6 @@ public class XMLParser } /** - * Compatibility interface that can be used to resolve based on a public - * ID, not just an URL. - */ - interface XMLResolver2 - extends XMLResolver - { - - InputStream resolve(String publicId, String systemId) - throws XMLStreamException; - - } - - /** * An XML input source. */ static class Input @@ -5013,7 +5015,12 @@ public class XMLParser return line; } - public String getLocationURI() + public String getPublicId() + { + return publicId; + } + + public String getSystemId() { return systemId; } |