Skip navigation links

Oracle® Coherence Java API Reference
Release 12.1.2.0.3

E26043-02


com.tangosol.run.xml
Class XmlHelper

java.lang.Object
  extended by com.tangosol.util.Base
      extended by com.tangosol.run.xml.XmlHelper


public abstract class XmlHelper
extends Base

This abstract class contains XML manipulation methods.

Author:
cp/gg 2000.10.25

Nested Class Summary
static interface XmlHelper.ParameterResolver
          An interface that describes a callback to resolve a substitutable parameter value.

 

Constructor Summary
XmlHelper()
           

 

Method Summary
static void addElements(XmlElement xml, java.util.Iterator iter)
          Add the elements from the iterator to the passed XML.
static java.lang.Object convert(java.lang.Object o, int nType)
          Convert the passed Object to the specified type.
static java.lang.Object createInstance(XmlElement xml, java.lang.ClassLoader loader, XmlHelper.ParameterResolver resolver)
          Create an instance of the class configured using an XmlElement of the following structure: <!
static java.lang.Object createInstance(XmlElement xml, java.lang.ClassLoader loader, XmlHelper.ParameterResolver resolver, java.lang.Class clzAssignable)
          Create an instance of the class configured using an XmlElement of the following structure: <!
static java.lang.String decodeAttribute(java.lang.String sValue)
          Decode an attribute value that was quoted.
static java.lang.String decodeContent(java.lang.String sValue)
          Decode an element's content value.
static java.lang.String decodeUri(java.lang.String sUri)
          Decode a System Identifier as per the XML 1.0 Specification 2nd ed section 4.2.2.
static java.lang.String encodeAttribute(java.lang.String sValue, char chQuote)
          Encode an attribute value so that it can be quoted and made part of a valid and well formed XML document.
static java.lang.String encodeContent(java.lang.String sValue, boolean fPreferBlockEscape)
          Encode an element's content value so that it can be made part of a valid and well formed XML document.
static XmlElement encodeInitParams(XmlElement xmlParent, XmlElement xmlConfig)
          Encode the supplied xmlConfig XmlElement as a series of init-param elements.
static java.lang.String encodeUri(java.lang.String sUri)
          Encode a System Identifier as per the XML 1.0 Specification second edition, section 4.2.2.
static XmlElement ensureElement(XmlElement xml, java.lang.String sPath)
          Ensure that a child element exists.
static void ensureNamespace(XmlElement xml, java.lang.String sPrefix, java.lang.String sUri)
          Ensure the existence of the Namespace declaration attribute in a context of the specified XmlElement.
static boolean equalsElement(XmlElement xml1, XmlElement xml2)
          Compare one XML element with another XML element for equality.
static boolean equalsValue(XmlValue val1, XmlValue val2)
          Compare one XML value with another XML value for equality.
static XmlElement findElement(XmlElement xml, java.lang.String sPath)
          Find a child element of the specified element with the specified '/'-delimited path.
static XmlElement findElement(XmlElement xml, java.lang.String sPath, java.lang.Object oValue)
          Find a child element of the specified element with the specified '/'-delimited path and specified value.
static java.lang.String getAbsolutePath(XmlElement xml)
          Get the '/'-delimited path of the passed element starting from the root element.
static XmlValue getAttribute(XmlElement xml, java.lang.String sLocal, java.lang.String sUri)
          Get an attribute of the specified XmlElement that matches to the specified local name and the specified Namespace URI.
static XmlElement getElement(XmlElement xml, java.lang.String sName)
          Get a child element for the specified element.
static XmlElement getElement(XmlElement xml, java.lang.String sLocal, java.lang.String sUri)
          Get a child element of the specified XmlElement that matches to the specified local name and the specified Namespace URI.
static java.util.Iterator getElements(XmlElement xml, java.lang.String sLocal, java.lang.String sUri)
          Get an iterator of child elements of the specified XmlElement that match to the specified local name and the specified Namespace URI.
static java.lang.String getNamespacePrefix(XmlElement xml, java.lang.String sUri)
          Retrieve the Namespace prefix for a given URI in a context of the specified XmlElement.
static java.lang.String getNamespaceUri(XmlElement xml, java.lang.String sPrefix)
          Retrieve the Namespace URI for a given prefix in a context of the specified XmlElement.
static java.util.List getSchemaLocations(XmlElement xml, java.lang.String sPrefix)
          Retrieve a listing of schema locations (schemaLocation/noNamespaceSchemaLocation) URL's referenced in XmlElement and all of its children.
static java.lang.String getUniversalName(java.lang.String sLocal, java.lang.String sPrefix)
          Return a universal XML element name.
static int hashElement(XmlElement xml)
          Provide a hash value for the XML element and all of its contained information.
