Class XMLParser

java.lang.Object
br.ufsc.labsec.utils.XMLParser

public class XMLParser
extends Object
Classe auxiliar para tratar utilidades comuns a documentos XML
  • Field Details

    • SCHEMA

      public static final Schema SCHEMA
      Schema para verificação de assinaturas
    • TL_SCHEMA

      public static final Schema TL_SCHEMA
      Schema para verificação de listas confiáveis
  • Constructor Details

    • XMLParser

      public XMLParser()
  • Method Details

    • getElementsChildren

      public static List<Element> getElementsChildren​(NodeList nodeList)
      Responsável por tratar de todos os filhos e pegar apenas os nodos realmente (removendo elementos em branco, por exemplo)
      Parameters:
      nodeList - Lista de elementos que devem ser parseados
      Returns:
      Lista de elementos parseados
    • getFirstChildElement

      public static Element getFirstChildElement​(NodeList nodeList)
    • getLastChildElement

      public static Element getLastChildElement​(NodeList children)
    • wrapNodeList

      public static Iterable<Node> wrapNodeList​(NodeList nodeList)
    • wrapNodeList

      public static <T extends Node> Iterable<T> wrapNodeList​(NodeList nodeList, Class<T> clazz)
    • getFirstChildElement

      public static Element getFirstChildElement​(Element element)
      Responsável por pegar o primeiro filho que seja um elemento
      Parameters:
      element - Elemento ao qual deseja pegar o primeiro filho elemento
      Returns:
      Primeiro filho elemento
    • getSecondChildElement

      public static Element getSecondChildElement​(Element element)
      Responsável por pegar o segundo filho que seja um elemento
      Parameters:
      element - Elemento ao qual deseja pegar o primeiro filho elemento
      Returns:
      Primeiro filho elemento
    • getNthChildElement

      public static Element getNthChildElement​(Element element, int nth)
      Responsável por pegar o nth filho que seja um elemento
      Parameters:
      element - Elemento ao qual deseja pegar o primeiro filho elemento
      Returns:
      Primeiro filho elemento
    • getNthChildElement

      public static Element getNthChildElement​(NodeList children, int nth)
      Responsável por pegar o nth filho que seja um elemento
      Parameters:
      children - Elementos filho ao qual deseja pegar o nth
      Returns:
      Primeiro filho elemento
    • getLastChildElement

      public static Element getLastChildElement​(Element element)
      Responsável por pegar o último filho que seja um elemento
      Parameters:
      element - Elemento ao qual deseja pegar o último filho elemento
      Returns:
      Último filho elemento
    • getIdElement

      public static Optional<org.apache.commons.lang3.tuple.Pair<String,​String>> getIdElement​(Node node)
      Responsável por pegar o "Id" de determinado elemento. Esse método é necessário, pois ocorrem vários equívocos ao fazer tal atributo
      Parameters:
      node - Elemento que deseja pegar o identificador ("Id")
      Returns:
      Nome do atributo e valor do atributo de identificador
    • getIndexSibling

      public static int getIndexSibling​(Node node)
      Pega o índice de determinado nodo
      Parameters:
      node - Nodo que deseja pegar o índice
      Returns:
      Índice do nodo dado
    • getXPath

      public static String getXPath​(Node node)
      Determina o XPath completo a partir de um elemento
      Parameters:
      node - Elemento que deseja obter o XPath completo
      Returns:
      XPath completo do elemento
    • getXPath

      public static String getXPath​(Element node)
    • getNewDocument

      public static Document getNewDocument() throws ParserConfigurationException
      Instancia um novo Document, que será usado para escrever a assinatura.
      Returns:
      O objeto gerado
      Throws:
      ParserConfigurationException - Exceção em caso de erro na geração do documento
    • createDocument

      public static Document createDocument​(InputStream inputStream) throws ParserConfigurationException, IOException, SAXException
      Throws:
      ParserConfigurationException
      IOException
      SAXException
    • getNodeFromXPath

      public static Node getNodeFromXPath​(Document document, @Language("XPath") String xpath) throws XPathExpressionException
      Throws:
      XPathExpressionException
    • getNodeFromXPath

      public static Node getNodeFromXPath​(Node node, @Language("XPath") String path) throws XPathExpressionException
      Throws:
      XPathExpressionException
    • getNodeListFromXPath

      public static NodeList getNodeListFromXPath​(Node node, @Language("XPath") String path) throws XPathExpressionException
      Throws:
      XPathExpressionException
    • resolveNamespace

      @Language("XPath") public static String resolveNamespace​(String path)
    • collectAttributesToResolve

      public static List<String> collectAttributesToResolve​(List<String> attrs, NodeList targetNode) throws PbadException
      Coleta os atributos requisitados de uma nodelist alvo
      Parameters:
      attrs - os atributos a serem buscados
      targetNode - o nodo que deve conter os atributos
      Returns:
      lista dos nodos encontrados
      Throws:
      PbadException