gnu.xml

Class NamespaceBinding

Implemented Interfaces:
Externalizable

public final class NamespaceBinding
extends java.lang.Object
implements Externalizable

A "namespace node" as a link in a linked list. The list may contain duplicates - i.e. multiple namespace bindings for the same prefix but (usually) different uris. In that case the first binding "wins". One reason for allowing duplicates it to allow sharing of the lists between a child and its parent element.

Field Summary

static String
XML_NAMESPACE
static NamespaceBinding
predefinedXML

Constructor Summary

NamespaceBinding(String prefix, String uri, NamespaceBinding next)

Method Summary

static NamespaceBinding
commonAncestor(NamespaceBinding ns1, NamespaceBinding ns2)
int
count(NamespaceBinding fencePost)
Return the number of bindings before the fencePost.
NamespaceBinding
getNext()
String
getPrefix()
Namespace prefix.
String
getUri()
Namespace uri.
static NamespaceBinding
maybeAdd(String prefix, String uri, NamespaceBinding bindings)
Append a new NamespaceBinding if not redundant.
static NamespaceBinding
nconc(NamespaceBinding list1, NamespaceBinding list2)
Chain the first list in front of the second list.
void
readExternal(ObjectInput in)
String
resolve(String prefix)
Resolve a prefix.
String
resolve(String prefix, NamespaceBinding fencePost)
Resolve a prefix, in the initial part of this list.
NamespaceBinding
reversePrefix(NamespaceBinding fencePost)
Reverse the chain, until a fencePost.
void
setNext(NamespaceBinding next)
void
setPrefix(String prefix)
void
setUri(String uri)
String
toString()
Return a String showing just a single namespace binding.
String
toStringAll()
Return a String showing the full namespace binding list.
void
writeExternal(ObjectOutput out)

Field Details

XML_NAMESPACE

public static final String XML_NAMESPACE

predefinedXML

public static final NamespaceBinding predefinedXML

Constructor Details

NamespaceBinding

public NamespaceBinding(String prefix,
                        String uri,
                        NamespaceBinding next)

Method Details

commonAncestor

public static NamespaceBinding commonAncestor(NamespaceBinding ns1,
                                              NamespaceBinding ns2)

count

public int count(NamespaceBinding fencePost)
Return the number of bindings before the fencePost.

getNext

public final NamespaceBinding getNext()

getPrefix

public final String getPrefix()
Namespace prefix. An interned String. A default namespace declaration is represented using null.

getUri

public final String getUri()
Namespace uri. An interned String. The value null "undeclares" any following namespaces; it corresponds to an empty uri as in the XML Namespaces 1.1 Candidate Recommendation.

maybeAdd

public static NamespaceBinding maybeAdd(String prefix,
                                        String uri,
                                        NamespaceBinding bindings)
Append a new NamespaceBinding if not redundant.

nconc

public static final NamespaceBinding nconc(NamespaceBinding list1,
                                           NamespaceBinding list2)
Chain the first list in front of the second list. (The name nconc comes from Common Lisp.)

readExternal

public void readExternal(ObjectInput in)
            throws IOException,
                   ClassNotFoundException

resolve

public String resolve(String prefix)
Resolve a prefix.
Parameters:
prefix - an interned namespace prefix to search for.
Returns:
a uri or null if not bound

resolve

public String resolve(String prefix,
                      NamespaceBinding fencePost)
Resolve a prefix, in the initial part of this list.
Parameters:
prefix - an interned namespace prefix to search for.
fencePost - only search this list until then.
Returns:
a uri or null if not bound

reversePrefix

public NamespaceBinding reversePrefix(NamespaceBinding fencePost)
Reverse the chain, until a fencePost.

setNext

public final void setNext(NamespaceBinding next)

setPrefix

public final void setPrefix(String prefix)

setUri

public final void setUri(String uri)

toString

public String toString()
Return a String showing just a single namespace binding.

toStringAll

public String toStringAll()
Return a String showing the full namespace binding list.

writeExternal

public void writeExternal(ObjectOutput out)
            throws IOException