Tutorial do HierarchicalMap - Nível Intermediário
HierarchicalMap é uma interface. Assim, qualquer um pode implementá-la. Este tutorial é baseado em BasicHierarchicalmap, uma implementação referência em Java da interfae HierarchicalMap.
Este tutorial abrange os seguintes assuntos:
(O recurso de Javascript precisa estar habilitado, no seu navegador, para permitir a visualização dos códigos utilizados nos exemplos deste tutorial)
Nível Intermediário
8. Trabalhando com XML GrandeLer um XML grande, por inteiro, pode ser demorado e requerer uma grande quantidade de memória da máquina. Neste capítulo, iremos apresentar uma nova forma de manipular documentos XML.
Inicialmente, execute o código a seguir:
Neste ponto, o XML criado até então seria:
Aqui, iremos introduzir três conceitos:
Agora, vamos adicionar o seguinte pedaço de HierarchicalMap:
Para tanto, substitua o código entre a primeira escrita e o método "close" pelo código abaixo:
A estrutura do XML resultante será:
Agora, adicione o próximo código antes de fechar a XMLMapOutputStream. Note que o conteúdo do segundo capítulo é diferente.
A estrutura final do XML resultante será como abaixo:
A rigor, este não é um XML válido, pois contem três nós raizes. Você provavelmente receberá uma mensagem de erro caso tente abrir o documento resultante utilizando um editor compatível com XML. No entanto, esta estrutura é válida para uma HierarchicalMap.
Alterando a Posição de Referência
Acrescentar a HierarchicalMap numa posição fixa é muito limitante para criar documentos XML complexos. Alternativamente, mostraremos como adicionar uma HierarchicalMap numa posição arbitrária. Para tanto, iremos utilizar a classe MapWriter. Primeiro, prepare o seguinte código e execute-o.
O documento XML resultante será o seguinte:
Primeiro, a instanciação da MapWriter é bem simples. Basta instanciá-la passando a classe MapOutputStream ou XMLMapOutputStream. Depois, escreva o mapa como sempre utilizando o método writeMap(). Agora, apresentaremos mais dois conceitos:
O relacionamento entre estas posições para a "mw", a primeira MapWriter criada no exemplo, após a chamada do método "mw.writeMap("Document", map);" é mostrado abaixo:
Desta forma, o seguinte trecho de código, extraído do exemplo anterior, criará uma MapWriter "mw2" cuja referência é aponta para o nó "Section".
A linha "mw2.writeMap("Chapter", chapter);" adicionará o capítulo sob a última posição da "mw". O relacionamento das posições da "mw2" é mostrado abaixo:
Lendo um XML grande
Pela mesma razão, existe a MapReader que permite leitura parcial de um documento XML. Experimente executar o código abaixo e note a semelhança com a MapWriter.
O resultado será como abaixo (quebra de linhas foram inseridas para caber na tela. O resultado verdadeiro produz apenas três linhas):
<Document><Author>author's name</Author> <Summary>summary</Summary><Section></Section></Document> <Title>title 1</Title><Content>content 1</Content> <Title>title 2</Title><Content>content 2</Content>
Continua para Nível Intermediário - Acessando Banco de Dados