You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ne...@apache.org on 2002/05/23 18:46:01 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/xni/grammars XMLGrammarLoader.java

neilg       02/05/23 09:46:01

  Added:       java/src/org/apache/xerces/xni/grammars
                        XMLGrammarLoader.java
  Log:
  the XMLGrammarLoader interface.  Internally, we will use this to concentrate grammar location/loading functionality in particular classes for given grammar types.  It is also possible that user applications with very specific ideas of what they want out of grammars may wish to implement this interface in order to do things like filtering incoming grammars.  This would require them to to work with internal components to actually produce usable grammar objects.
  
  A schema implementation of this interface is fairly well advanced, and hopefully will appear shortly.
  
  Revision  Changes    Path
  1.1                  xml-xerces/java/src/org/apache/xerces/xni/grammars/XMLGrammarLoader.java
  
  Index: XMLGrammarLoader.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2000-2002 The Apache Software Foundation.  
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Xerces" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation and was
   * originally based on software copyright (c) 1999, International
   * Business Machines, Inc., http://www.apache.org.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.xerces.xni.grammars;
  
  import org.apache.xerces.xni.parser.XMLConfigurationException;
  import org.apache.xerces.xni.parser.XMLErrorHandler;
  import org.apache.xerces.xni.parser.XMLEntityResolver;
  import org.apache.xerces.xni.parser.XMLInputSource;
  import org.apache.xerces.xni.XNIException;
  
  import java.io.IOException;
  import java.util.Locale;
  
  /**
   * The intention of this interface is to provide a generic means
   * by which Grammar objects may be created without parsing instance
   * documents.  Implementations of this interface will know how to load
   * specific types of grammars (e.g., DTD's or schemas); a wrapper
   * will be provided for user applications to interact with these implementations.
   * 
   * @author Neil Graham, IBM
   * @version $Id: XMLGrammarLoader.java,v 1.1 2002/05/23 16:46:01 neilg Exp $
   */
  
  public interface XMLGrammarLoader {
  
      /**
       * Returns a list of feature identifiers that are recognized by
       * this XMLGrammarLoader.  This method may return null if no features
       * are recognized.
       */
      public String[] getRecognizedFeatures();
  
      /**
       * Returns the state of a feature.
       * 
       * @param featureId The feature identifier.
       * 
       * @throws XMLConfigurationException Thrown on configuration error.
       */
      public boolean getFeature(String featureId) 
              throws XMLConfigurationException;
  
      /**
       * Sets the state of a feature. 
       *
       * @param featureId The feature identifier.
       * @param state     The state of the feature.
       *
       * @throws XMLConfigurationException Thrown when a feature is not
       *                  recognized or cannot be set.
       */
      public void setFeature(String featureId,
                  boolean state) throws XMLConfigurationException;
  
      /**
       * Returns a list of property identifiers that are recognized by
       * this XMLGrammarLoader.  This method may return null if no properties
       * are recognized.
       */
      public String[] getRecognizedProperties();
  
      /**
       * Returns the state of a property.
       * 
       * @param propertyId The property identifier.
       * 
       * @throws XMLConfigurationException Thrown on configuration error.
       */
      public Object getProperty(String propertyId) 
              throws XMLConfigurationException;
  
      /**
       * Sets the state of a property. 
       * 
       * @param propertyId The property identifier.
       * @param state     The state of the property.
       *
       * @throws XMLConfigurationException Thrown when a property is not
       *                  recognized or cannot be set.
       */
      public void setProperty(String propertyId,
                  Object state) throws XMLConfigurationException;
  
      /**
       * Set the locale to use for messages.
       *
       * @param locale The locale object to use for localization of messages.
       *
       * @exception XNIException Thrown if the parser does not support the
       *                         specified locale.
       */
      public void setLocale(Locale locale); 
  
      /** Return the Locale the XMLGrammarLoader is using. */
      public Locale getLocale();
  
      /**
       * Sets the error handler.
       *
       * @param errorHandler The error handler.
       */
      public void setErrorHandler(XMLErrorHandler errorHandler);
  
      /** Returns the registered error handler.  */
      public XMLErrorHandler getErrorHandler();
  
      /**
       * Sets the entity resolver.
       *
       * @param entityResolver The new entity resolver.
       */
      public void setEntityResolver(XMLEntityResolver entityResolver);
  
      /** Returns the registered entity resolver.  */
      public XMLEntityResolver getEntityResolver();
  
      /**
       * Returns a Grammar object by parsing the contents of the
       * entity pointed to by source.
       *
       * @param source        the location of the entity which forms
       *                          the starting point of the grammar to be constructed.
       * @throws IOException      When a problem is encountered reading the entity
       *          XNIException    When a condition arises (such as a FatalError) that requires parsing
       *                              of the entity be terminated.
       */
      public Grammar loadGrammar(XMLInputSource source)
          throws IOException, XNIException;
  } // XMLGrammarLoader
  
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org