XML (eXtensible Markup Language)
por
Rafael Port da Rocha
(Notas de Aula)
2007
XML - eXtensible Markup Language
⇒ Introcução
♦ Componentes de um Documento Eletrônico Digital
Conteúdo: formado pelas informações que o
documento transmite aos seus leitores, como
seu título, seus autores, seu texto, etc.
Estrutura: organização da informação
Apresentação/Estilo:
formada
por
elementos que indicam como o conteúdo
será apresentado quando o documento
eletrônico for
visualizado, isto é, são
elementos que indicam como o documento
será formatado (tipo de letra, cor de letra,
localização do título, tabulações, etc.)
♦ Linguagem de Marcação (Markup Language)
• Linguagem através da qual marcas (tags) descrevem
o significado de cada entidade informacional de um
documento
♦ Exemplos de Marcações:
• <li> José da Silva </li>
 Marcação na linguagem HTML que indica que
“José da Silva” deve ser exibido na forma de item:
“ • José da Silva “
• <nome> José da Silva </nome>
 Marcação na linguagem XML que indica que o
texto “José da Silva” significa um nome de pessoa
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
⇒ XML (eXtensible Markup Language)
♦ Padrão para definição, validação e compartilhamento de
informação formatada em um documento eletrônico
♦ A informação é estruturada através de marcações
(tags):
• Exemplo: <Placa> IIK1040 </Placa>
 IIK1040 é uma informação marcada por
<Placa>
 A marcação inicia por <Placa>, encerra por
</Placa> e contém como conteúdo IKK1040
♦ As marcações definem o significado das informações
contidas no documento XML, permitindo que este
documento seja trocado por sistemas de informação em
um ambiente de comércio eletrônico B2B
• Exemplo: <Placa> IIK1040 </Placa>
 A marcação <Placa> indica que a informação
IIK1040 corresponde a uma placa de automóvel
♦ Marcações podem conter marcações, formando um
documento com uma estrutura complexa
• Exemplo:
<Veiculo>
<Placa> IIK1040 </Placa>
<Modelo> VW Fusca </Modelo>
<AnoFabricacao> 1981 </AnoFabricacao>
<Proprietario>
<Nome> Antonio Carlos </Nome>
<Localizacao>
[email protected]
</Localizacao>
</Proprietario>
</Veiculo>
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
♦ Documentos XML são usados tanto para troca de
informações entre sistemas de informação (Comércio
eletrônico B2B),
Computador
A
Doc
XML
Computador
B
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
⇒ Estrutura de um documento XML
♦ Um documento XML é formado por elementos e
atributos
♦ Em um documento XML:
• Um elemento é formado pelo par inicio e fim de
marcação:
<Placa> IJD9090 </Placa>
 Onde: <Placa> é o início de marcação, </Placa>
é o fim de marcação, e IJD9090 é o conteúdo
• Um elemento
elementos
pode
conter
texto
e/ou
outros
<Proprietario>
<Nome> Joaquim Manuel </Nome>
<Localizacao>
[email protected]
</Localizacao>
</Proprietario>
 O elemento Proprietário contém os elementos
Nome e Localização
 O elemento Nome contém o texto Joaquim Manuel
 O elemento Localização contém o texto
[email protected]
• Um atributo é uma informação adicional associada ao
elemento.
 Fica junto ao início de marcação do elemento
<Valor Moeda="Real"> 1000,00 </Valor>
 O atributo Moeda, do elemento Valor,
