diff options
Diffstat (limited to 'src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java')
-rw-r--r-- | src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java b/src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java new file mode 100644 index 0000000..e8dc595 --- /dev/null +++ b/src/share/classes/com/sun/org/apache/xml/internal/resolver/tools/ResolvingXMLReader.java @@ -0,0 +1,93 @@ +/* + * reserved comment block + * DO NOT REMOVE OR ALTER! + */ +// ResolvingXMLReader.java - An XMLReader that performs catalog resolution + +/* + * Copyright 2001-2004 The Apache Software Foundation or its licensors, + * as applicable. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.sun.org.apache.xml.internal.resolver.tools; + +import org.xml.sax.*; + +import javax.xml.parsers.*; + +import com.sun.org.apache.xml.internal.resolver.*; + +/** + * A SAX XMLReader that performs catalog-based entity resolution. + * + * <p>This class implements a SAX XMLReader that performs entity resolution + * using the CatalogResolver. The actual, underlying parser is obtained + * from a SAXParserFactory.</p> + * </p> + * + * @see CatalogResolver + * @see org.xml.sax.XMLReader + * + * @author Norman Walsh + * <a href="mailto:Norman.Walsh@Sun.COM">Norman.Walsh@Sun.COM</a> + * + */ +public class ResolvingXMLReader extends ResolvingXMLFilter { + /** Make the parser Namespace aware? */ + public static boolean namespaceAware = true; + + /** Make the parser validating? */ + public static boolean validating = false; + + /** + * Construct a new reader from the JAXP factory. + * + * <p>In order to do its job, a ResolvingXMLReader must in fact be + * a filter. So the only difference between this code and the filter + * code is that the constructor builds a new reader.</p> + */ + public ResolvingXMLReader() { + super(); + SAXParserFactory spf = SAXParserFactory.newInstance(); + spf.setNamespaceAware(namespaceAware); + spf.setValidating(validating); + try { + SAXParser parser = spf.newSAXParser(); + setParent(parser.getXMLReader()); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + /** + * Construct a new reader from the JAXP factory. + * + * <p>In order to do its job, a ResolvingXMLReader must in fact be + * a filter. So the only difference between this code and the filter + * code is that the constructor builds a new reader.</p> + */ + public ResolvingXMLReader(CatalogManager manager) { + super(manager); + SAXParserFactory spf = SAXParserFactory.newInstance(); + spf.setNamespaceAware(namespaceAware); + spf.setValidating(validating); + try { + SAXParser parser = spf.newSAXParser(); + setParent(parser.getXMLReader()); + } catch (Exception ex) { + ex.printStackTrace(); + } + } +} |