1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// DefaultHandler2.java - extended DefaultHandler 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// http://www.saxproject.org 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// Public Domain: no warranty. 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// $Id: DefaultHandler2.java,v 1.3 2002/01/12 19:04:19 dbrownell Exp $ 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage org.xml.sax.ext; 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException; 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.xml.sax.InputSource; 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.xml.sax.SAXException; 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.xml.sax.helpers.DefaultHandler; 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/** 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * This class extends the SAX2 base handler class to support the 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * SAX2 {@link LexicalHandler}, {@link DeclHandler}, and 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link EntityResolver2} extensions. Except for overriding the 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * original SAX1 {@link DefaultHandler#resolveEntity resolveEntity()} 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * method the added handler methods just return. Subclassers may 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * override everything on a method-by-method basis. 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <blockquote> 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <em>This module, both source code and documentation, is in the 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * </blockquote> 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <p> <em>Note:</em> this class might yet learn that the 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <em>ContentHandler.setDocumentLocator()</em> call might be passed a 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link Locator2} object, and that the 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * <em>ContentHandler.startElement()</em> call might be passed a 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link Attributes2} object. 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since SAX 2.0 (extensions 1.1 alpha) 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @author David Brownell 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @version TBS 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class DefaultHandler2 extends DefaultHandler 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project implements LexicalHandler, DeclHandler, EntityResolver2 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project{ 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** Constructs a handler which ignores all parsing events. */ 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public DefaultHandler2 () { } 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // SAX2 ext-1.0 LexicalHandler 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void startCDATA () 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project {} 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void endCDATA () 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project {} 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void startDTD (String name, String publicId, String systemId) 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project {} 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void endDTD () 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project {} 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void startEntity (String name) 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project {} 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void endEntity (String name) 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project {} 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void comment (char ch [], int start, int length) 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project { } 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // SAX2 ext-1.0 DeclHandler 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void attributeDecl (String eName, String aName, 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String type, String mode, String value) 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project {} 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void elementDecl (String name, String model) 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project {} 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void externalEntityDecl (String name, 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String publicId, String systemId) 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project {} 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void internalEntityDecl (String name, String value) 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project {} 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // SAX2 ext-1.1 EntityResolver2 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Tells the parser that if no external subset has been declared 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * in the document text, none should be used. 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param name Identifies the document root element. This name comes 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * from a DOCTYPE declaration (where available) or from the actual 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * root element. The parameter is ignored. 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param baseURI The document's base URI, serving as an additional 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * hint for selecting the external subset. This is always an absolute 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * URI, unless it is null because the XMLReader was given an InputSource 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * without one. The parameter is ignored. 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return null (always). 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @exception SAXException Any SAX exception, possibly wrapping 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * another exception. 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @exception IOException Probably indicating a failure to create 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * a new InputStream or Reader, or an illegal URL. 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public InputSource getExternalSubset (String name, String baseURI) 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException, IOException 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project { return null; } 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Tells the parser to resolve the systemId against the baseURI 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * and read the entity text from that resulting absolute URI. 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Note that because the older 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link DefaultHandler#resolveEntity DefaultHandler.resolveEntity()}, 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * method is overridden to call this one, this method may sometimes 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * be invoked with null <em>name</em> and <em>baseURI</em>, and 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * with the <em>systemId</em> already absolutized. 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param name Identifies the external entity being resolved. 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Either "[dtd]" for the external subset, or a name starting 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * with "%" to indicate a parameter entity, or else the name of 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * a general entity. This is never null when invoked by a SAX2 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * parser. 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param publicId The public identifier of the external entity being 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * referenced (normalized as required by the XML specification), or 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * null if none was supplied. 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param baseURI The URI with respect to which relative systemIDs 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * are interpreted. This is always an absolute URI, unless it is 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * null (likely because the XMLReader was given an InputSource without 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * one). This URI is defined by the XML specification to be the one 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * associated with the "<" starting the relevant declaration. 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param systemId The system identifier of the external entity 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * being referenced; either a relative or absolute URI. 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * This is never null when invoked by a SAX2 parser; only declared 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * entities, and any external subset, are resolved by such parsers. 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return An InputSource object describing the new input source. 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @exception SAXException Any SAX exception, possibly wrapping 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * another exception. 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @exception IOException Probably indicating a failure to create 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * a new InputStream or Reader, or an illegal URL. 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public InputSource resolveEntity (String name, String publicId, 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String baseURI, String systemId) 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException, IOException 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project { return null; } 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // SAX1 EntityResolver 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Invokes 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * {@link EntityResolver2#resolveEntity EntityResolver2.resolveEntity()} 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * with null entity name and base URI. 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * You only need to override that method to use this class. 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param publicId The public identifier of the external entity being 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * referenced (normalized as required by the XML specification), or 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * null if none was supplied. 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @param systemId The system identifier of the external entity 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * being referenced; either a relative or absolute URI. 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * This is never null when invoked by a SAX2 parser; only declared 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * entities, and any external subset, are resolved by such parsers. 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @return An InputSource object describing the new input source. 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @exception SAXException Any SAX exception, possibly wrapping 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * another exception. 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @exception IOException Probably indicating a failure to create 180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * a new InputStream or Reader, or an illegal URL. 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public InputSource resolveEntity (String publicId, String systemId) 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws SAXException, IOException 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project { return resolveEntity (null, publicId, null, systemId); } 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 186