static int hashValue(XmlValue val)
          Provide a hash value for the XML value.
static boolean isCommentValid(java.lang.String sComment)
          Validate the passed comment.
static boolean isElementMatch(XmlElement xml, java.lang.String sLocal, java.lang.String sUri)
          Check whether or not an element matches to the specified local name and Namespace URI.
static boolean isEmpty(XmlElement xml)
          Check whether or not this element or any of its children elements have any content such as values or attributes.
static boolean isEncodingValid(java.lang.String sEncoding)
          Validate the passed encoding.
static boolean isInstanceConfigEmpty(XmlElement xmlClass)
          Check whether or not the specified configuration defines an instance of a class.
static boolean isNameMatch(XmlElement xml, java.lang.String sName, java.lang.String sLocal, java.lang.String sUri)
          Check whether or not a universal (composite) name matches to the specified local name and Namespace URI.
static boolean isNameValid(java.lang.String sName)
          Validate the passed name.
static boolean isPublicIdentifierValid(java.lang.String sName)
          Validate the passed public identifier.
static boolean isSystemIdentifierValid(java.lang.String sName)
          Validate the passed system identifier.
static boolean isWhitespace(char ch)
          Test if the specified character is XML whitespace.
static XmlDocument loadFileOrResource(java.lang.String sName, java.lang.String sDescr)
          Load the configuration from a file or resource.
static XmlDocument loadFileOrResource(java.lang.String sName, java.lang.String sDescr, java.lang.ClassLoader loader)
          Load the configuration from a file or resource.
static XmlDocument loadFileOrResource(java.lang.String sName, java.lang.String sDescr, java.lang.ClassLoader loader, boolean fWarnNoSchema)
          Load the configuration from a file or resource.
static XmlDocument loadResource(java.lang.String sName, java.lang.String sDescr)
          Load the configuration from a resource.
static XmlDocument loadResource(java.lang.String sName, java.lang.String sDescr, java.lang.ClassLoader loader)
          Load the configuration from resource.
static XmlDocument loadResource(java.net.URL url, java.lang.String sDescr, java.lang.ClassLoader loader)
          Load the configuration from a URL resource.
protected static XmlDocument loadResourceInternal(java.lang.String sName, java.lang.String sDescr, java.lang.ClassLoader loader, boolean fFile, boolean fWarnNoSchema)
          Load the configuration from a file or resource.
protected static XmlDocument loadResourceInternal(java.net.URL url, java.lang.String sDescr, boolean fWarnNoSchema)
          Load the configuration from a URL.
static XmlDocument loadXml(java.lang.Class clz)
          Load XML from a file for a class.
static XmlDocument loadXml(java.lang.Class clz, java.lang.String sCharset)
          Load XML from a file for a class using a given charset.
static XmlDocument loadXml(java.lang.Class clz, java.lang.String sName, java.lang.String sCharset)
          Load XML from a file that is collocated with the specified class with a given charset.
static XmlDocument loadXml(java.io.InputStream stream)
          Load XML from a stream.
static XmlDocument loadXml(java.io.InputStream stream, java.lang.String sCharset)
          Load XML from a stream using the specified charset.
static XmlDocument loadXml(java.lang.String sXml)
          Load XML from a string.
static void loadXml(java.lang.String sXml, XmlDocument xmlRoot)
          Load XML from a String into the specified XmlElement.
static XmlDocument loadXml(java.net.URL url)
          Load the XML from the specified url using the default character set.
static XmlDocument loadXml(java.net.URL url, java.lang.String sCharset)
          Load the XML from the specified url using the specified character set.
static void overrideElement(XmlElement xmlBase, XmlElement xmlOverride)
          Override the values of the specified base element with values from the specified override element.
static void overrideElement(XmlElement xmlBase, XmlElement xmlOverride, java.lang.String sIdAttrName)
          Override the values of the specified base element with values from the specified override element.
static java.lang.Object[] parseInitParams(XmlElement xmlParams)
          Parse the specified "init-params" element of the following structure: <!
static java.lang.Object[] parseInitParams(XmlElement xmlParams, XmlHelper.ParameterResolver resolver)
          Parse the specified "init-params" element of the following structure: <!
static long parseTime(XmlElement xml, java.lang.String sName, long cDefault)
          Parse the String value of the child XmlElement with the given name as a time in milliseconds.
static void purgeChildrenNamespace(XmlElement xml)
          For the children elements of the specified XmlElement purge the repetitive Namespace declarations.
static void purgeNamespace(XmlElement xml)
          For the specified XmlElement purge the Namespace declarations that are declared somewhere up the xml tree.
static java.lang.String quote(java.lang.String s)
          XML quote the passed string.
