Class DomUtils

java.lang.Object
eu.europa.esig.dss.DomUtils

public final class DomUtils
extends Object
  • Field Details

  • Method Details

    • enableFeature

      public static void enableFeature​(String feature) throws ParserConfigurationException
      Enables a feature for the DocumentBuilderFactory
      Parameters:
      feature - String feature name (URL) to enable
      Throws:
      ParserConfigurationException
    • disableFeature

      public static void disableFeature​(String feature) throws ParserConfigurationException
      Disables a feature for the DocumentBuilderFactory
      Parameters:
      feature - String feature name (URL) to disable
      Throws:
      ParserConfigurationException
    • registerNamespace

      public static boolean registerNamespace​(DSSNamespace namespace)
      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

      public static TransformerFactory getSecureTransformerFactory()
      This method returns a new instance of TransformerFactory with secured features enabled
      Returns:
      an instance of TransformerFactory with enabled secure features
    • getSecureTransformer

      public static Transformer getSecureTransformer()
      This method returns a new instance of Transformer with secured features enabled
      Returns:
      an instance of Transformer with enabled secure features
    • buildDOM

      public static Document buildDOM()
      Creates the new empty Document.
      Returns:
      a new empty Document
    • buildDOM

      public static Document buildDOM​(String xmlString)
      This method returns the Document 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

      public static Document buildDOM​(byte[] bytes)
      This method returns the Document 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

      public static Document buildDOM​(DSSDocument dssDocument)
      This method returns the Document created based on the DSSDocument.
      Parameters:
      dssDocument - The DSS representation of the document from which the dssDocument is created.
      Returns:
      a new Document from DSSDocument
    • isDOM

      public static boolean isDOM​(byte[] bytes)
      This method returns true if the binaries contains a Document
      Parameters:
      bytes - the binaries to be tested
      Returns:
      true if the binaries is a XML
    • buildDOM

      public static Document buildDOM​(InputStream inputStream)
      This method returns the Document created based on the XML inputStream.
      Parameters:
      inputStream - The inputStream stream representing the dssDocument to be created.
      Returns:
      a new Document from InputStream @
    • 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 needed
      namespace - the used namespace for the attribute
      attribute - the attribute the be added
      value - 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 XML Element
      Parameters:
      document - root document
      parentDom - parent node
      namespace - namespace definition
      element - the type of element name
      Returns:
      added element
    • createXPathExpression

      public static XPathExpression createXPathExpression​(String xpathString)
      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

      public static String getValue​(Node xmlNode, String xPathString)
      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

      public static NodeList getNodeList​(Node xmlNode, String xPathString)
      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

      public static Node getNode​(Node xmlNode, String xPathString)
      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

      public static Element getElement​(Node xmlNode, String xPathString)
      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

      public static boolean isNotEmpty​(Node xmlNode, String xPathString)
      Returns true if the xpath query contains something
      Parameters:
      xmlNode - the current node
      xPathString - 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 XML Element with text value
      Parameters:
      document - root document
      parentDom - parent node
      namespace - namespace
      element - element type
      value - element text node value
      Returns:
      added element
    • setTextNode

      public static void setTextNode​(Document document, Element parentDom, String text)
      This method sets a text node to the given DOM element.
      Parameters:
      document - root document
      parentDom - parent node
      text - text to be added
    • createXMLGregorianCalendar

      public static XMLGregorianCalendar createXMLGregorianCalendar​(Date date)
      Converts a given Date to a new XMLGregorianCalendar.
      Parameters:
      date - the date to be converted
      Returns:
      the new XMLGregorianCalendar or null
    • getDate

      public static Date getDate​(String text)
      This method allows to convert the given text (XML representation of a date) to the Date.
      Parameters:
      text - the text representing the XML date
      Returns:
      Date converted or null
    • getChildrenNames

      public static List<String> getChildrenNames​(Node xmlNode, String xPathString)
      This method returns the list of children's names for a given Node.
      Parameters:
      xmlNode - The node where the search should be performed.
      xPathString - XPath query string
      Returns:
      List of children's names
    • writeDocumentTo

      public static void writeDocumentTo​(Document dom, OutputStream os)
      This method writes the Document content to an outputStream
      Parameters:
      dom - the Document to be writed
      os - the OutputStream @ if any error occurred
    • createDssDocumentFromDomDocument

      public static DSSDocument createDssDocumentFromDomDocument​(Document document, String name)
      This method creates a new InMemoryDocument with the Document content and the given name
      Parameters:
      document - the Document to store
      name - the ouput filename
      Returns:
      a new instance of InMemoryDocument with the XML and the given filename
    • xmlToString

      public static String xmlToString​(Node node)
      This method allows to convert an XML Node to a String.
      Parameters:
      node - Node to be converted
      Returns:
      String representation of the node
    • getCurrentNamespaces

      public static Map<String,​String> getCurrentNamespaces()
      This method returns stored namespace definitions
      Returns:
      a map with the prefix and the related URI
    • getXPathByIdAttribute

      public static String getXPathByIdAttribute​(String uri)
      Returns case-insensitive xPath expression
      Parameters:
      uri - to find
      Returns:
      String xPath expression
    • getId

      public static String getId​(String uri)
    • isElementReference

      public static boolean isElementReference​(String uri)
      Returns TRUE if the provided uri 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

      public static boolean isXPointerQuery​(String uriValue)
      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

      public static void addNamespaceAttribute​(Element element, DSSNamespace namespace)