0% acharam este documento útil (0 voto)
25 visualizações55 páginas

XML Tutorial2017 PT

Enviado por

Kauã G. Silva
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
25 visualizações55 páginas

XML Tutorial2017 PT

Enviado por

Kauã G. Silva
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Assine o DeepL Pro para traduzir arquivos maiores.

Mais informações em www.DeepL.com/pro.


XML

Sobre o tutorial
XML significa Extensible Markup Language (Linguagem de Marcação Extensível) e é uma
linguagem de marcação baseada em texto derivada da Standard Generalized Markup
Language (SGML).

Este tutorial ensinará a você os conceitos básicos de XML. O tutorial é dividido em seções,
como XML Basics, XML Advanced e XML tools. Cada uma dessas seções contém tópicos
relacionados com exemplos simples e úteis.

Público
Essa referência foi preparada para iniciantes para ajudá-los a entender os conceitos básicos e
avançados relacionados ao XML. Este tutorial lhe dará conhecimento suficiente sobre XML, a
partir do qual você poderá atingir um nível mais alto de conhecimento.

Pré-requisitos
Antes de prosseguir com este tutorial, você deve ter conhecimentos básicos de HTML e
JavaScript.

Direitos autorais e Isenção de responsabilidade


© Copyright 2017 by Tutorials Point (I) Pvt. Ltd.

Todo o conteúdo e os gráficos publicados neste e-book são de propriedade da Tutorials


Point (I) Pvt. Ltd. O usuário deste e-book está proibido de reutilizar, reter, copiar,
distribuir ou republicar qualquer conteúdo ou parte do conteúdo deste e-book de
qualquer maneira sem o consentimento por escrito da editora.

Nós nos esforçamos para atualizar o conteúdo do nosso site e dos tutoriais da forma mais
oportuna e precisa possível; no entanto, o conteúdo pode conter imprecisões ou erros. A
Tutorials Point (I) Pvt. Ltd. não oferece nenhuma garantia com relação à precisão,
pontualidade ou integridade de nosso site ou de seu conteúdo, incluindo este tutorial. Se
descobrir algum erro em nosso site ou neste tutorial, notifique-nos pelo e-mail
contact@tutorialspoint.com

i
XML

Índice
Sobre o tutorial .....................................................................................................................................................i
Público...................................................................................................................................................................i
Pré-requisitos ........................................................................................................................................................i
Direitos autorais e isenção de responsabilidade...................................................................................................i
Índice....................................................................................................................................................................ii

XML BÁSICO................................................................................................................................1

1. XML - Visão geral .................................................................................................................................................2


Uso de XML ..........................................................................................................................................................2
O que é Markup? .................................................................................................................................................3
XML é uma linguagem de programação? ............................................................................................................3

2. XML - Sintaxe.......................................................................................................................................................4

3. XML - Documentos ..............................................................................................................................................8


Seção Prolog do documento................................................................................................................................8
Seção Elementos do documento .........................................................................................................................8

4. XML - Declaração.................................................................................................................................................9

5. XML - Tags..........................................................................................................................................................11
Etiqueta inicial ....................................................................................................................................................11
Etiqueta final ......................................................................................................................................................11
Etiqueta vazia .....................................................................................................................................................11
Regras de tags XML............................................................................................................................................12

6. XML - Elementos................................................................................................................................................13
Elemento vazio...................................................................................................................................................13
Regras de elementos XML ..................................................................................................................................14

7. XML - Atributos .................................................................................................................................................15


Tipos de atributos ..............................................................................................................................................16
Regras de atributos de elementos .....................................................................................................................17

8. XML - Comentários ............................................................................................................................................18


Regras de comentários XML ..............................................................................................................................18

9. XML - Entidades de caracteres..........................................................................................................................19


Tipos de entidades de caráter ...........................................................................................................................19

10. XML - Seções CDATA .........................................................................................................................................21


Regras CDATA ....................................................................................................................................................22

11. XML - Espaços em branco..................................................................................................................................23


Espaço em branco significativo ..........................................................................................................................23
Espaço em branco insignificante........................................................................................................................23

12. XML - Processamento........................................................................................................................................24


Regras de instruções de processamento ...........................................................................................................25

ii
XML
13. XML - Codificação ..............................................................................................................................................26
Tipos de codificação...........................................................................................................................................26

14. XML - Validação.................................................................................................................................................27


Documento XML bem formado .........................................................................................................................27
Documento XML válido......................................................................................................................................28

ADVANCE XML ..........................................................................................................................29

15. XML - DTDs ........................................................................................................................................................30


DTD interna ........................................................................................................................................................30
DTD externa .......................................................................................................................................................32
Tipos...................................................................................................................................................................33

16. XML - Esquemas ................................................................................................................................................34


Tipos de definição..............................................................................................................................................35

17. XML - Estrutura em árvore................................................................................................................................37

18. XML - DOM ........................................................................................................................................................39

19. XML - Namespaces ............................................................................................................................................41


Declaração de espaço de nome .........................................................................................................................41

20. XML - Bancos de dados......................................................................................................................................42


Tipos de banco de dados XML ...........................................................................................................................42
Banco de dados habilitado para XML.................................................................................................................42

FERRAMENTAS XML .................................................................................................................44

21. XML - Visualizadores .........................................................................................................................................45


Editores de texto................................................................................................................................................45
Navegador Firefox..............................................................................................................................................46
Navegador Chrome ............................................................................................................................................46
Erros no documento XML ..................................................................................................................................46

22. XML - Editores ...................................................................................................................................................48


Editores XML de código aberto..........................................................................................................................48

23. XML - Analisadores............................................................................................................................................49

24. XML - Processadores .........................................................................................................................................50


Tipos...................................................................................................................................................................50

iii
XML

XML Noções básicas

1
1. XML - Visão geral XML

XML é a sigla de Extensible Markup Language (Linguagem de Marcação Extensível). É uma


linguagem de marcação baseada em texto derivada da Standard Generalized Markup
Language (SGML).

As tags XML identificam os dados e são usadas para armazenar e organizar os dados, em vez
de especificar como exibi-los, como as tags HTML, que são usadas para exibir os dados. O
XML não substituirá o HTML em um futuro próximo, mas apresenta novas possibilidades ao
adotar muitos recursos bem-sucedidos do HTML.

Há três características importantes do XML que o tornam útil em uma variedade de


sistemas e soluções:

• O XML é extensível: O XML permite que você crie suas próprias tags ou
linguagem autodescritivas, adequadas ao seu aplicativo.

• O XML transporta os dados, não os apresenta: A XML permite que você


armazene os dados independentemente de como eles serão apresentados.

• XML é um padrão público: O XML foi desenvolvido por uma organização chamada
World Wide Web Consortium (W3C) e está disponível como um padrão aberto.

Uso do XML
Uma pequena lista de uso do XML diz tudo:

• O XML pode funcionar nos bastidores para simplificar a criação de documentos HTML
para grandes sites da Web.

• O XML pode ser usado para trocar informações entre organizações e sistemas.

• O XML pode ser usado para descarregar e recarregar bancos de dados.

• O XML pode ser usado para armazenar e organizar os dados, o que pode
personalizar suas necessidades de manipulação de dados.

• O XML pode ser facilmente mesclado com folhas de estilo para criar praticamente qualquer resultado
desejado.

• Praticamente, qualquer tipo de dado pode ser expresso como um documento XML.

2
XML

O que é marcação?
XML é uma linguagem de marcação que define um conjunto de regras para codificar
documentos em um formato que pode ser lido por humanos e por máquinas. Então, o
que exatamente é uma linguagem de marcação? A marcação é uma informação
adicionada a um documento que aprimora seu significado de determinadas maneiras,
identificando as partes e como elas se relacionam entre si. Mais especificamente, uma
linguagem de marcação é um conjunto de símbolos que podem ser colocados no texto de
um documento para demarcar e rotular as partes desse documento.