static int removeElement(XmlElement xml, java.lang.String sName)
          Remove all immediate child elements with the given name
static XmlElement removeEmptyElements(XmlElement xml)
          Remove all empty descendant elements.
static boolean replaceElement(XmlElement xmlParent, XmlElement xmlReplace)
          Replace a child element with the same name as the specified element.
static void replaceSystemProperties(XmlElement xml, java.lang.String sPropertyAttribute)
          Replace the values of the XmlElement and all its children that contain the specified attribute with the values returned by the System.getProperty() call.
static java.lang.String toString(XmlSerializable xml)
          Return the XML of an XmlSerializable object as a String.
static XmlElement transformInitParams(XmlElement xmlParent, XmlElement xmlParams)
          Transform the specified "init-params" element of the following structure: <!
static java.lang.String trim(java.lang.String s)
          Trim XML whitespace.
static java.lang.String trimb(java.lang.String s)
          Trim trailing XML whitespace.
static java.lang.String trimf(java.lang.String s)
          Trim leading XML whitespace.

 

Constructor Detail

XmlHelper

public XmlHelper()

Method Detail

loadXml

public static XmlDocument loadXml(java.lang.Class clz)
Load XML from a file for a class.
Parameters:
clz - the class for which to load the XML
Returns:
the XML content or null

loadXml

public static XmlDocument loadXml(java.lang.Class clz,
                                  java.lang.String sCharset)
Load XML from a file for a class using a given charset.
Parameters:
clz - the class for which to load the XML
sCharset - the charset name; pass null to use the default charset
Returns:
the XML content or null

loadXml

public static XmlDocument loadXml(java.lang.Class clz,
                                  java.lang.String sName,
                                  java.lang.String sCharset)
Load XML from a file that is collocated with the specified class with a given charset.
Parameters:
clz - the class for which to load the XML
sName - the XML file name (including extension if any) that exists in the package from which the class was loaded
sCharset - the charset name; pass null to use the default charset
Returns:
the XML content or null

loadXml

public static XmlDocument loadXml(java.io.InputStream stream)
Load XML from a stream.
Parameters:
stream - the InputStream object
Returns:
the XML content

loadXml

public static XmlDocument loadXml(java.io.InputStream stream,
                                  java.lang.String sCharset)
Load XML from a stream using the specified charset.
Parameters:
stream - the InputStream object
sCharset - the charset name
Returns:
the XML content

loadXml

public static XmlDocument loadXml(java.net.URL url)
Load the XML from the specified url using the default character set.
Parameters:
url - the url from which to load the XML
Returns:
the XML content

loadXml

public static XmlDocument loadXml(java.net.URL url,
                                  java.lang.String sCharset)
Load the XML from the specified url using the specified character set.
Parameters:
url - the url from which to load the XML
sCharset - the charset name
Returns:
the XML content

loadXml

public static XmlDocument loadXml(java.lang.String sXml)
Load XML from a string.
Parameters:
sXml - the string containing an XML
Returns:
the XML content

loadXml

public static void loadXml(java.lang.String sXml,
                           XmlDocument xmlRoot)
Load XML from a String into the specified XmlElement.
Parameters:
sXml - the string containing an XML
xmlRoot - the root XmlElement to parse the string into

loadResource

public static XmlDocument loadResource(java.lang.String sName,
                                       java.lang.String sDescr)
Load the configuration from a resource.
Parameters:
sName - the name of the resource
sDescr - a description of the resource being loaded (e.g. "cache configuration"). The description is only used in logging and error messages related to loading the resource
Returns:
the configuration XML

loadResource

public static XmlDocument loadResource(java.lang.String sName,
                                       java.lang.String sDescr,
                                       java.lang.ClassLoader loader)
Load the configuration from resource.
Parameters:
sName - the name of the resource
sDescr - a description of the resource being loaded (e.g. "cache configuration"). The description is only used in logging and error messages related to loading the resource
loader - (optional) ClassLoader that should be used to load the configuration resource
Returns:
the configuration XML

loadResource

public static XmlDocument loadResource(java.net.URL url,
                                       java.lang.String sDescr,
                                       java.lang.ClassLoader loader)
Load the configuration from a URL resource.
Parameters:
url - the resource URL
sDescr - a description of the resource being loaded (e.g. "cache configuration"). The description is only used in logging and error messages related to loading the resource
loader - (optional) ClassLoader that should be used to load the configuration resource
Returns:
the configuration XML

loadFileOrResource

public static XmlDocument loadFileOrResource(java.lang.String sName,
                                             java.lang.String sDescr)
