Save This Page
Home » openjdk-7 » org.xml » sax » helpers » [javadoc | source]
    1   /*
    2    * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Sun designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Sun in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22    * CA 95054 USA or visit www.sun.com if you need additional information or
   23    * have any questions.
   24    */
   25   
   26   // DefaultHandler.java - default implementation of the core handlers.
   27   // http://www.saxproject.org
   28   // Written by David Megginson
   29   // NO WARRANTY!  This class is in the public domain.
   30   // $Id: DefaultHandler.java,v 1.3 2006/04/13 02:06:32 jeffsuttor Exp $
   31   
   32   package org.xml.sax.helpers;
   33   
   34   import java.io.IOException;
   35   
   36   import org.xml.sax.InputSource;
   37   import org.xml.sax.Locator;
   38   import org.xml.sax.Attributes;
   39   import org.xml.sax.EntityResolver;
   40   import org.xml.sax.DTDHandler;
   41   import org.xml.sax.ContentHandler;
   42   import org.xml.sax.ErrorHandler;
   43   import org.xml.sax.SAXException;
   44   import org.xml.sax.SAXParseException;
   45   
   46   
   47   /**
   48    * Default base class for SAX2 event handlers.
   49    *
   50    * <blockquote>
   51    * <em>This module, both source code and documentation, is in the
   52    * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
   53    * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
   54    * for further information.
   55    * </blockquote>
   56    *
   57    * <p>This class is available as a convenience base class for SAX2
   58    * applications: it provides default implementations for all of the
   59    * callbacks in the four core SAX2 handler classes:</p>
   60    *
   61    * <ul>
   62    * <li>{@link org.xml.sax.EntityResolver EntityResolver}</li>
   63    * <li>{@link org.xml.sax.DTDHandler DTDHandler}</li>
   64    * <li>{@link org.xml.sax.ContentHandler ContentHandler}</li>
   65    * <li>{@link org.xml.sax.ErrorHandler ErrorHandler}</li>
   66    * </ul>
   67    *
   68    * <p>Application writers can extend this class when they need to
   69    * implement only part of an interface; parser writers can
   70    * instantiate this class to provide default handlers when the
   71    * application has not supplied its own.</p>
   72    *
   73    * <p>This class replaces the deprecated SAX1
   74    * {@link org.xml.sax.HandlerBase HandlerBase} class.</p>
   75    *
   76    * @since SAX 2.0
   77    * @author David Megginson,
   78    * @see org.xml.sax.EntityResolver
   79    * @see org.xml.sax.DTDHandler
   80    * @see org.xml.sax.ContentHandler
   81    * @see org.xml.sax.ErrorHandler
   82    */
   83   public class DefaultHandler
   84       implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler
   85   {
   86   
   87   
   88       ////////////////////////////////////////////////////////////////////
   89       // Default implementation of the EntityResolver interface.
   90       ////////////////////////////////////////////////////////////////////
   91   
   92       /**
   93        * Resolve an external entity.
   94        *
   95        * <p>Always return null, so that the parser will use the system
   96        * identifier provided in the XML document.  This method implements
   97        * the SAX default behaviour: application writers can override it
   98        * in a subclass to do special translations such as catalog lookups
   99        * or URI redirection.</p>
  100        *
  101        * @param publicId The public identifier, or null if none is
  102        *                 available.
  103        * @param systemId The system identifier provided in the XML
  104        *                 document.
  105        * @return The new input source, or null to require the
  106        *         default behaviour.
  107        * @exception java.io.IOException If there is an error setting
  108        *            up the new input source.
  109        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  110        *            wrapping another exception.
  111        * @see org.xml.sax.EntityResolver#resolveEntity
  112        */
  113       public InputSource resolveEntity (String publicId, String systemId)
  114           throws IOException, SAXException
  115       {
  116           return null;
  117       }
  118   
  119   
  120   
  121       ////////////////////////////////////////////////////////////////////
  122       // Default implementation of DTDHandler interface.
  123       ////////////////////////////////////////////////////////////////////
  124   
  125   
  126       /**
  127        * Receive notification of a notation declaration.
  128        *
  129        * <p>By default, do nothing.  Application writers may override this
  130        * method in a subclass if they wish to keep track of the notations
  131        * declared in a document.</p>
  132        *
  133        * @param name The notation name.
  134        * @param publicId The notation public identifier, or null if not
  135        *                 available.
  136        * @param systemId The notation system identifier.
  137        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  138        *            wrapping another exception.
  139        * @see org.xml.sax.DTDHandler#notationDecl
  140        */
  141       public void notationDecl (String name, String publicId, String systemId)
  142           throws SAXException
  143       {
  144           // no op
  145       }
  146   
  147   
  148       /**
  149        * Receive notification of an unparsed entity declaration.
  150        *
  151        * <p>By default, do nothing.  Application writers may override this
  152        * method in a subclass to keep track of the unparsed entities
  153        * declared in a document.</p>
  154        *
  155        * @param name The entity name.
  156        * @param publicId The entity public identifier, or null if not
  157        *                 available.
  158        * @param systemId The entity system identifier.
  159        * @param notationName The name of the associated notation.
  160        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  161        *            wrapping another exception.
  162        * @see org.xml.sax.DTDHandler#unparsedEntityDecl
  163        */
  164       public void unparsedEntityDecl (String name, String publicId,
  165                                       String systemId, String notationName)
  166           throws SAXException
  167       {
  168           // no op
  169       }
  170   
  171   
  172   
  173       ////////////////////////////////////////////////////////////////////
  174       // Default implementation of ContentHandler interface.
  175       ////////////////////////////////////////////////////////////////////
  176   
  177   
  178       /**
  179        * Receive a Locator object for document events.
  180        *
  181        * <p>By default, do nothing.  Application writers may override this
  182        * method in a subclass if they wish to store the locator for use
  183        * with other document events.</p>
  184        *
  185        * @param locator A locator for all SAX document events.
  186        * @see org.xml.sax.ContentHandler#setDocumentLocator
  187        * @see org.xml.sax.Locator
  188        */
  189       public void setDocumentLocator (Locator locator)
  190       {
  191           // no op
  192       }
  193   
  194   
  195       /**
  196        * Receive notification of the beginning of the document.
  197        *
  198        * <p>By default, do nothing.  Application writers may override this
  199        * method in a subclass to take specific actions at the beginning
  200        * of a document (such as allocating the root node of a tree or
  201        * creating an output file).</p>
  202        *
  203        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  204        *            wrapping another exception.
  205        * @see org.xml.sax.ContentHandler#startDocument
  206        */
  207       public void startDocument ()
  208           throws SAXException
  209       {
  210           // no op
  211       }
  212   
  213   
  214       /**
  215        * Receive notification of the end of the document.
  216        *
  217        * <p>By default, do nothing.  Application writers may override this
  218        * method in a subclass to take specific actions at the end
  219        * of a document (such as finalising a tree or closing an output
  220        * file).</p>
  221        *
  222        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  223        *            wrapping another exception.
  224        * @see org.xml.sax.ContentHandler#endDocument
  225        */
  226       public void endDocument ()
  227           throws SAXException
  228       {
  229           // no op
  230       }
  231   
  232   
  233       /**
  234        * Receive notification of the start of a Namespace mapping.
  235        *
  236        * <p>By default, do nothing.  Application writers may override this
  237        * method in a subclass to take specific actions at the start of
  238        * each Namespace prefix scope (such as storing the prefix mapping).</p>
  239        *
  240        * @param prefix The Namespace prefix being declared.
  241        * @param uri The Namespace URI mapped to the prefix.
  242        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  243        *            wrapping another exception.
  244        * @see org.xml.sax.ContentHandler#startPrefixMapping
  245        */
  246       public void startPrefixMapping (String prefix, String uri)
  247           throws SAXException
  248       {
  249           // no op
  250       }
  251   
  252   
  253       /**
  254        * Receive notification of the end of a Namespace mapping.
  255        *
  256        * <p>By default, do nothing.  Application writers may override this
  257        * method in a subclass to take specific actions at the end of
  258        * each prefix mapping.</p>
  259        *
  260        * @param prefix The Namespace prefix being declared.
  261        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  262        *            wrapping another exception.
  263        * @see org.xml.sax.ContentHandler#endPrefixMapping
  264        */
  265       public void endPrefixMapping (String prefix)
  266           throws SAXException
  267       {
  268           // no op
  269       }
  270   
  271   
  272       /**
  273        * Receive notification of the start of an element.
  274        *
  275        * <p>By default, do nothing.  Application writers may override this
  276        * method in a subclass to take specific actions at the start of
  277        * each element (such as allocating a new tree node or writing
  278        * output to a file).</p>
  279        *
  280        * @param uri The Namespace URI, or the empty string if the
  281        *        element has no Namespace URI or if Namespace
  282        *        processing is not being performed.
  283        * @param localName The local name (without prefix), or the
  284        *        empty string if Namespace processing is not being
  285        *        performed.
  286        * @param qName The qualified name (with prefix), or the
  287        *        empty string if qualified names are not available.
  288        * @param attributes The attributes attached to the element.  If
  289        *        there are no attributes, it shall be an empty
  290        *        Attributes object.
  291        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  292        *            wrapping another exception.
  293        * @see org.xml.sax.ContentHandler#startElement
  294        */
  295       public void startElement (String uri, String localName,
  296                                 String qName, Attributes attributes)
  297           throws SAXException
  298       {
  299           // no op
  300       }
  301   
  302   
  303       /**
  304        * Receive notification of the end of an element.
  305        *
  306        * <p>By default, do nothing.  Application writers may override this
  307        * method in a subclass to take specific actions at the end of
  308        * each element (such as finalising a tree node or writing
  309        * output to a file).</p>
  310        *
  311        * @param uri The Namespace URI, or the empty string if the
  312        *        element has no Namespace URI or if Namespace
  313        *        processing is not being performed.
  314        * @param localName The local name (without prefix), or the
  315        *        empty string if Namespace processing is not being
  316        *        performed.
  317        * @param qName The qualified name (with prefix), or the
  318        *        empty string if qualified names are not available.
  319        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  320        *            wrapping another exception.
  321        * @see org.xml.sax.ContentHandler#endElement
  322        */
  323       public void endElement (String uri, String localName, String qName)
  324           throws SAXException
  325       {
  326           // no op
  327       }
  328   
  329   
  330       /**
  331        * Receive notification of character data inside an element.
  332        *
  333        * <p>By default, do nothing.  Application writers may override this
  334        * method to take specific actions for each chunk of character data
  335        * (such as adding the data to a node or buffer, or printing it to
  336        * a file).</p>
  337        *
  338        * @param ch The characters.
  339        * @param start The start position in the character array.
  340        * @param length The number of characters to use from the
  341        *               character array.
  342        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  343        *            wrapping another exception.
  344        * @see org.xml.sax.ContentHandler#characters
  345        */
  346       public void characters (char ch[], int start, int length)
  347           throws SAXException
  348       {
  349           // no op
  350       }
  351   
  352   
  353       /**
  354        * Receive notification of ignorable whitespace in element content.
  355        *
  356        * <p>By default, do nothing.  Application writers may override this
  357        * method to take specific actions for each chunk of ignorable
  358        * whitespace (such as adding data to a node or buffer, or printing
  359        * it to a file).</p>
  360        *
  361        * @param ch The whitespace characters.
  362        * @param start The start position in the character array.
  363        * @param length The number of characters to use from the
  364        *               character array.
  365        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  366        *            wrapping another exception.
  367        * @see org.xml.sax.ContentHandler#ignorableWhitespace
  368        */
  369       public void ignorableWhitespace (char ch[], int start, int length)
  370           throws SAXException
  371       {
  372           // no op
  373       }
  374   
  375   
  376       /**
  377        * Receive notification of a processing instruction.
  378        *
  379        * <p>By default, do nothing.  Application writers may override this
  380        * method in a subclass to take specific actions for each
  381        * processing instruction, such as setting status variables or
  382        * invoking other methods.</p>
  383        *
  384        * @param target The processing instruction target.
  385        * @param data The processing instruction data, or null if
  386        *             none is supplied.
  387        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  388        *            wrapping another exception.
  389        * @see org.xml.sax.ContentHandler#processingInstruction
  390        */
  391       public void processingInstruction (String target, String data)
  392           throws SAXException
  393       {
  394           // no op
  395       }
  396   
  397   
  398       /**
  399        * Receive notification of a skipped entity.
  400        *
  401        * <p>By default, do nothing.  Application writers may override this
  402        * method in a subclass to take specific actions for each
  403        * processing instruction, such as setting status variables or
  404        * invoking other methods.</p>
  405        *
  406        * @param name The name of the skipped entity.
  407        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  408        *            wrapping another exception.
  409        * @see org.xml.sax.ContentHandler#processingInstruction
  410        */
  411       public void skippedEntity (String name)
  412           throws SAXException
  413       {
  414           // no op
  415       }
  416   
  417   
  418   
  419       ////////////////////////////////////////////////////////////////////
  420       // Default implementation of the ErrorHandler interface.
  421       ////////////////////////////////////////////////////////////////////
  422   
  423   
  424       /**
  425        * Receive notification of a parser warning.
  426        *
  427        * <p>The default implementation does nothing.  Application writers
  428        * may override this method in a subclass to take specific actions
  429        * for each warning, such as inserting the message in a log file or
  430        * printing it to the console.</p>
  431        *
  432        * @param e The warning information encoded as an exception.
  433        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  434        *            wrapping another exception.
  435        * @see org.xml.sax.ErrorHandler#warning
  436        * @see org.xml.sax.SAXParseException
  437        */
  438       public void warning (SAXParseException e)
  439           throws SAXException
  440       {
  441           // no op
  442       }
  443   
  444   
  445       /**
  446        * Receive notification of a recoverable parser error.
  447        *
  448        * <p>The default implementation does nothing.  Application writers
  449        * may override this method in a subclass to take specific actions
  450        * for each error, such as inserting the message in a log file or
  451        * printing it to the console.</p>
  452        *
  453        * @param e The error information encoded as an exception.
  454        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  455        *            wrapping another exception.
  456        * @see org.xml.sax.ErrorHandler#warning
  457        * @see org.xml.sax.SAXParseException
  458        */
  459       public void error (SAXParseException e)
  460           throws SAXException
  461       {
  462           // no op
  463       }
  464   
  465   
  466       /**
  467        * Report a fatal XML parsing error.
  468        *
  469        * <p>The default implementation throws a SAXParseException.
  470        * Application writers may override this method in a subclass if
  471        * they need to take specific actions for each fatal error (such as
  472        * collecting all of the errors into a single report): in any case,
  473        * the application must stop all regular processing when this
  474        * method is invoked, since the document is no longer reliable, and
  475        * the parser may no longer report parsing events.</p>
  476        *
  477        * @param e The error information encoded as an exception.
  478        * @exception org.xml.sax.SAXException Any SAX exception, possibly
  479        *            wrapping another exception.
  480        * @see org.xml.sax.ErrorHandler#fatalError
  481        * @see org.xml.sax.SAXParseException
  482        */
  483       public void fatalError (SAXParseException e)
  484           throws SAXException
  485       {
  486           throw e;
  487       }
  488   
  489   }
  490   
  491   // end of DefaultHandler.java

Save This Page
Home » openjdk-7 » org.xml » sax » helpers » [javadoc | source]