O exemplo a seguir mostra a aparência da marcação XML quando incorporada em um trecho de texto:

<mensagem>
<texto>Olá, mundo!</texto>
</mensagem>
Esse snippet inclui os símbolos de marcação ou as tags, como
<message>...</message> e <text>... </text>. As tags <message> e </message>
marcam o início e o fim do fragmento de código XML. As tags <text> e </text>
envolvem o texto Hello, world!

XML é uma linguagem de programação?


Uma linguagem de programação consiste em regras gramaticais e em seu próprio
vocabulário, que é usado para criar programas de computador. Esses programas instruem
o computador a executar tarefas específicas. O XML não se qualifica como uma linguagem
de programação, pois não executa nenhum cálculo ou algoritmo. Geralmente é
armazenado em um arquivo de texto simples e é processado por um software especial
capaz de interpretar XML.

3
2. XML - Sintaxe XML

Neste capítulo, discutiremos as regras de sintaxe simples para escrever um documento


XML. A seguir, um documento XML completo:

<?xml version="1.0"?>
<info de contato>
<nome>Tanmay Patil</nome>
<empresa>TutorialsPoint</empresa>
<phone>(011) 123-4567</phone>
</contato-info>
Você pode notar que há dois tipos de informações no exemplo acima:

• Marcação, como <contact-info>


• O texto, ou os dados de caracteres, Tutorials Point e (040) 123-4567

O diagrama a seguir mostra as regras de sintaxe para escrever diferentes tipos de marcação e
texto em um documento XML.

Vamos ver cada componente do diagrama acima em detalhes.

4
XML

Declaração XML
O documento XML pode, opcionalmente, ter uma declaração XML. Ela é escrita da seguinte forma:

<?xml version="1.0" encoding="UTF-8"?>


Em que version é a versão XML e encoding especifica a codificação de caracteres usada no
documento.

Regras de sintaxe para declaração XML


• A declaração XML diferencia maiúsculas de minúsculas e deve começar com
"<?xml>", onde "xml" é escrito em minúsculas.

• Se o documento contiver uma declaração XML, ela precisará ser estritamente a


primeira declaração do documento XML.

• A declaração XML precisa ser estritamente a primeira declaração no documento XML.

• Um protocolo HTTP pode substituir o valor de codificação que você colocou na


declaração XML.

Tags e elementos
Um arquivo XML é estruturado por vários elementos XML, também chamados de nós
XML ou tags XML. Os nomes dos elementos XML são colocados entre colchetes
triangulares < >, conforme mostrado abaixo:

<elemento>

Regras de sintaxe para tags e elementos


Sintaxe do elemento: Cada elemento XML precisa ser fechado com elementos de início ou
de fim, conforme mostrado abaixo:

<elemento> ......</element>
ou, em casos simples, desta forma:

<element/>
Aninhamento de elementos: Um elemento XML pode conter vários elementos XML
como seus filhos, mas os elementos filhos não devem se sobrepor. Ou seja, uma tag de fim
de um elemento deve ter o mesmo nome da tag de início sem correspondência mais recente.

5
XML

O exemplo a seguir mostra tags aninhadas incorretas:

<?xml version="1.0"?>
<info de contato>
<empresa>TutorialsPoint
<info de contato>
</empresa>
O exemplo a seguir mostra as tags aninhadas corretas:

<?xml version="1.0"?>
<info de contato>
<empresa>TutorialsPoint</empresa>
<info de contato>
Elemento raiz: Um documento XML pode ter apenas um elemento raiz. Por exemplo, o
seguinte não é um documento XML correto, pois os elementos x e y ocorrem no nível
superior sem um elemento raiz:

<x>...</x>
<y>...</y>
O exemplo a seguir mostra um documento XML formado corretamente:

<raiz>
<x>...</x>
<y>...</y>
</root>
Sensibilidade a maiúsculas e minúsculas: Os nomes dos elementos XML diferenciam
maiúsculas de minúsculas. Isso significa que o nome dos elementos inicial e final precisam
estar exatamente no mesmo caso.

Por exemplo, <contact-info> é diferente de <Contact-Info>.

Atributos XML
Um atributo especifica uma única propriedade para o elemento, usando um par
nome/valor. Um elemento XML pode ter um ou mais atributos. Por exemplo:

<a href="http://www.tutorialspoint.com/">Tutorialspoint!</a>
Aqui, href é o nome do atributo e http://www.tutorialspoint.com/ é o valor do
atributo.

Regras de sintaxe para atributos XML

• Atributo nomes em XML (ao contrário do HTML) são case


sensíveis a maiúsculas e minúsculas. Ou seja, HREF e href são
considerados dois atributos XML diferentes.

6
XML

• O mesmo atributo não pode ter dois valores em uma sintaxe. O exemplo a seguir
mostra uma sintaxe incorreta porque o atributo b é especificado duas vezes:

<a b="x" c="y" b="z"> ...........</a>


• Os nomes de atributos são definidos sem aspas, enquanto os valores de atributos
devem sempre aparecer entre aspas. O exemplo a seguir demonstra a sintaxe
incorreta do xml:

<a b=x>..........</a>
Na sintaxe acima, o valor do atributo não é definido entre aspas.

Referências XML
As referências geralmente permitem adicionar ou incluir texto ou marcação adicional em um
documento XML. As referências sempre começam com o símbolo "&", que é um caractere
reservado, e terminam com o símbolo ";". O XML tem dois tipos de referências:

• Referências de entidades: Uma referência de entidade contém um nome entre


os delimitadores de início e fim. Por exemplo, &amp; onde amp é o nome. O nome
refere-se a uma cadeia predefinida de texto e/ou marcação.

• Referências de caracteres: Essas referências, como &#65;, contêm uma


marca de hash ("#") seguida de um número. O número sempre se refere ao código
Unicode de um caractere. Nesse caso, 65 refere-se ao alfabeto "A".

Texto XML
Os nomes dos elementos XML e dos atributos XML diferenciam maiúsculas de minúsculas, o
que significa que o nome dos elementos inicial e final precisa ser escrito no mesmo caso. Para
evitar problemas de codificação de caracteres, todos os arquivos XML devem ser salvos como
arquivos Unicode UTF-8 ou UTF-16.

Os caracteres de espaço em branco, como espaços em branco, tabulações e quebras de linha


entre os elementos XML e entre os atributos XML, serão ignorados.

Alguns caracteres são reservados pela própria sintaxe XML. Portanto, eles não podem ser
usados diretamente. Para usá-los, são usadas algumas entidades de substituição, listadas
abaixo:

Caractere não permitido Entidade de substituição Descrição do personagem

< &lt; menos de

> &gt; maior que

& &amp; E comercial

' &apos; apóstrofo

" &quot; aspas

7
3. XML - Documentos XML

Um documento XML é uma unidade básica de informações XML composta de elementos e


outras marcações em um pacote ordenado. Um documento XML pode conter uma grande
variedade de dados. Por exemplo, um banco de dados de números, números que
representam a estrutura molecular ou uma equação matemática.

Exemplo de documento XML


Um documento simples é mostrado no exemplo a seguir:

<?xml version="1.0"?>
<info de contato>
<nome>Tanmay Patil</nome>
<empresa>TutorialsPoint</empresa>
<phone>(011) 123-4567</phone>
</contato-info>
A imagem a seguir mostra as partes do documento XML.

Seção Prolog do documento


O Prolog de documentos vem na parte superior do documento, antes do elemento raiz.
Esta seção contém:

• Declaração XML
• Declaração de tipo de documento

Você pode saber mais sobre a declaração XML neste capítulo: Declaração XML.

Seção Elementos do documento


