Class XMLUtils

java.lang.Object
org.opengis.cite.gpkg12.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.
    • 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.
    • 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.
    • 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.
    • 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.
    • evaluateXQuery

      public static net.sf.saxon.s9api.XdmValue evaluateXQuery(Source source, String query, Map<String,String> nsBindings) throws net.sf.saxon.s9api.SaxonApiException
      Evaluates an XQuery 1.0 expression using the Saxon s9api interfaces.
      Parameters:
      source - The XML Source.
      query - The query expression.
      nsBindings - A collection of namespace bindings required to evaluate the query, where each entry maps a namespace URI (key) to a prefix (value).
      Returns:
      An XdmValue object representing a value in the XDM data model.
      Throws:
      net.sf.saxon.s9api.SaxonApiException - If an error occurs while evaluating the query (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.
    • expandReferencesInText

      public static String expandReferencesInText(String value)
      Expands character entity (&name;) and numeric references ( &#xhhhh; or &dddd;) that occur within a given string value. It may be necessary to do this before processing an XPath expression.
      Parameters:
      value - A string representing text content.
      Returns:
      A string with all included references expanded.
    • importElement

      public static Document importElement(Element elem)
      Creates a DOM Document with the given Element as the document element. A deep copy of the element is imported; the source element is not altered.
      Parameters:
      elem - An Element node.
      Returns:
      A Document node.
    • asList

      public static List<Node> asList(NodeList nodeList)
      Returns a List view of the nodes in the given NodeList collection.
      Parameters:
      nodeList - An ordered collection of DOM nodes.
      Returns:
      A List containing the original sequence of Node objects.