Package eu.europa.esig.dss
Class DomUtils
java.lang.Object
eu.europa.esig.dss.DomUtils
public final class DomUtils extends Object
-
Field Summary
Fields Modifier and Type Field Description static int
TRANSFORMER_INDENT_NUMBER
-
Method Summary
Modifier and Type Method Description static Element
addElement(Document document, Element parentDom, DSSNamespace namespace, DSSElement element)
This method creates and adds a new XMLElement
static void
addNamespaceAttribute(Element element, DSSNamespace namespace)
static Element
addTextElement(Document document, Element parentDom, DSSNamespace namespace, DSSElement element, String value)
This method creates and adds a new XMLElement
with text valuestatic Document
buildDOM()
Creates the new empty Document.static Document
buildDOM(byte[] bytes)
This method returns theDocument
created based on byte array.static Document
buildDOM(DSSDocument dssDocument)
This method returns theDocument
created based on theDSSDocument
.static Document
buildDOM(InputStream inputStream)
This method returns theDocument
created based on the XML inputStream.static Document
buildDOM(String xmlString)
This method returns theDocument
created based on the XML string.static DSSDocument
createDssDocumentFromDomDocument(Document document, String name)
This method creates a new InMemoryDocument with theDocument
content and the given namestatic Element
createElementNS(Document documentDom, DSSNamespace namespace, DSSElement element)
static XMLGregorianCalendar
createXMLGregorianCalendar(Date date)
Converts a givenDate
to a newXMLGregorianCalendar
.static XPathExpression
createXPathExpression(String xpathString)
This method creates a new instance of XPathExpression with the given xpath expressionstatic void
disableFeature(String feature)
Disables a feature for the DocumentBuilderFactorystatic void
enableFeature(String feature)
Enables a feature for the DocumentBuilderFactorystatic List<String>
getChildrenNames(Node xmlNode, String xPathString)
This method returns the list of children's names for a givenNode
.static Map<String,String>
getCurrentNamespaces()
This method returns stored namespace definitionsstatic Date
getDate(String text)
This method allows to convert the given text (XML representation of a date) to theDate
.static Element
getElement(Node xmlNode, String xPathString)
Returns the Element corresponding to the XPath query.static String
getId(String uri)
static Node
getNode(Node xmlNode, String xPathString)
Returns the Node corresponding to the XPath query.static NodeList
getNodeList(Node xmlNode, String xPathString)
Returns the NodeList corresponding to the XPath query.static Transformer
getSecureTransformer()
This method returns a new instance of Transformer with secured features enabledstatic TransformerFactory
getSecureTransformerFactory()
This method returns a new instance of TransformerFactory with secured features enabledstatic String
getValue(Node xmlNode, String xPathString)
Returns the String value of the corresponding to the XPath query.static String
getXPathByIdAttribute(String uri)
Returns case-insensitive xPath expressionstatic boolean
isDOM(byte[] bytes)
This method returns true if the binaries contains aDocument
static boolean
isElementReference(String uri)
Returns TRUE if the provideduri
refers to an element in the signaturestatic boolean
isNotEmpty(Node xmlNode, String xPathString)
Returns true if the xpath query contains somethingstatic boolean
isXPointerQuery(String uriValue)
Indicates if the given URI is an XPointer query.static boolean
registerNamespace(DSSNamespace namespace)
This method allows to register a namespace and associated prefix.static void
setAttributeNS(Element element, DSSNamespace namespace, DSSAttribute attribute, String value)
This method adds an attribute with the namespace and the valuestatic void
setTextNode(Document document, Element parentDom, String text)
This method sets a text node to the given DOM element.static void
writeDocumentTo(Document dom, OutputStream os)
This method writes theDocument
content to an outputStreamstatic String
xmlToString(Node node)
This method allows to convert an XMLNode
to aString
.
-
Field Details
-
TRANSFORMER_INDENT_NUMBER
public static final int TRANSFORMER_INDENT_NUMBER- See Also:
- Constant Field Values
-
-
Method Details
-
enableFeature
Enables a feature for the DocumentBuilderFactory- Parameters:
feature
-String
feature name (URL) to enable- Throws:
ParserConfigurationException
-
disableFeature
Disables a feature for the DocumentBuilderFactory- Parameters:
feature
-String
feature name (URL) to disable- Throws:
ParserConfigurationException
-
registerNamespace
This method allows to register a namespace and associated prefix. If the prefix exists already it is replaced.- Parameters:
namespace
- namespace object with the prefix and the URI- Returns:
- true if this map did not already contain the specified element
-
getSecureTransformerFactory
This method returns a new instance of TransformerFactory with secured features enabled- Returns:
- an instance of TransformerFactory with enabled secure features
-
getSecureTransformer
This method returns a new instance of Transformer with secured features enabled- Returns:
- an instance of Transformer with enabled secure features
-
buildDOM
Creates the new empty Document.- Returns:
- a new empty Document
-
buildDOM
This method returns theDocument
created based on the XML string.- Parameters:
xmlString
- The string representing the dssDocument to be created.- Returns:
- a new
Document
with the xmlString content
-
buildDOM
This method returns theDocument
created based on byte array.- Parameters:
bytes
- The bytes array representing the dssDocument to be created.- Returns:
- a new
Document
with the bytes content
-
buildDOM
This method returns theDocument
created based on theDSSDocument
.- Parameters:
dssDocument
- The DSS representation of the document from which the dssDocument is created.- Returns:
- a new
Document
fromDSSDocument
-
isDOM
public static boolean isDOM(byte[] bytes)This method returns true if the binaries contains aDocument
- Parameters:
bytes
- the binaries to be tested- Returns:
- true if the binaries is a XML
-
buildDOM
This method returns theDocument
created based on the XML inputStream.- Parameters:
inputStream
- The inputStream stream representing the dssDocument to be created.- Returns:
- a new
Document
fromInputStream
@
-
setAttributeNS
public static void setAttributeNS(Element element, DSSNamespace namespace, DSSAttribute attribute, String value)This method adds an attribute with the namespace and the value- Parameters:
element
- the element where the attribute is needednamespace
- the used namespace for the attributeattribute
- the attribute the be addedvalue
- the value for the given attribute
-
addElement
public static Element addElement(Document document, Element parentDom, DSSNamespace namespace, DSSElement element)This method creates and adds a new XMLElement
- Parameters:
document
- root documentparentDom
- parent nodenamespace
- namespace definitionelement
- the type of element name- Returns:
- added element
-
createXPathExpression
This method creates a new instance of XPathExpression with the given xpath expression- Parameters:
xpathString
- XPath query string- Returns:
- an instance of
XPathExpression
for the given xpathString @ if
-
getValue
Returns the String value of the corresponding to the XPath query.- Parameters:
xmlNode
- The node where the search should be performed.xPathString
- XPath query string- Returns:
- string value of the XPath query
-
getNodeList
Returns the NodeList corresponding to the XPath query.- Parameters:
xmlNode
- The node where the search should be performed.xPathString
- XPath query string- Returns:
- the NodeList corresponding to the XPath query
-
getNode
Returns the Node corresponding to the XPath query.- Parameters:
xmlNode
- The node where the search should be performed.xPathString
- XPath query string- Returns:
- the Node corresponding to the XPath query.
-
getElement
Returns the Element corresponding to the XPath query.- Parameters:
xmlNode
- The node where the search should be performed.xPathString
- XPath query string- Returns:
- the Element corresponding to the XPath query
-
isNotEmpty
Returns true if the xpath query contains something- Parameters:
xmlNode
- the current nodexPathString
- the expected child node- Returns:
- true if the current node has any filled child node
-
addTextElement
public static Element addTextElement(Document document, Element parentDom, DSSNamespace namespace, DSSElement element, String value)This method creates and adds a new XMLElement
with text value- Parameters:
document
- root documentparentDom
- parent nodenamespace
- namespaceelement
- element typevalue
- element text node value- Returns:
- added element
-
setTextNode
This method sets a text node to the given DOM element.- Parameters:
document
- root documentparentDom
- parent nodetext
- text to be added
-
createXMLGregorianCalendar
Converts a givenDate
to a newXMLGregorianCalendar
.- Parameters:
date
- the date to be converted- Returns:
- the new
XMLGregorianCalendar
or null
-
getDate
This method allows to convert the given text (XML representation of a date) to theDate
.- Parameters:
text
- the text representing the XML date- Returns:
Date
converted or null
-
getChildrenNames
This method returns the list of children's names for a givenNode
.- Parameters:
xmlNode
- The node where the search should be performed.xPathString
- XPath query string- Returns:
List
of children's names
-
writeDocumentTo
This method writes theDocument
content to an outputStream- Parameters:
dom
- theDocument
to be writedos
- the OutputStream @ if any error occurred
-
createDssDocumentFromDomDocument
This method creates a new InMemoryDocument with theDocument
content and the given name- Parameters:
document
- theDocument
to storename
- the ouput filename- Returns:
- a new instance of InMemoryDocument with the XML and the given filename
-
xmlToString
This method allows to convert an XMLNode
to aString
.- Parameters:
node
-Node
to be converted- Returns:
String
representation of the node
-
getCurrentNamespaces
This method returns stored namespace definitions- Returns:
- a map with the prefix and the related URI
-
getXPathByIdAttribute
Returns case-insensitive xPath expression- Parameters:
uri
- to find- Returns:
String
xPath expression
-
getId
-
isElementReference
Returns TRUE if the provideduri
refers to an element in the signature- Parameters:
uri
-String
to be checked- Returns:
- TRUE if
uri
is referred to an element, FALSE otherwise
-
isXPointerQuery
Indicates if the given URI is an XPointer query.- Parameters:
uriValue
- URI to be analysed- Returns:
- true if it is an XPointer query
-
createElementNS
public static Element createElementNS(Document documentDom, DSSNamespace namespace, DSSElement element) -
addNamespaceAttribute
-