1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Locator2.java - extended Locator 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// http://www.saxproject.org 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Public Domain: no warranty. 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// $Id: Locator2.java,v 1.5 2004/03/17 14:30:10 dmegginson Exp $ 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.xml.sax.ext; 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.Locator; 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 12f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * SAX2 extension to augment the entity information provided 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * though a {@link Locator}. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * If an implementation supports this extension, the Locator 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * provided in {@link org.xml.sax.ContentHandler#setDocumentLocator 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * ContentHandler.setDocumentLocator() } will implement this 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * interface, and the 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <em>http://xml.org/sax/features/use-locator2</em> feature 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * flag will have the value <em>true</em>. 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <blockquote> 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <em>This module, both source code and documentation, is in the 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </blockquote> 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p> XMLReader implementations are not required to support this 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * information, and it is not part of core-only SAX2 distributions.</p> 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @since SAX 2.0 (extensions 1.1 alpha) 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author David Brownell 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @version TBS 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic interface Locator2 extends Locator 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project{ 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the version of XML used for the entity. This will 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * normally be the identifier from the current entity's 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <em><?xml version='...' ...?></em> declaration, 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * or be defaulted by the parser. 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return Identifier for the XML version being used to interpret 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the entity's text, or null if that information is not yet 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * available in the current parsing state. 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String getXMLVersion (); 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns the name of the character encoding for the entity. 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * If the encoding was declared externally (for example, in a MIME 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Content-Type header), that will be the name returned. Else if there 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * was an <em><?xml ...encoding='...'?></em> declaration at 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the start of the document, that encoding name will be returned. 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Otherwise the encoding will been inferred (normally to be UTF-8, or 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * some UTF-16 variant), and that inferred name will be returned. 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>When an {@link org.xml.sax.InputSource InputSource} is used 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * to provide an entity's character stream, this method returns the 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * encoding provided in that input stream. 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p> Note that some recent W3C specifications require that text 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * in some encodings be normalized, using Unicode Normalization 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Form C, before processing. Such normalization must be performed 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * by applications, and would normally be triggered based on the 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * value returned by this method. 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p> Encoding names may be those used by the underlying JVM, 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and comparisons should be case-insensitive. 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return Name of the character encoding being used to interpret 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * * the entity's text, or null if this was not provided for a * 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * character stream passed through an InputSource or is otherwise 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * not yet available in the current parsing state. 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String getEncoding (); 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 76