XML: Namespaces e
CDATA
Parte I - Namespaces
Introdução
Motivação
Documentos XML podem conter elementos
conflitantes
Exemplo
Informações sobre tabela HTML
<table>
<tr>
<td>Maçãs</td>
<td>Bananas</td>
</tr>
</table>
Introdução
Exemplo
Informações sobre mobília (em inglês)
<table>
<name>Mesa em granito</name>
<width>80</width>
<length>120</length>
</table>
Caso se trabalhe com as informações dos
dois exemplos, teremos um conflito da tag
<table>
Resolução de conflitos
Solução: utilizar prefixos
<h:table>
<h:tr>
<h:td>Maçãs</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<m:table>
<m:name>Mesa em granito</m:name>
<m:width>80</m:width>
<m:length>120</m:length>
</m:table>
Prefixos e namespaces
Podemos utilizar o atributo xmlns para
associar um prefixo com um namespace
<h:table xmlns:h=”[Link]
<h:tr>
<h:td>Maçãs</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<m:table xmlns:m=“[Link]
<m:name>Mesa em granito</m:name>
<m:width>80</m:width>
<m:length>120</m:length>
</m:table>
Atributo namespace
O atributo xmlns é colocado na tag inicial de
um elemento
Sintaxe
xmlns:prefixo=“URI do namespace”
Quando um namespace é definido na tag
inicial de um elemento, todos os elementos
filhos com o mesmo prefixo são associados
ao mesmo namespace
Uniform Resource Identifier
Uma URI é uma string que identifica um
recurso na Internet
O mais comum é utilizar URLs como URIs
O endereço da URI não é utilizado pelo
parser para procurar informações
Objetivo é dar um nome único a um
namespace
Namespaces padrão
Pode-se definir um namespace padrão
(default) a um elemento
Não é necessário utilizar prefixo nos
elementos filhos do elemento associado ao
namespace padrão
Sintaxe
xmlns=“URI do namespace”
Namespaces padrão
Exemplo
<table xmlns=“[Link]
<tr>
<td>Maçãs</td>
<td>Bananas</td>
</tr>
</table>
<table xmlns=“[Link]
<name>Mesa em granito</name>
<width>80</width>
<length>120</length>
</table>
Namespaces em ação!
À primeira vista namespaces aparentam
pouca utilidade, mas...
Extremamente útil (ou essencial) quando se
utilizam outras tecnologias XML
XLS
XMLSchema
XPath
...
Parte II - CDATA
Introdução
Analisadores sintáticos (parsers) geralmente
analisam todo o texto de um documento XML
O texto entre as tags também é analisado
Um documento XML pode conter seções
CDATA
O conteúdo de CDATA é tratado como texto
e nunca é interpretado como XML
Seções CDATA
Iniciam com <![CDATA[ e terminam com
]]>
Seu conteúdo não pode conter ]]>
Não é permitido o aninhamento de seções
CDATA
Não pode haver espaços entre os caracteres
]]>
Exemplo
<titulo>Curso de XML</titulo>
<exemplo>Considere o seguinte trecho de
XML:
<![CDATA[
<empresa>
<nome>João & Maria S/A</nome>
</empresa>
]]>
</exemplo>
Referências
[Link]
[Link]/~danielle
TITTEL, Ed. Teoria e Problemas de XML
(coleção Schaum) – Porto Alegre: Bookman,
2003