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>&lt;?xml&nbsp;version='...'&nbsp;...?&gt;</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>&lt;?xml&nbsp;...encoding='...'?&gt;</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