Os elementos do documento são os blocos de construção do XML. Eles dividem o
documento em uma hierarquia de seções, cada uma servindo a um propósito específico.
É possível separar um documento em várias seções para que elas possam ser
renderizadas de forma diferente ou usadas por um mecanismo de pesquisa. Os
elementos podem ser contêineres, com uma combinação de texto e outros elementos.

Você pode saber mais sobre os elementos XML neste capítulo: Elementos XML
8
4. XML - Declaração XML

Este capítulo aborda a declaração XML em detalhes. A declaração XML contém detalhes
que preparam um processador XML para analisar o documento XML. E l a é opcional, mas,
quando usada, deve aparecer na primeira linha do documento XML.

Sintaxe
A sintaxe a seguir mostra a declaração XML:

<?xml
version="version_number"
encoding="encoding_declaration"
standalone="standalone_status"
?>
Cada parâmetro consiste em um nome de parâmetro, um sinal de igual (=) e o valor
do parâmetro dentro de uma aspa. A tabela a seguir mostra a sintaxe acima em
detalhes:

Parâmetro Valor_do_parâmetro Descrição do parâmetro

Especifica a versão do padrão XML usado.


Versão 1.0

UTF-8, UTF-16, ISO-


10646-UCS-2, ISO-
10646-UCS-4, ISO- Define a codificação de caracteres usada
Codificação no documento. UTF-8 é a codificação
8859-1 a ISO-8859-9,
padrão usada.
ISO-2022-JP, Shift_JIS,
EUC-JP

Informa ao analisador se o documento


depende das informações de uma fonte
externa, como uma definição externa de
Autônomo sim ou não. tipo de documento (DTD), para seu
conteúdo. O valor padrão é definido como
no. A definição como yes informa ao
processador que não há declarações
externas necessárias para analisar o
documento.

9
XML

Regras
Uma declaração XML deve obedecer às seguintes regras:

• Se a declaração XML estiver presente no XML, ela deverá ser colocada como a
primeira linha do documento XML.

• Se a declaração XML for incluída, ela deverá conter o atributo do número da versão.

• Os nomes e valores dos parâmetros diferenciam maiúsculas de minúsculas.

• Os nomes estão sempre em letras minúsculas.

• A ordem de colocação dos parâmetros é importante. A ordem correta é: versão,


codificação e autônomo.

• Podem ser usadas aspas simples ou duplas.

• A declaração XML não tem nenhuma tag de fechamento, ou seja, </?xml>

Exemplos de declarações XML


A seguir, alguns exemplos de declarações XML:

Declaração XML sem parâmetros:

<?xml >
Declaração XML com definição de versão:

<?xml version="1.0">
Declaração XML com todos os parâmetros definidos:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>


Declaração XML com todos os parâmetros definidos entre aspas simples:

<?xml version='1.0' encoding='iso-8859-1' standalone='no' ?>

10
5. XML - Tags XML

Vamos aprender sobre uma das partes mais importantes da XML, as tags XML. As tags
XML formam a base da XML. Elas definem o escopo de um elemento em XML. Também
podem ser usadas para inserir comentários, declarar configurações necessárias para
analisar o ambiente e inserir instruções especiais.

Podemos categorizar amplamente as tags XML da seguinte forma:

Etiqueta inicial
O início de cada elemento XML não vazio é marcado por uma tag de início. A seguir, um
exemplo de tag de início:

<endereço>

Fim da tag
Todo elemento que tem uma tag de início deve terminar com uma tag de fim. A seguir,
um exemplo de tag final:

</endereço>
Observe que as tags finais incluem um sólido ("/") antes do nome de um elemento.

Etiqueta vazia
O texto que aparece entre a tag inicial e a tag final é chamado de conteúdo. Um elemento
que não tem conteúdo é denominado vazio. Um elemento vazio pode ser representado de
duas maneiras, como segue:

Uma tag de início imediatamente seguida por uma tag de fim, conforme mostrado abaixo:

<hr></hr>
Uma tag de elemento vazio completa é a mostrada abaixo:

<hr />
As tags de elemento vazio podem ser usadas para qualquer elemento que não tenha conteúdo.

11
XML

Regras de tags XML


A seguir estão as regras que precisam ser seguidas para usar tags XML:

Regra 1
As tags XML diferenciam maiúsculas de minúsculas. A linha de código a seguir é um exemplo de sintaxe
incorreta
</Address>, devido à diferença de maiúsculas e minúsculas em duas tags, que é tratada como
sintaxe incorreta em XML.

<endereço>Esta sintaxe está incorreta</endereço>


O código a seguir mostra uma maneira correta, em que usamos o mesmo caso para nomear a
tag de início e de fim.

<address>Essa é a sintaxe correta</address>

Regra 2
As tags XML devem ser fechadas em uma ordem apropriada, ou seja, uma tag XML aberta
dentro de outro elemento deve ser fechada antes que o elemento externo seja fechado. Por
exemplo:

<outer_element>
<elemento_interno>
Essa tag é fechada antes do elemento_externo
</elemento_interno>
</outer_element>

12
6. XML - Elementos XML

Os elementos XML podem ser definidos como blocos de construção de um XML. Os


elementos podem se comportar como contêineres para conter texto, elementos, atributos,
objetos de mídia ou todos esses elementos.

Cada documento XML contém um ou mais elementos, cujo escopo é delimitado por tags
de início e fim ou, no caso de elementos vazios, por uma tag de elemento vazio.

Sintaxe
A seguir, a sintaxe para escrever um elemento XML:

<nome do elemento atributo1 atributo2>


....content
</element-name>
Onde,

• element-name é o nome do elemento. O nome e suas letras maiúsculas e


minúsculas nas tags de início e fim devem corresponder.

• attribute1, attribute2 são atributos do elemento separados por espaços em


branco. Um atributo define uma propriedade do elemento. Ele associa um nome a
um valor, que é uma cadeia de caracteres. Um atributo é escrito como:

name = "value" (nome = "valor")

name é seguido por um sinal = e um valor de string dentro de double (" ") ou single (' ')
citações.

Elemento vazio
Um elemento vazio (elemento sem conteúdo) tem a seguinte sintaxe:

<nome atributo1 atributo2.../>


A seguir, um exemplo de um documento XML usando vários elementos XML:

<?xml version="1.0"?>
<info de contato>
<address category="residence">
<nome>Tanmay Patil</nome>
<empresa>TutorialsPoint</empresa>
<phone>(011) 123-4567</phone>
<endereço/>
</contato-info>

13
XML

Elementos XML Regras


As regras a seguir devem ser seguidas para os elementos XML:

• O nome de um elemento pode conter qualquer caractere alfanumérico. Os únicos


sinais de pontuação permitidos nos nomes são o hífen (-), a pontuação inferior (_)
e o ponto (.).

• Os nomes diferenciam maiúsculas de minúsculas. Por e x e m p l o , Address,


address e ADDRESS são nomes diferentes.

• As tags de início e fim de um elemento devem ser idênticas.

• Um elemento, que é um contêiner, pode conter texto ou elementos, como visto


no exemplo acima.

14
7. XML - Atributos XML

Este capítulo descreve os atributos XML. Os atributos fazem parte dos elementos XML. Um
elemento pode ter vários atributos exclusivos. O atributo fornece mais informações sobre os
elementos XML. Para ser mais preciso, eles definem as propriedades dos elementos. Um
atributo XML é sempre um par nome-valor.

Sintaxe
Um atributo XML tem a seguinte sintaxe:

<nome do elemento atributo1 atributo2 >


....content..
< /element-name>
em que o atributo1 e o atributo2 têm o seguinte formato:

name = "value" (nome = "valor")


O valor deve estar entre aspas duplas (" ") ou simples (' '). Aqui, attribute1 e
attribute2 são rótulos de atributos exclusivos.

