1
Faculdade de Engenharia da Universidade do Porto
XML
Extensible Markup Language
FEUP
Gabriel David
Lígia Ribeiro
[email protected]
[email protected]
XML
2
Estrutura, semântica e formato
• Exemplo: registo de uma música
– HTML
<dt>Grândola
<dd>música usada como sinal de acção militar
<ul>
<li>Autor: José Afonso
<li>Data: 1972
<li>Editora: Valentim de Carvalho
</ul>
– XML
<MUSICA>
<TITULO>Grândola</TITULO>
<OBS>música usada como sinal de acção militar</OBS>
<AUTOR>José Afonso</AUTOR>
<DATA>1972</DATA>
<EDITORA>Valentim de Carvalho</EDITORA>
</MUSICA>
FEUP
XML
3
Comparação
• HTML:
• <TD> – estrutura
• <STRONG> - semântica
• <B> - formato
– O <dt> é mesmo uma definição ou só uma maneira de indentar texto?
• XML: mais semântica, também estrutura, sem formato
–
–
–
–
FEUP
Facilita a leitura e a interpretação relativamente à realidade
Suporta a pesquisa
Flexível
Necessita indicações de apresentação
XML
4
Metalinguagem
• SGML
–
–
–
–
Standard Generalized Markup Language (1986, ISO 8879)
Charles Goldfarb, Ed Mosher, Ray Lorie (1969, IBM)
Anotação de documentos para facilitar o seu processamento
Define os mecanismos básicos para as linguagens concretas
• HTML
– Hypertext Markup Language (1993)
– Tim Berners-Lee (criou a Web)
– Linguagem SGML concreta para facilitar a apresentação de
documentos na Internet
• XML
– eXtensible Markup Language (1996)
– Jon Bosak para W3C (WWW Consortium)
– conjunto de regras que os documentos devem seguir (simplificação do
SGML, de processamento pesado, pelas excepções que admite)
FEUP
XML
5
Paralelo
SGML
HTML
FEUP
XML
XHTML
XML
6
Aplicações
•
•
•
•
•
•
•
•
•
FEUP
Para além do XHTML
Chemical Markup Language
Mathematical Markup Language
Channel Definition Format
Open Software Description
Resource Description Framework
Scalable Vector Graphics
Music ML
...
XML
7
Primeiro documento
• Um documento XML
<?xml version="1.0" standalone="yes" ?>
<foo>
Bom dia a quem chegou a horas!
</foo>
• <? ... ?> é uma instrução de processamento (xml)
• Um atributo é um par nome=valor
• Standalone=“yes” significa que não são necessários documentos
auxiliares
• O elemento <foo> é constituído por uma marca de início, uma
marca de fim e conteúdo
FEUP
XML
8
Ainda o primeiro documento
• Variante
<?xml version="1.0" standalone="yes" ?>
<p>
Bom dia a quem chegou a horas!
</p>
• Outra
<?xml version="1.0" standalone="yes" ?>
<saudacao>
Bom dia a quem chegou a horas!
</saudacao>
• As marcas podem ter três tipos de significado
– Estrutura, semântica e estilo
• Estrutura organiza o documento (em árvore)
• Semântica relaciona com o mundo
• Estilo determina a apresentação
• As três formas do documento são equivalentes pois têm a mesma
estrutura e conteúdo
• O significado está na cabeça do leitor (terceira forma é a melhor)
FEUP
XML
9
Apresentação
• Ensinando o navegador a apresentar os elementos
– Definir folha de estilo (CSS)
– Partilhável por vários documentos, tal como um conjunto de marcas é
partilhado
– Diferentes estilos permitem adequar a diferentes meios
• Ficheiro saudacao.css
saudacao {display : block; font-size : 24pt; font-weight : bold; }
• Nova instrução de processamento liga o estilo
<?xml version="1.0" standalone="yes" ?>
<?xml-stylesheet type="text/css" href="saudacao.css" ?>
<saudacao>
Bom dia a quem chegou a horas!
</saudacao>
FEUP
XML
10
XML
• Formato standard para descrever e trocar dados estruturados
• Documentos são separados em 3 partes:
– Estrutura — XML
– Estilo — XSL (eXtensible Style Language)
– Conteúdo — definido pelo utilizador
• É extensível permitindo juntar novas marcas e atributos
• A estrutura pode ser encaixada
• Permite a inclusão de meta-informação para descrição da
informação — DTD
FEUP
XML
11
Verificação de documentos XML
• Um documento XML é bem-formado sse:
– <?xml version="1.0" standalone="...?>
– valores de atributos entre aspas
– a marcas de abertura correspondem marcas de fecho
– marcas são encaixadas correctamente
 o processador consegue construir uma estrutura em árvore
