1
P
arte
1:
XML
Escrevendo XML 3
E
scrEvEndo
XML
1
Escrevendo XML
A especificação XML define como criar um arquivo XML. XML não é uma linguagem em si. Em vez disso, um documento XML é escrito numa linguagem de marcação personalizada, seguindo a especificação XML. Por exemplo, esses tipos de linguagens poderiam descrever dados genealógicos, químicos ou de negócios. Bastaria que você criasse os documentos XML para cada um.
Toda linguagem de marcação personalizada que segue a especificação XML deve aderir à gramática inerente ao XML. E é por aí que este livro começará. Neste capítulo, vocaprenderá as regras para criar documentos XML, indepen-dentemente da linguagem de marcação persona-lizada na qual estiver programando.
Oficialmente, as linguagens de marcação perso-nalizadas criadas em XML. Em outras palavras, essas linguagens de marcação customizadas são aplicações da XML, como o XSLT, o RSS, o SOAP, etc. Mas, para mim, um aplicativo é um programa completo, como o Photoshop. Logo, por achá-lo um termo impreciso, procuro evitá-lo.
Ferramentas para criar documentos XML
Assim como em HTML, pode-se programar em XML com qualquer editor de textos. Existem também muitos editores XML que foram criados desde a primeira edição deste livro. Eles possuem diversos recursos, como validar o código XML conforme você o digitar (consulte o Apêndice A).
Assumirei que você saiba como criar, abrir e salvar documentos. Apenas certifique-se de salvar todos os seus arquivos XML com a extensão
Exemplo de XML
Assim como os arquivos HTML, os XML são compostos por tags e dados. Entretanto, uma grande diferença entre ambos é que as tags dos arquivos XML são criadas pelo autor do documento. Outra, é que um documento XML só armazena e descreve os dados, mais nada. Ele não os exibe como o HTML faz.
Os documentos XML devem ser auto-explica-tivos, com suas tags descrevendo os dados que elas contêm (Figura 1.1).
A primeira linha do arquivo XML <?xml
version="1.0"?> é a declaração que indica a versão XML usada. Os dados começam na linha
seguinte ,<wonder> , do arquivo, que é
chama-da de elemento raiz. Em um documento XML, só pode existir apenas um elemento raiz. As 3 linhas seguintes são chamadas de ele-mentos filho e descrevem o elemento raiz mais detalhadamente.
<name>Colosso de Rhodes</name> <location>Rhodes, Grécia</location> <height units="feet">107</height>
O último elemento, height, possui o atributo
units, que é usado para especificar uma unidade de medida para height. Usam-se atributos para adicionar informações extras ao elemento, sem inserir texto no elemento em si.
Para finalizar, o documento XML termina com a tag de fechamento do elemento raiz
</wonder>.
Este é um arquivo XML completo e válido. Nada mais precisa ser escrito, adicionado, des-crito ou complicado. E ponto final.
<?xml version="1.0"?> <wonder> <name>Colosso de Rhodes</name> <location>Rhodes, Grécia</location> <height units="feet">107</height> </wonder> <?xml version="1.0"?> <ancient_wonders> <wonder> <name>Colosso de Rhodes</name> <location>Rhodes, Grécia</location> <height units="feet">107</height> </wonder> <wonder> <name>Pirâmides de Gizé</name> <location>Gizé, Egito</location> <height units="feet">455</height> </wonder> </ancient_wonders>
Arquivo XML que descreve uma das
Figura 1.1
Sete Maravilhas do mundo: o Colosso de Rhodes. O documento possui o nome da maravilha, assim como sua localização e altura em pés.
Aqui estendi o
Figura 1.2 arquivo XML da Figura 1.1 para suportar vários elementos <wonder>. Para isso, cria-se um novo elemento raiz <ancient_wonders> que possuirá quantos elementos <wonder> desejar. Agora, o documento XML contém informações sobre o Colosso de Rhodes e as Pirâmides de Gizé, que ficam em Gizé, no Egito, e tem 455 pés de altura.
x m l
x m l
<?xml version="1.0"?> <wonder> <name>Colosso de Rhodes</name> </wonder> <?xml version="1.0"?> <wonder> <name>Colosso de Rhodes</name> <main_image filename=“colossus.jpg”/> </wonder> <name>Colosso de Rhodes</name> <Name>Colosso de Rhodes</Name> <name>Colosso de Rhodes</Name> <main_image filename=“colossus.jpg”/>
Um documento XML escrito corretamente
(well-Figura 1.3
formed) deve ter um elemento (wonder) que contenha todos os outros elementos. Ele será o elemento raiz. A primeira linha de um arquivo XML é uma exceção, por ser uma instrução para processamento, e não parte dos dados XML.
Todo elemento deve ficar entre as mesmas
Figura 1.4
tags de abertura e de fechamento, como o elemento name. Elementos vazios, como o main_image, podem unir as tags de abertura e de fechamento, colocando uma barra vertical final. Note que todos os elementos es-tão devidamente aninhados, isto é, não há sobreposição.
O exemplo superior, embora talvez confuso,
Figura 1.5
é um XML válido. Os dois elementos (name e Name) são considerados completamente diferentes e indepen-dentes. O inferior está errado, pois as tags de abertura e de fechamento não são as mesmas.
As aspas são necessárias. Elas podem ser
sim-Figura 1.6
ples ou duplas, contanto que ambas sejam iguais. Note que o valor do atributo file não se refere necessariamente a uma imagem; ele poderia, simplesmente, dizer “Fotos das últimas férias de verão”.
x m l x m l x m l x m l x m l
Regras de programação XML
O XML possui uma estrutura extremamente regular e previsível, definida por uma série de regras das quais as mais importantes são descri-tas abaixo. Se seu arquivo segue essas regras, ele é considerado como sendo um arquivo XML escrito corretamente (well-formed). Quando isso ocorre, pode-se usá-lo de formas variadas. Um elemento raiz é obrigatório
Todo arquivo XML deve ter um, e apenas um, elemento raiz. Este possui todos os outros ele-mentos no arquivo. As únicas coisas permitidas fora (antes) do elemento raiz são comentários e instruções de processamento (Figura 1.3). Tags de fechamento são
obrigatórias
Todo elemento deve ter uma tag de fechamento. Elementos vazios (vide p. 12) podem usar uma tag de fechamento ou unir as tags de abertura e de fechamento numa só, colocando uma barra vertical antes do > final (Figura 1.4 e Elementos aninhados, ainda neste capítulo).
Devem-se aninhar devidamente os elementos
Se você criar um elemento A e depois um B, é preciso fechar o B antes do A (Figura 1.4). Letras maiúsculas e minúsculas
fazem diferença
O XML distingue maiúsculas de minúsculas. Elementos chamados wonder, WONDER e Wonder são completamente distintos e não possuem relação entre si (Figura 1.5). Valores devem ficar entre aspas
O valor de um atributo deve sempre ficar entre aspas simples ou duplas (Figura 1.6).
Elementos, atributos e valores
O XML usa os mesmos blocos de estrutura que o HTML: tags que definem atributos, elementos e os valores destes elementos. Um elemento XML é a unidade mais básica de seu documento. Ele pode conter texto, atributos ou outros elementos. Cada elemento possui uma tag de abertura, cujo nome fica entre os sinais de menor que (<) e maior que (>) (Figura 1.7). O nome, criado por você, deve descrever o propósito do elemento e, em particular, seu conteúdo. Um elemento geralmente é finalizado com uma tag de fechamento igual à da abertu-ra (inclusive o nome), só que com uma barabertu-ra vertical entre o < e o nome. A única exceção é para um elemento vazio, que pode “fechar a si mesmo” e é discutido na página 22.
Elementos podem ter atributos. Estes ficam den-tro da tag de abertura do elemento e possuem aspas que delimitam os valores que, posterior-mente, descrevem o propósito e o conteúdo (se houver) do elemento (Figura 1.8). Informações contidas num atributo costumam ser conside-radas metadados, isto é, são informações sobre os dados no elemento, e não os dados em si. Contanto que um elemento possua um único nome, ele poderá ter quantos atributos desejar. O resto deste capítulo é dedicado à criação de elementos, atributos e valores.
Espaços em branco
Podem-se adicionar espaços em branco extras, incluindo quebras de linha, em torno dos elementos em seu código XML, de modo a facilitar a edição e a visualização (Figura 1.9). Os espaços em branco ficam visíveis no arquivo, mas o processador XML os ignora, assim como ocorre com o HTML, num navegador.
Um elemento típico é formado por uma tag
Figura 1.7
de abertura, um conteúdo e uma tag de fechamento. Este elemento height possui texto.
O elemento height agora possui um atributo
Figura 1.8
chamado units, cujo valor é feet. Note que a palavra feet não faz parte do conteúdo do elemento height. Isso não torna o valor de height igual a 107 feet. O atributo units apenas descreve o conteúdo do elemento height.
O elemento wonder aqui contém três outros
Figura 1.9
– name, location e height –, mas não texto. Estes três elementos contêm texto, mas não outros elementos. O height é o único que possui um atributo. Note também que adicionei espaços em branco extras (em verde na ilustração) para facilitar a leitura do código.
<height>107</height>
Tag de abertura
Sinais de menor
e maior Barra vertical
Tag de fechamento Conteúdo
<height units="feet" > 107 </height>
Nome do atributo Valor (entre aspas) Attributo
Sinal de igual
<wonder>
<name> Colossus of Rhodes </name> <location>Greece</location> <height units="feet">107 </height> </wonder> Tag de abertura Conteúdo Tag de fechamento
<?xml version="1.0"?>
Devido à declaração XML ser uma
instru-Figura 1.10
ção de processamento, e não um elemento, não há tag de fechamento.
x m l
Como Começar
Em geral, deve-se iniciar cada arquivo XML com uma declaração que indique a versão XML usada. Essa linha se chama declaração XML (Figura 1.10).
Como declarar a versão XML que você usará: No início do documento, antes de qualquer
1. coisa, digite <?xml. Depois, digite 2. version=“1.0”. E, então, digite 3. ?> para terminar a declaração. Dicas ✔ O
✔ W3C lançou, em 2006, uma
Recomen-dation for XML Version 1.1 (Recomen-dação para Versão XML 1.1), porém ela possui poucas vantagens e quase nenhum suporte.
Certifique-se de colocar o número da ✔
versão entre aspas simples ou duplas. (Não importam quais, contanto que sejam as mesmas).
Tags que começam com
✔ <? e terminam com ?> são chamadas de instruções de processamento que, além da declarar a versão do XML, também especificam as folhas de estilo – discutidas com mais detalhes na Parte 2, XSL – que devem ser usadas, dentre outras coisas.
Essa instrução de processamento XML ✔
também pode determinar a codificação de caracteres, como UTF-8, ISSO-8859-1, etc. – abordadas no Apêndice B –, que você for usar no documento.
Criação do elemento raiz
Todo arquivo XML deve ter um, e apenas um, elemento que contenha todos os outros. Esse pai abrangente se chama elemento raiz. Como criar o elemento raiz:
No início de seu documento XML, digite
1.
<raiz>, onde raiz é o nome do elemento que possuirá todos os outros no arquivo (Figura 1.11).
Deixe algumas linhas vazias para o resto de
2.
seu documento XML. Para finalizar, digite
3. </raiz> exatamente com o mesmo termo usado no Passo 1. Dicas
✔
Letras maiúsculas e minúsculas fazem ✔
diferença. <WONDER> é diferente de <Wonder> ou <wonder>.
Nomes de elementos (e atributos) devem ✔
ser curtos e descritivos.
Nomes de elementos e atributos devem ✔
começar com uma letra, um traço inferior (underscore) ou dois pontos (:). Nomes que começam com as letras xml (com maiúscu-las ou minúscumaiúscu-las) são palavras reservadas e não podem ser usadas.
Nomes de elementos e atributos podem ✔
ter qualquer quantidade de letras, dígitos, traços inferiores e alguns caracteres de pontuação.
Atenção: embora dois pontos, hífens e ✔
pontos sejam aceitos em nomes de elemen-tos e atribuelemen-tos, recomendo evitá-los, pois costumam ser usados em situações espe-cíficas, como para identificar namespaces, subtração e propriedades de objetos, respec-tivamente.
Elementos fora das tags de abertura e de ✔
<?xml version="1.0"?> <ancient_wonders>
</ancient_wonders>
Em HTML, o elemento raiz é sempre
Figura 1.11
<HTML>. Em XML, você pode usar qualquer nome, in-cluindo <ancient_wonders>, como mostrado acima. Não é permitido conteúdo ou outros elementos antes e depois das tags de abertura e de fechamento, respectivamente.
x m l
<?xml version="1.0"?> <ancient_wonders>
<wonder>Colosso de Rhodes</wonder> </ancient_wonders>
Todo elemento em seu arquivo XML
Figura 1.13
deve ficar entre as tags de abertura e de fechamento do elemento raiz.
Um elemento XML simples é composto de
Figura 1.12
uma tag de abertura, conteúdo (que pode ser texto, outros elementos ou nada) e uma tag de fechamento, cuja única diferença para a de abertura é a barra vertical.
x m l
<wonder>Colossus of Rhodes</wonder>
Tag de abertura
Sinais de menor e maior Barra vertical Tag de fechamento
Conteúdo
Criação de elementos filho
Após criar seu elemento raiz, você poderá criar qualquer elemento filho. A idéia é que .haja uma relação entre a raiz, ou elemento pai, e seu elemento filho. Ao criá-los, use nomes que indiquem claramente o conteúdo de modo a fa-cilitar o processamento das informações depois. Como criar um elemento filho:
Digite
1. <nome>, onde nome indique o con-teúdo a ser exibido; o nome do elemento filho.
Crie o conteúdo.
2.
Para finalizar, digite
3. </nome> exatamente com o mesmo termo usado no Passo 1 (Figuras 1.12 e 1.13).
Dicas ✔
A tag de fechamento nunca é opcional ✔
(como ocorre, às vezes, em HTML). Em XML, os elementos sempre devem ter essa tag.
As regras para nomear os elementos filho ✔
são as mesmas usadas para o elemento raiz. Letras maiúsculas e minúsculas fazem dife-rença. Os nomes devem começar com uma letra, um traço inferior ou dois pontos (:) e, depois, podem ter dígitos também. Em-bora sejam aceitos, recomendo evitar usar dois pontos, traços e pontos nos nomes. Ademais, você não pode usar nomes que comecem com as letras xml (maiúsculas ou minúsculas).
Nomes não precisam estar em Inglês ou ✔
mesmo no alfabeto Latino, mas se seu programa não suporta estes caracteres, eles podem não ser exibidos ou processados corretamente.
Se você der nomes descritivos a seus ele-✔
mentos, facilitará a adaptação de seu XML para outros propósitos.
Elementos aninhados
Várias vezes, ao criar seu arquivo XML, desejará dividir seus dados em partes menores. Em XML, você pode criar elementos filhos de elementos filhos, etc. A possibilidade de ter múltiplos níveis de elementos filho lhe permite identificar e trabalhar com partes específicas de seus dados e a estabelecer uma relação hierár-quica entre tais partes.
Como aninhar elementos: Crie a
1. tag de abertura do elemento mais
externo, como descrito no Passo 3, na página 9.
Digite
2. <interno>, onde interno é o nome da primeira parte de dados; o primeiro elemento filho.
Crie o conteúdo do elemento <interno>, se
3.
houver algum. Digite
4. </interno> substituindo interno pelo mesmo termo escolhido no Passo 2. Repita os Passos de 2 a 4, se desejar.
5.
Para finalizar, crie a tag de fechamento do
6.
elemento mais externo, como descrito na Passo 3, na página 9.
Dicas ✔
É fundamental que cada elemento esteja ✔
completamente encerrado em outro. Em outras palavras, você não pode escrever a tag de fechamento do elemento mais externo até que o mais interno tenha sido fechado. Caso contrário, o documento não será considerado escrito corretamente, e ge-rará um erro no processador XML (Figura 1.14).
Você pode aninhar quantos níveis de ele-✔
mentos quiser (Figura 1.15).
Ao aninhar elementos, as melhores práticas ✔
<wonder><name>Colossus</name></wonder> <wonder><name>Colossus</wonder></name>
Correto (sem sobreposição de linhas)
Incorreto (as linhas das tags se sobrepõem)
Para se certificar de que suas tags estejam
Figura 1.14
aninhadas corretamente, ligue-as com linhas. Nenhuma deve se sobrepor à outra; cada dupla de tags deve estar totalmente dentro daquela imediatamente mais externa.
<?xml version="1.0"?> <ancient_wonders> <wonder> <name>Colosso de Rhodes</name> <location>Rhodes, Grécia</location> <height units="feet">107</height> </wonder> </ancient_wonders>
Agora, o elemento wonder está dentro de
Figura 1.15
um filho do elemento ancient_wonders, e name, location e height estão aninhados como elementos filho de wonder.
x m l
Atributos são pares de nome-valor
encer-Figura 1.16
rados na tag de abertura de um elemento. O valor deve ficar entre aspas (simples ou duplas).
<?xml version="1.0"?> <ancient_wonders> <wonder> <name language="English">Colosso de Rhodes</name> <name language="Greek">Κολοσσός της Ρόδου</name> <location>Rhodes, Grécia</location> <height units="feet">107</height> </wonder> </ancient_wonders>
Os atributos lhe permitem adicionar
infor-Figura 1.17
mações sobre o conteúdo de um elemento.
x m l
<height language="English">Colossus</name>
Nome do atributo Valor (entre aspas) Atributo
Sinal de igual
Adição de atributos
Um atributo armazena informações adicio-nais sobre um elemento sem inserir texto no conteúdo do elemento em si. Os atributos são conhecidos por serem "pares de nome-valor", e ficam dentro da tag de abertura de um elemen-to (Figura 1.16).
Como adicionar atributos
Antes do > da tag de abertura, digite
1.
atribu-to=, onde atributo é a palavra que identifica
a informação adicional. Então, digite
2. “valor”, onde valor é a infor-mação adicional. As aspas são obrigatórias. Dicas
✔
Os nomes de atributos devem seguir as ✔
mesmas regras para os de elementos. Con-sulte as Dicas na página 9.
Um elemento não pode ter atributos com o ✔
mesmo nome.
Diferentemente do HTML, os
✔ valores do
atributo devem, e devem mesmo, ficar entre aspas (aspas simples ou duplas). Se o valor de um atributo estiver entre ✔
aspas duplas, use aspas simples para o valor
(e vice-versa). Por exemplo, comments=‘Ela
disse’, “A Estátua caiu!”.
As melhores práticas sugerem que se devem ✔
usar os atributos como “metadados” – isto é, dados sobre dados. Em outras palavras, devem-se usar atributos para armazenar in-formações sobre o conteúdo do elemento, e não o elemento em si (Figura 1.17). Uma alternativa para marcar e identificar ✔
informações distintas com elementos ani-nhados (vide p. 10).
Uso de elementos vazios
Elementos vazios são elementos que não têm conte-údo próprio. Em vez disso, eles possuem atributos para armazenar dados sobre o elemento. Por
exemplo, você poderia ter um elemento main_
image com um atributo contendo um o nome do arquivo de uma imagem, mas o elemento em si não teria conteúdo textual.
Como criar um elemento vazio com uma única tag de
abertura/fechamento: Digite
1. <nome>, onde nome identifica o elemento vazio.
Crie quaisquer atributos necessários,
se-2.
guindo as instruções da página 11. Para finalizar, digite
3. /> para encerrar o elemento (Figura 1.18).
Como criar um elemento vazio com tags de abertura e de fechamento separadas:
Digite
1. <nome>, onde nome identifica o elemento vazio.
Crie quaisquer atributos necessários,
se-2.
guindo as instruções da página 11. Digite
3. > para fechar a tag de abertura.
Então, sem espaços, digite
4. </nome> para fechar o elemento, substituindo nome pelo mesmo termo escolhido no Passo 1. Dicas
✔
Em XML, ambos os métodos são equiva-✔
lentes (Figura 1.19), cada um com seus aspectos estilísticos. Eu crio elementos usando uma única tag de abertura/fecha-mento.
Em contraste com o HTML, você não ✔
pode usar uma tag de abertura sem uma de fechamento correspondente. Com isso,
<?xml version="1.0"?> <wonders_of_the_world> <wonder> <name language="English">Colosso de Rhodes</name> <name language="Greek">Κολοσσός της Ρόδου</name> <location>Rhodes, Grécia</location> <height units="feet">107</height> <main_image filename="colossus.jpg" w="528" h="349"/> <source sectionid="101" newspaperid="21"></source> </wonder> </wonders_of_the_world>
Elementos vazios podem combinar as tags
Figura 1.18
de abertura e fechamento em uma só, como mostrado aqui. Ou, então, ter uma tag de abertura seguida imedia-tamente de uma de fechamento, como no exemplo abaixo.
Típicos elementos vazios são aqueles como
Figura 1.19
o source e o main_image. Note que eles só possuem dados em seus atributos; os elementos em si não têm conteúdo. Neste exemplo, usei os dois formatos de elemento vazio: com uma única tag de abertura/fechamento e tags de abertura e de fechamento separadas.
x m l <main_image file="colossus.jpg"/> Sinal de menor Barra vertical e sinal de maior Uso de Elementos V azios
<?xml version="1.0"?> <wonders_of_the_world> <wonder> <name language="English">Colosso de Rhodes</name> <name language="Greek">Κολοσσός της Ρόδου</name> <location>Rhodes, Grécia</location> <height units="feet">107</height> <main_image filename="colossus.jpg" w="528" h="349"/>
<!-- os dados sobre esta maravilha do mundo veio, em parte, da sectionid do jornal (e do newspaperid) indicado na tag abaixo --> <source sectionid="101" newspaperid="21"/> </wonder> </wonders_of_the_world>
A sintaxe dos comentários em XML é a
Figura 1.20
mesma que em HTML.
Os comentários lhe permitem incluir
Figura 1.21
informações em seu código. Eles podem ser muito úteis, quando for preciso reler o arquivo e entender como ele foi construído.
x m l
<!-- atualizado e 23 de maio 2008 -->
Sinal de menor, ponto de exclamação e dois hífens
Dois hífens e um sinal de maior
Comentários
Criação de comentários
Costuma ser útil comentar seus documentos XML, de modo a saber por que usou um determinado elemento ou o que significa espe-cificamente certa informação. Assim como em HTML, você pode inserir comentários em seus arquivos XML, e eles não serão ignorados pelo processador (Figura 1.21).
Como criar comentários Digite
1. <!--.
Escreva o comentário.
2.
Digite
3. --> para fechar o comentário. Dicas
✔
Comentários podem ter espaços, texto, ✔
elementos e quebras de linha, e, portanto, agregar várias linhas no documento. Não são necessários espaços entre os dois ✔
hífens e o conteúdo do comentário. Em
outras palavras, <!--isto é um comentário-->
está correto.
Não se pode usar um hífen duplo no co-✔
mentário em si.
Não se podem aninhar comentários dentro ✔
de comentários.
Você pode usar comentários para ocultar ✔
uma parte de seu código XML durante o desenvolvimento ou a depuração. Isso se chama “colocar parte do código como co-mentário”. O processador XML irá ignorar os elementos em tal parte, juntamente com quaisquer erros que possam ter.
Comentários também são úteis para ✔
documentar a estrutura de um documento XML, de forma a facilitar alterações e atua-lizações no futuro (Figura 1.21).
<?xml version="1.0"?> <wonders_of_the_world> <wonder> <name language="English">Colosso de Rhodes</name> <name language="Greek">Κολοσσός της Ρόδου</name> <location>Rhodes, Grécia</location> <height units="feet">< 107 </height> <main_image filename="colossus.jpg" w="528" h="349"/> <source sectionid="101" newspaperid="21"/> </wonder> </wonders_of_the_world>
Quando este documento for analisado
Figura 1.22
sintaticamente, a entidade > será exibida como >. Portanto, quando o valor do elemento height for exibido, aparecerá algo como "< 107". Como ele será exibido dependerá da transformação do XML, que é discutida na Parte 2, XSL.
x m l
Entidades pré-definidas – cinco
símbolos especiais
Entidades são um tipo de autotexto: uma forma de inserir texto em um documento XML, sem digitá-lo todo. Podem-se usar entidades para inserir muitas letras e símbolos em documentos HTML. Em XML, contudo, só há cinco enti-dades predefinidas.
Como criar as cinco entidades predefinidas:
Digite
✔ & para criar um E comercial (&). Digite
✔ < para criar um sinal de menor (<). Digite
✔ > para criar um sinal de maior (>). Digite
✔ " para criar uma aspa dupla. Digite
✔ &após; para criar uma aspa simples ou um apóstrofo (‘).
Dicas ✔
Entidades predefinidas existem em XML
1.
porque cada um desses caracteres possui um significado especial. Por exemplo, se você usar < dentro do valor/texto de um elemento ou atributo, o processador XML pensará que está começando um novo elemento (Figura 1.22).
Não se pode usar (<) ou (&) em qualquer
✔
parte de seu documento XML, apenas para começar uma tag ou uma entidade, respectivamente. Se precisar usar um desses caracteres dentro do valor/texto de um ele-mento ou atributo, é obrigatório usar uma das entidades pré-definidas.
Pode-se usar “, ‘ ou > dentro do texto de um
✔
elemento ou atributo. Entretanto, deve-se atentar para encerrar o valor/texto entre os mesmos símbolos (duas aspas duplas ou duas simples). Também recomendo usar a entidade pré-defini-da > para evitar qualquer confusão.
<?xml version="1.0"?> <xml_book> <tags> <appearance> <![DATA[ <ancient_wonders> <wonder> <name language="English"> Colosso de Rhodes</name> <name language="Greek"> Κολοσσός της Ρόδου</name> <location>Rhodes, Grécia</location> <height units="feet">< 107 </height> <main_image filename="colossus.jpg" w="528" h="349"/> <source sectionid="101" newspaperid="21"/> </wonder> </ancient_wonders> ]]> </appearance> </tags> <xml_book>
Neste exemplo sobre um exemplo, uso
Figura 1.23
CDATA para exibir o código atual, sem que o processador XML analise antes sua sintaxe.
Exibido no Internet Explorer 7, no
Win-Figura 1.24
dows, você pode ver como os elementos dentro da seção CDATA são tratados como texto; em contraste com os ele-mentos xml_book, tags e appearance, que são analisados sintaticamente pelo processador XML.
x m l
Exibição de elementos como texto
Se quiser escrever sobre os elementos e os atribu-tos XML em seus documenatribu-tos XML, é melhor evitar que o processador XML os interprete e os apresente apenas como texto normal. Para isso, devem-se colocar as informações dentro da seção CDATA (Figura 1.23).
Como exibir elementos como textos:
Digite <
1. ![CDATA[.
Crie os elementos, atributos e componentes
2.
que gostaria de exibir, mas não processar. Digite
3. ]]> para fechar a tag. Dicas
✔
É muito comum colocarem códigos ✔
HTML e JavaScript dentro da seção CDA-TA para não serem analisados sintaticamen-te pelo processador XML.
CDATA significa Character Data, isto é, o ✔
processador não interpretará tais dados. Seu oposto é o PCDATA, que significa Parsed Character Data, discutido no Capítulo 6. Dentro da seção CDATA, o significado ✔
especial que alguns símbolos detêm é igno-rado. Para exibir os sinais de menor e de E
comercial, deve-se escrever < e &. Se você
usar < e &, é isso o que será exibido,
pois não serão substituídos pelo < e pelo &, respectivamente.
Não se podem aninhar seções CDATA. ✔
Podem-se usar seções CDATA em qual-✔
quer lugar dentro do elemento raiz de um arquivo XML.
Se, por alguma razão, quiser escrever
✔ ]]> e
não estiver fechando uma seção CDATA,
deve-se usar > em vez de >. Para mais
in-formações sobre o uso de símbolos especiais, consulte a página 14 e o Apêndice B.