XML lembra muito HTML: é uma linguagem que usa tags para definir conteúdo. O trecho abaixo mostra um exemplo de arquivo XML.
<?xml version="1.0" encoding="iso-8859-1"?>
<meudocumento>
<titulo>meu titulo</titulo>
<conteudo>Conteudo 1</conteudo>
<conteudo>Conteudo 2
<conteudo>Conteudo 2.1</conteudo>
<conteudo>Conteudo 2.2</conteudo>
</conteudo>
<conteudo>Conteudo 3</conteudo>
</meudocumento>
Diferente do HTML, as tags XML podem ser criadas para expressar com precisão o conteúdo de um documento. Já o HTML define tags para dizer como mostrar graficamente esse conteúdo (informação de layout).
Outras diferenças do XML em relação ao HTML são:
<titulo/> é diferente de <TITULO/>
No HTML
<br>
<p><b>texto</p><b> é permitido
No XML
<br />
<p><b>texto</b></p> é obrigatório
XML permite que uma marcação específica seja criada para especificar idéias e compartilhá-las na rede.
Se você já está acostumado com a
HTML ou a SGML, os documentos XML parecer-lhe-ão familiar. Um
documento XML simples é apresentado a seguir:
Exemplo 1: um documento XML simples
<?xml version="1.0" ecoding="iso-8859-1" ?>
<piada>
<João>Diga <citação>boa noite</citação>, Maria.</João>
<José><citação>Boa noite, Maria.</citação></José>
<aplausos/>
</piada>
Algumas coisas podem sobressair-se para você:
Os documento XML são compostos de marcas e conteúdos. Existem seis tipos de marcações que podem ocorrer em um documento XML: porém 3 são os mais importantes.
Elementos são a mais comum forma de marcação. Delimitados pelos sinais de menor e maior, a maioria dos elementos identificam a natureza do conteúdo que envolvem. Alguns elementos podem ser vazios, como visto acima; neste caso eles não têm conteúdo. Se um elemento não é vazio, ele inicia com uma marca de início , <element>, e termina com uma marca de término, </element>.
Atributos são pares de valores nomeados que ocorrem dentro dasmarcas de início após o nome do elemento. Por exremplo:
<div classe="prefácio">
é um elemento div cujo atributo class possui o valor prefácio. Em XML, todos os valores de atributos devem estar entre aspas.
Comentários iniciam com <!-- e terminam com -->. Os comentários podem conter qualquer dado, exceto a literal "--". Você pode colocar comentários entre marcas em qualquer lugar em seu documento.
Comentários não fazem parte de um conteúdo textual de um documento
XML. Um processador XML não é preciso para reconhecê-los na aplicação.
Instruções de processamento (PIs) são formas de fornecer informações
a uma aplicação. Assim como os comentários, elas não são textualmente
parte de um documento XML, mas o processador XML é necessário para
reconhecê-las na aplicação.
As instruções de processamento têm a forma: <?nome dadospi?>.
O nome, chamado de alvo PI, identifica a PI na aplicação. As
aplicações processariam somente os alvos que eles reconhecem e ignoram
todas as outras PIs. Qualquer dado que segue oalvo PI é opcional; é
para a aplicação que reconhece o alvo. Os nomes usados em PIs podem ser
declarados como notações a fim de identificá-los formalmente.
Os nomes de PI que iniciam com xml são reservados para a padronização da XML.
Em um documento, uma seção CDATA instrui o analisador para ignorar a maioria dos caracteres de marcação.
Considere um código-fonte em um documento XML. Ele pode conter
caracteres que o analisador XML iria normalmente reconhecer como
marcação (< e &, por exemplo). Para prevenir isto, uma seção
CDATA pode ser usada.
<![CDATA[
*p = &q;
b = (i <= 3);
]]>
Entre o início da seção, <![CDATA[, e o fim da seção, ]]>,
todos os dados de caracteres são passados diretamente para a
aplicação, sem interpretação. Elementos, referências a entidades,
comentários e instruções de processamento são todos irreconhecíveis e
os caracteres que os compõem são passados literalmente para a
aplicação.
A única cadeia de caracteres que não pode ocorrer em uma seção CDATA é "]]>".
O código-fonte abaixo mostra como o XML é usado no Javascript.
A 1ª função tem a função de carregar o documento XML para o Javascript.
A 2ª função manipula o documento XML. Se o programador estiver
familiarizado com Javascript e Dhtml, poderá fazer infinitas
experiências com este código.
Arquivo noticias.xml |
<?xml version="1.0" encoding="iso-8859-1" ?>
<etc>
<!--
Comentários
-->
<assunto>
<texto>Noticias1</texto>
</assunto>
<assunto>
<texto>Noticias2</texto>
</assunto>
<assunto>
<texto>Noticias3</texto>
</assunto>
<assunto>
<texto>Noticias4</texto>
</assunto>
<assunto>
<texto>Noticias5</texto>
</assunto>
<assunto>
<texto><![CDATA[
Texto normal<br>
<b>Texto em negrito</b><br>
<i>Texto em itálico</i><br>
<u>Texto sublinhado</u><br>
]]></texto>
</assunto>
</etc> |
Arquivo teste.html |
<html>
<head>
<title>Untitled Document</title>
</head>
<script language="javascript">
// 1º passo: Função para carregar o arquivo XML:
function carregarDococumentoXml(pagina){
if(window.ActiveXObject){ // verifica qual browser o usuario esta usando
documentoXml = new ActiveXObject("Microsoft.XMLDOM"); // Internet Explorer
} else {
documentoXml = document.implementation.createDocument("","",null);
// Mozilla, Safari...
}
documentoXml.async = false;
documentoXml.load(pagina); // carrega a página enviada como parametro
return(documentoXml); // retorna o documento XML carregado
}
// 2º passo: função para capturar e exibir o conteúdo
function carregarConteudo(elemento, pagina) {
documentoXml = carregarDococumentoXml(pagina);
// chama uma função para carregar o documento XML
elementoXml = documentoXml.getElementsByTagName(elemento);
// seleciona todas as tags contendo tal elemento dentro do documento XML
for (i=0;i<elementoXml.length;i++){
// faz um loop contando a quantidade de elementos tag texto dentro do arquivo XML
// elementoXml.length - conta a quantidade de elementos da tag dentro do arquvo xml.
document.write(elementoXml[i].childNodes[0].nodeValue+"<br>");
// captura os valores dentros das tags visitadas pelo loop
}
}
// Parametro - elemento: Exibe o elemento da página XML.
// Parametro - pagina: O nome do arquivo XML que será carregado.
</script>
<body>
<script language="javascript">
carregarConteudo("texto","noticias.xml");
</script>
</body>
</html> |
| Resultado: |
![]() |
Se você usa PHP e precisa gerar um código XML para o Javascript, o exemplo abaixo simplifica, veja:
| Arquivo: exemplo.php |
<;?php
// Escreve estrutura do XML
$xml = "<;?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
$xml .= "<;itempai>\n";
$xml .= "<;itemfilho>conteudo<;/itemfilho>\n";
$xml .= "<;/itempai>\n";
// Abre arquivo e salva
$file = fopen("imageData.xml", "w");
fwrite($file, $xml);
?> |