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