Class XMLSource


  • public class XMLSource
    extends Object
    Utility class for manipulating XML response using XPath and XSLT
    • Constructor Detail

    • Method Detail

      • setBuffering

        public void setBuffering()
        Allows for multiple queries against the same stream by buffering to DOM
      • getNode

        public <T> T getNode​(String expression,
                             Class<T> cls)
        Find the matching XML node and convert it into an instance of the provided class. The default JAXB MessageBodyReader is currently used in case of non-primitive types.
        Parameters:
        expression - XPath expression
        cls - class of the node
        Returns:
        the instance representing the matching node
      • getNode

        public <T> T getNode​(String expression,
                             Map<String,​String> namespaces,
                             Class<T> cls)
        Find the matching XML node and convert it into an instance of the provided class. The default JAXB MessageBodyReader is currently used in case of non-primitive types.
        Parameters:
        expression - XPath expression
        namespaces - the namespaces map, prefixes which are used in the XPath expression are the keys, namespace URIs are the values; note, the prefixes do not have to match the actual ones used in the XML instance.
        cls - class of the node
        Returns:
        the instance representing the matching node
      • getNodes

        public <T> T[] getNodes​(String expression,
                                Class<T> cls)
        Find the list of matching XML nodes and convert them into an array of instances of the provided class. The default JAXB MessageBodyReader is currently used in case of non-primitive types.
        Parameters:
        expression - XPath expression
        cls - class of the node
        Returns:
        the array of instances representing the matching nodes
      • getNodes

        public <T> T[] getNodes​(String expression,
                                Map<String,​String> namespaces,
                                Class<T> cls)
        Find the list of matching XML nodes and convert them into an array of instances of the provided class. The default JAXB MessageBodyReader is currently used in case of non-primitive types.
        Parameters:
        expression - XPath expression
        namespaces - the namespaces map, prefixes which are used in the XPath expression are the keys, namespace URIs are the values; note, the prefixes do not have to match the actual ones used in the XML instance.
        cls - class of the node
        Returns:
        the array of instances representing the matching nodes
      • getLink

        public URI getLink​(String expression)
        Find an attribute or text node representing an absolute or relative link and convert it to URI
        Parameters:
        expression - the XPath expression
        Returns:
        the link
      • getLink

        public URI getLink​(String expression,
                           Map<String,​String> namespaces)
        Find an attribute or text node representing an absolute or relative link and convert it to URI
        Parameters:
        expression - the XPath expression
        namespaces - the namespaces map, prefixes which are used in the XPath expression are the keys, namespace URIs are the values; note, the prefixes do not have to match the actual ones used in the XML instance.
        Returns:
        the link
      • getLinks

        public URI[] getLinks​(String expression,
                              Map<String,​String> namespaces)
        Find attributes or text nodes representing absolute or relative links and convert them to URIs
        Parameters:
        expression - the XPath expression
        namespaces - the namespaces map, prefixes which are used in the XPath expression are the keys, namespace URIs are the values; note, the prefixes do not have to match the actual ones used in the XML instance.
        Returns:
        the links
      • getBaseURI

        public URI getBaseURI()
        Returns the value of the xml:base attribute, if any. This can be used to calculate an absolute URI provided the links in the actual XML instance are relative.
        Returns:
        the xml:base value
      • getValue

        public String getValue​(String expression)
        Find the attribute or simple/text node
        Parameters:
        expression - the XPath expression
        Returns:
        the value of the matching node
      • getValue

        public String getValue​(String expression,
                               Map<String,​String> namespaces)
        Find the attribute or simple/text node
        Parameters:
        expression - the XPath expression
        namespaces - the namespaces map, prefixes which are used in the XPath expression are the keys, namespace URIs are the values; note, the prefixes do not have to match the actual ones used in the XML instance.
        Returns:
        the value of the matching node
      • getValues

        public String[] getValues​(String expression)
        Find the attributes or simple/text nodes
        Parameters:
        expression - the XPath expression
        Returns:
        the values of the matching nodes
      • getValues

        public String[] getValues​(String expression,
                                  Map<String,​String> namespaces)
        Find the attributes or simple/text nodes
        Parameters:
        expression - the XPath expression
        namespaces - the namespaces map, prefixes which are used in the XPath expression are the keys, namespace URIs are the values; note, the prefixes do not have to match the actual ones used in the XML instance.
        Returns:
        the values of the matching nodes
      • getValue

        public <T> T getValue​(String expression,
                              Map<String,​String> namespaces,
                              Class<T> cls)
        Find the attribute or simple/text node and convert the string value to the instance of the provided class, example, Integer.class.
        Parameters:
        expression - the XPath expression
        namespaces - the namespaces map, prefixes which are used in the XPath expression are the keys, namespace URIs are the values; note, the prefixes do not have to match the actual ones used in the XML instance.
        cls - the class of the response
        Returns:
        the value