Load the configuration from a file or resource.
Parameters:
sName - the name of the file or resource
sDescr - a description of the resource being loaded (e.g. "cache configuration"). The description is only used in logging and error messages related to loading the resource
Returns:
the configuration XML

loadFileOrResource

public static XmlDocument loadFileOrResource(java.lang.String sName,
                                             java.lang.String sDescr,
                                             java.lang.ClassLoader loader)
Load the configuration from a file or resource.
Parameters:
sName - the name of the file or resource
sDescr - a description of the resource being loaded (e.g. "cache configuration"). The description is only used in logging and error messages related to loading the resource
loader - (optional) ClassLoader that should be used to load the configuration resource
Returns:
the configuration XML

loadFileOrResource

public static XmlDocument loadFileOrResource(java.lang.String sName,
                                             java.lang.String sDescr,
                                             java.lang.ClassLoader loader,
                                             boolean fWarnNoSchema)
Load the configuration from a file or resource.
Parameters:
sName - the name of the file or resource
sDescr - a description of the resource being loaded (e.g. "cache configuration"). The description is only used in logging and error messages related to loading the resource
loader - (optional) ClassLoader that should be used to load the configuration resource
fWarnNoSchema - display warning if schema is missing
Returns:
the configuration XML

loadResourceInternal

protected static XmlDocument loadResourceInternal(java.lang.String sName,
                                                  java.lang.String sDescr,
                                                  java.lang.ClassLoader loader,
                                                  boolean fFile,
                                                  boolean fWarnNoSchema)
Load the configuration from a file or resource.
Parameters:
sName - the name of the file or resource
sDescr - a description of the resource being loaded (e.g. "cache configuration"). The description is only used in logging and error messages related to loading the resource
loader - (optional) ClassLoader that should be used to load the configuration resource
fFile - true if the specified name could refer to a file
fWarnNoSchema - display warning if schema is missing
Returns:
the configuration XML

loadResourceInternal

protected static XmlDocument loadResourceInternal(java.net.URL url,
                                                  java.lang.String sDescr,
                                                  boolean fWarnNoSchema)
Load the configuration from a URL.

Note: The default character set is used to load configurations provided in files; otherwise the character set "ISO-8859-1" is used.

Parameters:
url - the file or resource URL
sDescr - a description of the resource being loaded (e.g. "cache configuration"). The description is only used in logging and error messages related to loading the resource
fWarnNoSchema - display warning if schema is missing
Returns:
the configuration XML

isEncodingValid

public static boolean isEncodingValid(java.lang.String sEncoding)
Validate the passed encoding. Encodings are latin strings defined as: [A-Za-z] ([A-Za-z0-9._] | '-')*
Parameters:
sEncoding - the document encoding
Returns:
true if the encoding is valid, false otherwise

isSystemIdentifierValid

public static boolean isSystemIdentifierValid(java.lang.String sName)
Validate the passed system identifier.
Parameters:
sName - the system identifier of the XML document
Returns:
true if the identifier is valid, false otherwise

isPublicIdentifierValid

public static boolean isPublicIdentifierValid(java.lang.String sName)
Validate the passed public identifier.
Parameters:
sName - the public identifier of the XML document
Returns:
true if the identifier is valid, false otherwise

isCommentValid

public static boolean isCommentValid(java.lang.String sComment)
Validate the passed comment. Comments may not contain "--". See the XML specification 1.0 2ed section 2.5.
Parameters:
sComment - the XML comment
Returns:
true if the comment is valid, false otherwise

isNameValid

public static boolean isNameValid(java.lang.String sName)
Validate the passed name. Currently, this does not allow the "CombiningChar" or "Extender" characters that are allowed by the XML specification 1.0 2ed section 2.3 [4].
Parameters:
sName - the XML name to validate
Returns:
true if the name is valid, false otherwise

isWhitespace

public static boolean isWhitespace(char ch)
Test if the specified character is XML whitespace.
Parameters:
ch - a character
Returns:
true if the passed character is XML whitespace

trim

public static java.lang.String trim(java.lang.String s)
Trim XML whitespace. See XML 1.0 2ed section 2.3.
Parameters:
s - the original String
Returns:
the passed String minus any leading or trailing whitespace

trimf

public static java.lang.String trimf(java.lang.String s)
Trim leading XML whitespace. See XML 1.0 2ed section 2.3.
Parameters:
s - the original String
Returns:
the passed String minus any leading whitespace

trimb

public static java.lang.String trimb(java.lang.String s)
Trim trailing XML whitespace. See XML 1.0 2ed section 2.3.
Parameters:
s - the original String
Returns:
the passed String minus any trailing whitespace

encodeAttribute

public static java.lang.String encodeAttribute(java.lang.String sValue,
                                               char chQuote)
