Package org.apache.cxf.jaxrs.ext.xml
Class XMLSource
- java.lang.Object
-
- org.apache.cxf.jaxrs.ext.xml.XMLSource
-
public class XMLSource extends Object
Utility class for manipulating XML response using XPath and XSLT
-
-
Constructor Summary
Constructors Constructor Description XMLSource(InputStream is)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description URI
getBaseURI()
Returns the value of the xml:base attribute, if any.URI
getLink(String expression)
Find an attribute or text node representing an absolute or relative link and convert it to URIURI
getLink(String expression, Map<String,String> namespaces)
Find an attribute or text node representing an absolute or relative link and convert it to URIURI[]
getLinks(String expression, Map<String,String> namespaces)
Find attributes or text nodes representing absolute or relative links and convert them to URIs<T> T
getNode(String expression, Class<T> cls)
Find the matching XML node and convert it into an instance of the provided class.<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.<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.<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.String
getValue(String expression)
Find the attribute or simple/text nodeString
getValue(String expression, Map<String,String> namespaces)
Find the attribute or simple/text node<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.String[]
getValues(String expression)
Find the attributes or simple/text nodesString[]
getValues(String expression, Map<String,String> namespaces)
Find the attributes or simple/text nodesvoid
setBuffering()
Allows for multiple queries against the same stream by buffering to DOM
-
-
-
Constructor Detail
-
XMLSource
public XMLSource(InputStream is)
-
-
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 expressioncls
- 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 expressionnamespaces
- 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 expressioncls
- 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 expressionnamespaces
- 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 expressionnamespaces
- 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 expressionnamespaces
- 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 expressionnamespaces
- 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 expressionnamespaces
- 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 expressionnamespaces
- 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
-
-