1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * you may not use this file except in compliance with the License. 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * You may obtain a copy of the License at 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage tests.api.javax.xml.parsers; 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ByteArrayInputStream; 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException; 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.InputStream; 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.HashMap; 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Properties; 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Vector; 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport javax.xml.parsers.FactoryConfigurationError; 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport javax.xml.parsers.ParserConfigurationException; 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport javax.xml.parsers.SAXParser; 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport javax.xml.parsers.SAXParserFactory; 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport junit.framework.TestCase; 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.xml.sax.Attributes; 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.xml.sax.SAXException; 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.xml.sax.SAXNotRecognizedException; 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.xml.sax.SAXNotSupportedException; 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.xml.sax.helpers.DefaultHandler; 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.AndroidOnly; 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.KnownFailure; 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel; 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass; 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew; 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargets; 44dafd6348b2e1b46d10e1dbfa64fd2dd44bcfedf2Jesse Wilsonimport tests.util.TestEnvironment; 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(SAXParserFactory.class) 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class SAXParserFactoryTest extends TestCase { 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SAXParserFactory spf; 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project InputStream is1; 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static HashMap<String, String> ns; 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static Vector<String> el; 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static HashMap<String, String> attr; 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void setUp() throws Exception { 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf = SAXParserFactory.newInstance(); 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is1 = getClass().getResourceAsStream("/simple.xml"); 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ns = new HashMap<String, String>(); 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project attr = new HashMap<String, String>(); 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project el = new Vector<String>(); 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void tearDown() throws Exception { 70dafd6348b2e1b46d10e1dbfa64fd2dd44bcfedf2Jesse Wilson TestEnvironment.reset(); 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is1.close(); 72dafd6348b2e1b46d10e1dbfa64fd2dd44bcfedf2Jesse Wilson super.tearDown(); 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "SAXParserFactory", 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @AndroidOnly("Android SAX implementation is non-validating") 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_Constructor() { 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MySAXParserFactory mpf = new MySAXParserFactory(); 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(mpf instanceof SAXParserFactory); 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(mpf.isValidating()); 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests javax.xml.parsers.SAXParserFactory#getSchema(). 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * TBD getSchema() IS NOT SUPPORTED 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* public void test_getSchema() { 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(spf.getSchema()); 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SchemaFactory sf = 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Schema schema = sf.newSchema(); 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setSchema(schema); 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(spf.getSchema()); 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (SAXException sax) { 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Unexpected exception " + sax.toString()); 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargets({ 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "isNamespaceAware", 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setNamespaceAware", 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {boolean.class} 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }) 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setIsNamespaceAware() { 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setNamespaceAware(true); 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(spf.isNamespaceAware()); 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setNamespaceAware(false); 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(spf.isNamespaceAware()); 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setNamespaceAware(true); 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(spf.isNamespaceAware()); 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargets({ 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "isValidating", 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.SUFFICIENT, 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setValidating", 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {boolean.class} 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }) 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setIsValidating() { 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setValidating(true); 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(spf.isValidating()); 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setValidating(false); 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(spf.isValidating()); 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setValidating(true); 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(spf.isValidating()); 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargets({ 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "isXIncludeAware", 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.SUFFICIENT, 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setXIncludeAware", 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {boolean.class} 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }) 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @KnownFailure("Should handle XIncludeAware flag more gracefully") 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setIsXIncludeAware() { 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setXIncludeAware(true); 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(spf.isXIncludeAware()); 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setXIncludeAware(false); 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(spf.isXIncludeAware()); 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "newInstance", 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 18094640f175b2fcda6a4fd890c6686240f76d01f55Jesse Wilson @KnownFailure("Dalvik doesn't honor system properties when choosing a SAX implementation") 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_newInstance() { 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SAXParserFactory dtf = SAXParserFactory.newInstance(); 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull("New Instance of DatatypeFactory is null", dtf); 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.setProperty("javax.xml.parsers.SAXParserFactory", 187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "org.apache.harmony.xml.parsers.SAXParserFactoryImpl"); 188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SAXParserFactory spf1 = SAXParserFactory.newInstance(); 190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(spf1 instanceof org.apache.harmony.xml.parsers.SAXParserFactoryImpl); 191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String key = "javax.xml.parsers.SAXParserFactory = org.apache.harmony.xml.parsers.SAXParserFactoryImpl"; 193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayInputStream bis = new ByteArrayInputStream(key.getBytes()); 195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties prop = System.getProperties(); 196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.load(bis); 197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SAXParserFactory spf2 = SAXParserFactory.newInstance(); 198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(spf2 instanceof org.apache.harmony.xml.parsers.SAXParserFactoryImpl); 199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.setProperty("javax.xml.parsers.SAXParserFactory", ""); 201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SAXParserFactory.newInstance(); 203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Expected FactoryConfigurationError was not thrown"); 204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (FactoryConfigurationError e) { 205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException ioe) { 208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Unexpected exception " + ioe.toString()); 209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.SUFFICIENT, 214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "SAXException untested; unused on Android", 215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "newSAXParser", 216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_newSAXParser() { 219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Ordinary case 220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SAXParser sp = spf.newSAXParser(); 222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(sp instanceof SAXParser); 223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project sp.parse(is1, new MyHandler()); 224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch(Exception e) { 225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new RuntimeException("Unexpected exception", e); 226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Exception case 229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setValidating(true); 230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SAXParser sp = spf.newSAXParser(); 232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch(ParserConfigurationException e) { 233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected, since Android doesn't have a validating parser. 234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (SAXException e) { 235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throw new RuntimeException("Unexpected exception", e); 236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargets({ 240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.SUFFICIENT, 242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setFeature", 243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "ParserConfigurationException untested; unused on Android", 244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class, boolean.class} 245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.SUFFICIENT, 248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getFeature", 249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "ParserConfigurationException untested; unused on Android", 250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class} 251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }) 253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setFeatureLjava_lang_StringZ() { 254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // We can't verify ParserConfigurationException and 255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // SAXNotSupportedException since these are never 256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // thrown by Android. 257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String[] features = { 259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "http://xml.org/sax/features/namespaces", 260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "http://xml.org/sax/features/validation" }; 261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < features.length; i++) { 262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setFeature(features[i], true); 264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(spf.getFeature(features[i])); 265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setFeature(features[i], false); 266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(spf.getFeature(features[i])); 267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ParserConfigurationException pce) { 268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("ParserConfigurationException is thrown"); 269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (SAXNotRecognizedException snre) { 270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("SAXNotRecognizedException is thrown"); 271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (SAXNotSupportedException snse) { 272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("SAXNotSupportedException is thrown"); 273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setFeature("", true); 278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("SAXNotRecognizedException is not thrown"); 279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ParserConfigurationException pce) { 280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("ParserConfigurationException is thrown"); 281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (SAXNotRecognizedException snre) { 282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (SAXNotSupportedException snse) { 284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("SAXNotSupportedException is thrown"); 285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException npe) { 286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException is thrown"); 287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setFeature("http://xml.org/sax/features/unknown-feature", true); 291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ParserConfigurationException pce) { 292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("ParserConfigurationException is thrown"); 293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (SAXNotRecognizedException snre) { 294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("SAXNotRecognizedException is thrown"); 295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (SAXNotSupportedException snse) { 296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Acceptable, although this doesn't happen an Android. 297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException npe) { 298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException is thrown"); 299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setFeature(null, true); 303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException is not thrown"); 304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ParserConfigurationException pce) { 305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("ParserConfigurationException is thrown"); 306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (SAXNotRecognizedException snre) { 307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("SAXNotRecognizedException is thrown"); 308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (SAXNotSupportedException snse) { 309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("SAXNotSupportedException is thrown"); 310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException npe) { 311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setNamespaceAware", 318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {boolean.class} 319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 32094640f175b2fcda6a4fd890c6686240f76d01f55Jesse Wilson public void test_setNamespaceAwareZ() throws Exception { 32194640f175b2fcda6a4fd890c6686240f76d01f55Jesse Wilson MyHandler mh = new MyHandler(); 322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setNamespaceAware(true); 324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project InputStream is = getClass().getResourceAsStream("/simple_ns.xml"); 32594640f175b2fcda6a4fd890c6686240f76d01f55Jesse Wilson spf.newSAXParser().parse(is, mh); 32694640f175b2fcda6a4fd890c6686240f76d01f55Jesse Wilson is.close(); 32794640f175b2fcda6a4fd890c6686240f76d01f55Jesse Wilson 328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setNamespaceAware(false); 329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is = getClass().getResourceAsStream("/simple_ns.xml"); 33094640f175b2fcda6a4fd890c6686240f76d01f55Jesse Wilson spf.newSAXParser().parse(is, mh); 33194640f175b2fcda6a4fd890c6686240f76d01f55Jesse Wilson is.close(); 332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* public void test_setSchemaLjavax_xml_validation_Schema() { 335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SchemaFactory sf = 336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Schema schema = sf.newSchema(); 339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project spf.setSchema(schema); 340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull(spf.getSchema()); 341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (SAXException sax) { 342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Unexpected exception " + sax.toString()); 343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// public void test_setValidatingZ() { 348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// MyHandler mh = new MyHandler(); 349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// InputStream is2 = getClass().getResourceAsStream("/recipe.xml"); 350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// spf.setValidating(true); 352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// assertTrue(spf.isValidating()); 353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// spf.newSAXParser().parse(is2, mh); 354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch (org.xml.sax.SAXException se) { 355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("SAXException was thrown during parsing"); 356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch (javax.xml.parsers.ParserConfigurationException pce) { 357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch (IOException ioe) { 359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("IOException was thrown during parsing"); 360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } finally { 361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// is2.close(); 363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(Exception ioee) {} 364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } 365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// InputStream is3 = getClass().getResourceAsStream("/recipe1.xml"); 366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// assertTrue(spf.isValidating()); 368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// spf.newSAXParser().parse(is3, mh); 369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch (org.xml.sax.SAXException se) { 370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("SAXException was thrown during parsing"); 371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch (javax.xml.parsers.ParserConfigurationException pce) { 372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch (IOException ioe) { 374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("IOEXception was thrown during parsing: " + ioe.getMessage()); 375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } finally { 376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// is3.close(); 378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(Exception ioee) {} 379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } 380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// is2 = getClass().getResourceAsStream("/recipe.xml"); 381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// spf.setValidating(false); 383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// assertFalse(spf.isValidating()); 384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// spf.newSAXParser().parse(is2, mh); 385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch (org.xml.sax.SAXException se) { 386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("SAXException was thrown during parsing"); 387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch (javax.xml.parsers.ParserConfigurationException pce) { 388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch (IOException ioe) { 390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("IOException was thrown during parsing"); 391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } finally { 392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// is2.close(); 394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(Exception ioee) {} 395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } 396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// is3 = getClass().getResourceAsStream("/recipe1.xml"); 397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// assertFalse(spf.isValidating()); 399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// spf.newSAXParser().parse(is3, mh); 400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch (org.xml.sax.SAXException se) { 401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("SAXException was thrown during parsing"); 402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch (javax.xml.parsers.ParserConfigurationException pce) { 403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch (IOException ioe) { 405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("IOEXception was thrown during parsing: " + ioe.getMessage()); 406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } finally { 407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// is3.close(); 409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(Exception ioee) {} 410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } 411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } 412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// public void test_setXIncludeAwareZ() { 414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// spf.setXIncludeAware(true); 415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// MyHandler mh = new MyHandler(); 416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// InputStream is = getClass().getResourceAsStream("/simple_ns.xml"); 417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// spf.newSAXParser().parse(is, mh); 419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(javax.xml.parsers.ParserConfigurationException pce) { 420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(org.xml.sax.SAXException se) { 422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("SAXException was thrown during parsing"); 423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(IOException ioe) { 424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("IOException was thrown during parsing"); 425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } finally { 426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// is.close(); 428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(Exception ioee) {} 429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } 430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// spf.setXIncludeAware(false); 431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// is = getClass().getResourceAsStream("/simple_ns.xml"); 432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// is = getClass().getResourceAsStream("/simple_ns.xml"); 434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// spf.newSAXParser().parse(is, mh); 435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(javax.xml.parsers.ParserConfigurationException pce) { 436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(org.xml.sax.SAXException se) { 438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("SAXException was thrown during parsing"); 439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(IOException ioe) { 440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("IOException was thrown during parsing"); 441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } finally { 442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// is.close(); 444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(Exception ioee) {} 445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } 446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// is = getClass().getResourceAsStream("/simple_ns.xml"); 447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// spf.setXIncludeAware(true); 449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// spf.newSAXParser().parse(is, mh); 450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(javax.xml.parsers.ParserConfigurationException pce) { 451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("ParserConfigurationException was thrown during parsing"); 452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(org.xml.sax.SAXException se) { 453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("SAXException was thrown during parsing"); 454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(IOException ioe) { 455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// fail("IOException was thrown during parsing"); 456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } finally { 457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// try { 458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// is.close(); 459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } catch(Exception ioee) {} 460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } 461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// } 462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static class MyHandler extends DefaultHandler { 464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void startElement(String uri, String localName, String qName, 466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Attributes atts) { 467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project el.add(qName); 469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (!uri.equals("")) 470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ns.put(qName, uri); 471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < atts.getLength(); i++) { 472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project attr.put(atts.getQName(i), atts.getValue(i)); 473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project class MySAXParserFactory extends SAXParserFactory { 479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public MySAXParserFactory() { 481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(); 482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public SAXParser newSAXParser() { 485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return null; 486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void setFeature(String name, boolean value) throws 489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ParserConfigurationException, SAXNotRecognizedException, 490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SAXNotSupportedException { 491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public boolean getFeature(String name) throws 495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ParserConfigurationException, SAXNotRecognizedException, 496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project SAXNotSupportedException { 497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return true; 498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 503