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 Projectpackage tests.api.javax.xml.parsers;
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayInputStream;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException;
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.InputStream;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.HashMap;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Properties;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Vector;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.FactoryConfigurationError;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.ParserConfigurationException;
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.SAXParser;
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.SAXParserFactory;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.Attributes;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXException;
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXNotRecognizedException;
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.SAXNotSupportedException;
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.xml.sax.helpers.DefaultHandler;
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.AndroidOnly;
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.KnownFailure;
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class SAXParserFactoryTest extends TestCase {
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    SAXParserFactory spf;
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    InputStream is1;
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    static HashMap<String, String> ns;
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    static Vector<String> el;
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    static HashMap<String, String> attr;
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void setUp() throws Exception {
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        spf = SAXParserFactory.newInstance();
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        is1 = getClass().getResourceAsStream("/simple.xml");
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ns = new HashMap<String, String>();
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attr = new HashMap<String, String>();
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        el = new Vector<String>();
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void tearDown() throws Exception {
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        is1.close();
65d37c804ccd11e38ee9221194866a152a4de6c8e9Jesse Wilson        super.tearDown();
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @AndroidOnly("Android SAX implementation is non-validating")
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_Constructor() {
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        MySAXParserFactory mpf = new MySAXParserFactory();
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(mpf instanceof SAXParserFactory);
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mpf.isValidating());
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
76229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom     * javax.xml.parsers.SAXParserFactory#getSchema().
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * TBD getSchema() IS NOT SUPPORTED
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /*   public void test_getSchema() {
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNull(spf.getSchema());
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SchemaFactory sf =
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Schema schema = sf.newSchema();
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            spf.setSchema(schema);
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertNotNull(spf.getSchema());
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (SAXException sax) {
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected exception " + sax.toString());
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setIsNamespaceAware() {
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        spf.setNamespaceAware(true);
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(spf.isNamespaceAware());
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        spf.setNamespaceAware(false);
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(spf.isNamespaceAware());
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        spf.setNamespaceAware(true);
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(spf.isNamespaceAware());
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setIsValidating() {
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        spf.setValidating(true);
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(spf.isValidating());
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        spf.setValidating(false);
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(spf.isValidating());
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        spf.setValidating(true);
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(spf.isValidating());
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setIsXIncludeAware() {
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        spf.setXIncludeAware(true);
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(spf.isXIncludeAware());
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        spf.setXIncludeAware(false);
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(spf.isXIncludeAware());
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1185ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson    @KnownFailure("Dalvik doesn't honor system properties when choosing a SAX implementation")
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_newInstance() {
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            SAXParserFactory dtf = SAXParserFactory.newInstance();
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertNotNull("New Instance of DatatypeFactory is null", dtf);
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            System.setProperty("javax.xml.parsers.SAXParserFactory",
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            "org.apache.harmony.xml.parsers.SAXParserFactoryImpl");
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            SAXParserFactory spf1 = SAXParserFactory.newInstance();
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue(spf1 instanceof org.apache.harmony.xml.parsers.SAXParserFactoryImpl);
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            String key = "javax.xml.parsers.SAXParserFactory = org.apache.harmony.xml.parsers.SAXParserFactoryImpl";
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ByteArrayInputStream bis = new ByteArrayInputStream(key.getBytes());
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Properties prop = System.getProperties();
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            prop.load(bis);
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            SAXParserFactory spf2 = SAXParserFactory.newInstance();
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue(spf2 instanceof org.apache.harmony.xml.parsers.SAXParserFactoryImpl);
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            System.setProperty("javax.xml.parsers.SAXParserFactory", "");
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            try {
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SAXParserFactory.newInstance();
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                fail("Expected FactoryConfigurationError was not thrown");
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (FactoryConfigurationError e) {
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                // expected
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException ioe) {
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected exception " + ioe.toString());
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_newSAXParser() {
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Ordinary case
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            SAXParser sp = spf.newSAXParser();
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue(sp instanceof SAXParser);
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            sp.parse(is1, new MyHandler());
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(Exception e) {
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            throw new RuntimeException("Unexpected exception", e);
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
159f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Exception case
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        spf.setValidating(true);
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            SAXParser sp = spf.newSAXParser();
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(ParserConfigurationException e) {
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected, since Android doesn't have a validating parser.
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (SAXException e) {
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            throw new RuntimeException("Unexpected exception", e);
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_setFeatureLjava_lang_StringZ() {
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // We can't verify ParserConfigurationException and
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // SAXNotSupportedException since these are never
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // thrown by Android.
175f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String[] features = {
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "http://xml.org/sax/features/namespaces",
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "http://xml.org/sax/features/validation" };
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < features.length; i++) {
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            try {
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                spf.setFeature(features[i], true);
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertTrue(spf.getFeature(features[i]));
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                spf.setFeature(features[i], false);
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                assertFalse(spf.getFeature(features[i]));
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (ParserConfigurationException pce) {
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                fail("ParserConfigurationException is thrown");
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (SAXNotRecognizedException snre) {
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                fail("SAXNotRecognizedException is thrown");
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (SAXNotSupportedException snse) {
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                fail("SAXNotSupportedException is thrown");
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            spf.setFeature("", true);
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("SAXNotRecognizedException is not thrown");
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ParserConfigurationException pce) {
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("ParserConfigurationException is thrown");
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (SAXNotRecognizedException snre) {
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (SAXNotSupportedException snse) {
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("SAXNotSupportedException is thrown");
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException npe) {
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException is thrown");
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            spf.setFeature("http://xml.org/sax/features/unknown-feature", true);
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ParserConfigurationException pce) {
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("ParserConfigurationException is thrown");
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (SAXNotRecognizedException snre) {
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("SAXNotRecognizedException is thrown");
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (SAXNotSupportedException snse) {
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Acceptable, although this doesn't happen an Android.
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException npe) {
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException is thrown");
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            spf.setFeature(null, true);
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException is not thrown");
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (ParserConfigurationException pce) {
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("ParserConfigurationException is thrown");
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (SAXNotRecognizedException snre) {
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("SAXNotRecognizedException is thrown");
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (SAXNotSupportedException snse) {
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("SAXNotSupportedException is thrown");
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException npe) {
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // expected
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
2335ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson    public void test_setNamespaceAwareZ() throws Exception {
2345ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson        MyHandler mh = new MyHandler();
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        spf.setNamespaceAware(true);
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        InputStream is = getClass().getResourceAsStream("/simple_ns.xml");
2385ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson        spf.newSAXParser().parse(is, mh);
2395ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson        is.close();
2405ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        spf.setNamespaceAware(false);
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        is = getClass().getResourceAsStream("/simple_ns.xml");
2435ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson        spf.newSAXParser().parse(is, mh);
2445ab82b77afbc8af3b91e90ab46b0a7cc0a090f04Jesse Wilson        is.close();
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /*   public void test_setSchemaLjavax_xml_validation_Schema() {
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        SchemaFactory sf =
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            Schema schema = sf.newSchema();
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            spf.setSchema(schema);
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertNotNull(spf.getSchema());
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (SAXException sax) {
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected exception " + sax.toString());
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//    public void test_setValidatingZ() {
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        MyHandler mh = new MyHandler();
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        InputStream is2 = getClass().getResourceAsStream("/recipe.xml");
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        try {
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            spf.setValidating(true);
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            assertTrue(spf.isValidating());
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            spf.newSAXParser().parse(is2, mh);
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch (org.xml.sax.SAXException se) {
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("SAXException was thrown during parsing");
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch (javax.xml.parsers.ParserConfigurationException pce) {
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("ParserConfigurationException was thrown during parsing");
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch (IOException ioe) {
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("IOException was thrown during parsing");
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } finally {
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            try {
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//                is2.close();
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            } catch(Exception ioee) {}
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        }
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        InputStream is3 = getClass().getResourceAsStream("/recipe1.xml");
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        try {
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            assertTrue(spf.isValidating());
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            spf.newSAXParser().parse(is3, mh);
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch (org.xml.sax.SAXException se) {
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("SAXException was thrown during parsing");
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch (javax.xml.parsers.ParserConfigurationException pce) {
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("ParserConfigurationException was thrown during parsing");
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch (IOException ioe) {
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("IOEXception was thrown during parsing: " + ioe.getMessage());
288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } finally {
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            try {
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//                is3.close();
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            } catch(Exception ioee) {}
292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        }
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        is2 = getClass().getResourceAsStream("/recipe.xml");
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        try {
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            spf.setValidating(false);
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            assertFalse(spf.isValidating());
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            spf.newSAXParser().parse(is2, mh);
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch (org.xml.sax.SAXException se) {
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("SAXException was thrown during parsing");
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch (javax.xml.parsers.ParserConfigurationException pce) {
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("ParserConfigurationException was thrown during parsing");
302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch (IOException ioe) {
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("IOException was thrown during parsing");
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } finally {
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            try {
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//                is2.close();
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            } catch(Exception ioee) {}
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        }
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        is3 = getClass().getResourceAsStream("/recipe1.xml");
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        try {
311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            assertFalse(spf.isValidating());
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            spf.newSAXParser().parse(is3, mh);
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch (org.xml.sax.SAXException se) {
314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("SAXException was thrown during parsing");
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch (javax.xml.parsers.ParserConfigurationException pce) {
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("ParserConfigurationException was thrown during parsing");
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch (IOException ioe) {
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("IOEXception was thrown during parsing: " + ioe.getMessage());
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } finally {
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            try {
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//                is3.close();
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            } catch(Exception ioee) {}
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        }
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//    }
325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//    public void test_setXIncludeAwareZ() {
327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        spf.setXIncludeAware(true);
328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        MyHandler mh = new MyHandler();
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        InputStream is = getClass().getResourceAsStream("/simple_ns.xml");
330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        try {
331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            spf.newSAXParser().parse(is, mh);
332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch(javax.xml.parsers.ParserConfigurationException pce) {
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("ParserConfigurationException was thrown during parsing");
334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch(org.xml.sax.SAXException se) {
335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("SAXException was thrown during parsing");
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch(IOException ioe) {
337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("IOException was thrown during parsing");
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } finally {
339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            try {
340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//                is.close();
341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            } catch(Exception ioee) {}
342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        }
343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        spf.setXIncludeAware(false);
344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        is = getClass().getResourceAsStream("/simple_ns.xml");
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        try {
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            is = getClass().getResourceAsStream("/simple_ns.xml");
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            spf.newSAXParser().parse(is, mh);
348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch(javax.xml.parsers.ParserConfigurationException pce) {
349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("ParserConfigurationException was thrown during parsing");
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch(org.xml.sax.SAXException se) {
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("SAXException was thrown during parsing");
352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch(IOException ioe) {
353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("IOException was thrown during parsing");
354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } finally {
355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            try {
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//                is.close();
357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            } catch(Exception ioee) {}
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        }
359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        is = getClass().getResourceAsStream("/simple_ns.xml");
360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        try {
361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            spf.setXIncludeAware(true);
362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            spf.newSAXParser().parse(is, mh);
363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch(javax.xml.parsers.ParserConfigurationException pce) {
364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("ParserConfigurationException was thrown during parsing");
365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch(org.xml.sax.SAXException se) {
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("SAXException was thrown during parsing");
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } catch(IOException ioe) {
368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            fail("IOException was thrown during parsing");
369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        } finally {
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            try {
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//                is.close();
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//            } catch(Exception ioee) {}
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        }
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//    }
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    static class MyHandler extends DefaultHandler {
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public void startElement(String uri, String localName, String qName,
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                Attributes atts) {
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            el.add(qName);
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            if (!uri.equals(""))
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                ns.put(qName, uri);
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            for (int i = 0; i < atts.getLength(); i++) {
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                attr.put(atts.getQName(i), atts.getValue(i));
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    class MySAXParserFactory extends SAXParserFactory {
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public MySAXParserFactory() {
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            super();
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public SAXParser newSAXParser() {
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public void setFeature(String name, boolean value) throws
402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                ParserConfigurationException, SAXNotRecognizedException,
403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SAXNotSupportedException {
404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
407f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        public boolean getFeature(String name) throws
408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                ParserConfigurationException, SAXNotRecognizedException,
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                SAXNotSupportedException {
410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return true;
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
416