Class XmlNamespaceDictionary
- java.lang.Object
-
- com.google.api.client.xml.XmlNamespaceDictionary
-
@Beta public final class XmlNamespaceDictionary extends java.lang.Object
Beta
Thread-safe XML namespace dictionary that provides a one-to-one map of namespace alias to URI.Implementation is thread-safe. For maximum efficiency, applications should use a single globally-shared instance of the XML namespace dictionary.
A namespace alias is uniquely mapped to a single namespace URI, and a namespace URI is uniquely mapped to a single namespace alias. In other words, it is not possible to have duplicates.
Sample usage:
static final XmlNamespaceDictionary DICTIONARY = new XmlNamespaceDictionary() .set("", "http://www.w3.org/2005/Atom") .set("activity", "http://activitystrea.ms/spec/1.0/") .set("georss", "http://www.georss.org/georss") .set("media", "http://search.yahoo.com/mrss/") .set("thr", "http://purl.org/syndication/thread/1.0");- Since:
- 1.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classXmlNamespaceDictionary.ElementSerializer
-
Field Summary
Fields Modifier and Type Field Description private java.util.HashMap<java.lang.String,java.lang.String>namespaceAliasToUriMapMap from XML namespace alias (or""for the default namespace) to XML namespace URI.private java.util.HashMap<java.lang.String,java.lang.String>namespaceUriToAliasMapMap from XML namespace URI to XML namespace alias (or""for the default namespace).
-
Constructor Summary
Constructors Constructor Description XmlNamespaceDictionary()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidcomputeAliases(java.lang.Object element, java.util.SortedSet<java.lang.String> aliases)java.lang.StringgetAliasForUri(java.lang.String uri)Returns the namespace alias (or""for the default namespace) for the given namespace URI.java.util.Map<java.lang.String,java.lang.String>getAliasToUriMap()Returns an unmodified set of map entries for the map from namespace alias (or""for the default namespace) to namespace URI.(package private) java.lang.StringgetNamespaceAliasForUriErrorOnUnknown(java.lang.String namespaceUri)Returns the namespace alias to use for a given namespace URI, throwing an exception if the namespace URI can be found in this dictionary.(package private) java.lang.StringgetNamespaceUriForAliasHandlingUnknown(boolean errorOnUnknown, java.lang.String alias)Returns the namespace URI to use for serialization for a given namespace alias, possibly using a predictable made-up namespace URI if the alias is not recognized.java.lang.StringgetUriForAlias(java.lang.String alias)Returns the namespace URI for the given namespace alias (or""for the default namespace).java.util.Map<java.lang.String,java.lang.String>getUriToAliasMap()Returns an unmodified set of map entries for the map from namespace URI to namespace alias (or""for the default namespace).voidserialize(org.xmlpull.v1.XmlSerializer serializer, java.lang.String elementName, java.lang.Object element)Shows a debug string representation of an element data object of key/value pairs.private voidserialize(org.xmlpull.v1.XmlSerializer serializer, java.lang.String elementName, java.lang.Object element, boolean errorOnUnknown)voidserialize(org.xmlpull.v1.XmlSerializer serializer, java.lang.String elementNamespaceUri, java.lang.String elementLocalName, java.lang.Object element)Shows a debug string representation of an element data object of key/value pairs.private voidserialize(org.xmlpull.v1.XmlSerializer serializer, java.lang.String elementNamespaceUri, java.lang.String elementLocalName, java.lang.Object element, boolean errorOnUnknown)XmlNamespaceDictionaryset(java.lang.String alias, java.lang.String uri)Adds a namespace of the given alias and URI.private XmlNamespaceDictionary.ElementSerializerstartDoc(org.xmlpull.v1.XmlSerializer serializer, java.lang.Object element, boolean errorOnUnknown, java.lang.String elementAlias)(package private) static java.lang.StringtoSerializedValue(java.lang.Object value)java.lang.StringtoStringOf(java.lang.String elementName, java.lang.Object element)Shows a debug string representation of an element data object of key/value pairs.
-
-
-
Field Detail
-
namespaceAliasToUriMap
private final java.util.HashMap<java.lang.String,java.lang.String> namespaceAliasToUriMap
Map from XML namespace alias (or""for the default namespace) to XML namespace URI.
-
namespaceUriToAliasMap
private final java.util.HashMap<java.lang.String,java.lang.String> namespaceUriToAliasMap
Map from XML namespace URI to XML namespace alias (or""for the default namespace).
-
-
Method Detail
-
getAliasForUri
public java.lang.String getAliasForUri(java.lang.String uri)
Returns the namespace alias (or""for the default namespace) for the given namespace URI.- Parameters:
uri- namespace URI- Since:
- 1.3
-
getUriForAlias
public java.lang.String getUriForAlias(java.lang.String alias)
Returns the namespace URI for the given namespace alias (or""for the default namespace).- Parameters:
alias- namespace alias (or""for the default namespace)- Since:
- 1.3
-
getAliasToUriMap
public java.util.Map<java.lang.String,java.lang.String> getAliasToUriMap()
Returns an unmodified set of map entries for the map from namespace alias (or""for the default namespace) to namespace URI.- Since:
- 1.3
-
getUriToAliasMap
public java.util.Map<java.lang.String,java.lang.String> getUriToAliasMap()
Returns an unmodified set of map entries for the map from namespace URI to namespace alias (or""for the default namespace).- Since:
- 1.3
-
set
public XmlNamespaceDictionary set(java.lang.String alias, java.lang.String uri)
Adds a namespace of the given alias and URI.If the uri is
null, the namespace alias will be removed. Similarly, if the alias isnull, the namespace URI will be removed. Otherwise, if the alias is already mapped to a different URI, it will be remapped to the new URI. Similarly, if a URI is already mapped to a different alias, it will be remapped to the new alias.- Parameters:
alias- alias ornullto remove the namespace URIuri- namespace URI ornullto remove the namespace alias- Returns:
- this namespace dictionary
- Since:
- 1.3
-
toStringOf
public java.lang.String toStringOf(java.lang.String elementName, java.lang.Object element)Shows a debug string representation of an element data object of key/value pairs.- Parameters:
element- element data object (GenericXml,Map, or any object with public fields)elementName- optional XML element local name prefixed by its namespace alias -- for example"atom:entry"-- ornullto make up something
-
serialize
public void serialize(org.xmlpull.v1.XmlSerializer serializer, java.lang.String elementNamespaceUri, java.lang.String elementLocalName, java.lang.Object element) throws java.io.IOExceptionShows a debug string representation of an element data object of key/value pairs.- Parameters:
element- element data object (GenericXml,Map, or any object with public fields)elementNamespaceUri- XML namespace URI ornullfor no namespaceelementLocalName- XML local name- Throws:
java.io.IOException- I/O exception
-
serialize
public void serialize(org.xmlpull.v1.XmlSerializer serializer, java.lang.String elementName, java.lang.Object element) throws java.io.IOExceptionShows a debug string representation of an element data object of key/value pairs.- Parameters:
element- element data object (GenericXml,Map, or any object with public fields)elementName- XML element local name prefixed by its namespace alias- Throws:
java.io.IOException- I/O exception
-
serialize
private void serialize(org.xmlpull.v1.XmlSerializer serializer, java.lang.String elementNamespaceUri, java.lang.String elementLocalName, java.lang.Object element, boolean errorOnUnknown) throws java.io.IOException- Throws:
java.io.IOException
-
serialize
private void serialize(org.xmlpull.v1.XmlSerializer serializer, java.lang.String elementName, java.lang.Object element, boolean errorOnUnknown) throws java.io.IOException- Throws:
java.io.IOException
-
startDoc
private XmlNamespaceDictionary.ElementSerializer startDoc(org.xmlpull.v1.XmlSerializer serializer, java.lang.Object element, boolean errorOnUnknown, java.lang.String elementAlias) throws java.io.IOException
- Throws:
java.io.IOException
-
computeAliases
private void computeAliases(java.lang.Object element, java.util.SortedSet<java.lang.String> aliases)
-
getNamespaceUriForAliasHandlingUnknown
java.lang.String getNamespaceUriForAliasHandlingUnknown(boolean errorOnUnknown, java.lang.String alias)Returns the namespace URI to use for serialization for a given namespace alias, possibly using a predictable made-up namespace URI if the alias is not recognized.Specifically, if the namespace alias is not recognized, the namespace URI returned will be
"http://unknown/"plus the alias, unlesserrorOnUnknownistruein which case it will throw anIllegalArgumentException.- Parameters:
errorOnUnknown- whether to thrown an exception if the namespace alias is not recognizedalias- namespace alias- Returns:
- namespace URI, using a predictable made-up namespace URI if the namespace alias is not recognized
- Throws:
java.lang.IllegalArgumentException- if the namespace alias is not recognized anderrorOnUnknownistrue
-
getNamespaceAliasForUriErrorOnUnknown
java.lang.String getNamespaceAliasForUriErrorOnUnknown(java.lang.String namespaceUri)
Returns the namespace alias to use for a given namespace URI, throwing an exception if the namespace URI can be found in this dictionary.- Parameters:
namespaceUri- namespace URI- Throws:
java.lang.IllegalArgumentException- if the namespace URI is not found in this dictionary
-
toSerializedValue
static java.lang.String toSerializedValue(java.lang.Object value)
-
-