Um Sumário de XML
•
•
•
•
•
Explicação de XML
Relacionando XML à HTML
Vantagens da XML
Relacionando XML à SGML
Usuários existentes e utilização de XML
Objetivos
• Familiarização com a XML.
• Apresentar um tratamento mais abrangente
do que será apresentado nas aulas seguintes.
• Conhecer o suficiente sobre XML, para
poder discutí-la em termos gerais.
Objetivos
• Oferecer noções básicas da vasta área de aplicação
da XML.
• Refletir sobre como se pode aplicar essa
tecnologia aos seus próprios projetos.
• Tornar seu entendimento de XML mais
substancial. Ao final da aula 1 você saberá o que é
XML e como XML “faz as coisas”.
O que é a XML ?
• XML é uma sigla. É acrônimo de eXtensible
Markup Language.
• É uma linguagem com a finalidade de descrever
informações. O mesmo ocorre com a HTML.
• XML representa um aperfeiçoamento da
abordagem da HTML.
• O propósito original de sua existência é a WWW.
Sobre a HTML
• HTML é uma tecnologia que mudou o mundo em
que vivemos. Contudo, muitas informações são
perdidas quando os dados são convertidos para
HTML.
• Informações, que se preservadas podem ser
aproveitadas para se criar um mundo novo de
aplicativos na WWW.
Um documento HTML simples
<! - - HTML Snippet - - >
<h1>Invoice</h1>
<p>From: Joe Bloggs
<p>To: M. Another
<p>Amount: $100.00
<p>Tax: 21%
<p>Total Due: $121.00
Um documento XML simples
<! - - XML Snippet - - >
<Invoice>
<From>Joe Bloggs</From>
<To>M. Another</To>
<Date year = ‘1999’ month = ‘2’ day = ‘1’/>
<Amount currency = ‘Dollars’>100.00</Amount>
<TaxRate>21</TaxRate>
<TotalDue currency = ‘Dollars’>121.00</TotalDue>
</Invoice>
Comparando os documentos
Agora, coloque-se em frente a seu
computador ...
Qual deles captura as informações mais
úteis ?
Qual deles possui uso mais potencial ?
Qual dos dois documentos é mais fácil de se
processar ?
Essência da XML
• A distinção ilustrada nestes dois documentos
representa a verdadeira essência da XML.
• XML tem tudo a ver em preservar informações
úteis.
• Informações que os computadores podem usar
para serem mais “inteligentes” no que puderem
fazer com seus dados.
Você pode estar pensando ...
• Por que, então, não adicionamos tags referentes a
<Invoice> , <TaxRate> , entre outros, à HTML ?
• Poderíamos fazer, mas onde esse processo
terminaria ?
• Nenhum conjunto de tags, por maior que ele seja,
jamais chegará perto de oferecer todas as tags que
podemos precisar.
Existe uma forma melhor ...
• Seu nome é XML.
• XML não é uma “HTML mais rápida”.
• XML é uma tecnologia fundamentalmente
diferente que libera informações das “algemas” de
um conjunto de tags fixo, como existe em HTML.
• Por exemplo, se você estiver descrevendo uma
fatura, por que não chamá-la de <Invoice> em vez
de um título de nível 1 ?
Idéia básica de XML ...
• Clareza de expressão ...
• XML significa falar de forma mais clara, ou seja,
denominar a informação pela forma em que ela é
conhecida.
• XML não é um programa de computador, e dessa
forma não faz nada por conta própria. O mesmo se
pode dizer de HTML.
O que é XML ?
• XML é uma linguagem que oferece uma
abordagem padrão para descrição, captura,
processamento e publicação de
informações.
• Oferece vantagens significativas sobre
HTML.
O que é XML ?
• XML é um conjunto de idéias – todas elas bem
simples.
• XML é uma linguagem de marcação com
mudanças muito importantes.
• A maioria das linguagens de marcação, são
linguagens, com um certo conjunto fixo de
elementos, e esse conjunto é baseado no modelo
da linguagem.
O que é a XML ?
• HTML, por exemplo, possui um conjunto
fixado de tags com o qual podemos elaborar
documentos.
• XML, por outro lado, não define qualquer
conjunto de tags em particular.
Aparência de XML
• Parece muito com HTML! Mas, isso não é
uma coincidência.
• Os documentos em XML, como os
documentos em HTML, são compostos de
marcações e dados. A sintaxe lembra a da
HTML.
Um exemplo XML
<Spice>
<Name>Sichuan Peppercorns</Name>
<CountryOfOrigin Country = “China”/>
<Description>Pungent, distinctive, Excellent with slow cooked,
earthy dishes.</Description
<Example>Sichuan Braised Chicken</Example>
</Spice>
Marcações em XML
• Com a XML, temos a liberdade de definir e
usar qualquer nome que desejarmos para
implementar tags em seus dados.
XML é eXtensível ...
• Porque podemos usá-la para criarmos
nossas próprias marcações (tags).
• Ao contrário da maioria das linguagens de
marcação, a XML possui uma estrutura
flexível, com a qual se pode criar
linguagens de marcação personalizadas.
Tipos de Elementos
• Qualquer linguagem baseada em XML é composta
de um conjunto de tipos de elementos que
recebem alguns nomes e significados.
• Os exemplos incluem os tipos de elementos,
Invoice (significado = fatura) , TaxRate
(significado = taxa) e Spice (sigificado = tempero)
.
O que é XML ?
• Ao invés de um conjunto fixo de tags, XML
oferece uma estrutura padrão que lhe
possibilita criar sua própria estrutura, ou
usar aquelas definidas por terceiros que
melhor se encaixe às suas necessidades.
Metalinguagem
• XML proporciona uma estrutura padrão que
lhe possibilita criar sua própria estrutura
para seus documentos, por que ela é uma
metalinguagem.
• Ou seja, uma linguagem que fala de outra
linguagem.
Estrutura Padrão
• Diversas linguagens de marcação podem ser
construídas com base no que a XML
oferece.
Definidas por terceiros
• A maioria das pessoas usa as linguagens de
marcação baseadas em XML, criadas por
terceiros, que melhor se adequem às suas
finalidades, no que tange a um domínio de
aplicação.
Linguagens baseadas em XML
de padrão industrial
• XML é aplicada em áreas como:

Tecnologia Push (CDF – Channel Definition Format)
 Comércio Eletrônico (OTP – Open Trading Protocol)
 Matemática (MML – Mathematical Markup Language)
Definições de Tipos de Documentos
• Um conjunto de tipos de elementos serve
para definir tipos de documentos e são
conhecidos como Document Type
Definitions (DTD).
• Exemplos de DTD: CDF, OTP e MML
Definir sua própria linguagem
• A principal vantagem de se poder definir
sua própria linguagem de marcação é que
ela lhe oferece a liberdade de capturar e
publicar informações úteis sobre como seus
dados ficarão e sua estruturas, ao invés de
ter que se acostumar com um formato
criado por outras pessoas.
Um exemplo
• Considere uma empresa realizando comércio
eletrônico de PCs na Web. Estas são as
informações que a empresa precisa publicar:
Maker: Acme PC Inc
Model: Blaster 555
Storage:
RAM: 128 MB
Hard Disk: 20 GB
Documento HTML
• Para publicar essas informações usando
HTML, é preciso criar um documento, por
exemplo como:
Documento em HTML
<! - - snippet of HTML - - >
<h1>Personal Computers for Sale</h1>
<h2>Maker : Acme PC Inc</h2>
<h3>Model : Blaster 555</h3>
<table border = 1>
<tr>
<td>Storage:</td>
</tr>
...
Documento HTML (cont.)
<tr>
<td>RAM</td><td>128 MB</td>
</tr>
<tr>
<td>Hard Disk</td><td>20 GB</td>
</tr>
</table>
Visualizando no seu browser
• Ao serem abertas em um navegador, essas
informações ficarão como:
(visualize no seu navegador)
Perda de informações
• Os dados originais foram transformados em
HTML para fins de publicação na Web.
• Durante a transformação, informações úteis sobre
o que as informações realmente representam
foram perdidas.
• A versão HTML dos dados não reflete a semântica
dos dados sobre os PCs. Tudo que ela indica são
níveis de títulos, tabela, texto em itálico, entre
outras coisas.
Consequência ...
• Como consequência, quando esse documento
HTML se torna disponível na Web, os diferentes
utilitários de pesquisa vêem somente um conjunto
de níveis, tabelas, texto em itálico, ...
• Mas, não vêem a semântica das informações sobre
PCs.
Publicando em XML
• Pense na possibilidade da empresa poder
publicar suas informações de vendas, da
seguinte forma:
Um documento XML
<! - - Snippet of na XML document - - >
<PCforSale>
<Maker>Acme PC Inc</Maker>
<Model>Blaster 555</Model>
<Storage>
<RAM Units = “MB”>128</RAM>
<HardDisk Units = “GB”>20</HardDisk>
</Storage>
</PcforSale>
Novas possibilidades ...
• Esta representação abrirá algumas possibilidades
bastante interessantes.
• Este documento em XML pode conter uma
interface mais rica para a Web, que apresente
todos os tipos de possibilidades sobre como ele
poderia ser colocado em uso.
• Note, agora o significado explícito sobre as
informações de venda sobre PCs, contido no
documento XML.
Informações sobre os Dados
• Ao manter as informações sobre o que
realmente são os itens de dados, pode-se
considerar o seguinte:
O que XML proporciona
• Permitir o navegador fazer a formatação dos
dados na tela do usuário.
• Permitir ao navegador realizar cálculos a
partir dos dados, e manipular e exibir os
resultados em várias formas.
Mais ...
• Possibilitar a pesquisa mais inteligente das
informações.
• Verificar de forma inteligente se todas as
informações necessárias relativas a uma
entrada numa página Web, estão realmente
lá.
Mais ...
• Realizar pesquisas complexas dos dados,
para fins do seu próprio gerenciamento, ou
como um serviço aos clientes.
• Criar vínculos inteligentes entre tipos
diferentes de informações.
Mais ...
• Padronizar um conjunto de tipos de
elementos XML relativo a todo um tipo de
mercado.
• Evitar a necessidade de reduzir o nível de
complexidade dos dados, antes de publicálos.
Cunho Filosófico
• A filosofia da essência da XML apareceu
como resultado de uma análise longa e
cuidadosa do que realmente significa o
termo documento no mundo digital.
O termo documento ...
• De modo geral, os documentos são
compostos de três componentes:
Conteúdo de dados
Estrutura
Apresentação
Documentos
• Conteúdo dos Dados:
As palavras propriamente ditas.
• Estrutura:
O tipo de documento e a
organização de seus elementos.
Documento
• Apresentação:
A forma com que as informações são
apresentadas ao leitor.
Documento XML
• A idéia central em XML é que benefícios
significativos passam para o detentor do
documento se esses três aspectos forem
mantidos separados e tornados explícitos
em um sistema de computador.
• Observe as diferenças: Fig. 1.4
Documento Tradicional
Documento XML
Documento XML
• Em XML, criamos o conteúdo do documento
concentrando-se no significado real das
informações e no modo como são estruturados.
• São adiados ítens que tem a ver com apresentação,
deixando-os que sejam tratados quando alguém
precisar olhar o documento.
Documento XML
• Um documento XML pode ser criado para
ter arbitrariamente uma boa aparência sem
emaranhar as informações de formatação
com o conteúdo básico do documento.
• “Documentos Estruturados” !!
SGML
• Desde 1986, existe, o padrão internacional
denominado Standard Generalized Markup
Language (SGML) – ISO 8879, para fazer o
que a XML faz.
• Padrão muito poderoso e geral, mas com
crescente complexidade.
XML
• XML é um subconjunto da SGML que
pretende tornar a SGML “leve” o suficiente
para uso na Web.
• Todos os documentos XML são documentos
SGML válidos.
As Iniciativas da SGML
• ATA (Air Transport Authority)
Aviação
• DocBook
Manuais técnicos
• Text Encoding Initiative (TEI)
Iniciativa de codificação de textos
• J2008
Manutenção automotiva
Iniciativas da SGML
• Edgar
Relatórios financeiros para
repartições públicas.
• HTML
Hypertext Markup Language
• Pinnacles (PICS)
Dados de semicondutor
Algo errado com a SGML ?
• Não.
• A complexidade de implementação, que é um
produto de todo o recurso da SGML, teve o efeito
de limitar sua base de usuários a grandes
corporações que precisam de todo seu recurso.
• As idéias que a SGML incorpora são muito boas e
úteis para ficarem restritas a tal nicho.
XML
• Uma SGML simplificada que retém a maior
parte dos recursos inerentes à SGML em
uma forma simples, ordenada e de fácil uso
e implementação.
Relacionamento entre linguagens
• ATA, DocBook, TEI, J2008, Edgar, HTML e PICS
são linguagens originadas da SGML.
• CML (Linguagem de Marcação Química),
OFX (Intercâmbio Financeiro Aberto),
CDF (Formato de Definição de Canal)
são linguagens originadas da XML.
Estrutura de um Documento
XML
• XML inclui um mecanismo para definição
de regras que controlam como os
documentos são estruturados.
• São os chamados Document Type
Definitions – DTD (Definições do Tipo de
Documento)
DTDs
• Em um DTD, além da definição do tipo de
documento, podemos fazer com
que os documentos em XML sejam
automaticamente verificados.
DTDs
• Os efeitos de como as informações devem
aparecer em um documento XML, são
alcançados no DTD, listando-se os tipos de
elementos que se deseja usar e indicando a
ordem estrutural no qual os elementos
podem ocorrer.
Verificação do Documento
• Por ter uma estrutura simples e bem-definida,
XML permite que validemos o documento antes
de iniciarmos seu processamento.
• Um programa utilitário denominado XML Parser é
então capaz de verificar se o documento
corresponde ou não às regras prescritas.
• Se não quisermos que a estrutura seja verificada ?
XML e a Aparência no Browser
• Padrão subsidiário da XML
XSL (XML Style Language)
• Conceito de folha de estilo em um
processador de textos ou folha de estilo do
padrão HTML (CSS – Cascading Style
Sheet)
Conceito de Folha de Estilo
• A idéia básica é capturar detalhes sobre
como ficarão os vários elementos em um
documento e então armazená-los em um
documento em separado, ao invés de
emaranhá-los com o seu conteúdo.
Documento Separado
• Esta separação permitirá que a apresentação
seja alterada apenas com a alteração da
folha de estilo.
• XSL é a linguagem de folha de estilo
proposta para XML.
XSL
• Possui mais recursos do que a CSS, a qual é
ainda largamente compatível com XSL.
• XSL é um subconjunto simplificado da
linguagem de estilo padrão DSSSL
(ISO/IEC 10179).
E quanto ao hipertexto ?
• XML não predefine qualquer elemento. Então
como fazer para especificar vínculos de hipertexto
?
• XML delega a tarefa de capturar as informações
de hipertexto, para um padrão subsidiário
conhecido como XLL (eXtensible Link
Language).
XLL
• XLL é derivado do padrão existente para
expressar vínculos de hipertexto em
documentos SGML, conhecido como
HyTime, um outro padrão ISO/IEC 10744,
criado durante os anos da TEI baseada na
SGML.
Unicode - ISO/IEC 10646
• O Unicode, com seus caracteres de bytes
múltiplos, suporta uma grande variedade de
alfabetos e idiomas.
• Suportado em linguagens de programação
como Java e sistemas operacionais como
Windows e AIX.
Baseada em Padrões ISO/IEC
•
•
•
•
XML é derivada da SGML.
XSL é derivada da DSSSL.
XLL é derivada da HyTime.
Unicode.
Diferenças entre XML e HTML
• XML é a estrutura para se fazer linguagens de
marcação, enquanto HTML é uma linguagem de
marcação.
• XML pode ser vista com uma generalização do
paradigma de publicação de informações, cuja
pioneira é a HTML e a Web.
Sobre XML
• O menor denominador comum no mundo dos
documentos é o texto simples.
• XML foi criada com base no texto simples,
permitindo que os níveis de informações úteis
sejam capturados juntamente com dados básicos,
fazendo assim de forma completamente
independente do aplicativo e do fornecedor.
Sobre XML
• XML é uma tecnologia voltada ao
documento.
• A abordagem da XML é representada por
conteúdo, estrutura e apresentação,
atravessando exatamente o mundo da
Tecnologia da Informação.
• Quem sabe onde XML será aplicada fora do
mundo dos documentos ?
Sobre XML
• XML é o que se chama de tecnologia de infraestrutura.
• Sobre a estrutura simples e bem-formada de XML,
outras aplicações são construídas.
• O desenvolvimento de XML consiste na criação
de vocabulários de domínios de aplicação
específicos que serão processados por programas.
Vocabulários em XML
• Foram criados vocabulários para aplicações
como WAP, intercâmbio financeiro aberto,
bancos de dados, química, comércio
eletrônico, entre outros.
• Esses vocabulários são definidos através
dos DTDs.
Quem usa XML ?
•
•
•
•
•
•
•
•
Microsoft
Netscape
Sun Microsystems
Adobe
IBM
Corel
Hewlett-Packard
...
Áreas de Aplicação de XML
•
•
•
•
•
•
•
•
•
•
Home Banking
Tecnologia Push
Distribuição de Software
Automação na Web
Integração de Bancos de Dados
Tradução de Software
Representações Intermediárias de Dados
Publicação Científica
Comércio Eletrônico
Computação Distribuída (Interoperabilidade)
O Estado Atual de XML
• XML é um conjunto de recomendações
publicadas pelo W3C, que especifica a
sintaxe e a semântica de XML e de
tecnologias correlatas.
• Site do W3C: www.w3c.org
• O texto da recomendação XML :
www.w3c.org/TR/REC-xml
Outras Tecnologias XML
• Namespaces in XML
Especifica como qualificar nomes de
elementos e atributos com identificadores
de espaços de nomes únicos.
Mais ...
• Document Object Model (DOM)
Conjunto de interfaces de programação
abstratas para percorrer, manipular e criar
documentos XML.
Mais ...
• XML Schema Part 1: Structures
Uma linguagem baseada em XML para
descrever elementos, atributos e notações
em termos de tipos hierárquicos.
Mais ...
• XML Schema Part 2: Datatypes
Um conjunto de tipos de dados predefinidos
e uma linguagem baseada em XML para
definir tipos de dados gerados pelo usuário.
Mais ...
• XML Information Set
Descrição de um documento XML abstrato,
sem preocupação com sintaxe.
Mais ...
• XML Base (XBase)
Adendo a XML 1.0 que especifica como
determinar qual URI se utilizar quando se
tem várias referências URI relativas.
Mais ...
• XML Inclusions (XInclude)
Adendo a XML 1.0 que provê uma
alternativa a DTDs para acessar entidades
externas.
Mais ...
• XML Path Language (XPath)
Uma linguagem para selecionar um
conjunto de nodos em um documento XML.
Mais ...
• XML Pointer
Uma linguagem que usa expressões XPath
como identificadores URI, para permitir a
referência de elementos em documentos
externos.
Conceitos Básicos em XML
• XML é uma linguagem usada para
descrever e manipular documentos
estruturados.
• A manipulação de documentos XML é feita
por meio desta estrutura.
• Um documento XML é estruturado em
forma de árvore.
Conceitos Básicos em XML
• Possui sempre um elemento-raiz, de onde
outros elementos vão se ramificar.
• Essa estrutura em árvore estabelece como
documentos XML vão ser definidos e vão
ser tratados.
• O tratamento envolve principalmente
encontrar um determinado elemento, ou
grupo de elementos para serem processados.
Exemplo
•
<?xml version=“1.0”?>
<Capitulo>
<Titulo>
Capitulo Um
</Titulo>
<Tabela>
<Titulo>
Tabela Um
</Titulo>
</Tabela>
<secao><Titulo>Secao Um</secao><Titulo>
<Tabela><Titulo>Tabela Dois</Titulo></Tabela>
</secao>
</Capitulo>
Hierarquia e Sequência
• Em XML duas relações entre os elementos
são importantes:
Hierarquia e Seqüência
Hierarquia
• Estabelece relações:
pai/filho e ancestral/descendente
• <Capitulo> é o elemento-raiz.
• Os “Titulo” filhos de <Capitulo> são:
“Capitulo Um”
• Os “Titulos” que são descendentes de <Capitulo>
são: “Capitulo Um”, “Tabela Um”, “Secao Um”, e
“Tabela Dois”.
Sequência
• A sequência em que as informações aparecem
também é importante:
• <Instrucoes>
<Titulo>Lavar os cabelos</titulo>
<Sequencia>
<Passo>Molhar os cabelos</Passo>
<Passo>Fazer Espuma</Passo>
<Passo>Enxaguar</Passo>
<Passo>Repetir</Passo>
</Sequencia>
</Instrucoes>
Dados e Marcações
• Um documento XML consiste de uma combinação
de dados caracteres e marcações (tags).
• Marcações podem ser:
- caracteres de início de tags
- fim de tags
- elementos vazios
- referências à entidades
- referências à caracteres
- comentários
Dados e Marcações
- delimitadores de seções CDATA
(valores a serem desconsiderados quanto à sintaxe XML)
- declaração de tipo de documento
- instruções de processamento
- declarações XML
- declarações textuais
- quaisquer espaço em branco fora do
elemento-raiz e fora de qualquer outra tag.
Elementos de Informação
• Os elementos de informação podem
representar estruturas de dados arbitrárias.
• Elementos de informação podem conter
valores codificados como caracteres, e
nesse caso, dizemos que são elementos com
apenas texto.
Elementos de Informação
• Um elemento representa um tipo estruturado, se
ele não contém dados textuais, e sim um ou mais
elementos descendentes.
• Também podem existir elementos descendentes
com texto (conteúdo misto).
• Documentos que não têm conteúdo misto são
chamados normalizados.
Elemento com Tipo Estruturado
•
<?xml version=“1.0”?>
<Capitulo>
<Titulo>
Capitulo Um
</Titulo>
<Tabela>
<Titulo>
Tabela Um
</Titulo>
</Tabela>
<secao><Titulo>Secao Um</secao><Titulo>
<Tabela><Titulo>Tabela Dois</Titulo></Tabela>
</secao>
</Capitulo>
XML com Conteúdo Misto - 1
<Pedidos>
<NroPedido NumPedido=“12435”>
<Cliente NumClient=“543”>
<CustName>IndustriasABC</CustName>
<Rua>Avenida Central,123</Rua>
<Cidade>São Paulo</Cidade>
<Estado>SP</Estado>
<CEP>60609</CEP>
</Cliente>
</DataPedido>981215</DataPedido>
<Linha NroLinha=“1”>
<Peca NroPeca=“123”>
XML com Conteúdo Misto - 2
<Descricao>
<P><B>Alicate:</B><BR/>
Aco Inox, construido em uma so peca. Garantia 10 anos.</P>
</Descricao>
<Preco>9.95>/Preco>
</Peca>
<Quantidade>10</Quantidade>
</Linha>
<Linha NroLinha=“2”>
<Peca NroPeca=“456”>
<Descricao>
XML com Conteúdo Misto - 3
<P><B>Separador de gizmos:</B><BR/>
Aluminio,um ano de garantia.</P>
</Descricao>
<Preco>13.27>/Preco>
</Peca>
<Quantidade>5</Quantidade>
</Linha>
</NroPedido>
</Pedidos>
Atributos em XML
• Cada ítem de elemento de informação pode ter
uma ou mais propriedades, chamadas de atributos.
• Os atributos formam uma lista não-ordenada de
itens de informação.
Atributos em XML
• <IMG SRC=“logotipo.gif” WIDTH=“32”
HEIGHT=“64” ALT=“Logotipo”>
• Cada atributo tem um nome único, e cada um possui uma
propriedade, consistindo de zero ou mais caracteres.
• Em XML, atributos podem ser usados para descrever um
elemento, ou para fornecer informações adicionais sobre
um elemento.
Sintaxe de XML
• Para podermos escrever, ler e entender
como XML estrutura documentos e
também, como e onde podemos usá-la;
• Documento XML bem-formado:
se possui o seguinte formato, nesta
ordem:
Prólogo, Elemento-Raiz, Miscelânea
Prólogo
• Consiste obrigatoriamente na declaração de
que este é um documento XML, e a versão
da recomendação W3C que ele segue.
• Todas as declarações XML iniciam com os
cinco caracteres:
<?xml version=“1.0”? encoding=“ISO8859-1” standalone=“yes”?>
Tipo de Codificação
• encoding
Estabelece o conjunto de caracteres
utilizado no documento. Valores para esta
declaração podem ser encontrados em
http://charts.unicode.org/
Exemplos:
UTF-8, US-ACII, ISO-8859-1
DTD Externo
• standalone
Indica se o documento XML necessita ou não de
um DTD externo:
no - o documento depende de um
DTD externo;
yes - o documento não depende de
um DTD externo.
Elemento-Raiz
• Um documento XML bem-formado contém
um e apenas um elemento-raiz.
<x>
<a> ... </a>
<b> ... </b>
</x>
<!--Incorreto!!-->
<a> ... </a>
<b> ... </b>
Um Documento XML
• <?xml version=“1.0” encoding=“ISO-8859-1”?>
<pessoa>
<id>770412-4956</id>
<nome>
<prenome>João</prenome>
<sobrenome>Silva</sobrenome>
</nome>
Continuação
•
<endereço>
<rua>Central,205</rua>
<cep>01000</cep>
<cidade>São Paulo</cidade>
</endereço>
Continuação
•
<telefone>
<res>011-5556677</res>
</telefone>
</pessoa>
• O primeiro elemento do documento é o elementoraiz <pessoa>.
• As próximas linhas definem os elementos
descendentes da raiz (id, nome, endereço e
telefone)
Tags
• São definidas pelo criador do documento, e
devem seguir algumas regras não presentes
em HTML.
• Se um documento não for bem-formado ele
será obrigatoriamente rejeitado pelo
programa que está lendo.
ISSO-8859-1
• Neste padrão estão presentes os caracteres
acentuados como os usados na língua
portuguesa. Assim, podemos usar caracteres
acentuados não apenas nos tags, como
também no corpo do documento.
Documento XML bem-formado
• Sendo XML uma linguagem altamente
estruturada, é imperativo que todos os documentos
XML estejam em conformidade com a
recomendação XML 1.0.
• Dizemos que um documento é bem-formado
quando ele atende a todas as exigências estruturais
desta recomendação.
Documento XML
•
<?xml version=“1.0” encoding=“ISO8859-1” standalone=“yes”?>
<Recibo>
<IDRecibo>1000</IDRecibo>
<NomeDoCliente>Jane Smith</NomeDoCliente>
<IteMs>
<Item>
<Código>134</Código>
<Descrição>Meia</Descrição>
<Preço>9.95</Preço>
</Item>
Continuação
<Item>
<Código>153</Código>
<Descrição>Wolkswagen Passat</Descrição>
<Preço>10000,00</Preço>
</Item>
<Item>
<Código>171</Código>
<Descrição>Cafezinho</Descrição>
<Preço>0,30</Preço>
</Item>
</Items>
</Recibo>
Verificação de Bem-Formado
• Existem vários lugares na Web que podem
ser usados para verificar se um documento
XML é bem-formado.
• http://www.ltg.ed.uk/~richard/xml-checkhtml
Cont ...
• http://www.scripting.com/frontier5/xml/cod
e/xmlValidator.html
• http://www.wml.com/xml/pub/tools/ruwf/ch
eck.html
• http://www.stg.brown.edu/service/xmlvalid/
• http://koala.inria.fr:8080/
Regras para
Definição de Nomes
• Nomes (de elementos e atributos) devem iniciar
com uma letra (A .. Z, excluindo quaisquer
caracteres acentuados ou cedilha), seguida de
outras letras, ou dígitos, ou caracteres de
pontuação:
•
“.” (ponto decimal),
•
“,” (vírgula),
•
“-” (hífen),
•
“_” (sublinhado),
•
“:” (dois pontos).
Exemplos de Elementos Válidos
•
•
•
•
<NOME>
<Livro>
<volume>
<controle_de_trafego>
Elementos Inválidos
• <livro%8>
• <controle de trafego>
(caracteres brancos)
• <2linhas>
Tags Maiúsculas e Minúsculas
• Uma tag <CARTA> é diferente da tag
<carta>, que é diferente de <Carta>.
• Tags de abertura e de fechamento, devem
ser escritas de maneira idêntica.
<Mensagem>Esta frase é incorreta</message>
<Mensagem>Esta frase é correta</Mensagem>
Abertura e Fechamento
• Em XML todos os elementos devem ter
uma tag de fechamento, o que não acontece
em HTML.
• Exemplos:
<p>Este é um parágrafo</p>
<p>Este é outro parágrafo</p>
Elementos XML Vazios
• Elementos vazios devem conter uma barra
(/) de fechamento antes do final da tag.
• Exemplo:
<p>Este é um parágrafo seguido de uma
linha em branco</p><br/>
Aninhamento de Elementos XML
• Todos os elementos XML devem ser
aninhados apropriadamente.
• Em XML todos os elementos devem estar
aninhados como segue:
<b><i>Este texto está em negrito e
itálico</i></b>
Elemento-Raiz
• Todos os documentos XML devem ter uma
única tag-raiz que define o elemento-raiz.
• Todos os outros elementos, sem exceção,
devem estar aninhados dentro desse
elemento e podem conter, por sua vez, subelementos aninhados.
Cont ...
• <raiz>
<filho>
<subfilho>
... ...
</subfilho>
</filho>
</raiz>
Caracteres Reservados
• Vários caracteres fazem parte da estrutura
de XML, e portanto, não podem ser usados
nos dados do documento XML.
• É necessário substituí-los por sequências
especiais de caracteres chamadas de
entidades.
Caracteres e Entidades
•
•
•
•
•
< &lt;
& &amp;
> &gt;
“
&quot;
´ &apos;
Cont ...
• Exemplo:
Para escrevermos,
“Moinho Brasil & Cia. Ltda”
<Empresa>
<Nome>
&quot;Moinho Brasil&Amp;Cia.Ltda&quot;
</Nome>
</Empresa>
Atributos
• Um atributo é um par (nome,valor)
associado a um elemento.
• Os atributos são declarados dentro da tag de
abertura de um elemento.
Valores de Atributos
• Valores de atributos devem estar entre aspas ( “” )
ou apóstrofos (´`).
• Exemplos:
<IMG SRC=“logotipo.gif” WIDTH=“32”
HEIGHT=“64” ALT=“Logotipo”>
<IMG SRC=‘logotipo.gif’ WIDTH=‘32’
HEIGHT=‘64’ ALT=‘Logotipo’>
<pessoa NASCIMENTO=“01/06/1980” >
Elementos X Atributos
• Usando um atributo pra definir sexo:
<pessoa sexo=“feminino”>
<nome>Ana</nome>
<sobrenome>Silva</sobrenome>
</pessoa>
Cont ...
• <pessoa>
<sexo>feminino</sexo>
<nome>Ana</nome>
<sobrenome>Silva</sobrenome>
</pessoa>
Faz mais sentido ?
Limitações de Atributos
• Atributos não podem conter múltiplos valores. Os
atributos são pares nome-valor. Um atributo pode
ter apenas um valor.
• <EMPRESA>
<NOME FONE1=“011-444-9999”
FONE2=“011-554-9888”>Refinaria
Brasil</NOME>
</EMPRESA>
Usando Elementos
• <EMPRESA>
<NOME Refinaria Brasil</NOME>
<FONES>
<FONE1>011-444-9999</FONE>
<FONE2>011-554-9888</FONE>
</FONES>
</EMPRESA>
Cont ...
• Atributos não descrevem estruturas.
Certos dados são mais bem descritos
usando-se uma estrutura que um valor
simples.
Cont ...
• <pessoa NASCIMENTO=‘01/06/1980’>
<Nome>Armando</Nome>
...
...
</pessoa>
Cont ...
• Se usarmos um elemento temos a flexibilidade de
descrever:
• <pessoa>
<nascimento>01/06/1980</nascimento>
<nome>Armando</nome>
...
...
</pessoa>
Cont ...
• Ou expandindo para:
<pessoa>
<nascimento>
<data>
<dia>01</dia>
<mes>06</mes>
<ano>1980</ano>
</data>
</nascimento>
<nome>Armando</nome>
...
</pessoa>
Quando usar Atributos
• Não existem regras específicas que determinem
quando usar atributos.
• Em geral, os dados devem ser colocados em
elementos.
• Informações a respeito dos dados (metadados)
devem ser colocados em atributos.
Cont ...
• Se estiver em dúvida coloque a informação nos
elementos.
• Atributos são adequados para se colocar itens
como números de identificação, endereços Web,
referências e outras informações que não são
diretamente relevantes ao leitor do documento
XML.
Seções CDATA
• São usadas para inserir blocos de texto, que
podem conter caracteres conflitantes com os
usados em marcações.
• Seções CDATA iniciam com a cadeia de
carateres “ <![CDATA[ ” e terminam com a
cadeia de caracteres “ ]]>”.
Cont ...
• Exemplo:
<![CDATA[ <saudacao>Ola a
todos</saudacao> ]]>
<![CDATA[ trecho em JavaScript ]]>
Espaço de Nomes
• Namespaces é uma recomendação aprovada pelo
W3C pela qual desenvolvedores podem qualificar
nomes de elementos de maneira única na Internet
como um todo, evitando conflitos entre elementos
que tenham o mesmo valor.
• Esse risco existe porque XML permite a criação de
tags. Diferentes pessoas em lugares diferentes
podem criar os mesmos nomes de tags.
Cont ...
• É uma tecnologia que permite declarar que
estamos utilizando nomes pertencentes a
certo vocabulário, e assim podemos
especificá-los de maneira não ambígua no
documento.
Por que usar NameSpaces
• Um dos atrativis de XML é a capacidade de
se criar tags que tenham algum significado.
• <livro>
<titulo>A SuiTable Boy</titulo>
<preco moeda=“BrReais”>22.95</preco>
</livro>
Cont ...
• Da mesma maneira podemos representar os
dados de um autor:
<AUTOR>
<TITULO>Sr</TITULO>
<NOME>William Sheakespeare</NOME>
</AUTOR>
Cont ...
• Namespaces resolvem esse problema por meio da
associação de um vocabulário com uma tag.
• Exemplo:
<Livros:TITULO>Hamlet</Livros>:TITULO>
<Autor:TITULO>Sr.</Autor:TITULO>
Cont ...
• O nome que precede uma tag é um prefixo
que se refere a um namespace, também
conhecido como URI (Universal Resource
Identifier).
• Um URI garante que haverá unicidade
quando dois ou mais documentos XML
forem combinados não existindo conflito.
Declarando Espaços de Nomes
• Declaração Default
<LIVRO xmlns=“urn:Biblioteca.org:InformacaoDeLivros” >
<TITULO>Hamlet</TITULO>
<PRECO moeda=“BR Real”>22.95</PRECO>
</LIVRO>
Define um nome de espaço para todos os elementos em um dado
contexto.
Declarando Espaços de Nomes
• Declaração Explícita
<lv:LIVRO
xmlns:lv=“urn:Biblioteca.org:InformacaoDeLivros”
xmlns:dinheiro=“urn:Financas:Dinheiro” >
<lv:TITULO>Hamlet</lv:TITULO>
<dinheiro:PRECO dinheiro:moeda=“BR
Real”>22.95</dinheiro:PRECO>
</lv:LIVRO>
Document Type Definition
• XML é uma linguagem extensível.
Flexibilidade,
Conflitos,
• Ordem em que os elementos ou atributos
aparecem nos documentos, se existem
elementos opcionais, e quais tipos desses
elementos.
DTD
• Para ajudar a resolver esse problema, criouse o DTD – Document Type Definition.
• Um DTD define quais as classes possíveis
para uma classe de documentos.
DTD
• Tendo-se um DTD, um documento XML pode ser
validado, ou seja, podemos confirmar se o
documento segue certa definição, e a aplicação
que vai processar esse documento não precisa se
preocupar com erros de estrutura.
• Dessa forma, asseguramos que diferentes pessoas
e programas podem tratar informações uns dos
outros.
DTD
• São usados para definir os chamados vocabulários.
• Cada vocabulário estabelece quais elementos são
aplicáveis em um determinado domínio de
aplicação.
• Cada ramo de atividade que envolve transferência
de informação tem um grande potencial para o uso
de DTDs.
Declaração de Tipo de
Documento
• Uma declaração de tipo de documento
define qual o DTD usado por um
documento XML.
• Essa declaração aparece no prólogo de um
documento, antes de um elemento-raiz.
• A declaração pode efetuar uma ou as duas
das seguintes funções:
Cont ...
• Conter declarações de markup no prólogo
do documento. Assim é definido um DTD
interno ao documento.
• Referenciar declarações de markup
externas, o que define um DTD externo.
Cont ...
• Quando nos referimos ao DTD de um documento,
estamos nos referindo ao externo e ao interno,
tomados em conjunto.
• O DTD externo descreve estruturas gerais para
uma classe de documentos.
• O DTD interno descreve estruturas específicas
para um dado documento.
Download

Introdução