xml
Class NamespaceBindings

java.lang.Object
  extended by xml.NamespaceBindings

public class NamespaceBindings
extends java.lang.Object

namespace to prefix map. Remove ambiguities and mistakes due to confusion on what is the key or the value when using Map<String,String> for namespace bindings.


Constructor Summary
NamespaceBindings()
           
NamespaceBindings(NamespaceBindings namespacesToInsert)
           
 
Method Summary
 void appendNamespaces(java.lang.StringBuilder buf)
          append xmlns:XX="..." namespace bindings for each item to buf
static java.lang.String composeName(java.lang.String localname, java.lang.String ns, NamespaceBindings namespaces, NamespaceBindings namespacesToInsert, boolean emptyPrefixIsOK)
          create a qualified name from localname, ns and given namespaces bindings.
 boolean containsNamespace(java.lang.String namespace)
           
 boolean containsPrefix(java.lang.String prefix)
           
static java.lang.String generatePrefix(NamespaceBindings... namespaces)
          generate a new prefix, unique among namespaces bindings
 java.lang.String getNamespace(java.lang.String prefix)
           
 java.lang.String getPrefix(java.lang.String namespace)
           
 boolean isEmpty()
           
 void put(java.lang.String namespace, java.lang.String prefix)
           
 void putAll(NamespaceBindings namespaceBindings)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NamespaceBindings

public NamespaceBindings()

NamespaceBindings

public NamespaceBindings(NamespaceBindings namespacesToInsert)
Method Detail

put

public void put(java.lang.String namespace,
                java.lang.String prefix)

getPrefix

public java.lang.String getPrefix(java.lang.String namespace)

getNamespace

public java.lang.String getNamespace(java.lang.String prefix)

containsNamespace

public boolean containsNamespace(java.lang.String namespace)

containsPrefix

public boolean containsPrefix(java.lang.String prefix)

appendNamespaces

public void appendNamespaces(java.lang.StringBuilder buf)
append xmlns:XX="..." namespace bindings for each item to buf

Parameters:
buf - buffer to append to

putAll

public void putAll(NamespaceBindings namespaceBindings)

isEmpty

public boolean isEmpty()

generatePrefix

public static java.lang.String generatePrefix(NamespaceBindings... namespaces)
generate a new prefix, unique among namespaces bindings

Parameters:
namespaces - namespaces bindings not to override
Returns:
new prefix

composeName

public static java.lang.String composeName(java.lang.String localname,
                                           java.lang.String ns,
                                           NamespaceBindings namespaces,
                                           NamespaceBindings namespacesToInsert,
                                           boolean emptyPrefixIsOK)
create a qualified name from localname, ns and given namespaces bindings. If no namespace, returns localname directly. Otherwise, pre:localname is returned, where pre is taken from namespacesToInsert then if not found from namespaces, then is generated to be unique among namespaces and namespacesToInsert (always of the form nsNUMBER).

Parameters:
localname - local name
ns - namespace localname is in
namespaces - already declared namespaces
namespacesToInsert - new namespaces (IN/OUT: a new binding may be added)
emptyPrefixIsOK - is empty prefix OK for non null namespace ? (false for attributes
Returns:
the qualified name