Encode an attribute value so that it can be quoted and made part of a valid and well formed XML document.
Parameters:
sValue - the attribute value to encode
chQuote - the character that will be used to quote the attribute
Returns:
the attribute value in its encoded form (but not quoted)

decodeAttribute

public static java.lang.String decodeAttribute(java.lang.String sValue)
Decode an attribute value that was quoted.
Parameters:
sValue - the attribute value to decode
Returns:
the attribute value in its decoded form

encodeContent

public static java.lang.String encodeContent(java.lang.String sValue,
                                             boolean fPreferBlockEscape)
Encode an element's content value so that it can be made part of a valid and well formed XML document.
Parameters:
sValue - the content value to encode
fPreferBlockEscape - pass true to use the CDATA escape if two conditions are met: that escaping is required, and that the value does not contain the string "]]>"
Returns:
the attribute value in its encoded form (but not quoted)

decodeContent

public static java.lang.String decodeContent(java.lang.String sValue)
Decode an element's content value.
Parameters:
sValue - the content value to decode
Returns:
the attribute value in its decoded form

encodeUri

public static java.lang.String encodeUri(java.lang.String sUri)
Encode a System Identifier as per the XML 1.0 Specification second edition, section 4.2.2.
Parameters:
sUri - the URI to encode
Returns:
the encoded URI

decodeUri

public static java.lang.String decodeUri(java.lang.String sUri)
Decode a System Identifier as per the XML 1.0 Specification 2nd ed section 4.2.2.
Parameters:
sUri - the URI to decode
Returns:
the decoded URI

quote

public static java.lang.String quote(java.lang.String s)
XML quote the passed string.
Parameters:
s - the string to quote
Returns:
the quoted string

getAbsolutePath

public static java.lang.String getAbsolutePath(XmlElement xml)
Get the '/'-delimited path of the passed element starting from the root element.
Parameters:
xml - an XML element
Returns:
the path to the passed element in "absolute" format

isEmpty

public static boolean isEmpty(XmlElement xml)
Check whether or not this element or any of its children elements have any content such as values or attributes.
Parameters:
xml - an XmlElement
Returns:
true iff the element itself and all of its children have neither values nor attributes

getElement

public static XmlElement getElement(XmlElement xml,
                                    java.lang.String sName)
Get a child element for the specified element. If multiple child elements exist that have the specified name, then the behavior of this method is undefined, and it is permitted to return any one of the matching elements, to return null, or to throw an arbitrary runtime exception.
Parameters:
xml - an XML element
sName - the name of the desired child element
Returns:
the specified element as an object implementing XmlElement, or null if the specified child element does not exist

findElement

public static XmlElement findElement(XmlElement xml,
                                     java.lang.String sPath)
Find a child element of the specified element with the specified '/'-delimited path.

The path format is based on file-system paths (not XPath).

While the path expressions look like XPath, the semantics are not the same as XPath. eg: in findElement "/" means the root element, after which the root element does not need to be specified, however in XPath, the root element name still needs to be specified after the "/".

If multiple child elements exist that have the specified name, then the behavior of this method is undefined, and it is permitted to return any one of the matching elements, to return null, or to throw an arbitrary runtime exception.

Parameters:
xml - an XML element
sPath - the path to follow to find the desired XML element
Returns:
the child element with the specified path or null if such a child element does not exist

findElement

public static XmlElement findElement(XmlElement xml,
                                     java.lang.String sPath,
                                     java.lang.Object oValue)
Find a child element of the specified element with the specified '/'-delimited path and specified value.

The path format is based on file-system paths (not XPath).

While the path expressions look like XPath, the semantics are not the same as XPath. eg: in findElement "/" means the root element, after which the root element does not need to be specified, however in XPath, the root element name still needs to be specified after the "/".

If multiple child elements exist that have the specified name and value, then this method returns any one of the matching elements

Parameters:
xml - an XML element
sPath - the path to follow to find the desired XML element
oValue - the value to match
Returns:
the child element with the specified path and value or null if the such a child element does not exist

ensureElement

public static XmlElement ensureElement(XmlElement xml,
                                       java.lang.String sPath)
Ensure that a child element exists. If any part of the path does not exist create new child elements to match the path.
Parameters:
xml - and XmlElement
sPath - element path
Returns:
the existing or new XmlElement object
Throws:
java.lang.IllegalArgumentException - if the name is null or if any part of the path is not a legal XML tag name
java.lang.UnsupportedOperationException - if any element in the path is immutable or otherwise can not add a child element
See Also:
findElement(XmlElement, String)

addElements

public static void addElements(XmlElement xml,
                               java.util.Iterator iter)
Add the elements from the iterator to the passed XML.
Parameters:
xml - an XmlElement object to add to
iter - an Iterator of zero or more XmlElement objects to add

