1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// XMLReaderAdapter.java - adapt an SAX2 XMLReader to a SAX1 Parser
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: XMLReaderAdapter.java,v 1.9 2004/04/26 17:34:35 dmegginson Exp $
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.xml.sax.helpers;
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException;
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Locale;
117365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport org.xml.sax.AttributeList;
127365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport org.xml.sax.Attributes;
137365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport org.xml.sax.ContentHandler;
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.DTDHandler;
157365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport org.xml.sax.DocumentHandler;
167365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport org.xml.sax.EntityResolver;
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.ErrorHandler;
187365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport org.xml.sax.InputSource;
197365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport org.xml.sax.Locator;
207365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport org.xml.sax.Parser;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXException;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXNotSupportedException;
237365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport org.xml.sax.XMLReader;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Adapt a SAX2 XMLReader as a SAX1 Parser.
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <blockquote>
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <em>This module, both source code and documentation, is in the
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a>
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * for further information.
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * </blockquote>
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>This class wraps a SAX2 {@link org.xml.sax.XMLReader XMLReader}
37f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * and makes it act as a SAX1 {@link org.xml.sax.Parser Parser}.  The XMLReader
38f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * must support a true value for the
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://xml.org/sax/features/namespace-prefixes property or parsing will fail
40f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * with a {@link org.xml.sax.SAXException SAXException}; if the XMLReader
41f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * supports a false value for the http://xml.org/sax/features/namespaces
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * property, that will also be used to improve efficiency.</p>
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @since SAX 2.0
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author David Megginson
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @version 2.0.1 (sax2r2)
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.Parser
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see org.xml.sax.XMLReader
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class XMLReaderAdapter implements Parser, ContentHandler
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project{
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    ////////////////////////////////////////////////////////////////////
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    // Constructor.
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    ////////////////////////////////////////////////////////////////////
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Create a new adapter.
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>Use the "org.xml.sax.driver" property to locate the SAX2
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * driver to embed.</p>
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception org.xml.sax.SAXException If the embedded driver
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            cannot be instantiated or if the
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            org.xml.sax.driver property is not specified.
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public XMLReaderAdapter ()
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project      throws SAXException
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    setup(XMLReaderFactory.createXMLReader());
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Create a new adapter.
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>Create a new adapter, wrapped around a SAX2 XMLReader.
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * The adapter will make the XMLReader act like a SAX1
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Parser.</p>
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param xmlReader The SAX2 XMLReader to wrap.
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception java.lang.NullPointerException If the argument is null.
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public XMLReaderAdapter (XMLReader xmlReader)
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    setup(xmlReader);
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Internal setup.
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param xmlReader The embedded XMLReader.
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private void setup (XMLReader xmlReader)
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if (xmlReader == null) {
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        throw new NullPointerException("XMLReader must not be null");
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    this.xmlReader = xmlReader;
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    qAtts = new AttributesAdapter();
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    ////////////////////////////////////////////////////////////////////
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    // Implementation of org.xml.sax.Parser.
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    ////////////////////////////////////////////////////////////////////
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Set the locale for error reporting.
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>This is not supported in SAX2, and will always throw
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * an exception.</p>
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param locale the locale for error reporting.
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.Parser#setLocale
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception org.xml.sax.SAXException Thrown unless overridden.
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setLocale (Locale locale)
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throws SAXException
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throw new SAXNotSupportedException("setLocale not supported");
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Register the entity resolver.
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param resolver The new resolver.
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.Parser#setEntityResolver
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setEntityResolver (EntityResolver resolver)
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    xmlReader.setEntityResolver(resolver);
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Register the DTD event handler.
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param handler The new DTD event handler.
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.Parser#setDTDHandler
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setDTDHandler (DTDHandler handler)
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    xmlReader.setDTDHandler(handler);
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Register the SAX1 document event handler.
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>Note that the SAX1 document handler has no Namespace
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * support.</p>
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param handler The new SAX1 document event handler.
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.Parser#setDocumentHandler
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setDocumentHandler (DocumentHandler handler)
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    documentHandler = handler;
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Register the error event handler.
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param handler The new error event handler.
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.Parser#setErrorHandler
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setErrorHandler (ErrorHandler handler)
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    xmlReader.setErrorHandler(handler);
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Parse the document.
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>This method will throw an exception if the embedded
186f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     * XMLReader does not support the
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * http://xml.org/sax/features/namespace-prefixes property.</p>
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param systemId The absolute URL of the document.
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception java.io.IOException If there is a problem reading
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the raw content of the document.
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception org.xml.sax.SAXException If there is a problem
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            processing the document.
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see #parse(org.xml.sax.InputSource)
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.Parser#parse(java.lang.String)
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void parse (String systemId)
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throws IOException, SAXException
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    parse(new InputSource(systemId));
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Parse the document.
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * <p>This method will throw an exception if the embedded
208f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     * XMLReader does not support the
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * http://xml.org/sax/features/namespace-prefixes property.</p>
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param input An input source for the document.
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception java.io.IOException If there is a problem reading
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the raw content of the document.
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception org.xml.sax.SAXException If there is a problem
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            processing the document.
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see #parse(java.lang.String)
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource)
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void parse (InputSource input)
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throws IOException, SAXException
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    setupXMLReader();
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    xmlReader.parse(input);
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Set up the XML reader.
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private void setupXMLReader ()
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throws SAXException
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    try {
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        xmlReader.setFeature("http://xml.org/sax/features/namespaces",
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                             false);
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    } catch (SAXException e) {
238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // NO OP: it's just extra information, and we can ignore it
239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    xmlReader.setContentHandler(this);
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    ////////////////////////////////////////////////////////////////////
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    // Implementation of org.xml.sax.ContentHandler.
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    ////////////////////////////////////////////////////////////////////
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Set a document locator.
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param locator The document locator.
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.ContentHandler#setDocumentLocator
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setDocumentLocator (Locator locator)
257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if (documentHandler != null)
259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        documentHandler.setDocumentLocator(locator);
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Start document event.
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception org.xml.sax.SAXException The client may raise a
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            processing exception.
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.ContentHandler#startDocument
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void startDocument ()
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throws SAXException
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if (documentHandler != null)
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        documentHandler.startDocument();
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * End document event.
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception org.xml.sax.SAXException The client may raise a
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            processing exception.
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.ContentHandler#endDocument
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void endDocument ()
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throws SAXException
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if (documentHandler != null)
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        documentHandler.endDocument();
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Adapt a SAX2 start prefix mapping event.
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param prefix The prefix being mapped.
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param uri The Namespace URI being mapped to.
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.ContentHandler#startPrefixMapping
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void startPrefixMapping (String prefix, String uri)
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Adapt a SAX2 end prefix mapping event.
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param prefix The prefix being mapped.
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.ContentHandler#endPrefixMapping
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void endPrefixMapping (String prefix)
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Adapt a SAX2 start element event.
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param uri The Namespace URI.
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param localName The Namespace local name.
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param qName The qualified (prefixed) name.
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param atts The SAX2 attributes.
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception org.xml.sax.SAXException The client may raise a
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            processing exception.
325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.ContentHandler#endDocument
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void startElement (String uri, String localName,
328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                  String qName, Attributes atts)
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throws SAXException
330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if (documentHandler != null) {
332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        qAtts.setAttributes(atts);
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        documentHandler.startElement(qName, qAtts);
334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Adapt a SAX2 end element event.
340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param uri The Namespace URI.
342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param localName The Namespace local name.
343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param qName The qualified (prefixed) name.
344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception org.xml.sax.SAXException The client may raise a
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            processing exception.
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.ContentHandler#endElement
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void endElement (String uri, String localName,
349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                String qName)
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throws SAXException
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if (documentHandler != null)
353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        documentHandler.endElement(qName);
354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Adapt a SAX2 characters event.
359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param ch An array of characters.
361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param start The starting position in the array.
362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param length The number of characters to use.
363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception org.xml.sax.SAXException The client may raise a
364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            processing exception.
365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.ContentHandler#characters
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void characters (char ch[], int start, int length)
368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throws SAXException
369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if (documentHandler != null)
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        documentHandler.characters(ch, start, length);
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Adapt a SAX2 ignorable whitespace event.
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param ch An array of characters.
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param start The starting position in the array.
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param length The number of characters to use.
381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception org.xml.sax.SAXException The client may raise a
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            processing exception.
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.ContentHandler#ignorableWhitespace
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void ignorableWhitespace (char ch[], int start, int length)
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throws SAXException
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if (documentHandler != null)
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        documentHandler.ignorableWhitespace(ch, start, length);
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Adapt a SAX2 processing instruction event.
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param target The processing instruction target.
397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param data The remainder of the processing instruction
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception org.xml.sax.SAXException The client may raise a
399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            processing exception.
400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.ContentHandler#processingInstruction
401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void processingInstruction (String target, String data)
403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throws SAXException
404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    if (documentHandler != null)
406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        documentHandler.processingInstruction(target, data);
407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Adapt a SAX2 skipped entity event.
412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param name The name of the skipped entity.
414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.ContentHandler#skippedEntity
415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @exception org.xml.sax.SAXException Throwable by subclasses.
416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void skippedEntity (String name)
418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    throws SAXException
419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    ////////////////////////////////////////////////////////////////////
425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    // Internal state.
426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    ////////////////////////////////////////////////////////////////////
427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    XMLReader xmlReader;
429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    DocumentHandler documentHandler;
430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    AttributesAdapter qAtts;
431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    ////////////////////////////////////////////////////////////////////
435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    // Internal class.
436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    ////////////////////////////////////////////////////////////////////
437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Internal class to wrap a SAX2 Attributes object for SAX1.
441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
4425e8d3957944a24ac8068e3faf7cfe1dc4f69b962Elliott Hughes    static final class AttributesAdapter implements AttributeList
443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    AttributesAdapter ()
445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Set the embedded Attributes object.
451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param The embedded SAX2 Attributes.
453f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     */
454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    void setAttributes (Attributes attributes)
455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        this.attributes = attributes;
457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Return the number of attributes.
462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return The length of the attribute list.
464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.AttributeList#getLength
465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public int getLength ()
467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return attributes.getLength();
469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Return the qualified (prefixed) name of an attribute by position.
474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return The qualified name.
476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.AttributeList#getName
477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public String getName (int i)
479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return attributes.getQName(i);
481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Return the type of an attribute by position.
486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return The type.
488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.AttributeList#getType(int)
489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public String getType (int i)
491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return attributes.getType(i);
493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Return the value of an attribute by position.
498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return The value.
500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.AttributeList#getValue(int)
501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public String getValue (int i)
503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return attributes.getValue(i);
505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Return the type of an attribute by qualified (prefixed) name.
510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return The type.
512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.AttributeList#getType(java.lang.String)
513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public String getType (String qName)
515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return attributes.getType(qName);
517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Return the value of an attribute by qualified (prefixed) name.
522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *
523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return The value.
524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @see org.xml.sax.AttributeList#getValue(java.lang.String)
525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public String getValue (String qName)
527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    {
528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return attributes.getValue(qName);
529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private Attributes attributes;
532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// end of XMLReaderAdapter.java
537