Index: gnu/xml/stream/SAXParser.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/xml/stream/SAXParser.java,v retrieving revision 1.12 diff -u -r1.12 SAXParser.java --- gnu/xml/stream/SAXParser.java 7 Jan 2006 12:36:07 -0000 1.12 +++ gnu/xml/stream/SAXParser.java 7 Jan 2006 14:41:16 -0000 @@ -72,6 +72,21 @@ /** * JAXP SAX parser using an underlying StAX parser. + * This parser supports the following additional SAX features and + * properties: + * + * + * + * + * + * + * + * + * + * + * + * + *
Features
http://gnu.org/sax/features/xml-baseread/writeIndicates or sets whether XML Base processing is enabled
Properties
http://gnu.org/sax/properties/base-uriread-onlyStringReturns the base URI of the current event
http://gnu.org/sax/properties/document-xml-encodingread-onlyStringReturns the encoding specified in the XML declaration
* * @author Chris Burdess */ @@ -104,6 +119,7 @@ String xmlVersion; boolean xmlStandalone; String xmlEncoding; + String baseURI; public SAXParser() { @@ -183,6 +199,8 @@ final String PROPERTIES = "http://xml.org/sax/properties/"; final String GNU_FEATURES = "http://gnu.org/sax/features/"; final String GNU_PROPERTIES = "http://gnu.org/sax/properties/"; + if ((GNU_FEATURES + "base-uri").equals(name)) + return baseURI; if ((FEATURES + "is-standalone").equals(name)) return xmlStandalone ? Boolean.TRUE : Boolean.FALSE; if ((FEATURES + "namespaces").equals(name)) @@ -343,6 +361,7 @@ this); } reader = parser; + baseURI = systemId; if (xIncludeAware) reader = new XIncludeFilter(parser, systemId, namespaceAware, @@ -355,7 +374,10 @@ { while (parser.hasNext()) { - switch (parser.next()) + int event = parser.next(); + if (baseAware) + baseURI = parser.getXMLBase(); + switch (event) { case XMLStreamConstants.CHARACTERS: if (contentHandler != null) Index: gnu/xml/stream/XMLParser.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/xml/stream/XMLParser.java,v retrieving revision 1.16 diff -u -r1.16 XMLParser.java --- gnu/xml/stream/XMLParser.java 7 Jan 2006 12:29:06 -0000 1.16 +++ gnu/xml/stream/XMLParser.java 7 Jan 2006 14:41:17 -0000 @@ -1426,7 +1426,7 @@ /** * Returns the current base URI for resolving external entities. */ - private String getXMLBase() + String getXMLBase() { if (baseAware) {