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.xni.grammars;
019:
020: import org.apache.xerces.xni.parser.XMLConfigurationException;
021: import org.apache.xerces.xni.parser.XMLErrorHandler;
022: import org.apache.xerces.xni.parser.XMLEntityResolver;
023: import org.apache.xerces.xni.parser.XMLInputSource;
024: import org.apache.xerces.xni.XNIException;
025:
026: import java.io.IOException;
027: import java.util.Locale;
028:
029: /**
030: * The intention of this interface is to provide a generic means
031: * by which Grammar objects may be created without parsing instance
032: * documents. Implementations of this interface will know how to load
033: * specific types of grammars (e.g., DTD's or schemas); a wrapper
034: * will be provided for user applications to interact with these implementations.
035: *
036: * @author Neil Graham, IBM
037: * @version $Id: XMLGrammarLoader.java 447245 2006-09-18 05:22:10Z mrglavas $
038: */
039:
040: public interface XMLGrammarLoader {
041:
042: /**
043: * Returns a list of feature identifiers that are recognized by
044: * this XMLGrammarLoader. This method may return null if no features
045: * are recognized.
046: */
047: public String[] getRecognizedFeatures();
048:
049: /**
050: * Returns the state of a feature.
051: *
052: * @param featureId The feature identifier.
053: *
054: * @throws XMLConfigurationException Thrown on configuration error.
055: */
056: public boolean getFeature(String featureId)
057: throws XMLConfigurationException;
058:
059: /**
060: * Sets the state of a feature.
061: *
062: * @param featureId The feature identifier.
063: * @param state The state of the feature.
064: *
065: * @throws XMLConfigurationException Thrown when a feature is not
066: * recognized or cannot be set.
067: */
068: public void setFeature(String featureId, boolean state)
069: throws XMLConfigurationException;
070:
071: /**
072: * Returns a list of property identifiers that are recognized by
073: * this XMLGrammarLoader. This method may return null if no properties
074: * are recognized.
075: */
076: public String[] getRecognizedProperties();
077:
078: /**
079: * Returns the state of a property.
080: *
081: * @param propertyId The property identifier.
082: *
083: * @throws XMLConfigurationException Thrown on configuration error.
084: */
085: public Object getProperty(String propertyId)
086: throws XMLConfigurationException;
087:
088: /**
089: * Sets the state of a property.
090: *
091: * @param propertyId The property identifier.
092: * @param state The state of the property.
093: *
094: * @throws XMLConfigurationException Thrown when a property is not
095: * recognized or cannot be set.
096: */
097: public void setProperty(String propertyId, Object state)
098: throws XMLConfigurationException;
099:
100: /**
101: * Set the locale to use for messages.
102: *
103: * @param locale The locale object to use for localization of messages.
104: *
105: * @exception XNIException Thrown if the parser does not support the
106: * specified locale.
107: */
108: public void setLocale(Locale locale);
109:
110: /** Return the Locale the XMLGrammarLoader is using. */
111: public Locale getLocale();
112:
113: /**
114: * Sets the error handler.
115: *
116: * @param errorHandler The error handler.
117: */
118: public void setErrorHandler(XMLErrorHandler errorHandler);
119:
120: /** Returns the registered error handler. */
121: public XMLErrorHandler getErrorHandler();
122:
123: /**
124: * Sets the entity resolver.
125: *
126: * @param entityResolver The new entity resolver.
127: */
128: public void setEntityResolver(XMLEntityResolver entityResolver);
129:
130: /** Returns the registered entity resolver. */
131: public XMLEntityResolver getEntityResolver();
132:
133: /**
134: * Returns a Grammar object by parsing the contents of the
135: * entity pointed to by source.
136: *
137: * @param source the location of the entity which forms
138: * the starting point of the grammar to be constructed.
139: * @throws IOException When a problem is encountered reading the entity
140: * XNIException When a condition arises (such as a FatalError) that requires parsing
141: * of the entity be terminated.
142: */
143: public Grammar loadGrammar(XMLInputSource source)
144: throws IOException, XNIException;
145: } // XMLGrammarLoader
|