/* * Javolution - Java(TM) Solution for Real-Time and Embedded Systems * Copyright (C) 2012 - Javolution (http://javolution.org/) * All rights reserved. * * Permission to use, copy, modify, and distribute this software is * freely granted, provided that this notice is preserved. */ package javolution.xml.stream; import java.util.Iterator; import javolution.text.CharArray; /** * This interface represents the XML namespace context stack while parsing. * * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a> * @version 4.0, September 12, 2006 */ public interface NamespaceContext { /** * Returns the namespace URI bound to a prefix in the current scope * or <code>null</code> if the prefix is unbound. * * @param prefix prefix to look up * @return the namespace URI. * @throws IllegalArgumentException if <code>prefix</code> is * <code>null</code> */ CharArray getNamespaceURI(CharSequence prefix); /** * Returns the prefix bound to the namespace URI in the current scope * or <code>null</code> if the namespace URI is unbound. * * @param namespaceURI URI of the namespace to lookup. * @return the prefix bound to the namespace URI. * @throws IllegalArgumentException if <code>namespaceURI</code> is * <code>null</code> */ CharArray getPrefix(CharSequence namespaceURI); /** * Returns all prefixes bound to a namespace URI in the current scope * (including predefined prefixes). * * @param namespaceURI URI of Namespace to lookup * @return an <code>Iterator</code> over {@link CharArray} prefixes. * @throws IllegalArgumentException if <code>namespaceURI</code> is * <code>null</code> */ Iterator<CharArray> getPrefixes(CharSequence namespaceURI); }