001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: package org.apache.xerces.parsers;
019:
020: import java.io.IOException;
021:
022: import org.apache.xerces.impl.Constants;
023: import org.apache.xerces.xni.XNIException;
024: import org.apache.xerces.xni.parser.XMLInputSource;
025: import org.apache.xerces.xni.parser.XMLParserConfiguration;
026:
027: /**
028: * Base class of all XML-related parsers.
029: * <p>
030: * In addition to the features and properties recognized by the parser
031: * configuration, this parser recognizes these additional features and
032: * properties:
033: * <ul>
034: * <li>Properties
035: * <ul>
036: * <li>http://apache.org/xml/properties/internal/error-handler</li>
037: * <li>http://apache.org/xml/properties/internal/entity-resolver</li>
038: * </ul>
039: * </ul>
040: *
041: * @author Arnaud Le Hors, IBM
042: * @author Andy Clark, IBM
043: *
044: * @version $Id: XMLParser.java 447239 2006-09-18 05:08:26Z mrglavas $
045: */
046: public abstract class XMLParser {
047:
048: //
049: // Constants
050: //
051:
052: // properties
053:
054: /** Property identifier: entity resolver. */
055: protected static final String ENTITY_RESOLVER = Constants.XERCES_PROPERTY_PREFIX
056: + Constants.ENTITY_RESOLVER_PROPERTY;
057:
058: /** Property identifier: error handler. */
059: protected static final String ERROR_HANDLER = Constants.XERCES_PROPERTY_PREFIX
060: + Constants.ERROR_HANDLER_PROPERTY;
061:
062: /** Recognized properties. */
063: private static final String[] RECOGNIZED_PROPERTIES = {
064: ENTITY_RESOLVER, ERROR_HANDLER, };
065:
066: //
067: // Data
068: //
069:
070: /** The parser configuration. */
071: protected XMLParserConfiguration fConfiguration;
072:
073: //
074: // Constructors
075: //
076:
077: /**
078: * Default Constructor.
079: */
080: protected XMLParser(XMLParserConfiguration config) {
081:
082: // save configuration
083: fConfiguration = config;
084:
085: // add default recognized properties
086: fConfiguration.addRecognizedProperties(RECOGNIZED_PROPERTIES);
087:
088: } // <init>(XMLParserConfiguration)
089:
090: //
091: // Public methods
092: //
093:
094: /**
095: * parse
096: *
097: * @param inputSource
098: *
099: * @exception XNIException
100: * @exception java.io.IOException
101: */
102: public void parse(XMLInputSource inputSource) throws XNIException,
103: IOException {
104:
105: reset();
106: fConfiguration.parse(inputSource);
107:
108: } // parse(XMLInputSource)
109:
110: //
111: // Protected methods
112: //
113:
114: /**
115: * reset all components before parsing
116: */
117: protected void reset() throws XNIException {
118: } // reset()
119:
120: } // class XMLParser
|