Class XMLUtils

java.lang.Object
org.opengis.cite.iso19136.util.XMLUtils

public class XMLUtils extends Object
Provides various utility methods for accessing or manipulating XML representations.
  • Constructor Details

    • XMLUtils

      public XMLUtils()
  • Method Details

    • writeNodeToString

      public static String writeNodeToString(Node node)
      Writes the content of a DOM Node to a string. The XML declaration is omitted and the character encoding is set to "US-ASCII" (any character outside of this set is serialized as a numeric character reference).
      Parameters:
      node - The DOM Node to be serialized.
      Returns:
      A String representing the content of the given node.
    • resultToString

      public static String resultToString(Result result)
      Writes the result of a transformation to a String. An XML declaration is always omitted.
      Parameters:
      result - An object (DOMResult or StreamResult) that holds the result of a transformation, which may be XML or plain text.
      Returns:
      A String representing the content of the result; it may be empty if the content could not be read.
    • writeNode

      public static void writeNode(Node node, OutputStream outputStream)
      Writes the content of a DOM Node to a byte stream. An XML declaration is always omitted.
      Parameters:
      node - The DOM Node to be serialized.
      outputStream - The destination OutputStream reference.
    • evaluateXPath

      public static NodeList evaluateXPath(Node context, String expr, Map<String,String> namespaceBindings) throws XPathExpressionException
      Evaluates an XPath 1.0 expression using the given context and returns the result as a node set.
      Parameters:
      context - The context node.
      expr - An XPath expression.
      namespaceBindings - A collection of namespace bindings for the XPath expression, where each entry maps a namespace URI (key) to a prefix (value). Standard bindings do not need to be declared (see NamespaceBindings.withStandardBindings().
      Returns:
      A NodeList containing nodes that satisfy the expression (it may be empty).
      Throws:
      XPathExpressionException - If the expression cannot be evaluated for any reason.
    • evaluateXPath

      public static Object evaluateXPath(Node context, String expr, Map<String,String> namespaceBindings, QName returnType) throws XPathExpressionException
      Evaluates an XPath expression using the given context and returns the result as the specified type.

      Note: The Saxon implementation supports XPath 2.0 expressions when using the JAXP XPath APIs (the default implementation will throw an exception).

      Parameters:
      context - The context node.
      expr - An XPath expression.
      namespaceBindings - A collection of namespace bindings for the XPath expression, where each entry maps a namespace URI (key) to a prefix (value). Standard bindings do not need to be declared (see NamespaceBindings.withStandardBindings().
      returnType - The desired return type (as declared in XPathConstants ).
      Returns:
      The result converted to the desired returnType.
      Throws:
      XPathExpressionException - If the expression cannot be evaluated for any reason.
    • evaluateXPath

      public static Object evaluateXPath(Source source, String expr, Map<String,String> namespaceBindings, QName returnType) throws XPathExpressionException
      Evaluates an XPath 1.0 expression using the given Source object and returns the result as the specified type.
      Parameters:
      source - A Source object (not StAXSource) that supplies an XML entity.
      expr - An XPath expression.
      namespaceBindings - A collection of namespace bindings for the XPath expression, where each entry maps a namespace URI (key) to a prefix (value). Standard bindings do not need to be declared (see NamespaceBindings.withStandardBindings().
      returnType - The desired return type (as declared in XPathConstants ).
      Returns:
      The result converted to the desired returnType.
      Throws:
      XPathExpressionException - If the expression cannot be evaluated for any reason.
    • evaluateXPath2

      public static net.sf.saxon.s9api.XdmValue evaluateXPath2(Source xmlSource, String expr, Map<String,String> nsBindings) throws net.sf.saxon.s9api.SaxonApiException
      Evaluates an XPath 2.0 expression using the Saxon s9api interfaces.
      Parameters:
      xmlSource - The XML Source.
      expr - The XPath expression to be evaluated.
      nsBindings - A collection of namespace bindings required to evaluate the XPath expression, where each entry maps a namespace URI (key) to a prefix (value); this may be null if not needed.
      Returns:
      An XdmValue object representing a value in the XDM data model; this is a sequence of zero or more items, where each item is either an atomic value or a node.
      Throws:
      net.sf.saxon.s9api.SaxonApiException - If an error occurs while evaluating the expression; this always wraps some other underlying exception.
    • createElement

      public static Element createElement(QName qName)
      Creates a new Element having the specified qualified name. The element must be adopted when inserted into another Document.
      Parameters:
      qName - A QName object.
      Returns:
      An Element node (with a Document owner but no parent).
    • getElementsByNamespaceURI

      public static List<Element> getElementsByNamespaceURI(Node node, String namespaceURI)
      Returns a List of all descendant Element nodes having the specified [namespace name] property. The elements are listed in document order.
      Parameters:
      node - The node to search from.
      namespaceURI - An absolute URI denoting a namespace name.
      Returns:
      A List containing elements in the specified namespace; the list is empty if there are no elements in the namespace.
    • transform

      public static Document transform(Source xslt, Node source)
      Transforms the content of a DOM Node using a specified XSLT stylesheet.
      Parameters:
      xslt - A Source object representing a stylesheet (XSLT 1.0 or 2.0).
      source - A Node representing the XML source. If it is an Element node it will be imported into a new DOM Document.
      Returns:
      A DOM Document containing the result of the transformation.
    • getPropertyValue

      public static Node getPropertyValue(Node propertyNode)
      Reads the given property element and returns either (a) the child element, or (b) the XLink referent. If the xlink:href attribute is present an attempt will be made to dereference the URI value, which may contain a fragment identifier (a string that adheres to the XPointer syntax).
      Parameters:
      propertyNode - A property node; the value is supplied in-line or by reference.
      Returns:
      A DOM Node representing the property value, or null if it cannot be accessed or parsed.
    • getFragment

      public static Element getFragment(Document doc, String fragmentId)
      Extracts the specified fragment from the given XML source document. The fragment identifier is expected to conform to the W3C XPointer framework. However, only shorthand pointers are currently supported.

      In GML documents such pointers refer to the element that has a matching gml:id attribute value; this attribute is a schema-determined ID as defined in the XPointer specification.

      Parameters:
      doc - A DOM Document.
      fragmentId - A fragment identifier that adheres to the XPointer syntax.
      Returns:
      A copy of the matching Element, or null if no matching element was found.
      See Also: