1320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson/* 2320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * Licensed to the Apache Software Foundation (ASF) under one or more 3320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * contributor license agreements. See the NOTICE file distributed with 4320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * this work for additional information regarding copyright ownership. 5320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * The ASF licenses this file to You under the Apache License, Version 2.0 6320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * (the "License"); you may not use this file except in compliance with 7320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * the License. You may obtain a copy of the License at 8320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 9320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 10320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 11320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * Unless required by applicable law or agreed to in writing, software 12320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 13320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * See the License for the specific language governing permissions and 15320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * limitations under the License. 16320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson */ 17320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson 18320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson// $Id: NamespaceContext.java 446598 2006-09-15 12:55:40Z jeremias $ 19320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson 20320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilsonpackage javax.xml.namespace; 21320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson 22320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilsonimport java.util.Iterator; 23320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson 24320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson/** 25320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>Interface for read only XML Namespace context processing.</p> 26320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 27320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>An XML Namespace has the properties:</p> 28320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <ul> 29320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <li>Namespace URI: 30320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * Namespace name expressed as a URI to which the prefix is bound</li> 31320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <li>prefix: syntactically, this is the part of the attribute name 32320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * following the <code>XMLConstants.XMLNS_ATTRIBUTE</code> 33320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * ("xmlns") in the Namespace declaration</li> 34320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </ul> 35320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p> example: <code><element xmlns:prefix="http://Namespace-name-URI"></code></p> 36320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 37320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>All <code>get*(*)</code> methods operate in the current scope 38320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * for Namespace URI and prefix resolution.</p> 39320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 40320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>Note that a Namespace URI can be bound to 41320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <strong>multiple</strong> prefixes in the current scope. This can 42320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * occur when multiple <code>XMLConstants.XMLNS_ATTRIBUTE</code> 43320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * ("xmlns") Namespace declarations occur in the same Start-Tag and 44320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * refer to the same Namespace URI. e.g.<br /> 45320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <pre> 46320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <element xmlns:prefix1="http://Namespace-name-URI" 47320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * xmlns:prefix2="http://Namespace-name-URI"> 48320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </pre> 49320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * This can also occur when the same Namespace URI is used in multiple 50320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <code>XMLConstants.XMLNS_ATTRIBUTE</code> ("xmlns") Namespace 51320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * declarations in the logical parent element hierarchy. e.g.<br /> 52320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <pre> 53320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <parent xmlns:prefix1="http://Namespace-name-URI"> 54320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <child xmlns:prefix2="http://Namespace-name-URI"> 55320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * ... 56320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </child> 57320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </parent> 58320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </pre></p> 59320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 60320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>A prefix can only be bound to a <strong>single</strong> 61320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * Namespace URI in the current scope.</p> 62320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 63320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @author <a href="mailto:Jeff.Suttor@Sun.com">Jeff Suttor</a> 64320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @version $Revision: 446598 $, $Date: 2006-09-15 05:55:40 -0700 (Fri, 15 Sep 2006) $ 65320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @see javax.xml.XMLConstants javax.XMLConstants for declarations of common XML values 66320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @see <a href="http://www.w3.org/TR/xmlschema-2/#QName">XML Schema Part2: Datatypes</a> 67320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @see <a href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">Namespaces in XML</a> 68320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @see <a href="http://www.w3.org/XML/xml-names-19990114-errata">Namespaces in XML Errata</a> 69320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @since 1.5 70320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson */ 71320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson 72320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilsonpublic interface NamespaceContext { 73320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson 74320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson /** 75320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>Get Namespace URI bound to a prefix in the current scope.</p> 76320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 77320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>When requesting a Namespace URI by prefix, the following 78320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * table describes the returned Namespace URI value for all 79320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * possible prefix values:</p> 80320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 81f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * <table border="2" rules="all" cellpadding="4"> 82320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <thead> 83320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 84320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td align="center" colspan="2"> 85320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <code>getNamespaceURI(prefix)</code> 86320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * return value for specified prefixes 87320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </td> 88320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 89320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 90320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>prefix parameter</td> 91320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>Namespace URI return value</td> 92320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 93320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </thead> 94320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tbody> 95320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 96320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>DEFAULT_NS_PREFIX</code> ("")</td> 97320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>default Namespace URI in the current scope or 98f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * <code>{@link javax.xml.XMLConstants#NULL_NS_URI XMLConstants.NULL_NS_URI("")}</code> 99320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * when there is no default Namespace URI in the current scope</td> 100320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 101320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 102320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>bound prefix</td> 103320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>Namespace URI bound to prefix in current scope</td> 104320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 105320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 106320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>unbound prefix</td> 107320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>{@link javax.xml.XMLConstants#NULL_NS_URI XMLConstants.NULL_NS_URI("")}</code> </td> 108320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 109320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 110320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>XMLConstants.XML_NS_PREFIX</code> ("xml")</td> 111320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>XMLConstants.XML_NS_URI</code> 112320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * ("http://www.w3.org/XML/1998/namespace")</td> 113320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 114320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 115320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>XMLConstants.XMLNS_ATTRIBUTE</code> ("xmlns")</td> 116320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>XMLConstants.XMLNS_ATTRIBUTE_NS_URI</code> 117320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * ("http://www.w3.org/2000/xmlns/")</td> 118320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 119320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 120320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>null</code></td> 121320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>IllegalArgumentException</code> is thrown</td> 122320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 123320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tbody> 124320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </table> 125f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 126320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @param prefix prefix to look up 127320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @return Namespace URI bound to prefix in the current scope 128f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes */ 129320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson String getNamespaceURI(String prefix); 130f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 131320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson /** 132320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>Get prefix bound to Namespace URI in the current scope.</p> 133320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 134320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>To get all prefixes bound to a Namespace URI in the current 135320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * scope, use {@link #getPrefixes(String namespaceURI)}.</p> 136320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 137320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>When requesting a prefix by Namespace URI, the following 138320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * table describes the returned prefix value for all Namespace URI 139320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * values:</p> 140320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 141320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <table border="2" rules="all" cellpadding="4"> 142320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <thead> 143320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 144320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td align="center" colspan="2"> 145320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <code>getPrefix(namespaceURI)</code> return value for 146320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * specified Namespace URIs 147320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </td> 148320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 149320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 150320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>Namespace URI parameter</td> 151320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>prefix value returned</td> 152320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 153320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </thead> 154320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tbody> 155320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 156320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><default Namespace URI></td> 157320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>XMLConstants.DEFAULT_NS_PREFIX</code> ("") 158320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </td> 159320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 160320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 161320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>bound Namespace URI</td> 162320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>prefix bound to Namespace URI in the current scope, 163320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * if multiple prefixes are bound to the Namespace URI in 164320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * the current scope, a single arbitrary prefix, whose 165320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * choice is implementation dependent, is returned</td> 166320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 167320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 168320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>unbound Namespace URI</td> 169320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>null</code></td> 170320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 171320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 172320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>XMLConstants.XML_NS_URI</code> 173320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * ("http://www.w3.org/XML/1998/namespace")</td> 174320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>XMLConstants.XML_NS_PREFIX</code> ("xml")</td> 175320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 176320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 177320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>XMLConstants.XMLNS_ATTRIBUTE_NS_URI</code> 178320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * ("http://www.w3.org/2000/xmlns/")</td> 179320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>XMLConstants.XMLNS_ATTRIBUTE</code> ("xmlns")</td> 180320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 181320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 182320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>null</code></td> 183320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>IllegalArgumentException</code> is thrown</td> 184320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 185320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tbody> 186320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </table> 187320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 188320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @param namespaceURI URI of Namespace to lookup 189320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @return prefix bound to Namespace URI in current context 190320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson */ 191320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson String getPrefix(String namespaceURI); 192320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson 193320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson /** 194320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>Get all prefixes bound to a Namespace URI in the current 195320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * scope.</p> 196320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 197320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>An Iterator over String elements is returned in an arbitrary, <strong>implementation dependent</strong>, order.</p> 198320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 199320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p><strong>The <code>Iterator</code> is 200320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <em>not</em> modifiable. e.g. the 201320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <code>remove()</code> method will throw 202320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <code>UnsupportedOperationException</code>.</strong></p> 203320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 204320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>When requesting prefixes by Namespace URI, the following 205320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * table describes the returned prefixes value for all Namespace 206320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * URI values:</p> 207320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 208320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <table border="2" rules="all" cellpadding="4"> 209320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <thead> 210320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 211320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td align="center" colspan="2"><code> 212320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * getPrefixes(namespaceURI)</code> return value for 213320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * specified Namespace URIs</td> 214320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 215320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 216320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>Namespace URI parameter</td> 217320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>prefixes value returned</td> 218320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 219320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </thead> 220320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tbody> 221320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 222320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>bound Namespace URI, 223320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * including the <default Namespace URI></td> 224320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>Iterator</code> over prefixes bound to Namespace URI in 225320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * the current scope in an arbitrary, <strong>implementation dependent</strong>, 226320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * order</td> 227320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 228320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 229320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>unbound Namespace URI</td> 230320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td>empty <code>Iterator</code></td> 231320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 232320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 233320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>XMLConstants.XML_NS_URI</code> 234320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * ("http://www.w3.org/XML/1998/namespace")</td> 235320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>Iterator</code> with one element set to 236320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <code>XMLConstants.XML_NS_PREFIX</code> ("xml")</td> 237320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 238320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 239320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>XMLConstants.XMLNS_ATTRIBUTE_NS_URI</code> 240320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * ("http://www.w3.org/2000/xmlns/")</td> 241320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>Iterator</code> with one element set to 242320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <code>XMLConstants.XMLNS_ATTRIBUTE</code> ("xmlns")</td> 243320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 244320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <tr> 245320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>null</code></td> 246320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <td><code>IllegalArgumentException</code> is thrown</td> 247320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tr> 248320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </tbody> 249320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * </table> 250320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * 251320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @param namespaceURI URI of Namespace to lookup 252320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @return <code>Iterator</code> for all prefixes bound to the 253320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * Namespace URI in the current scope 254320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson */ 255320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson Iterator getPrefixes(String namespaceURI); 256320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson} 257