removeElement

public static int removeElement(XmlElement xml,
                                java.lang.String sName)
Remove all immediate child elements with the given name
Parameters:
xml - an XmlElement
sName - child element name
Returns:
the number of removed child elements
Throws:
java.lang.UnsupportedOperationException - if the element is immutable or otherwise cannot remove a child element

removeEmptyElements

public static XmlElement removeEmptyElements(XmlElement xml)
Remove all empty descendant elements.
Parameters:
xml - the parent XmlElement
Returns:
the input XmlElement
Throws:
java.lang.UnsupportedOperationException - if the element is immutable or otherwise cannot remove a child element

replaceElement

public static boolean replaceElement(XmlElement xmlParent,
                                     XmlElement xmlReplace)
Replace a child element with the same name as the specified element. If the child element does not exist the specified element is just added.
Parameters:
xmlParent - parent XmlElement
xmlReplace - element to replace with
Returns:
true if matching child element has been found and replaced; false otherwise
Throws:
java.lang.UnsupportedOperationException - if the parent element is immutable or otherwise cannot remove a child element

overrideElement

public static void overrideElement(XmlElement xmlBase,
                                   XmlElement xmlOverride)
Override the values of the specified base element with values from the specified override element.

The values are only overridden if there is an exact match between the element paths and all attribute values. Empty override values are ignored. Override elements that do not match any of the base elements are just copied over. No ambiguity is allowed.

For example, if the base element has more then one child with the same name and attributes then the override is not allowed.

Parameters:
xmlBase - base XmlElement
xmlOverride - override XmlElement
Throws:
java.lang.UnsupportedOperationException - if the base element is immutable or there is ambiguity between the override and base elements

overrideElement

public static void overrideElement(XmlElement xmlBase,
                                   XmlElement xmlOverride,
                                   java.lang.String sIdAttrName)
Override the values of the specified base element with values from the specified override element.

The values are only overridden if there is an exact match between the element paths and an attribute value for the specified attribute name. Empty override values are ignored. Override elements that do not match any of the base elements are just copied over. No ambiguity is allowed.

For example, if the base element has more then one child with the same name and the specified attribute's value then the override is not allowed.

Parameters:
xmlBase - base XmlElement
xmlOverride - override XmlElement
sIdAttrName - attribute name that serves as an identifier allowing to match elements with the same name; if not specified all attributes have to match for an override
Throws:
java.lang.UnsupportedOperationException - if the base element is immutable or there is ambiguity between the override and base elements

replaceSystemProperties

public static void replaceSystemProperties(XmlElement xml,
                                           java.lang.String sPropertyAttribute)
Replace the values of the XmlElement and all its children that contain the specified attribute with the values returned by the System.getProperty() call.

This method iterates the specified XmlElement tree and for each element that contains the attribute with the specified name replaces its value with the value of the corresponding system property (if exists).

Parameters:
xml - the XmlElement to process
sPropertyAttribute - the name of the attribute that supplies the corresponding system property name

getSchemaLocations

public static java.util.List getSchemaLocations(XmlElement xml,
                                                java.lang.String sPrefix)
Retrieve a listing of schema locations (schemaLocation/noNamespaceSchemaLocation) URL's referenced in XmlElement and all of its children.
Parameters:
xml - the XmlElement to process
sPrefix - prefix of schema instances
Returns:
List of strings representing the schema location URL's

getNamespaceUri

public static java.lang.String getNamespaceUri(XmlElement xml,
                                               java.lang.String sPrefix)
Retrieve the Namespace URI for a given prefix in a context of the specified XmlElement.
Parameters:
xml - the XmlElement
sPrefix - the Namespace prefix
Returns:
the Namespace URI corresponding to the prefix

getNamespacePrefix

public static java.lang.String getNamespacePrefix(XmlElement xml,
                                                  java.lang.String sUri)
Retrieve the Namespace prefix for a given URI in a context of the specified XmlElement.
Parameters:
xml - the XmlElement
sUri - the Namespace URI
Returns:
the Namespace prefix corresponding to the URI

ensureNamespace

public static void ensureNamespace(XmlElement xml,
                                   java.lang.String sPrefix,
                                   java.lang.String sUri)
Ensure the existence of the Namespace declaration attribute in a context of the specified XmlElement.
Parameters:
xml - the XmlElement
sPrefix - the Namespace prefix
sUri - the Namespace URI

getUniversalName

public static java.lang.String getUniversalName(java.lang.String sLocal,
                                                java.lang.String sPrefix)
Return a universal XML element name.
Parameters:
sLocal - the local XML element name
sPrefix - the Namespace prefix
Returns:
the universal XML element name.
See Also:
XML Namespaces

