01: /*
02: * $Id: ExtendedNamespaceContext.java,v 1.1 2004/07/05 23:10:46 cniles Exp $
03: *
04: * Copyright (c) 2004, Christian Niles, unit12.net
05: * All rights reserved.
06: *
07: * Redistribution and use in source and binary forms, with or without
08: * modification, are permitted provided that the following conditions are met:
09: *
10: * * Redistributions of source code must retain the above copyright
11: * notice, this list of conditions and the following disclaimer.
12: *
13: * * Redistributions in binary form must reproduce the above copyright
14: * notice, this list of conditions and the following disclaimer in the
15: * documentation and/or other materials provided with the distribution.
16: *
17: * * Neither the name of Christian Niles, Unit12, nor the names of its
18: * contributors may be used to endorse or promote products derived from
19: * this software without specific prior written permission.
20: *
21: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24: * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25: * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31: * POSSIBILITY OF SUCH DAMAGE.
32: *
33: */
34: package javanet.staxutils;
35:
36: import java.util.Iterator;
37:
38: import javax.xml.namespace.NamespaceContext;
39:
40: /**
41: * Extended namespace context interface that allows the context tree to be navigated
42: * and to list all known prefixes.
43: *
44: * @author Christian Niles
45: * @version $Revision: 1.1 $
46: */
47: public interface ExtendedNamespaceContext extends NamespaceContext {
48:
49: /**
50: * Returns a reference to the parent of this context.
51: *
52: * @return The parent context, or <code>null</code> if this is a root
53: * context.
54: */
55: public NamespaceContext getParent();
56:
57: /**
58: * Determines if the specified prefix is declared within this context,
59: * irrespective of any ancestor contexts.
60: *
61: * @param prefix The prefix to check.
62: * @return <code>true</code> if the prefix is declared in this context,
63: * <code>false</code> otherwise.
64: */
65: public boolean isPrefixDeclared(String prefix);
66:
67: /**
68: * Returns an {@link Iterator} of all namespace prefixes in scope within this
69: * context, including those inherited from ancestor contexts.
70: *
71: * @return An {@link Iterator} of prefix {@link String}s.
72: */
73: public Iterator getPrefixes();
74:
75: /**
76: * Returns an {@link Iterator} of all namespace prefixes declared within
77: * this context, irrespective of any ancestor contexts.
78: *
79: * @return An {@link Iterator} of prefix {@link String}s.
80: */
81: public Iterator getDeclaredPrefixes();
82:
83: }
|