Gerar arquivo XML com PL/SQL utilizando Parser

[ad#texto]

Continuando a falar sobre criação de arquivos XML utilizando Oracle PL/SQL, no primeiro exemplo não utilizamos nenhum Parser, ou seja, mesmo que a estrutura do XML estivesse errada o arquivo seria criado, deixando o inconveniente de que ao utilizar o XML é que iríamos detectar possíveis erros, quando o ideal é realizar esta tarefa de validação no momento da criação do arquivo.

No exemplo que iremos apresentar vamos demonstrar como criar um arquivo XML com PL/SQL efetuando o parser antes da gravação física no arquivo.

DECLARE
 varXML   CLOB;
 varTexto VARCHAR2(4000);
 varDom   DBMS_XMLDOM.DOMDocument;
 
BEGIN
 -- Exemplo de um XML para testes
 varTexto := '<?xml version="1.0" encoding="utf-8"?>' ||
             '<raiz>' ||
             '<texto>Teste de XML' ||
             '<opt>Sem XSLT</opt>' ||
             '</texto>' ||
             '</raiz>';
 
 -- Inicializar o CLOB
 dbms_lob.createtemporary(varXML, TRUE);
 dbms_lob.open(varXML, dbms_lob.lob_readwrite);
 
 -- Atribir texto (string) ao CLOB
 dbms_lob.writeappend(varXML, LENGTH(varTexto), varTexto);
 
 -- Inicia o processamento DOM e faz o parser utilizando XMLType.createXML
 varDom := DBMS_XMLDOM.NewDOMDocument(XMLType.createXML(varXML));
 
 -- Cria o arquivo XML no disco
 DBMS_XMLDOM.WriteToFile(varDom, '/minha/pasta/meu_arquivo.xml');
 
 -- Liberar o objeto DOM da memória
 DBMS_XMLDOM.freeDocument(varDom);
 
 -- Liberar dados do CLOB da memória
 dbms_lob.close(varXML);
 dbms_lob.freetemporary(varXML);
END;

O exemplo é bem semelhante ao apresentado no primeiro exemplo, com a exceção de que agora o arquivo é gerado utilizando DOM e que efetuamos o parser utilizando o XMLType.createXML.

Utilizando o XMLType, qual erro na estrutura ou até mesmo a utilização de caracteres especiais em locais errados irão levantar uma exceção, evitando a criação de um XML errado.

Tags:,
Petter Rafael
Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 323 outros assinantes

Busca

setembro 2020
DSTQQSS
 12345
6789101112
13141516171819
20212223242526
27282930 

Categorias