isNameMatch

public static boolean isNameMatch(XmlElement xml,
                                  java.lang.String sName,
                                  java.lang.String sLocal,
                                  java.lang.String sUri)
Check whether or not a universal (composite) name matches to the specified local name and Namespace URI.
Parameters:
xml - the (context) XmlElement
sName - the universal name
sLocal - the local xml name
sUri - the Namespace URI
Returns:
true if the specified element matches to the specified local name and the specified Namespace URI.

isElementMatch

public static boolean isElementMatch(XmlElement xml,
                                     java.lang.String sLocal,
                                     java.lang.String sUri)
Check whether or not an element matches to the specified local name and Namespace URI.
Parameters:
xml - the XmlElement
sLocal - the local xml name
sUri - the Namespace URI
Returns:
true if the specified element matches to the specified local name and the specified Namespace URI.

getElement

public static XmlElement getElement(XmlElement xml,
                                    java.lang.String sLocal,
                                    java.lang.String sUri)
Get a child element of the specified XmlElement that matches to the specified local name and the specified Namespace URI.
Parameters:
xml - the parent XmlElement
sLocal - the local xml name
sUri - the Namespace URI
Returns:
an element that matches to the specified local name and the specified Namespace URI.

getAttribute

public static XmlValue getAttribute(XmlElement xml,
                                    java.lang.String sLocal,
                                    java.lang.String sUri)
Get an attribute of the specified XmlElement that matches to the specified local name and the specified Namespace URI.
Parameters:
xml - the XmlElement
sLocal - the local attribute name
sUri - the Namespace URI
Returns:
an XmlValue that matches to the specified local name and the specified Namespace URI.

getElements

public static java.util.Iterator getElements(XmlElement xml,
                                             java.lang.String sLocal,
                                             java.lang.String sUri)
Get an iterator of child elements of the specified XmlElement that match to the specified local name and the specified Namespace URI.
Parameters:
xml - the parent XmlElement
sLocal - the local xml name
sUri - the Namespace URI
Returns:
an iterator containing all matching child elements.

purgeNamespace

public static void purgeNamespace(XmlElement xml)
For the specified XmlElement purge the Namespace declarations that are declared somewhere up the xml tree.
Parameters:
xml - the XmlElement

purgeChildrenNamespace

public static void purgeChildrenNamespace(XmlElement xml)
For the children elements of the specified XmlElement purge the repetitive Namespace declarations.
Parameters:
xml - the XmlElement

parseInitParams

public static java.lang.Object[] parseInitParams(XmlElement xmlParams)
Parse the specified "init-params" element of the following structure:
 <!ELEMENT init-params (init-param*)>
 <!ELEMENT init-param ((param-name | param-type), param-value, description?)>
 
into an object array.

For the purpose of this method only the parameters that have the "param-type" element specified are processed. The following types are supported:

For any other [explicitly specified] types the corresponding "init-param" XmlElement itself is placed into the returned array.
Parameters:
xmlParams - the "init-params" XmlElement to parse
Returns:
an array of parameters

parseTime

public static long parseTime(XmlElement xml,
                             java.lang.String sName,
                             long cDefault)
Parse the String value of the child XmlElement with the given name as a time in milliseconds. If the specified child XmlElement does not exist or is empty, the specified default value is returned.
Parameters:
xml - the parent XmlElement
sName - the name of the child XmlElement
cDefault - the default value
Returns:
the time (in milliseconds) represented by the specified child XmlElement

parseInitParams

public static java.lang.Object[] parseInitParams(XmlElement xmlParams,
                                                 XmlHelper.ParameterResolver resolver)
Parse the specified "init-params" element of the following structure:
 <!ELEMENT init-params (init-param*)>
 <!ELEMENT init-param ((param-name | param-type), param-value, description?)>
 
into an object array.

For the purpose of this method only the parameters that have the "param-type" element specified are processed. The following types are supported:

For any other [explicitly specified] types the corresponding "init-param" XmlElement itself is placed into the returned array.
Parameters:
xmlParams - the "init-params" XmlElement to parse
resolver - a ParameterResolver to resolve "{macro}" values (optional)
Returns:
an array of parameters

transformInitParams

public static XmlElement transformInitParams(XmlElement xmlParent,
                                             XmlElement xmlParams)
Transform the specified "init-params" element of the following structure:
 <!ELEMENT init-params (init-param*)>
 <!ELEMENT init-param ((param-name | param-type), param-value, description?)>
 
into an XML element composed of the corresponding names. For example, the the "init-params" element of the following structure:
   <init-param>
      <param-name>NameOne</param-name>
      <param-value>ValueOne</param-value>
   </init-param>
   <init-param>
      <param-name>NameTwo</param-name>
      <param-value>ValueTwo</param-value>
   </init-param>
 
