org.keycloak.saml.common.util

## Class DocumentUtil

- java.lang.Object
- - org.keycloak.saml.common.util.DocumentUtil

- Direct Known Subclasses:
    DocumentUtil

      public class DocumentUtil
      extends Object

  Utility dealing with DOM
  Since:
    Jan 14, 2009
  Author:
    Anil.Saldhana@redhat.com

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `feature_disallow_doctype_decl`
    `static String` | `feature_external_general_entities`
    `static String` | `feature_external_parameter_entities`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DocumentUtil()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static String` | `asString(Document doc)` Get the document as a string while ignoring any exceptions
    `static Document` | `createDocument()` Create a new document
    `static Document` | `createDocumentWithBaseNamespace(String baseNamespace, String localPart)` Create a document with the root element of the form <someElement xmlns="customNamespace"
    `static Element` | `getChildElement(Element doc, QName elementQName)` Get an child element from the parent element given its `QName`
    `static Element` | `getDirectChildElement(Element parent, String targetNamespace, String targetLocalName)` Get a (direct) child Element from the parent Element.
    `static Document` | `getDocument(File file)` Get Document from a file
    `static Document` | `getDocument(InputStream is)` Get Document from an inputstream
    `static Document` | `getDocument(Reader reader)` Parse a document from a reader
    `static Document` | `getDocument(String docString)` Parse a document from the string
    `static String` | `getDocumentAsString(Document signedDoc)` Marshall a document into a String
    `static DocumentBuilder` | `getDocumentBuilder()`
    `static Element` | `getElement(Document doc, QName elementQName)` Get an element from the document given its `QName`
    `static InputStream` | `getNodeAsStream(Node node)` Stream a DOM Node as an input stream
    `static String` | `getNodeAsString(Node node)` Marshall a DOM Node into a String
    `static InputStream` | `getSourceAsStream(Source source)` Get the `Source` as an `InputStream`
    `static Source` | `getXMLSource(Document doc)` Get a `Source` given a `Document`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### feature_external_general_entities

          public static final String feature_external_general_entities

      See Also:
        Constant Field Values

    - #### feature_external_parameter_entities

          public static final String feature_external_parameter_entities

      See Also:
        Constant Field Values

    - #### feature_disallow_doctype_decl

          public static final String feature_disallow_doctype_decl

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### DocumentUtil

          public DocumentUtil()

  - ### Method Detail

    - #### createDocument

          public static Document createDocument()
                                         throws ConfigurationException

      Create a new document
      Returns:
      Throws:
        `ParserConfigurationException`
        `ConfigurationException`

    - #### createDocumentWithBaseNamespace

          public static Document createDocumentWithBaseNamespace(String baseNamespace,
                                                                 String localPart)
                                                          throws ProcessingException

      Create a document with the root element of the form <someElement xmlns="customNamespace"
      Parameters:
        `baseNamespace` -
      Returns:
      Throws:
        `ProcessingException`

    - #### getDocument

          public static Document getDocument(String docString)
                                      throws ConfigurationException,
                                             ParsingException,
                                             ProcessingException

      Parse a document from the string
      Parameters:
        `docString` -
      Returns:
      Throws:
        `IOException`
        `SAXException`
        `ParserConfigurationException`
        `ConfigurationException`
        `ParsingException`
        `ProcessingException`

    - #### getDocument

          public static Document getDocument(Reader reader)
                                      throws ConfigurationException,
                                             ProcessingException,
                                             ParsingException

      Parse a document from a reader
      Parameters:
        `reader` -
      Returns:
      Throws:
        `ParsingException`
        `ParserConfigurationException`
        `IOException`
        `SAXException`
        `ConfigurationException`
        `ProcessingException`

    - #### getDocument

          public static Document getDocument(File file)
                                      throws ConfigurationException,
                                             ProcessingException,
                                             ParsingException

      Get Document from a file
      Parameters:
        `file` -
      Returns:
      Throws:
        `ParserConfigurationException`
        `IOException`
        `SAXException`
        `ConfigurationException`
        `ProcessingException`
        `ParsingException`

    - #### getDocument

          public static Document getDocument(InputStream is)
                                      throws ConfigurationException,
                                             ProcessingException,
                                             ParsingException

      Get Document from an inputstream
      Parameters:
        `is` -
      Returns:
      Throws:
        `ParserConfigurationException`
        `IOException`
        `SAXException`
        `ConfigurationException`
        `ProcessingException`
        `ParsingException`

    - #### getDocumentAsString

          public static String getDocumentAsString(Document signedDoc)
                                            throws ProcessingException,
                                                   ConfigurationException

      Marshall a document into a String
      Parameters:
        `signedDoc` -
      Returns:
      Throws:
        `TransformerFactoryConfigurationError`
        `TransformerException`
        `ProcessingException`
        `ConfigurationException`

    - #### getNodeAsString

          public static String getNodeAsString(Node node)
                                        throws ProcessingException,
                                               ConfigurationException

      Marshall a DOM Node into a String
      Parameters:
        `node` -
      Returns:
      Throws:
        `ProcessingException`
        `ConfigurationException`

    - #### getElement

          public static Element getElement(Document doc,
                                           QName elementQName)

      Get an element from the document given its `QName`

      First an attempt to get the element based on its namespace is made, failing which an element with the localpart ignoring any namespace is returned.

      Parameters:
        `doc` -
        `elementQName` -
      Returns:

    - #### getChildElement

          public static Element getChildElement(Element doc,
                                                QName elementQName)

      Get an child element from the parent element given its `QName`

      First an attempt to get the element based on its namespace is made, failing which an element with the localpart ignoring any namespace is returned.

      Parameters:
        `doc` -
        `elementQName` -
      Returns:

    - #### getNodeAsStream

          public static InputStream getNodeAsStream(Node node)
                                             throws ConfigurationException,
                                                    ProcessingException

      Stream a DOM Node as an input stream
      Parameters:
        `node` -
      Returns:
      Throws:
        `TransformerFactoryConfigurationError`
        `TransformerException`
        `ConfigurationException`
        `ProcessingException`

    - #### getSourceAsStream

          public static InputStream getSourceAsStream(Source source)
                                               throws ConfigurationException,
                                                      ProcessingException

      Get the `Source` as an `InputStream`
      Parameters:
        `source` -
      Returns:
      Throws:
        `ConfigurationException`
        `ProcessingException`

    - #### getXMLSource

          public static Source getXMLSource(Document doc)

      Get a `Source` given a `Document`
      Parameters:
        `doc` -
      Returns:

    - #### asString

          public static String asString(Document doc)

      Get the document as a string while ignoring any exceptions
      Parameters:
        `doc` -
      Returns:

    - #### getDocumentBuilder

          public static DocumentBuilder getDocumentBuilder()
                                                    throws ParserConfigurationException

      Throws:
        `ParserConfigurationException`

    - #### getDirectChildElement

          public static Element getDirectChildElement(Element parent,
                                                      String targetNamespace,
                                                      String targetLocalName)

      Get a (direct) child Element from the parent Element.
      Parameters:
        `parent` - parent element
        `targetNamespace` - namespace URI
        `targetLocalName` - local name
      Returns:
        a child element matching the target namespace and localname, where Node.getParentNode() is the parent input parameter

Copyright © 2021 JBoss by Red Hat. All rights reserved.