que o conteúdo está em Reais
Notas de Aula - Rafael Port da Rocha - 2007 ©
informa
XML - eXtensible Markup Language
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet href='Veiculos.xsl'
type='text/xsl'?>
<!DOCTYPE Veiculos SYSTEM "Veiculos.dtd">
<RegistroDeVeiculos>
<Veiculo>
<Placa> IJD9090 </Placa>
<Modelo> VW Brasilia </Modelo>
<AnoFabricacao> 1981 </AnoFabricacao>
<Proprietario>
<Nome> Jose da Silva </Nome>
<Localizacao> [email protected] </Localizacao>
<Localizacao>
<Endereco>
<Rua> Rua A </Rua>
<Numero> 123 </Numero>
<Cidade> Santa Maria </Cidade>
</Endereco>
</Localizacao>
</Proprietario>
<Valor Moeda = "Real"> 1000,00 </Valor>
</Veiculo>
<Veiculo>
<Placa> IKK1010 </Placa>
<Modelo> VW Variant </Modelo>
<AnoFabricacao> 1970 </AnoFabricacao>
<Proprietario>
<Nome> Joaquim Manuel </Nome>
<Localizacao> [email protected] </Localizacao>
</Proprietario>
</Veiculo>
<Veiculo>
<Placa> IIK1040 </Placa>
<Modelo> VW Fusca </Modelo>
<AnoFabricacao> 1981 </AnoFabricacao>
<Proprietario Tipo="PJuridica">
<Nome> Antonio Carlos </Nome>
<Localizacao> [email protected] </Localizacao>
</Proprietario>
<Veiculo>
</RegistroDeVeiculos >
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
⇒ Cometários do Exemplo
♦ É um documento que contém descrições de veículos
♦ Contém o elemento inicial: RegistroDeVeiculos
<RegistroDeVeiculos>
....
</RegistroDeVeiculos>
♦ O elemento RegistroDeVeiculos
elementos Veiculo
contém
três
<RegistroDeVeiculos>
<Veiculo> ... </Veiculo>
<Veiculo> ... </Veiculo>
<Veiculo> ... </Veiculo>
</RegistroDeVeiculos>
♦ Cada elemento Veiculo contém os elementos Placa,
Modelo, AnoFabricacao, Proprietario e Valor.
<Veiculo>
<Placa> ... </Placa>
<Modelo> ... </Modelo>
<AnoFabricacao> ... </AnoFabricacao>
<Proprietario> ... </Proprietario>
<Valor Moeda = “....”> ... </Valor>
</Veiculo>
♦ Os
elementos
Placa,
Modelo,
Moeda
e
AnoFabricação contêm texto em seu conteúdo
♦ O elemento Valor possui o atributo Moeda, que indica
a moeda do valor
♦ O elemento Valor é opcional, não está representado
nos veículos IKK1010 e IIK1040.
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
♦ O elemento Proprietário contém o elemento Nome e
vários elementos Localização.
♦ O proprietário do veículo IJD9090 possui duas
localizações, e os proprietários dos veículos IKK1010 e
IIK1040 possuem uma única localização cada.
♦ O elemento Localização é construído de duas formas
• Primeira: contém um texto como valor
<Localizacao>
[email protected]
</Localizacao>
• Segunda: contém o elemento endereço
<Localizacao>
<Endereco>
<Rua> Rua A </Rua>
<Numero> 123 </Numero>
<Cidade> Santa Maria </Cidade>
</Endereco>
</Localizacao>
♦ O elemento Endereço contém os elementos Rua,
Numero e Cidade
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
⇒ DTD (Document Type Definition)
♦ Um DTD é um documento que define as regras para a
construção de um documento XML, isto é, define quais
os tipos de elementos que podem ser usados no
documento, e maneira com que elementos destes tipos
podem ser combinados
♦ No DTD, uma regra deve ser definida para especificar
como deve ser construído cada tipo de elemento :
Tipo de Elemento
Veículo
Placa
Modelo
AnoFabricacao
Valor
Priprietário
Nome
Localizacao
Endereco
Rua
Numero
Cidade
CEP
RegistroDeVeiculos
Regra (Conteúdos possíveis
para um elemento do tipo)
Placa seguido de
Modelo seguido de
AnoFabricacao seguido de
Proprietario seguido de
Valor (que é opcional)
Texto
Texto
Texto
Texto, com o atributo Moeda
Nome seguido de um ou mais
elementos Localizacao
Texto
Várias ocorrências de:
Texto ou elemento
Endereco
Rua, seguido de
Numero seguido de
CEP (que é opcional)
seguido de Cidade
Texto
Texto
Texto
Texto
Zero ou mais elementos
Veiculo
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
♦ Uma regra possui o seguinte formato:
<!ELEMENT “tipoDoelemento”
“conteúdosPossíveis”>
• Onde:
 TipoDoElemento indica um tipo de elemento
possível no documento
 ConteúdosPossíveis indica quais os conteúdos