will transform into
   <NameOne>ValueOne</NameOne>
   <NameTwo>ValueTwo</NameTwo>
 
For the purpose of this method only the parameters that have the "param-name" element specified are processed.
Parameters:
xmlParent - the XML element to insert the transformed elements into
xmlParams - the "init-params" XmlElement to parse
Returns:
the resulting XmlElement (xmlParent)

encodeInitParams

public static XmlElement encodeInitParams(XmlElement xmlParent,
                                          XmlElement xmlConfig)
Encode the supplied xmlConfig XmlElement as a series of init-param elements. This operation is the inverse of transformInitParams.
Parameters:
xmlParent - the element in which to add the init-param elements
xmlConfig - the element to encode from
Returns:
the resulting XmlElement (xmlParent)

isInstanceConfigEmpty

public static boolean isInstanceConfigEmpty(XmlElement xmlClass)
Check whether or not the specified configuration defines an instance of a class. The specified XmlElement should be of the same structure as used in the createInstance() method.
Parameters:
xmlClass - the XML element that contains the instantiation info
Returns:
true iff there is no class configuration information available

createInstance

public static java.lang.Object createInstance(XmlElement xml,
                                              java.lang.ClassLoader loader,
                                              XmlHelper.ParameterResolver resolver)
Create an instance of the class configured using an XmlElement of the following structure:
   <!ELEMENT ... (class-name | (class-factory-name, method-name), init-params?>
   <!ELEMENT init-params (init-param*)>
   <!ELEMENT init-param ((param-name | param-type), param-value, description?)>
 
As of Coherence 3.6 the supplied element may specify all of the above elements within an <instance> element.
Parameters:
xml - the XML element that contains the instantiation info
loader - a ClassLoader that should be used to load necessary classes (optional)
resolver - a ParameterResolver to resolve "{macro}" values (optional)
Returns:
an object instantiated or obtained based on the class configuration

createInstance

public static java.lang.Object createInstance(XmlElement xml,
                                              java.lang.ClassLoader loader,
                                              XmlHelper.ParameterResolver resolver,
                                              java.lang.Class clzAssignable)
Create an instance of the class configured using an XmlElement of the following structure:
   <!ELEMENT ... (class-name | (class-factory-name, method-name), init-params?>
   <!ELEMENT init-params (init-param*)>
   <!ELEMENT init-param ((param-name | param-type), param-value, description?)>
 
As of Coherence 3.6 the supplied element may also be of the following format:
 <!ELEMENT instance>
 
where the "instance" format is the same as above.
Parameters:
xml - the XML element that contains the instantiation info
loader - a ClassLoader that should be used to load necessary classes (optional)
resolver - a ParameterResolver to resolve "{macro}" values (optional)
clzAssignable - if non-null, this method will validate that the Class is assignable from the loaded Class
Returns:
an object instantiated or obtained based on the class configuration

hashElement

public static int hashElement(XmlElement xml)
Provide a hash value for the XML element and all of its contained information. The hash value is defined as a xor of the following:
Parameters:
xml - the XML element
Returns:
the hash value for the XML element

hashValue

public static int hashValue(XmlValue val)
Provide a hash value for the XML value. The hash value is defined as one of the following:
  1. 0 if getValue() returns null
  2. otherwise the hash value is the hashCode() of the string representation of the value
Parameters:
val - the XML value
Returns:
the hash value for the XML value

equalsElement

public static boolean equalsElement(XmlElement xml1,
                                    XmlElement xml2)
Compare one XML element with another XML element for equality.
Parameters:
xml1 - a non-null XmlElement object
xml2 - a non-null XmlElement object
Returns:
true if the elements are equal, false otherwise

equalsValue

public static boolean equalsValue(XmlValue val1,
                                  XmlValue val2)
Compare one XML value with another XML value for equality.
Parameters:
val1 - a non-null XmlValue object
val2 - a non-null XmlValue object
Returns:
true if the values are equal, false otherwise

toString

public static java.lang.String toString(XmlSerializable xml)
Return the XML of an XmlSerializable object as a String.
Parameters:
xml - an object that can serialize itself into XML
Returns:
a String description of the object

convert

public static java.lang.Object convert(java.lang.Object o,
                                       int nType)
Convert the passed Object to the specified type.
Parameters:
o - the object value or null
nType - the enumerated type to convert to
Returns:
an object of the specified type

Skip navigation links

Oracle® Coherence Java API Reference
Release 12.1.2.0.3

E26043-02


Copyright © 2000, 2014, Oracle and/or its affiliates. All rights reserved.