FEUP
XML
12
Exemplo
• Registar informação sobre turmas e alunos, com o seu nome, média
e, nalguns casos, idade
• Um dos alunos frequenta duas turmas
<?xml version=“1.0” standalone=“yes”>
<turma>
<aluno>
<nome>Rui Silva</nome>
<media>13.6</media>
<turma>
<nome>João Sousa</nome>
<media>11.0</media>
</aluno>
</turma>
<aluno><nome>Ana Costa</nome>
<media>17.0</media></aluno>
</turma>
– Erros?
FEUP
XML
13
Correcção do exemplo
1.
Falta elemento raiz
2.
Há sobreposição, não encaixada, de
elementos (turma)
3.
Falta marcar os alunos da primeira
turma
•
Fica estrutura em árvore
Nota: a disposição das marcas não é
significativa, só facilita a leitura
FEUP
<?xml version=“1.0” standalone=“yes”?>
<escola>
<turma>
<aluno>
<nome>Rui Silva</nome>
<media>13.6</media>
</aluno>
<aluno>
<nome>João Sousa</nome>
<media>11.0</media>
</aluno>
</turma>
<turma>
<aluno>
<nome>João Sousa</nome>
<media>11.0</media>
</aluno>
<aluno><nome>Ana Costa</nome>
<media>17.0</media></aluno>
</turma>
</escola>
XML
14
Representação em árvore
escola
turma
turma
aluno
nome
Rui Silva
média
13,6
aluno
aluno
nome
João Sousa
média
11,0
nome
João Sousa
média
11,0
aluno
nome
Ana Costa
média
17,0
Nota: organização estritamente hierárquica força a repetição dos elementos
inferiores comuns (aluno João Sousa) em vez de usar referências para uma
única ocorrência (redundância e inconsistência); ver modelo relacional
FEUP
XML
15
Atributos
• informações auxiliares,
metainformações, etc.
podem estar em atributos
• opção entre elemento ou
atributo feita pelo criador
do documento
FEUP
<?xml version=“1.0” standalone=“yes”?>
<escola nome=“Devesas” telefone=“225437610>
<turma nr=“A”>
<aluno>
<nome>Rui Silva</nome>
<media escala=“0-20”>13.6</media>
</aluno>
<aluno>
<nome>João Sousa</nome>
<media escala=“0-20”>11.0</media>
</aluno>
</turma>
<turma nr=“B”>
<aluno>
<nome>João Sousa</nome>
<media escala=“0-20”>11.0</media>
</aluno>
<aluno><nome>Ana Costa</nome>
<media escala=“0-20”>17.0</media></aluno>
</turma>
</escola>
XML
16
Segundo nível de verificação
• Documentos XML bem-formados podem ser válidos se verificarem
certas restrições
– Definição de tipos de documentos (Document type definition - DTD)
– Especifica regras para elementos, atributos, ...
• Ferramentas podem auxiliar a verificar se o documento está bem
formado e se é válido
– XML spy (comercial) : ambiente de desenvolvimento
– XML validator (livre) : linha de comando
(http://www.w3.org/2000/09/webdata/xsv)
– IEXMLTLS (livre) : adiciona-se aos menus do Internet Explorer
– Verificação como serviço remoto nas páginas do W3C
(http://www.w3.org/2000/09/webdata/xsv)
• Outras ligações com interesse
– O sítio do XML: http://www.w3.org/XML/
– Portal: http://home.wanadoo.nl/techlinq/xml.html
FEUP
XML
17
Exemplo de documento XML
• Bem-formado
• Não validado
<?xml version="1.0" standalone="yes"?>
<conversation>
<greeting>Hello, world!</greeting>
<response>Stop the planet, I want to get off!</response>
<image src="mad-planet.gif"/>
</conversation>
• Poderá ser validável?
FEUP
XML
18
Aplicações de Troca de Dados
• XML é formato adequado para troca de dados complexos
• Domínios já identificados
– push technology
– EDI (Electronic Data Interchange)
– meta-dados: MCF (Netscape, XML-data (MS), RDF (W3C)
• Bases de dados relacionais
Dep.
Ext.
--------------------DEEC 2020
DEC
2030
Nome
Ext.
------------------------jlopes
2020
arocha
2030
jpascoal 2020
aaguiar 2020
FEUP
<telephone num="2020">
<dept>DEEC</dept>
<person>jlopes</person>
<person>jpascoal</person>
<person>aaguiar</person>
</telephone>
...
2020
DEEC
jlopes, jpascoal, aaguiar
2030
DEC
arocha
XML
19
Aplicações de Publicação de Doc.
• XML é formato adequado para anotar documentos semiestruturados
• XML facilita a geração e gestão de meta-informação
– toc, index, etc.
• XML facilita a publicação em formatos diversos
– CD-ROM, papel, Palms, Web
Estado da Arte
<book CommDate="20000508">
<title>O Livro</title>
<chapter>
<title>Introdução</title>
...
<chapter>
<title>Estado da Arte</title>
meta-informação
...
FEUP
Introdução
O Livro
1 Introdução
2. Estado da Arte
XML
20
Conclusão da introdução
• XML pode codificar uma representação para
–
–
–
–
–
–
um documento ordinário
um registo estruturado (e.g. ordem de compra)
um registo de dados (e.g. o resultado de uma interrogação)
um objecto com dados e métodos
meta-dados, entidades e tipos (XMI)
meta-conteúdos acerca de um site Web (CDF)
• XML é auto-contido e pode ser validado, interpretado e processado sem
intervenção humana
• Pode ser usado para:
– formato de ligação (para transferência de dados entre cliente e servidor)
– formato de troca de informação (e.g. entre a aplicação e a base de dados)
– formato persistente (para guardar dados)
• Alguns DTD existentes: CDF (conteúdo Web), OFX (Financial), OSD
(Open Software Distribution), CML (Chemical), MML (Mathematical)
FEUP
XML
Download

XML - Introdução - Universidade do Porto