possíveis para este tipo de elemento
♦ Exemplo de DTD para o XML de veículos
<!ELEMENT RegistroDeVeiculos (Veiculo)* >
<!ELEMENT Veiculo
( Placa, Modelo,
AnoFabricacao,
Proprietario, Valor? )>
<!ELEMENT Placa
(#PCDATA)>
<!ELEMENT Modelo
(#PCDATA)>
<!ELEMENT AnoFabricacao (#PCDATA) >
<!ELEMENT Proprietario (Nome, Localizacao+) >
<!ELEMENT Nome
(#PCDATA) >
<!ELEMENT Localizacao
(#PCDATA|Endereco)*>
<!ELEMENT Enderec
(Rua, Numero ,CEP? ,Cidade)>
<!ELEMENT Rua
(#PCDATA) >
<!ELEMENT Numero
(#PCDATA) >
<!ELEMENT CEP
(#PCDATA) >
<!ELEMENT Cidade
(#PCDATA) >
<!ELEMENT Valor
(#PCDATA) >
<!ATTLIST Valor Moeda
(Real | Dollar | Euro) #REQUIRED >
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
♦ Comentários sobre o exemplo:
<!ELEMENT Veiculo
( Placa, Modelo,
AnoFabricacao,
Proprietario, Valor? )>
♦ significa que: o tipo de elemento Veículo deve conter
Placa,
seguido
de
Modelo,
seguido
de
AnoFabricacao, seguido de Proprietario, seguido de
Valor, que é opcional (símbolo ? indica opcional, símbolo
“,” indica “seguido de”).
<!ELEMENT Placa
(#PCDATA)>
♦ significa que o tipo de elemento Placa deve conter
texto como valor
<!ELEMENT RegistroDeVeiculos (Veiculo)* >
♦ significa que: RegistroDeVeiculos deve conter zero ou
mais elementos Veiculo (símbolo * indica zero ou mais)
<!ELEMENT Proprietario (Nome, Localizacao+) >
♦ significa que: Proprietario deve conter Nome seguido de
um ou mais elementos Localização (símbolo + indica um ou
mais)
<!ELEMENT Localizacao
(#PCDATA|Endereco)*>
♦ significa que: Localizacao deve conter zero ou mais
ocorrências de texto ou Endereco (símbolo * indica zero ou
mais, símbolo | indica ou)
<!ATTLIST Valor Moeda
(Real | Dollar | Euro) #REQUIRED >
♦ significa que o elemento Valor deve conter o atributo
Moeda, e que o valor do atributo moeda deve ser: Real ou
Dollar ou Euro.
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
⇒ Documento XML bem formado
• Um documento XML é dito bem formado quando suas
marcações estão corretas, isto é, de estão de acordo
com a linguagem de marcação de XML
 Documento bem formado:
<a atr=”x”>
<b> abc </b>
</a>
 Documento que não é bem formado:
<a>
<b> abc </a>
</b>
Erro: O elemento <b> encerra por </a> e o
elemento <a> encerra por </b>
 Documento que não é bem formado
<a>
<b> abc </b>
<c> de <c>
</a>
Erro: O elemento <c> não é encerrado
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
⇒ Documento XML Válido
• Um documento XML é dito válido quando é bem
formado e obedece as regras de um DTD, isto é, as
elementos estão de acordo com as regras
estabelecidas no DTD
• Exemplo:
 sendo um DTD com as seguintes regras
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
a
b
c
d
(b)+
>
(c, d) >
(#PCDATA)>
(#PCDATA)>
 O seguinte documento é bem formado e válido
para o DTD definido acima
<a>
<b>
<c> bla</c>
<d> bla </d>
</b>
<b>
<c> bla </c>
<d> bla </d>
</b>
</a>
 O seguinte documento bem formado, mas não é
válido para o DTD definido acima
<a>
<b>
<d> bla </d>
</b>
<b>
<c> bla </c>
<d> bla </d>
</b>
</a>
Erro: A primeira ocorrência de <b> não é válida,
pois deve conter os elementos <c> e <d>
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
♦ Parsers são programas que verificam se um documento
XML está válido para um DTD
Doc.
XML
Parser
XML
Doc.
XML
bem
formado
e válido
Doc.
DTD
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
⇒ Sintaxe da linguagem DTD
• Declaração de Elemento:
<!Element “nome” “modelo de conteúdo”>
• Modelo de conteúdo
 Indica os elementos que podem ocorrer no
conteúdo do elemento declarado
 Contém indicadores de ocorrência dos elementos
que podem ocorrer no conteúdo do elemento
declarado
A? = uma ou zero ocorr. de A
A* = zero ou mais ocorr. de A
A+ = uma ou mais ocorr. de A
A|B = ocorre A ou B
A,B = ocorre A seguido por B
#PCDATA = ocorre cadeia de caracteres
ANY = conteúdo é um elemento vazio
ANY = ocorrência de qualquer elemento
do DTD
• Declaração de atributo
<!ATTLIST “nome do elemento”
“nome do atributo”
“tipo” “valor padrão”>
Exemplos de Tipos
CDATA = valor de
atributo
é
uma
seqüência
de
caract.
ID = atributo que
deve ter valor único
Exemplos de valores
padrões
#REQUIRED =
atributo obrigatório
#IMPLIED = atributo
opcional
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
no documento
⇒ Exercício 1
♦ Verificar os documento Veiculos.xml, Veiculos.dtd
⇒ Exercício 2
♦ Contruir um documento XML para representar turmas
de uma disciplina, de acordo com o seguinte DTD:
<!-- DTD Disciplina -->
<!ELEMENT Diciplina
(Nome, CargaHoraria, Turma*)>
<!ELEMENT Nome
(#PCDATA)>
<!ELEMENT CargaHoraria (#PCDATA)>
<!ELEMENT Turma
( Semestre,
Horario,
Professor+, Aluno+)>
<!ELEMENT Semestre (#PCDATA)>
<!ELEMENT Horario
(#PCDATA)>
<!ELEMENT Professor (Nome, Endereco)>
<!ELEMENT Aluno
(Nome, Endereco, Situacao)>
<!ELEMENT Endereco (Logradouro,Numero,CEP?,Cidade)>
<!ELEMENT Logradouro(#PCDATA) >
<!ELEMENT Numero
(#PCDATA) >
<!ELEMENT CEP
(#PCDATA) >
<!ELEMENT Cidade
(#PCDATA) >
<!ELEMENT Situacao (Avaliacao, Faltas)>
<!ELEMENT Avaliacao (#PCDATA)>
<!ATTLIST Avaliacao Tipo
( Nota | Conceito ) #REQUIRED>
<!ELEMENT Faltas
(#PCDATA)>
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
⇒ Exercício 3
♦ Dublin Core é um é um esquema de para descrever
recursos (páginas) da Internet para fins de busca.
♦ O esquema é formado pelos 15 elementos descritos na
tabela a seguir
♦ Atividades:
• Construir um DTD para representar os elementos do
esquema Dublin Core
• Contruir um documento XML que contenha
metadados que descrever o seguinte recurso, acordo
com o DTD especificado:
 http://www.dgzero.org/dez01/Art_02.htm
Elemento
Title
Subject
Description
Descrição
Título do recurso (página)
Tema , assunto do recurso
Descrição do conteúdo do recurso
Language
Source
Idioma do recurso
Informações sobre os recursos que
contribuíram para a elaboração do recurso
corrente.
Recursos que possuem relacionamentos com
o recurso corrente
Relation
Coverage
Características espaciais ou temporais
Creator
Pessoa ou organização responsável pela
criação do conteúdo intelectual do recurso.
Pessoa ou organização que contribui
intelectualmente na criação do recurso
(exemplo: editor, ilustrador, tradutor, etc)
Identifica a entidade responsável por tornar o
recurso disponível
Direitos autorais
Data da criação ou publicação do recurso
Forma como o conteúdo é expresso (artigo,
relatório técnico, dissertação)
Formato em que o recurso é materializado
(postScript, HTML, DOC, PDF, etc.)
Possui o identificador único do recurso
(URI, ISSBN, etc.)
Contributor
Publisher
Rights
Date
Type
Format
Identifier
Notas de Aula - Rafael Port da Rocha - 2007 ©
XML - eXtensible Markup Language
⇒ Bibliografia
Bax, M. Introdução às linguagens de marcas. Ciência da
Brasília, v. 30, n. 1, p. 32-38, jan./abr. 2001
Informação,
Almeida, M. Uma introdução ao XML, sua utilização na Internet e alguns
conceitos complementares. Ciência da Informação, Brasília, v. 31, n.
2, p. 5-13, maio/ago. 2002
Marchal, B. XML: conceitos e aplicações. São Paulo:Berkeley, 2000
Norman, P. A Study of Extensibel Markup Language
Souza, M.; Vendrusculo, L.; Melo Metadados para a descrição de recursos
de informação eletrônica:utilização do padrão Dublin Core.
Ci. Inf., Brasília, v. 29, n. 1, p. 93-102, jan./abr. 2000
XML Bible. www.ibiblio.org/xml/books/bible/updates/14.html
Notas de Aula - Rafael Port da Rocha - 2007 ©
Download

Clique aqui para baixar o documento