1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * you may not use this file except in compliance with the License. 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * You may obtain a copy of the License at 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 17c46a2ea848e7a62cd5ee24216e446ad7b9ba7629Piotr Jastrzebskipackage org.apache.harmony.tests.javax.xml.parsers; 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.File; 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.FileInputStream; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.InputStream; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashMap; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.Attributes; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.HandlerBase; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.InputSource; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.Locator; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXParseException; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.helpers.DefaultHandler; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 33f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * Support for SAXParserTest. Shares the element keys used in the golden files. 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Compares the result of the parser with golden data. 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Contains the handler classes used to track the output of the parser. 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectclass SAXParserTestSupport { 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final char SEPARATOR_ELEMENT = '^'; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final char SEPARATOR_STRING = '$'; 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final char SEPARATOR_DATA = '#'; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String XML_WF = "/wf/"; 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String XML_NWF = "/nwf/"; 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String XML_WF_OUT_DH = "/out_dh/"; 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String XML_WF_OUT_HB = "/out_hb/"; 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String XML_SYSTEM_ID = "." + "/systemid/"; 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_IS_START_DOC = "isEndDocument"; 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_IS_END_DOC = "isStartDocument"; 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_TEXT = "text"; 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_ERROR = "error"; 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_FATAL_ERROR = "fatalError"; 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_WARNING = "warning"; 57ab3721103266c7c9f58d5a9d32521a00a2c478d7Elliott Hughes public static final String KEY_END_ELEMENT = "endElement"; 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_END_PREFIX_MAPPING = "endPrefixMapping"; 59f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes public static final String KEY_IGNORABLE_WHITE_SPACE = 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "ignorableWhitespace"; 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_NOTATION_DECL = "notationDecl"; 62f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes public static final String KEY_PROCESSING_INSTRUCTION = 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "processingInstruction"; 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_RESOLVE_ENTITY = "resolveEntity"; 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_DOCUMENT_LOCATORS = "documentLocators"; 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_SKIPPED_ENTITY = "skippedEntity"; 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_START_ELEMENT = "startElement"; 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_START_PREFIX_MAPPING = "startPrefixMapping"; 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final String KEY_UNPARSED_ENTITY_DECL = "unparsedEntityDecl"; 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 71f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes static String [] KEYS = {KEY_IS_START_DOC, KEY_IS_END_DOC, KEY_TEXT, 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KEY_ERROR, KEY_FATAL_ERROR, KEY_WARNING, KEY_END_ELEMENT, 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KEY_END_PREFIX_MAPPING, KEY_PROCESSING_INSTRUCTION, 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KEY_SKIPPED_ENTITY, KEY_START_ELEMENT, 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project KEY_START_PREFIX_MAPPING}; 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static { 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String tmp = System.getProperty("java.io.tmpdir", "."); 79f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new File(tmp).mkdirs(); 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new File(tmp, XML_WF).mkdirs(); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new File(tmp, XML_NWF).mkdirs(); 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new File(tmp, XML_WF_OUT_DH).mkdirs(); 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new File(tmp, XML_WF_OUT_HB).mkdirs(); 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 86f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Initialize the SAXParserTest reference by filling in the data from the 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * file passed to the method. This will be the reference to compare 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * against with the output of the parser. 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public HashMap<String, String> readFile(String fileName) { 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project HashMap<String, String> storage = new HashMap<String, String>(); 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InputStream is = new FileInputStream(fileName); 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int c = is.read(); 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer str = new StringBuffer(); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i = 0; 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while(c != -1) { 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if((char)c == SEPARATOR_DATA) { 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // if(str.length() > 0) { 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if(i < KEYS.length) { 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project storage.put(KEYS[i], str.toString()); 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // System.out.println(str.toString()); 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project str.setLength(0); 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project i++; 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // } 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } else { 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project str.append((char)c); 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c = is.read(); 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project c = -1; 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project is.close(); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(IOException ioe) { 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.out.println("IOException during processing the file: " 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + fileName); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return storage; 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Compares the content of two HashMaps. One map should be the reference 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * containing the correct string for each xml document element and the other 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * should contain the elements filled with output from the parser. 137f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param original the reference 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param result the result of the parser 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return true if they're equal. 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 142f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes public static boolean equalsMaps(HashMap<String, String> original, 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project HashMap<String, String> result) { 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if(original == null && result == null) { 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return true; 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } else { 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if(original.size() != result.size()) return false; 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(int i = 0; i < KEYS.length; i++) { 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if(!original.get(KEYS[i]).equals(result.get(KEYS[i]))) { 152f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes System.out.println("for "+KEYS[i]+": original:" + 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project original.get(KEYS[i])); 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.out.println(); 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.out.println(" result:" + result.get(KEYS[i])); 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.out.println(); 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return false; 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return true; 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static class MyDefaultHandler extends DefaultHandler { 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_isEndDocument = new StringBuffer(); 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_isStartDocument = new StringBuffer(); 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_text = new StringBuffer(); 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_error = new StringBuffer(); 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_fatalError = new StringBuffer(); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_warning = new StringBuffer(); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_endElement = new StringBuffer(); 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_endPrefixMapping = new StringBuffer(); 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_processingInstruction = new StringBuffer(); 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_skippedEntity = new StringBuffer(); 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_startElement = new StringBuffer(); 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_startPrefixMapping = new StringBuffer(); 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public HashMap<String, String> createData() { 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project HashMap<String, String> hm = new HashMap<String, String>(); 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_IS_END_DOC, data_isEndDocument.toString()); 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_IS_START_DOC, data_isStartDocument.toString()); 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_TEXT, data_text.toString()); 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_ERROR, data_error.toString()); 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_FATAL_ERROR, data_fatalError.toString()); 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_WARNING, data_warning.toString()); 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_END_ELEMENT, data_endElement.toString()); 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_END_PREFIX_MAPPING, data_endPrefixMapping.toString()); 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_PROCESSING_INSTRUCTION, 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_processingInstruction.toString()); 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_SKIPPED_ENTITY, data_skippedEntity.toString()); 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_START_ELEMENT, data_startElement.toString()); 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_START_PREFIX_MAPPING, 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startPrefixMapping.toString()); 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return hm; 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void printMap() { 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.out.print(data_isStartDocument.toString() + SEPARATOR_DATA + 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_isEndDocument.toString() + SEPARATOR_DATA + 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_text.toString() + SEPARATOR_DATA + 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_error.toString()+ SEPARATOR_DATA + 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_fatalError.toString()+ SEPARATOR_DATA + 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_warning.toString()+ SEPARATOR_DATA + 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_endElement.toString() + SEPARATOR_DATA+ 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_endPrefixMapping.toString()+ SEPARATOR_DATA + 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_processingInstruction.toString() + SEPARATOR_DATA + 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_skippedEntity.toString() + SEPARATOR_DATA + 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.toString() + SEPARATOR_DATA + 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startPrefixMapping.toString()+ SEPARATOR_DATA); 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void characters(char[] ch, int start, int length) { 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String str = new String(ch, start, length); 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_text.append(str); 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // different sax parsers are allowed to handle chunking differently, 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // therefore we cannot rely on identical chunks being delivered. 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //data_text.append(ParsingSupport.SEPARATOR_ELEMENT); 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void endDocument() { 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_isEndDocument.append(true); 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_isEndDocument.append(SEPARATOR_ELEMENT); 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void endElement(String uri, String localName, String qName) { 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer sb = new StringBuffer(); 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append(uri); 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append(SEPARATOR_STRING); 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append(localName); 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append(SEPARATOR_STRING); 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append(qName); 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_endElement.append(sb); 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_endElement.append(SEPARATOR_ELEMENT); 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void endPrefixMapping(String prefix) { 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_endPrefixMapping.append(prefix); 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_endPrefixMapping.append(SEPARATOR_ELEMENT); 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void error(SAXParseException e) { 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_error.append(e); 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_error.append(SEPARATOR_ELEMENT); 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void fatalError(SAXParseException e) { 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_fatalError.append(e); 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_fatalError.append(SEPARATOR_ELEMENT); 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void ignorableWhitespace(char[] ch, int start, int length) { 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* String s = new String(ch, start, length); 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ignorableWhitespace.append(s); 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ignorableWhitespace.append(ParsingSupport.SEPARATOR_ELEMENT);*/ 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void notationDecl(String name, String publicId, 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String systemId) { 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /* data_notationDecl.append(name + ParsingSupport.SEPARATOR_STRING + 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project publicId + ParsingSupport.SEPARATOR_STRING + 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project systemId + ParsingSupport.SEPARATOR_STRING); 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_notationDecl.append(ParsingSupport.SEPARATOR_ELEMENT);*/ 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void processingInstruction(String target, String data) { 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_processingInstruction.append(target + SEPARATOR_STRING + data); 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_processingInstruction.append(SEPARATOR_ELEMENT); 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public InputSource resolveEntity(String publicId, String systemId) { 283f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes // data_resolveEntity.append(publicId + 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // ParsingSupport.SEPARATOR_STRING + systemId); 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // data_resolveEntity.append(ParsingSupport.SEPARATOR_ELEMENT); 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setDocumentLocator(Locator locator) { 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // data_documentLocators.append(locator); 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // data_documentLocators.append(ParsingSupport.SEPARATOR_ELEMENT); 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void skippedEntity(String name) { 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_skippedEntity.append(name); 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_skippedEntity.append(SEPARATOR_ELEMENT); 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void startDocument() { 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_isStartDocument.append(true); 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_isStartDocument.append(SEPARATOR_ELEMENT); 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void startElement(String uri, String localName, String qName, 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Attributes attributes) { 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.append(uri); 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.append(SEPARATOR_STRING); 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.append(localName); 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.append(SEPARATOR_STRING); 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.append(qName); 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(int i = 0; i < attributes.getLength(); i ++) 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.append( 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SEPARATOR_STRING +attributes.getQName(i) + 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SEPARATOR_STRING + attributes.getValue(i)); 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_isStartDocument.append(SEPARATOR_ELEMENT); 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void startPrefixMapping(String prefix, String uri) { 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startPrefixMapping.append(prefix + SEPARATOR_STRING + uri); 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void unparsedEntityDecl(String name, String publicId, 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String systemId, String notationName) { 332f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes // data_unparsedEntityDecl.append(name 333f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes // + ParsingSupport.SEPARATOR_STRING + publicId 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // + ParsingSupport.SEPARATOR_STRING 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // + systemId + ParsingSupport.SEPARATOR_STRING + notationName); 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void warning(SAXParseException e) { 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_warning.append(e); 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @SuppressWarnings("deprecation") 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static class MyHandler extends HandlerBase { 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_isEndDocument = new StringBuffer(); 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_isStartDocument = new StringBuffer(); 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_text = new StringBuffer(); 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_error = new StringBuffer(); 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_fatalError = new StringBuffer(); 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_warning = new StringBuffer(); 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_endElement = new StringBuffer(); 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_endPrefixMapping = new StringBuffer(); 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_processingInstruction = new StringBuffer(); 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_skippedEntity = new StringBuffer(); 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_startElement = new StringBuffer(); 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public StringBuffer data_startPrefixMapping = new StringBuffer(); 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void printMap() { 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.out.print(data_isStartDocument.toString() + SEPARATOR_DATA + 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_isEndDocument.toString() + SEPARATOR_DATA + 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_text.toString() + SEPARATOR_DATA + 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_error.toString()+ SEPARATOR_DATA + 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_fatalError.toString()+ SEPARATOR_DATA + 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_warning.toString()+ SEPARATOR_DATA + 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_endElement.toString() + SEPARATOR_DATA+ 368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_endPrefixMapping.toString()+ SEPARATOR_DATA + 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_processingInstruction.toString() + SEPARATOR_DATA + 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_skippedEntity.toString() + SEPARATOR_DATA + 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.toString() + SEPARATOR_DATA + 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startPrefixMapping.toString()+ SEPARATOR_DATA); 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public HashMap<String, String> createData() { 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project HashMap<String, String> hm = new HashMap<String, String>(); 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_IS_END_DOC, data_isEndDocument.toString()); 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_IS_START_DOC, data_isStartDocument.toString()); 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_TEXT, data_text.toString()); 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_ERROR, data_error.toString()); 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_FATAL_ERROR, data_fatalError.toString()); 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_WARNING, data_warning.toString()); 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_END_ELEMENT, data_endElement.toString()); 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_END_PREFIX_MAPPING, data_endPrefixMapping.toString()); 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_PROCESSING_INSTRUCTION, 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_processingInstruction.toString()); 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_SKIPPED_ENTITY, data_skippedEntity.toString()); 388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_START_ELEMENT, data_startElement.toString()); 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hm.put(KEY_START_PREFIX_MAPPING, 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startPrefixMapping.toString()); 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return hm; 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void characters(char[] ch, int start, int length) { 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String str = new String(ch, start, length); 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_text.append(str); 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // different sax parsers are allowed to handle chunking differently, 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // therefore we cannot rely on identical chunks being delivered. 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //data_text.append(ParsingSupport.SEPARATOR_ELEMENT); 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void endDocument() { 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_isEndDocument.append(true); 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_isEndDocument.append(SEPARATOR_ELEMENT); 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void endElement(String uri, String localName, String qName) { 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer sb = new StringBuffer(); 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append(uri); 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append(SEPARATOR_STRING); 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append(localName); 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append(SEPARATOR_STRING); 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append(qName); 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_endElement.append(sb); 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_endElement.append(SEPARATOR_ELEMENT); 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void error(SAXParseException e) { 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_error.append(e); 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_error.append(SEPARATOR_ELEMENT); 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void fatalError(SAXParseException e) { 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_fatalError.append(e); 429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_fatalError.append(SEPARATOR_ELEMENT); 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void ignorableWhitespace(char[] ch, int start, int length) { 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 438f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes public void notationDecl(String name, String publicId, 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String systemId) { 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void processingInstruction(String target, String data) { 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_processingInstruction.append(target + SEPARATOR_STRING + data); 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_processingInstruction.append(SEPARATOR_ELEMENT); 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public InputSource resolveEntity(String publicId, String systemId) { 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void setDocumentLocator(Locator locator) { 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void startDocument() { 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_isStartDocument.append(true); 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_isStartDocument.append(SEPARATOR_ELEMENT); 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void startElement(String uri, String localName, String qName, 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Attributes attributes) { 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.append(uri); 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.append(SEPARATOR_STRING); 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.append(localName); 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.append(SEPARATOR_STRING); 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.append(qName); 472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(int i = 0; i < attributes.getLength(); i ++) 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_startElement.append(SEPARATOR_STRING 475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + attributes.getQName(i) + 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SEPARATOR_STRING + attributes.getValue(i)); 477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_isStartDocument.append(SEPARATOR_ELEMENT); 479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void unparsedEntityDecl(String name, String publicId, 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String systemId, String notationName) { 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void warning(SAXParseException e) { 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project data_warning.append(e); 490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 493