1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// ContentHandler.java - handle main document content. 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// http://www.saxproject.org 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Written by David Megginson 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// NO WARRANTY! This class is in the public domain. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// $Id: ContentHandler.java,v 1.13 2004/04/26 17:50:49 dmegginson Exp $ 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.xml.sax; 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Receive notification of the logical content of a document. 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <blockquote> 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <em>This module, both source code and documentation, is in the 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * for further information. 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </blockquote> 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>This is the main interface that most SAX applications 21f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * implement: if the application needs to be informed of basic parsing 22f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * events, it implements this interface and registers an instance with 23f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * the SAX parser using the {@link org.xml.sax.XMLReader#setContentHandler 24f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * setContentHandler} method. The parser uses the instance to report 25f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * basic document-related events like the start and end of elements 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and character data.</p> 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>The order of events in this interface is very important, and 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * mirrors the order of information in the document itself. For 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * example, all of an element's content (character data, processing 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * instructions, and/or subelements) will appear, in order, between 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the startElement event and the corresponding endElement event.</p> 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>This interface is similar to the now-deprecated SAX 1.0 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * DocumentHandler interface, but it adds support for Namespaces 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and for reporting skipped entities (in non-validating XML 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * processors).</p> 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 39f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * <p>Implementors should note that there is also a 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>ContentHandler</code> class in the <code>java.net</code> 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * package; that means that it's probably a bad idea to do</p> 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <pre>import java.net.*; 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * import org.xml.sax.*; 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </pre> 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>In fact, "import ...*" is usually a sign of sloppy programming 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * anyway, so the user should consider this a feature rather than a 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * bug.</p> 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @since SAX 2.0 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author David Megginson 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @version 2.0.1+ (sax2r3pre1) 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.XMLReader 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.DTDHandler 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.ErrorHandler 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic interface ContentHandler 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project{ 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Receive an object for locating the origin of SAX document events. 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>SAX parsers are strongly encouraged (though not absolutely 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * required) to supply a locator: if it does so, it must supply 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the locator to the application by invoking this method before 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * invoking any of the other methods in the ContentHandler 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * interface.</p> 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>The locator allows the application to determine the end 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * position of any document-related event, even if the parser is 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * not reporting an error. Typically, the application will 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * use this information for reporting its own errors (such as 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * character content that does not match an application's 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * business rules). The information returned by the locator 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is probably not sufficient for use with a search engine.</p> 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>Note that the locator will return correct information only 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * during the invocation SAX event callbacks after 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@link #startDocument startDocument} returns and before 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@link #endDocument endDocument} is called. The 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * application should not attempt to use it at any other time.</p> 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param locator an object that can return the location of 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * any SAX document event 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.Locator 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setDocumentLocator (Locator locator); 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Receive notification of the beginning of a document. 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>The SAX parser will invoke this method only once, before any 95f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * other event callbacks (except for {@link #setDocumentLocator 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * setDocumentLocator}).</p> 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws org.xml.sax.SAXException any SAX exception, possibly 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * wrapping another exception 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #endDocument 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void startDocument () 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws SAXException; 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Receive notification of the end of a document. 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p><strong>There is an apparent contradiction between the 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * documentation for this method and the documentation for {@link 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * org.xml.sax.ErrorHandler#fatalError}. Until this ambiguity is 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * resolved in a future major release, clients should make no 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * assumptions about whether endDocument() will or will not be 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * invoked when the parser has reported a fatalError() or thrown 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * an exception.</strong></p> 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>The SAX parser will invoke this method only once, and it will 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * be the last method invoked during the parse. The parser shall 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * not invoke this method until it has either abandoned parsing 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (because of an unrecoverable error) or reached the end of 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * input.</p> 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws org.xml.sax.SAXException any SAX exception, possibly 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * wrapping another exception 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #startDocument 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void endDocument() 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws SAXException; 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Begin the scope of a prefix-URI Namespace mapping. 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>The information from this event is not necessary for 135f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * normal Namespace processing: the SAX XML reader will 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * automatically replace prefixes for element and attribute 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * names when the <code>http://xml.org/sax/features/namespaces</code> 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * feature is <var>true</var> (the default).</p> 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>There are cases, however, when applications need to 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * use prefixes in character data or in attribute values, 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * where they cannot safely be expanded automatically; the 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * start/endPrefixMapping event supplies the information 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * to the application to expand prefixes in those contexts 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * itself, if necessary.</p> 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>Note that start/endPrefixMapping events are not 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * guaranteed to be properly nested relative to each other: 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * all startPrefixMapping events will occur immediately before the 150f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * corresponding {@link #startElement startElement} event, 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and all {@link #endPrefixMapping endPrefixMapping} 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * events will occur immediately after the corresponding 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@link #endElement endElement} event, 154f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * but their order is not otherwise 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * guaranteed.</p> 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>There should never be start/endPrefixMapping events for the 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * "xml" prefix, since it is predeclared and immutable.</p> 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param prefix the Namespace prefix being declared. 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * An empty string is used for the default element namespace, 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * which has no prefix. 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param uri the Namespace URI the prefix is mapped to 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws org.xml.sax.SAXException the client may throw 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * an exception during processing 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #endPrefixMapping 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #startElement 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void startPrefixMapping (String prefix, String uri) 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws SAXException; 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * End the scope of a prefix-URI mapping. 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 176f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * <p>See {@link #startPrefixMapping startPrefixMapping} for 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * details. These events will always occur immediately after the 178f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * corresponding {@link #endElement endElement} event, but the order of 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@link #endPrefixMapping endPrefixMapping} events is not otherwise 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * guaranteed.</p> 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param prefix the prefix that was being mapped. 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * This is the empty string when a default mapping scope ends. 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws org.xml.sax.SAXException the client may throw 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * an exception during processing 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #startPrefixMapping 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #endElement 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void endPrefixMapping (String prefix) 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws SAXException; 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Receive notification of the beginning of an element. 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>The Parser will invoke this method at the beginning of every 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * element in the XML document; there will be a corresponding 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@link #endElement endElement} event for every startElement event 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (even when the element is empty). All of the element's content will be 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * reported, in order, before the corresponding endElement 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * event.</p> 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>This event allows up to three name components for each 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * element:</p> 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <ol> 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <li>the Namespace URI;</li> 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <li>the local name; and</li> 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <li>the qualified (prefixed) name.</li> 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </ol> 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>Any or all of these may be provided, depending on the 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * values of the <var>http://xml.org/sax/features/namespaces</var> 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and the <var>http://xml.org/sax/features/namespace-prefixes</var> 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * properties:</p> 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <ul> 218f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * <li>the Namespace URI and local name are required when 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the namespaces property is <var>true</var> (the default), and are 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * optional when the namespaces property is <var>false</var> (if one is 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * specified, both must be);</li> 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <li>the qualified name is required when the namespace-prefixes property 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is <var>true</var>, and is optional when the namespace-prefixes property 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is <var>false</var> (the default).</li> 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </ul> 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>Note that the attribute list provided will contain only 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * attributes with explicit values (specified or defaulted): 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * #IMPLIED attributes will be omitted. The attribute list 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * will contain attributes used for Namespace declarations 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (xmlns* attributes) only if the 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>http://xml.org/sax/features/namespace-prefixes</code> 233f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * property is true (it is false by default, and support for a 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * true value is optional).</p> 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>Like {@link #characters characters()}, attribute values may have 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * characters that need more than one <code>char</code> value. </p> 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param uri the Namespace URI, or the empty string if the 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * element has no Namespace URI or if Namespace 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * processing is not being performed 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param localName the local name (without prefix), or the 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * empty string if Namespace processing is not being 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * performed 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param qName the qualified name (with prefix), or the 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * empty string if qualified names are not available 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param atts the attributes attached to the element. If 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * there are no attributes, it shall be an empty 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Attributes object. The value of this object after 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * startElement returns is undefined 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws org.xml.sax.SAXException any SAX exception, possibly 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * wrapping another exception 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #endElement 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.Attributes 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.helpers.AttributesImpl 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void startElement (String uri, String localName, 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String qName, Attributes atts) 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws SAXException; 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Receive notification of the end of an element. 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>The SAX parser will invoke this method at the end of every 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * element in the XML document; there will be a corresponding 267f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * {@link #startElement startElement} event for every endElement 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * event (even when the element is empty).</p> 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>For information on the names, see startElement.</p> 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param uri the Namespace URI, or the empty string if the 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * element has no Namespace URI or if Namespace 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * processing is not being performed 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param localName the local name (without prefix), or the 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * empty string if Namespace processing is not being 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * performed 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param qName the qualified XML name (with prefix), or the 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * empty string if qualified names are not available 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws org.xml.sax.SAXException any SAX exception, possibly 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * wrapping another exception 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void endElement (String uri, String localName, 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String qName) 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws SAXException; 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Receive notification of character data. 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>The Parser will call this method to report each chunk of 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * character data. SAX parsers may return all contiguous character 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * data in a single chunk, or they may split it into several 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * chunks; however, all of the characters in any single event 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * must come from the same external entity so that the Locator 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * provides useful information.</p> 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>The application must not attempt to read from the array 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * outside of the specified range.</p> 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>Individual characters may consist of more than one Java 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>char</code> value. There are two important cases where this 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * happens, because characters can't be represented in just sixteen bits. 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * In one case, characters are represented in a <em>Surrogate Pair</em>, 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * using two special Unicode values. Such characters are in the so-called 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * "Astral Planes", with a code point above U+FFFF. A second case involves 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * composite characters, such as a base character combining with one or 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * more accent characters. </p> 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p> Your code should not assume that algorithms using 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>char</code>-at-a-time idioms will be working in character 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * units; in some cases they will split characters. This is relevant 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * wherever XML permits arbitrary characters, such as attribute values, 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * processing instruction data, and comments as well as in data reported 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * from this method. It's also generally relevant whenever Java code 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * manipulates internationalized text; the issue isn't unique to XML.</p> 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>Note that some parsers will report whitespace in element 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * content using the {@link #ignorableWhitespace ignorableWhitespace} 320f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * method rather than this one (validating parsers <em>must</em> 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * do so).</p> 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param ch the characters from the XML document 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param start the start position in the array 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param length the number of characters to read from the array 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws org.xml.sax.SAXException any SAX exception, possibly 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * wrapping another exception 328f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @see #ignorableWhitespace 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.Locator 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void characters (char ch[], int start, int length) 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws SAXException; 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Receive notification of ignorable whitespace in element content. 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>Validating Parsers must use this method to report each chunk 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * of whitespace in element content (see the W3C XML 1.0 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * recommendation, section 2.10): non-validating parsers may also 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * use this method if they are capable of parsing and using 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * content models.</p> 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>SAX parsers may return all contiguous whitespace in a single 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * chunk, or they may split it into several chunks; however, all of 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the characters in any single event must come from the same 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * external entity, so that the Locator provides useful 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * information.</p> 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>The application must not attempt to read from the array 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * outside of the specified range.</p> 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param ch the characters from the XML document 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param start the start position in the array 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param length the number of characters to read from the array 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws org.xml.sax.SAXException any SAX exception, possibly 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * wrapping another exception 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #characters 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void ignorableWhitespace (char ch[], int start, int length) 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws SAXException; 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Receive notification of a processing instruction. 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>The Parser will invoke this method once for each processing 368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * instruction found: note that processing instructions may occur 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * before or after the main document element.</p> 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>A SAX parser must never report an XML declaration (XML 1.0, 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * section 2.8) or a text declaration (XML 1.0, section 4.3.1) 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * using this method.</p> 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>Like {@link #characters characters()}, processing instruction 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * data may have characters that need more than one <code>char</code> 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * value. </p> 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param target the processing instruction target 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param data the processing instruction data, or null if 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * none was supplied. The data does not include any 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * whitespace separating it from the target 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws org.xml.sax.SAXException any SAX exception, possibly 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * wrapping another exception 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void processingInstruction (String target, String data) 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws SAXException; 388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Receive notification of a skipped entity. 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * This is not called for entity references within markup constructs 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * such as element start tags or markup declarations. (The XML 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * recommendation requires reporting skipped external entities. 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * SAX also reports internal entity expansion/non-expansion, except 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * within markup constructs.) 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>The Parser will invoke this method each time the entity is 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * skipped. Non-validating processors may skip entities if they 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * have not seen the declarations (because, for example, the 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * entity was declared in an external DTD subset). All processors 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * may skip external entities, depending on the values of the 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>http://xml.org/sax/features/external-general-entities</code> 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and the 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>http://xml.org/sax/features/external-parameter-entities</code> 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * properties.</p> 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 408f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @param name the name of the skipped entity. If it is a 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * parameter entity, the name will begin with '%', and if 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * it is the external DTD subset, it will be the string 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * "[dtd]" 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws org.xml.sax.SAXException any SAX exception, possibly 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * wrapping another exception 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void skippedEntity (String name) 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws SAXException; 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// end of ContentHandler.java 420