Os atributos são usados para adicionar um rótulo exclusivo a um elemento, colocar o


rótulo em uma categoria, adicionar um sinalizador booleano ou associá-lo a alguma
cadeia de dados. O exemplo a seguir demonstra o uso de atributos:

<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE garden [
<!ELEMENTO jardim (plantas)*>
<!ELEMENT plantas (#PCDATA)>
<!ATTLIST categoria de plantas CDATA #REQUIRED>
]>
<jardim>
<plantas categoria="flores" />
<plantas category="shrubs">
</plantas>
</jardim>

15
XML

Os atributos são usados para distinguir entre elementos com o mesmo nome, quando não se
deseja criar um novo elemento para cada situação. Portanto, o uso de um atributo pode
acrescentar um pouco mais de detalhes na diferenciação de dois ou mais elementos
semelhantes.

No exemplo acima, categorizamos as plantas incluindo o atributo category e atribuindo


valores diferentes a cada um dos elementos. Portanto, temos duas categorias de plantas,
uma de flores e outra de cores. Assim, temos dois elementos de plantas com atributos
diferentes.

Você também pode observar que declaramos esse atributo no início do XML.

Atributo Tipos
A tabela a seguir lista os tipos de atributos:

Tipo de atributo Descrição

Recebe qualquer string literal como valor. CDATA é um


StringType. CDATA são dados de caracteres. Isso significa que
StringType
qualquer cadeia de caracteres sem marcação é uma parte legal do
atributo.

Esse é um tipo mais restrito. As restrições de validade observadas na


gramática são aplicadas depois que o valor do atributo é
normalizado. Os atributos TokenizedType são fornecidos como:

• ID: é usado para especificar o elemento como exclusivo.

• IDREF: É usado para fazer referência a uma ID que foi


nomeada para outro elemento.

• IDREFS: é usado para fazer referência a todas as IDs de um


elemento.
TokenizedType
• ENTITY: indica que o atributo representará uma entidade
externa no documento.

• ENTIDADES: Indica que o atributo r e p r e s e n t a r á


entidades externas no documento.

• NMTOKEN: é semelhante ao CDATA com restrições sobre


quais dados podem fazer parte do atributo.

• NMTOKENS: é semelhante ao CDATA com restrições sobre


quais dados podem fazer parte do atributo.

16
XML

Ele tem uma lista de valores predefinidos em sua declaração, dos


quais deve atribuir um valor. Há dois tipos de atributos
enumerados:

• Tipo de notação: Declara que um elemento será


EnumeratedType referenciado a uma NOTATION declarada em outro lugar no
documento XML.

• Enumeração: A enumeração permite que você defina uma


lista específica de valores que o valor do atributo deve
corresponder.

Atributo de elemento Regras


A seguir estão as regras que precisam ser seguidas para os atributos:

• Um nome de atributo não deve aparecer mais de uma vez na mesma tag de início ou
de elemento vazio.

• Um atributo deve ser declarado na Definição de Tipo de Documento (DTD) usando


uma Declaração de Lista de Atributos.

• Os valores de atributos não devem conter referências de entidades diretas ou


indiretas a entidades externas.

• O texto de substituição de qualquer entidade mencionada direta ou indiretamente


em um valor de atributo não deve conter um sinal de menos (<).

17
8. XML - Comentários XML

Este capítulo explica como os comentários funcionam em documentos XML. Os


comentários XML são semelhantes aos comentários HTML. Os comentários são
adicionados como notas ou linhas para entender a finalidade de um código XML.

Os comentários podem ser usados para incluir links, informações e termos relacionados. Eles
são visíveis somente no código-fonte, não no código XML. Os comentários podem aparecer
em qualquer lugar no código XML.

Sintaxe
O comentário XML tem a seguinte sintaxe:

<!-------Seu comentário--------->
Um comentário começa com <!-- e termina com -->. Você pode adicionar notas textuais
como comentários entre os caracteres. Você não deve aninhar um comentário dentro do
outro.

Exemplo
O exemplo a seguir demonstra o uso de comentários em um documento XML:

<?xml version="1.0" encoding="UTF-8" ?>


<!---As notas dos alunos são carregadas por meses >
<lista_de_classes>
<estudante>
<nome>Tanmay</nome>
<grau>A</grau>
</estudante>
</class_list>
Qualquer texto entre os caracteres <!-- e --> é considerado um comentário.

Regras de comentários XML


As regras a seguir devem ser seguidas para comentários XML:

• Os comentários não podem aparecer antes da declaração XML.


• Os comentários podem aparecer em qualquer lugar em um documento.
• Os comentários não devem aparecer nos valores dos atributos.
• Os comentários não podem ser aninhados dentro de outros comentários.

18
9. XML - Entidades de caracteres XML

Este capítulo descreve as entidades de caracteres XML. Antes de entendermos as


entidades de caracteres, vamos primeiro entender o que é uma entidade XML.

Conforme colocado pelo W3 Consortium, a definição de uma entidade é a seguinte:

"A entidade documento serve como raiz da árvore de entidades e como ponto de partida
para um processador XML."

Isso significa que as entidades são os espaços reservados em XML. Elas podem ser declaradas
no prólogo do documento ou em uma DTD. Há diferentes tipos de entidades e, neste
capítulo, discutiremos a Entidade Caractere.

Tanto o HTML quanto o XML têm alguns símbolos reservados para seu uso, que não
podem ser usados como conteúdo no código XML. Por exemplo, os sinais < e > são
usados para abrir e fechar tags XML. Para exibir esses caracteres especiais, são usadas as
entidades de caracteres.

Há alguns caracteres ou símbolos especiais que não estão disponíveis para serem
digitados diretamente no teclado. As entidades de caracteres também podem ser usadas
para exibir esses símbolos/caracteres especiais.

Tipos de entidades de caráter


Há três tipos de entidades de caracteres:

• Entidades de caracteres predefinidas


• Entidades de caracteres numerados
• Entidades de caracteres nomeados

Entidades de caracteres predefinidas


Elas são introduzidas para evitar a ambiguidade durante o uso de alguns símbolos. Por
exemplo, observa-se uma ambiguidade quando o símbolo menor que ( < ) ou maior que (
> ) é usado com a tag de ângulo (<>). As entidades de caracteres são basicamente usadas
para delimitar tags em XML. A seguir, há uma lista de entidades de caracteres
predefinidas da especificação XML. Elas podem ser usadas para expressar caracteres sem
ambiguidade.

• E comercial: &amp;
• Aspas simples: &apos;
• Maior que: &gt;
• Menor que: &lt;
• Aspas duplas: &quot;

19
XML

Entidades de caracteres numéricos


A referência numérica é usada para se referir a uma entidade de caractere. A referência
numérica pode estar no formato decimal ou hexadecimal. Como há milhares de
referências numéricas disponíveis, elas são um pouco difíceis de lembrar. A referência
numérica refere-se ao caractere por seu número no conjunto de caracteres Unicode.

A sintaxe geral para referência numérica decimal é:

&# número decimal ;


A sintaxe geral para referência numérica hexadecimal é:

&#x Número hexadecimal ;

A tabela a seguir lista algumas entidades de caracteres predefinidas com seus valores numéricos:

Nome da Caráter Referência decimal Referência hexadecimal


entidade
cotação " &#34; &#x22;

amplificador & &#38; &#x26;

apos ' &#39; &#x27;

lt < &#60; &#x3C;

gt > &#62; &#x3E;

Entidade de caractere nomeado


Como é difícil lembrar os caracteres numéricos, o tipo mais preferido de entidade de
caractere é a entidade de caractere nomeada. Aqui, cada entidade é identificada com um
nome.

Por exemplo:

• "Aacute" representa um caractere maiúsculo com acento agudo.

• 'ugrave' representa o pequeno com acento grave.

20
10. XML - Seções CDATA XML

Neste capítulo, discutiremos a seção CDATA do XML. O termo CDATA significa Dados
de Caracteres. CDATA é definido como blocos de texto que não são analisados pelo
analisador, mas que são reconhecidos como marcação.

As entidades predefinidas, como &lt;, &gt; e &amp;, exigem digitação e geralmente são
difíceis de ler na marcação. Nesses casos, a seção CDATA pode ser usada. Ao usar a seção
CDATA, você está informando ao analisador que a seção específica do documento não
contém marcação e deve ser tratada como texto normal.

Sintaxe
A seguir, a sintaxe da seção CDATA:

<![CDATA[
caracteres com marcação
]]>
A sintaxe acima é composta de três seções:

• Início da seção CDATA: CDATA começa com o delimitador de nove caracteres


<![CDATA[

• CDATA Fim da seção: A seção CDATA termina com o delimitador ]]>.

• Seção CData: Os caracteres entre esses dois compartimentos são interpretados


como caracteres, e não como marcação. Essa seção pode conter caracteres de
marcação (<, > e &), mas eles são ignorados pelo processador XML.

Exemplo
O código de marcação a seguir mostra um exemplo de CDATA. Aqui, cada caractere
escrito dentro da seção CDATA é ignorado pelo analisador.

<script>
<![CDATA[
<mensagem> Bem-vindo ao TutorialsPoint </mensagem>
]] >
</script >
Na sintaxe acima, tudo entre <message> e </message> é tratado como dados de
caracteres e não como marcação.

21
XML

CDATA Regras
As regras fornecidas devem ser seguidas para XML CDATA:

• CDATA não pode conter a string "]]>" em nenhum lugar do documento XML.
• O aninhamento não é permitido na seção CDATA.

22
11. XML - Espaços em branco XML

Neste capítulo, discutiremos o tratamento de espaços em branco em documentos


XML. O espaço em branco é um conjunto de espaços, tabulações e novas linhas. Em geral,
eles são usados para tornar um documento mais legível.

O documento XML contém dois tipos de espaços em branco: espaço em branco


significativo e espaço em branco insignificante. Ambos são explicados abaixo com
exemplos.

Espaço em branco significativo


Um espaço em branco significativo ocorre dentro do elemento que contém texto e marcação
juntos. Por exemplo:

<nome>TanmayPatil</nome>
e

<nome>Tanmay Patil</nome>
Os dois elementos acima são diferentes por causa do espaço entre Tanmay e Patil.
Qualquer programa que leia esse elemento em um arquivo XML é obrigado a manter a
distinção.

Espaço em branco insignificante


Espaço em branco insignificante significa o espaço em que somente o conteúdo do
elemento é permitido. Por exemplo:

<address.category="residence">
ou

<endereço ...category="..residence">
Os exemplos acima são os mesmos. Aqui, o espaço é representado por pontos (.). No
exemplo acima, o espaço entre o endereço e a categoria é insignificante.

Um atributo especial chamado xml:space pode ser anexado a um elemento. Isso indica que
o espaço em branco não deve ser removido pelo aplicativo para esse elemento. Você pode
definir esse atributo como padrão ou preservar, conforme mostrado no exemplo a seguir:

<!ATTLIST address xml:space (default|preserve) 'preserve'>


Onde,

• O valor default indica que os modos de processamento de espaço em branco padrão


de um aplicativo são aceitáveis para esse elemento.

• O valor preserve indica que o aplicativo deve preservar todos os espaços em branco.

23
12. XML - Processamento XML

Este capítulo descreve as Instruções de Processamento (PIs). Conforme definido


pela Recomendação XML 1.0,

"As instruções de processamento (PIs) permitem que os documentos contenham instruções


para aplicativos. As PIs não fazem parte dos dados de caracteres do documento, mas DEVEM
ser transmitidas ao aplicativo."

As instruções de processamento (PIs) podem ser usadas para transmitir informações aos
aplicativos. As PIs podem aparecer em qualquer lugar do documento fora da marcação.
Elas podem aparecer no prólogo, incluindo a definição do tipo de documento (DTD), no
conteúdo textual ou após o documento.

Sintaxe
A seguir, a sintaxe do PI:

<?instruções de destino?>
Onde,

• alvo - Identifica o aplicativo para o qual a instrução é direcionada.

• instrução - Um caractere que descreve as informações a serem processadas pelo


aplicativo.

Um PI começa com uma tag especial <? e termina com ?>. O processamento do
conteúdo termina imediatamente após a string ?> ser encontrada.

Exemplo
Os PIs raramente são usados. Eles são usados principalmente para vincular um documento
XML a uma folha de estilo. Veja a seguir um exemplo:

<?xml-stylesheet href="tutorialspointstyle.css" type="text/css"?>


Aqui, o destino é xml-stylesheet.

href="tutorialspointstyle.css" e type="text/css" são dados ou instruções que o aplicativo


de destino usará no momento do processamento do documento XML fornecido.

Nesse caso, um navegador reconhece o destino indicando que o XML deve ser transformado
antes de ser exibido; o primeiro atributo indica que o tipo de transformação é XSL e o
segundo atributo aponta para seu local.

24
XML

Instruções de processamento Rules


Um PI pode conter qualquer dado, exceto a combinação ?>, que é interpretada como o
delimitador de fechamento. Aqui estão dois exemplos de PIs válidos:

<?bem-vindo à pg=10 do ponto de tutoriais?>

<?welcome?>

25
13. XML14.
- XML

Codificação

A codificação é o processo de conversão de caracteres unicode em sua representação


binária equivalente. Quando o processador XML lê um documento XML, ele codifica o
documento de acordo com o tipo de codificação. Por isso, precisamos especificar o tipo de
codificação na declaração XML.

Tipos de codificação
Há principalmente dois tipos de codificação:

• UTF-8
• UTF-16

UTF significa UCS Transformation Format, e UCS significa Universal Character Set. O
número 8 ou 16 refere-se ao número de bits usados para representar um caractere. Eles
são 8 (um byte) ou 16 (dois bytes). Para os documentos sem informações de codificação,
o UTF-8 é definido por padrão.

Sintaxe
O tipo de codificação é incluído na seção de prólogo do documento XML. A sintaxe para a
codificação UTF-8 é a seguinte:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>


A sintaxe da codificação UTF-16 é a seguinte:

<?xml version="1.0" encoding="UTF-16" standalone="no" ?>

Exemplo
O exemplo a seguir mostra a declaração de codificação:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>


<info de contato>
<nome>Tanmay Patil</nome>
<empresa>TutorialsPoint</empresa>
<phone>(011) 123-4567</phone>
</contato-info>
No exemplo acima, encoding="UTF-8" especifica que 8 bits são usados para representar
os caracteres. Para representar caracteres de 16 bits, pode ser usada a codificação UTF-16.

Os arquivos XML codificados com UTF-8 tendem a ter um tamanho menor do que os
codificados com o formato UTF-16.

26
14. XML - Validação XML

A validação é um processo pelo qual um documento XML é validado. Um documento XML


será considerado válido se seu conteúdo corresponder aos elementos, atributos e à
declaração de tipo de documento (DTD) associada, e se o documento estiver em
conformidade com as restrições expressas nele. A validação é tratada de duas maneiras pelo
analisador XML. São elas:

• Documento XML bem formado


• Documento XML válido

Documento XML bem formado


Um documento XML é considerado bem formado se obedecer às seguintes regras:

• Não DTD XML arquivos devem usar o


predefinido caracteres predefinidas para amp(&), apos(aspas
simples), gt(>), lt(<), quot(aspas duplas).

• Ela deve seguir a ordem da tag, ou seja, a tag interna deve ser fechada antes de
fechar a tag externa.

• Cada uma de suas tags de abertura deve ter uma tag de fechamento ou deve ser
uma tag autoconclusiva (<title>. </title> ou <title/>).

• Ele deve ter apenas um atributo em uma tag inicial, que precisa ser citado.

• amp(&), apos(single quote), gt(>), lt(<), quot(double quote), outras


entidades além dessas devem ser declaradas.

Exemplo
A seguir, um exemplo de um documento XML bem formado:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>


<!DOCTYPE address
[
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT empresa (#PCDATA)>
<!ELEMENT telefone (#PCDATA)>
]>
<endereço>
<nome>Tanmay Patil</nome>
<empresa>TutorialsPoint</empresa>
27
<phone>(011) 123-4567</phone>
XML

</endereço>
O exemplo acima é considerado bem-formado como:

• Ele define o tipo de documento. Aqui, o tipo de documento é o tipo de elemento.

• Ele inclui um elemento raiz denominado endereço.

• Cada um dos elementos secundários, entre nome, empresa e telefone, é incluído


em sua tag autoexplicativa.

• A ordem das tags é mantida.

Documento XML válido


Se um documento XML estiver bem formado e tiver uma Declaração de Tipo de Documento
(DTD) associada, ele será considerado um documento XML válido. Estudaremos mais sobre
DTD no capítulo XML - DTDs.

28
XML

Advance XML

29
15. XML - DTDs XML

A Declaração de Tipo de Documento XML, comumente conhecida como DTD, é uma


forma de descrever a linguagem XML com precisão. As DTDs verificam o vocabulário e a
validade da estrutura dos documentos XML em relação às regras gramaticais da
linguagem XML apropriada.

Uma DTD XML pode ser especificada dentro do documento ou pode ser mantida em um
documento separado e depois apreciada separadamente.

Sintaxe
A sintaxe básica de uma DTD é a seguinte:

<!DOCTYPE elemento identificador


de DTD [
declaração1
declaração2
........
]>
Na sintaxe acima,

• A DTD começa com o delimitador <!DOCTYPE.

• Um elemento informa ao analisador para analisar o documento a partir do elemento


raiz especificado.

• O identificador da DTD é um identificador da definição do tipo de documento,


que pode ser o caminho para um arquivo no sistema ou o URL para um arquivo na
Internet. Se a DTD estiver apontando para um caminho externo, ela será chamada de
External Subset.

• Os colchetes [ ] contêm uma lista opcional de declarações de entidades


denominada Internal Subset.

DTD interna
Uma DTD é chamada de DTD interna se os elementos forem declarados nos arquivos XML.
Para se referir a ela como DTD interna, o atributo autônomo na declaração XML deve ser
definido como sim. Isso significa que a declaração funciona independentemente de uma
fonte externa.

30
XML

Sintaxe
A seguir, a sintaxe da DTD interna:

<!DOCTYPE root-element [element-declarations]>


em que root-element é o nome do elemento raiz e element-declarations é onde você declara
os elementos.

Exemplo
A seguir, um exemplo simples de DTD interna:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>


<!DOCTYPE address [
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT empresa (#PCDATA)>
<!ELEMENT telefone (#PCDATA)>
]>
<endereço>
<nome>Tanmay Patil</nome>
<empresa>TutorialsPoint</empresa>
<phone>(011) 123-4567</phone>
</endereço>
Vamos examinar o código acima:

Iniciar declaração - Inicie a declaração XML com a seguinte declaração.

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>


DTD - Imediatamente após o cabeçalho XML, segue-se a declaração do tipo de
documento, comumente chamada de DOCTYPE:

<!DOCTYPE address [
A declaração DOCTYPE tem um ponto de exclamação (!) no início do nome do elemento.
O DOCTYPE informa ao analisador que uma DTD está associada a esse documento XML.

Corpo da DTD - A declaração DOCTYPE é seguida pelo corpo da DTD, onde você declara
elementos, atributos, entidades e notações.

<!ELEMENT address (name,company,phone)>


<!ELEMENT name (#PCDATA)>
<!ELEMENT empresa (#PCDATA)>
<!ELEMENT phone_no (#PCDATA)>

31
XML

Aqui são declarados vários elementos que compõem o vocabulário do documento


<name>. <!ELEMENT name (#PCDATA)> define o nome do elemento como sendo do tipo
"#PCDATA". Aqui, #PCDATA significa dados de texto analisáveis.

Encerrar declaração - Por fim, a seção de declaração da DTD é encerrada usando


um colchete de fechamento e um colchete angular de fechamento (]>). Isso
efetivamente encerra a definição e, depois disso, o documento XML segue
imediatamente.

Regras
• A declaração do tipo de documento deve aparecer no início do documento (precedida
apenas pelo cabeçalho XML) - não é permitida em nenhum outro lugar do
documento.

• Semelhante à declaração DOCTYPE, as declarações de elementos devem começar


com um ponto de exclamação.

• O Nome na declaração do tipo de documento deve corresponder ao tipo de elemento


d o elemento raiz.

DTD externo
Em uma DTD externa, os elementos são declarados fora do arquivo XML. Eles são acessados
especificando-se os atributos do sistema, que podem ser o arquivo .dtd legal ou um URL
válido. Para se referir a ele como DTD externo, o atributo autônomo na declaração XML deve
ser definido como não. Isso significa que a declaração inclui informações da fonte externa.

Sintaxe
A seguir, a sintaxe da DTD externa:

<!DOCTYPE root-element SYSTEM "nome-do-arquivo">


em que file-name é o arquivo com extensão .dtd.

Exemplo
O exemplo a seguir mostra o uso de DTD externo:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>


<!DOCTYPE address SYSTEM "address.dtd">
<endereço>
<nome>Tanmay Patil</nome>
<empresa>TutorialsPoint</empresa>
<phone>(011) 123-4567</phone>
</endereço>

32
XML

O conteúdo do arquivo DTD address.dtd é o mostrado:

<!ELEMENT address (name,company,phone)>


<!ELEMENT name (#PCDATA)>
<!ELEMENT empresa (#PCDATA)>
<!ELEMENT telefone (#PCDATA)>

Tipos
Você pode fazer referência a uma DTD externa usando identificadores de sistema ou
identificadores públicos.

Identificadores de sistema
Um identificador de sistema permite especificar o local de um arquivo externo que
contém declarações de DTD. A sintaxe é a seguinte:

<!DOCTYPE name SYSTEM "address.dtd" [...]>


Como você pode ver, ele contém a palavra-chave SYSTEM e uma referência de URI que
aponta para o local do documento.

Identificadores públicos
Os identificadores públicos fornecem um mecanismo para localizar recursos de DTD e são escritos da
seguinte forma:

<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">


Como você pode ver, ele começa com a palavra-chave PUBLIC, seguida de um
identificador especializado. Os identificadores públicos são usados para identificar uma
entrada em um catálogo. Os identificadores públicos podem seguir qualquer formato; no
entanto, um formato comumente usado é chamado de identificadores públicos
formais, ou FPIs.

33
16. XML - Esquemas XML

O esquema XML é comumente conhecido como definição de esquema XML (XSD). Ele
é usado para descrever e validar a estrutura e o conteúdo dos dados XML. O esquema
XML define os elementos, atributos e tipos de dados. O elemento de esquema suporta
Namespaces. É semelhante a um esquema de banco de dados que descreve os dados em
um banco de dados.

Sintaxe
Você precisa declarar um esquema em seu documento XML da seguinte forma:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

Exemplo
O exemplo a seguir mostra como usar o esquema:

<?xml version="1.0" encoding="UTF-8"?>


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="contact">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="company" type="xs:string" />
<xs:element name="phone" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
A ideia básica por trás dos esquemas XML é que eles descrevem o formato legítimo que um
documento XML pode assumir.

Elementos
Como vimos no capítulo XML - Elementos, os elementos são os blocos de construção do
documento XML. Um elemento pode ser definido em um XSD da seguinte forma:

<xs:element name="x" type="y"/>

34
XML

Tipos de definição
Você pode definir elementos de esquema XML das seguintes maneiras:

Tipo simples
O elemento de tipo simples é usado somente no contexto do texto. Alguns dos tipos
simples predefinidos são: xs:integer, xs:boolean, xs:string, xs:date. Por e x e m p l o :

<xs:element name="phone_number" type="xs:int" />

Tipo de complexo
Um tipo complexo é um contêiner para outras definições de elementos. Isso permite que
você especifique quais elementos filhos um elemento pode conter e forneça alguma
estrutura em seus documentos XML. Por exemplo:

<xs:element name="Address">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="company" type="xs:string" />
<xs:element name="phone" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
No exemplo acima, o elemento Address consiste em elementos filhos. Esse é um
contêiner para outras definições <xs:element>, que permite criar uma hierarquia
simples de elementos no documento XML.

Tipos globais
Com o tipo global, você pode definir um único tipo em seu documento, que pode ser
usado por todas as outras referências. Por e x e m p l o , suponha que você queira
generalizar a pessoa e a empresa para diferentes endereços da empresa. Nesse caso,
você pode definir um tipo geral da seguinte forma:

<xs:element name="AddressType">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="company" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>

35
XML

Agora vamos usar esse tipo em nosso exemplo da seguinte forma:

<xs:element name="Address1">
<xs:complexType>
<xs:sequence>
<xs:element name="address" type="AddressType" />
<xs:element name="phone1" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Address2">
<xs:complexType>
<xs:sequence>
<xs:element name="address" type="AddressType" />
<xs:element name="phone2" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
Em vez de ter de definir o nome e a empresa duas vezes (uma para Address1 e outra para
Address2), agora temos uma única definição. Isso s i m p l i f i c a a manutenção, ou seja, se
você decidir adicionar elementos "Postcode" ao endereço, precisará adicioná-los em apenas
um local.

Atributos
Os atributos no XSD fornecem informações adicionais em um elemento. Os atributos têm
propriedades de nome e tipo, conforme mostrado abaixo:

<xs:attribute name="x" type="y"/>

36
17. XML - Estrutura em árvore XML

Um documento XML é sempre descritivo. A estrutura de árvore é geralmente chamada de


Árvore XML e desempenha um papel importante para descrever facilmente qualquer
documento XML.

A estrutura em árvore contém elementos raiz (pai), elementos filhos e assim por diante.
Ao usar a estrutura em árvore, você pode conhecer todos os ramos e sub-ramos
subsequentes a partir da raiz. A análise começa na raiz, depois desce pela primeira
ramificação até um elemento, pega a primeira ramificação a partir daí e assim por diante
até os nós das folhas.

Exemplo
O exemplo a seguir demonstra uma estrutura simples de árvore XML:

<?xml version="1.0"?>
<Empresa>
<Empregado>
<FirstName>Tanmay</FirstName>
<LastName>Patil</LastName>
<ContactNo>1234567890</ContactNo>
<Email>tanmaypatil@xyz.com</Email>
<Endereço>
<Cidade>Bangalore</Cidade>
<Estado>Karnataka</Estado>
<Zip>560212</Zip>
</Endereço>
</Empregado>
</Empresa>

37
XML

A estrutura de árvore a seguir representa o documento XML acima:

No diagrama acima, há um elemento raiz chamado <company>. Dentro dele, há mais


um elemento <Employee>. Dentro do elemento funcionário, há cinco ramificações
denominadas <FirstName>, <LastName>, <ContactNo>, <Email> e <Address>. Dentro
do elemento
<Address>, há três sub-ramos, denominados <City>, <State> e <Zip>.

38
18. XML - DOM XML

O DOM (Document Object Model) é a base do XML. Os documentos XML têm uma
hierarquia de unidades informativas chamadas nós; o DOM é uma forma de descrever esses
nós e as relações entre eles.

Um documento DOM é uma coleção de nós ou partes de informações organizadas em uma


hierarquia. Essa hierarquia permite que um desenvolvedor navegue pela árvore em busca de
informações específicas. Como se baseia em uma hierarquia de informações, diz-se que o
DOM é baseado em uma árvore.

O XML DOM, por outro lado, também fornece uma API que permite ao desenvolvedor
adicionar, editar, mover ou remover nós da árvore em qualquer ponto para criar um
aplicativo.

Exemplo
O exemplo a seguir (sample.htm) analisa um documento XML ("address.xml") em um
objeto XML DOM e, em seguida, extrai algumas informações dele com JavaScript:

<!DOCTYPE html>
<html>
<body>
<h1>Exemplo do DOM do TutorialsPoint </h1>
<div>
<b>Nome:</b> <span id="name"></span><br>
<b>Empresa:</b> <span id="empresa"></span><br>
<b>Telefone:</b> <span id="phone"></span>
</div>
<script>
Se (window.XMLHttpRequest)
{// código para IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
mais
{// código para IE6, IE5
xmlhttp = novo ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","/xml/address.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

document.getElementById("name").innerHTML=
39
XML

xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;
document.getElementById("company").innerHTML=
xmlDoc.getElementsByTagName("company")[0].childNodes[0].nodeValue;
document.getElementById("phone").innerHTML=
xmlDoc.getElementsByTagName("phone")[0].childNodes[0].nodeValue;
</script>
</body>
</html>
O conteúdo do address.xml é o seguinte:

<?xml version="1.0"?>
<info de contato>
<nome>Tanmay Patil</nome>
<empresa>TutorialsPoint</empresa>
<phone>(011) 123-4567</phone>
</contato-info>
Agora, vamos manter esses dois arquivos sample.htm e address.xml no mesmo diretório
/xml e executar o arquivo sample.htm abrindo-o em qualquer navegador. Isso deve
produzir o seguinte resultado.

Aqui, você pode ver como cada um dos nós filhos é extraído para exibir seus valores.

40
19. XML - Namespaces XML

Um Namespace é um conjunto de nomes exclusivos. O Namespace é um mecanismo pelo


qual o nome do elemento e do atributo pode ser atribuído a um grupo. O Namespace é
identificado por URI (Uniform Resource Identifiers, Identificadores Uniformes de Recursos).

Declaração de espaço de nome


Um Namespace é declarado usando atributos reservados. Esse nome de atributo deve ser
xmlns ou começar com xmlns: como mostrado abaixo:

<element xmlns:name="URL">

Sintaxe
• O Namespace começa com a palavra-chave xmlns.
• O nome da palavra é o prefixo do Namespace.
• O URL é o identificador do Namespace.

Exemplo
O Namespace afeta apenas uma área limitada do documento. Um elemento que contém a
declaração e todos os seus descendentes estão no escopo do Namespace. Veja a seguir um
exemplo simples de Namespace XML:

<?xml version="1.0" encoding="UTF-8"?>


<cont:contact xmlns:cont="www.tutorialspoint.com/profile">
<cont:name>Tanmay Patil</cont:name>
<cont:company>TutorialsPoint</cont:company>
<cont:phone>(011) 123-4567</cont:phone>
</cont:contato>
Aqui, o prefixo do Namespace é cont e o identificador do Namespace (URI) é
www.tutorialspoint.com/profile. Isso significa que todos os nomes de elementos e nomes
de atributos com o prefixo cont (incluindo o elemento contato) pertencem ao
namespace www.tutorialspoint.com/profile.

41
20. XML - Bancos de dados XML

O banco de dados XML é usado para armazenar uma grande quantidade de informações
no formato XML. Como o uso de XML está aumentando em todos os campos, é necessário ter
um local seguro para armazenar os documentos XML. Os dados armazenados no banco de
dados podem ser consultados usando XQuery, serializados e exportados para um formato
desejado.

Tipos de banco de dados XML


Há dois tipos principais de bancos de dados XML:

• Habilitado para XML


• XML nativo (NXD)

Banco de dados habilitado para XML


O banco de dados habilitado para XML nada mais é do que a extensão fornecida para a
conversão de documentos XML. Esse é um banco de dados relacional, em que os dados
são armazenados em tabelas compostas de linhas e colunas. As tabelas contêm um
conjunto de registros, que, por sua vez, consistem em campos.

Banco de dados XML nativo


O banco de dados XML nativo é baseado no contêiner, e não no formato de tabela. Ele pode
armazenar grandes quantidades de documentos e dados XML. O banco de dados XML nativo
é consultado pelas expressões XPath.

O banco de dados XML nativo tem uma vantagem sobre o banco de dados habilitado para
XML. Ele é altamente capaz de armazenar, consultar e manter o documento XML do que
o banco de dados habilitado para XML.

Exemplo
O exemplo a seguir demonstra o banco de dados XML:

<?xml version="1.0"?>
<info de contato>
<contato1>
<nome>Tanmay Patil</nome>
<empresa>TutorialsPoint</empresa>
<phone>(011) 123-4567</phone>
</contato1>
<contato2>
<nome>Manisha Patil</nome>
<empresa>TutorialsPoint</empresa>
<phone>(011) 789-4567</phone> 42
XML

</contato2>
</contato-info>

Aqui, é criada uma tabela de contatos que contém os registros dos contatos (contact1 e
contact2), que, por sua vez, consistem em três entidades: nome, empresa e telefone.

43
XML

XML Tools

44
21. XML - Visualizadores XML

Este capítulo descreve os vários métodos de visualização de um documento XML. Um


documento XML pode ser visualizado usando um editor de texto simples ou qualquer
navegador. A maioria dos principais navegadores é compatível com XML. Os arquivos XML
podem ser abertos no navegador com apenas um clique duplo no documento XML (se for um
arquivo local) ou digitando o caminho do URL na barra de endereços (se o arquivo estiver
localizado no servidor), da mesma forma que abrimos outros arquivos no navegador. Os
arquivos XML são salvos com uma extensão ".xml".

Vamos explorar vários métodos pelos quais podemos visualizar um arquivo XML. O
exemplo a seguir (sample.xml) é usado para visualizar todas as seções deste capítulo.

<?xml version="1.0"?>
<info de contato>
<nome>Tanmay Patil</nome>
<empresa>TutorialsPoint</empresa>
<phone>(011) 123-4567</phone>
</contato-info>

Texto Editores
Qualquer editor de texto simples, como Notepad, TextPad ou TextEdit, pode ser usado
para criar ou visualizar um documento XML, conforme mostrado abaixo:

45
XML

Navegador Firefox
Abra o código XML acima no Chrome clicando duas vezes no arquivo. O código XML exibe
a codificação com cores, o que torna o código legível. Ele mostra o sinal de mais (+) ou de
menos (-) no lado esquerdo do elemento XML. Quando clicamos no sinal de menos (-), o
código fica oculto. Quando clicamos no sinal de mais (+), as linhas de código são
expandidas. A saída no Firefox é a mostrada abaixo:

Navegador Chrome
Abra o código XML acima no navegador Chrome. O código é exibido conforme mostrado abaixo:

Erros no documento XML


Se o seu código XML tiver algumas tags faltando, uma mensagem será exibida no
navegador. Vamos tentar abrir o seguinte arquivo XML no Chrome:

<?xml version="1.0"?>
<info de contato>
<nome>Tanmay Patil</nome>
<empresa>TutorialsPoint</empresa>
<phone>(011) 123-4567</phone>
</ontact-info>

46
XML

No código acima, as tags de início e fim não são correspondentes (consulte a tag
contact_info), portanto, uma mensagem de erro é exibida pelo navegador, conforme
mostrado abaixo:

47
22. XML - Editores XML

O XML Editor é um editor de linguagem de marcação. Os documentos XML podem ser


editados ou criados usando editores existentes, como o Bloco de Notas, o WordPad ou
qualquer outro editor de texto semelhante. Você também pode encontrar um editor XML
profissional on-line ou para download, que possui recursos de edição mais avançados,
como:

• Ele fecha automaticamente as tags que foram deixadas abertas.


• Ele verifica rigorosamente a sintaxe.
• Ele destaca a sintaxe XML com cores para aumentar a legibilidade.
• Ele ajuda você a escrever um código XML válido.
• Ele oferece verificação automática de documentos XML em relação a DTDs e esquemas.

Editores XML de código aberto


Veja a seguir alguns editores XML de código aberto:

• Editor XML on-line: Esse é um editor XML leve, que você pode usar on-line.

• Xerlin: O Xerlin é um editor XML de código aberto para a plataforma Java 2,


lançado sob a licença Apache. É um aplicativo de modelagem XML baseado em
Java, para criar e editar arquivos XML com facilidade.

• CAM - Content Assembly Mechanism (Mecanismo de Montagem de Conteúdo): A


ferramenta CAM XML Editor vem com XML+JSON+SQL Open-XDX patrocinado pela
Oracle.

48
23. XML - Analisadores XML

O analisador XML é uma biblioteca de software ou um pacote que fornece interface para
que os aplicativos clientes trabalhem com documentos XML. Ele verifica o formato correto do
documento XML e também pode validar os documentos XML. Os navegadores modernos têm
analisadores de XML incorporados.

O diagrama a seguir mostra como o analisador XML interage com o documento XML:

O objetivo de um analisador é transformar XML em um código legível.

Para facilitar o processo de análise, estão disponíveis alguns produtos comerciais que
facilitam a decomposição do documento XML e produzem resultados mais confiáveis.

Alguns analisadores comumente usados estão listados abaixo:

• MSXML (Microsoft Core XML Services): Esse é um conjunto padrão de


ferramentas XML da Microsoft que inclui um analisador.

• System.Xml.XmlDocument: Essa classe faz parte da biblioteca .NET, que contém


várias classes diferentes relacionadas ao trabalho com XML.

• Analisador interno do Java: A biblioteca Java tem seu próprio analisador. A


biblioteca foi projetada de forma que você possa substituir o analisador interno por
uma implementação externa, como o Xerces da Apache ou o Saxon.

• Saxon: o Saxon oferece ferramentas para análise, transformação e consulta de XML.

• Xerces: O Xerces é implementado em Java e é desenvolvido pela famosa Apache


Software Foundation, de código aberto.

49
24. XML - Processadores XML

Quando um programa de software lê um documento XML e executa as ações


correspondentes, isso é chamado de processamento do XML. Qualquer programa que
possa ler e processar documentos XML é conhecido como processador XML. Um
processador XML lê o arquivo XML e o transforma em estruturas de memória que o
restante do programa pode acessar.

O processador XML mais fundamental lê um documento XML e o converte em uma


representação interna para ser usada por outros programas ou sub-rotinas. Isso é chamado
de parser e é um componente importante de todo programa de processamento de XML.

O processador envolve o processamento das instruções, que podem ser estudadas no


capítulo Processamento de instruções.

Tipos
Os processadores XML são classificados como tipos de validação ou não validação,
dependendo do fato de verificarem ou não a validade dos documentos XML. Um processador
que descobre um erro de validade deve ser capaz de i n f o r m á - l o , mas pode continuar
com o processamento normal.

Alguns analisadores de validação são: xml4c (IBM, em C++), xml4j (IBM, em


Java), MSXML (Microsoft, em Java), TclXML (TCL), xmlproc (Python), XML::Parser
(Perl), Java Project X (Sun, em Java).

Alguns analisadores sem validação são: OpenXML (Java), Lark (Java), xp (Java),
AElfred (Java), expat (C), XParse (JavaScript), xmllib (Python).

50

Você também pode gostar