Você está na página 1de 10

Linguagem XML

• O que é XML?
eXtensible Markup Language
• Linguagem de representação usando marcas como o HTML
Marcas não pré-definidas. Precisam de ser definidas
• XML usa DTD ou esquemas para definir os dados
• Não FAZ NADA ! (Não executa)

•XML Versus HTML:


• XML é uma Linguagem de representação de Dados
e foca o que são esses dados
• HTML é uma Linguagem para visualizar Dados
e foca em como se visualizam os dados
17/10/03 AIAD- LEIC
Eugénio Oliveira

Linguagem XML

<nota>
<de>Elsa</de>
<para>Paula</para>
<titulo>Aniversario</titulo>
<conteudo>Não te esqueça s de comprar a prenda</conteudo>
</nota>

17/10/03 AIAD- LEIC


Eugénio Oliveira

1
Linguagem XML

• Em XML os Dados podem estar fora do Programa XML

• XML para trocar Dados entre sistemas diferentes

• Dados Financeiros e B2B são trocados em XML

• Dados ficam disponíveis para mais utilizadores


independentemente do hardware e software usado.

17/10/03 AIAD- LEIC


Eugénio Oliveira

Linguagem XML
Documentos XML usam sintaxe simples e auto-descritiva
<?xml version="1.0" encoding="ISO-8859-1"?>
<nota>
<para>Paula</para>
<de>Elsa</de>
<titulo>Aniversario</titulo>
<conteudo >Não te esqueças de comprar a prenda</conteudo>
</nota>
A primeira linha é uma Declaração XML dizendo a versão e código de
caracteres.
2ªlinha é a raíz do documento
Seguem-se quatro filhos da raíz
Fim do elemento raíz

Elementos são sensíveis às letras maiúsculas e minúsculas.


Todas as marcas devem abrir e fechar e estar correctamente encaixados:
<b><i>Este texto está em itálico e a grosso</i></b>

17/10/03 AIAD- LEIC


Eugénio Oliveira

2
Linguagem XML
<root> <child> <subchild>.....</subchild> </child> </root>

Valores de Atributos devem estar entre aspas:

1- Incorrecto
<?xml version="1.0" encoding="ISO-8859-1"?>
<nota data=25/12/2003>
<de>Elsa</de>
<para>Paula</para>
</nota>

2- Correcto
<?xml version="1.0" encoding="ISO-8859-1"?>
<nota data=“25/12/2003">
<de>Elsa</de>
<para>Paula</para>
</nota>
17/10/03 AIAD- LEIC
Eugénio Oliveira

Linguagem XML
• Comentários em XML

<!– Isto é um comentário -->

• Podem usar-se editores normais mas existem editores próprios para XML
• Documentos XML são extensíveis sem prejudicar aplicações anteriores:

<nota>
<de>Elsa</de>
<para>Paula</para>
<titulo>Aniversario</titulo>
<conteudo>Não te esqueça s de comprar a prenda</conteudo>
</nota>

•Suponhamos que uma aplicação extraía estas marcas:


MENSAGEM Para: Paula De: Elsa
Assunto: Aniversário
Conteúdo: Não te esqueças de comprar a prenda
17/10/03 AIAD- LEIC
Eugénio Oliveira

3
Linguagem XML
Documento aumentado:

<nota>
<data>2003-12-25</data>
<de>Elsa</de>
<para>Paula</para>
<titulo>aniversá rio</titulo>
<conteúdo>Não te esqueça s de comprar a prenda</conteudo>
</nota>

A aplicação funcionaria de igual forma sem “crashar”

17/10/03 AIAD- LEIC


Eugénio Oliveira

Linguagem XML
RELAÇÕES:
<book>
<title>My First XML</title>
<prod id="33-657" media="paper"></prod>
<chapter>Introduction to XML
<para>What is HTML</para>
<para>What is XML</para>
</chapter>
<chapter>XML Syntax
<para>Elements must have a closing tag</para>
<para>Elements must be properly nested</para>
</chapter>
</book>
Book elemento raíz.
Title, prod, e chapter são elementos filhos de book.
Book é o elemento pai de title, prod e chapter.
Title, prod e chapter são irmãos.

Só o elemento prod tem atributos (id, media) com valores 33-657 e paper
17/10/03 AIAD- LEIC
Eugénio Oliveira

4
Linguagem XML

No HTML (e XML) atributos dão informação sobre elementos:

<img src="computer.gif">
<a href="demo.asp">

Atributos podem dar informa ção que não pertence aos dados

Tipo de ficheiro só interessa ao software que vai manipular o ficheiro:

<file type="gif">computer.gif</file>

17/10/03 AIAD- LEIC


Eugénio Oliveira

Linguagem XML
Os 3 documentos XML seguintes tem a mesma informação:

1)Usa o Atributo data:

<nota data=“25/12/2003">
<de>Elsa</de>
<para>Paula</para>
<título>Aniversário</título>
<conteúdo>Não te esqueças da prenda</conteúdo>
</nota>
2) Usa o Elemento data:

<nota>
<data> 25/12/2003 </data>
<<de>Elsa</de>
<para>Paula</para>
<título>Aniversário</título>
<conteúdo>Não te esqueças da prenda</conteúdo>
</nota>
17/10/03 AIAD- LEIC
Eugénio Oliveira

5
Linguagem XML

3) Usa o Elemento expandido data:

<nota>
<data> <dia>25</dia> <mês>12</mês> <ano>2003</ano> </data>
<de>Elsa</de>
<para>Paula</para>
<título>Aniversário</título>
<conteúdo>Não te esqueças da prenda</conteúdo>
</nota>

17/10/03 AIAD- LEIC


Eugénio Oliveira

Linguagem XML
Documentos XML devem ser:
• Bem Formados (sintaxe correcta)
• Válidos (de acordo com o DTD

<?xml version="1.0" encoding="ISO-8859-1"?>


<!DOCTYPE nota SYSTEM "InternalNote.dtd">

<nota>
<data> <dia>25</dia> <mês>12</mês> <ano>2003</ano> </data>
<de>Elsa</de>
<para>Paula</para>
<título>Aniversário</título>
<conteúdo>Não te esqueças da prenda</conteúdo>
</nota>

17/10/03 AIAD- LEIC


Eugénio Oliveira

6
Linguagem XML
DTD

Document Type Definition

Modelo do documento

Elementos permitidos
Atributos dos elementos e valores por omissão
Composição de elementos e sua sequência

Modelo da árvore do documento


Tem ramos para as opções, repetições são marcadas
Árvore de documento concreto tem ramos para cada
ocorrência de elemento

17/10/03 AIAD- LEIC


Eugénio Oliveira

Linguagem XML
USO DO DTD

• Sintetiza e armazena elementos comuns a um grupo de docs


• Base para aplicações que manipulam a info
• Base para folhas de estilo para apresentação de docs
• Base para ferramentas que conduzam o processo de edi ção de docs
LOCALIZAÇÃO DO DTD

• No topo do doc que lhe é conforme


• Em ficheiro separado referido no topo do doc
• Parcialmente em ficheiro separado, parcialmente no doc
• Referência a ficheiro do DTD
<!DOCTYPE motor SYSTEM
"D:\users\eco\motor.dtd" [
<!– O Resto do DTD de motor -->
<! … >
]>
17/10/03 AIAD- LEIC
Eugénio Oliveira

7
Linguagem XML
DECLARAÇÕES NO DTD

ELEMENT definir marca


ATTLIST definir atributos
ENTITY definir entidade
NOTATIONdefinir anotações para tipos de dados

• Declarações no sub-conjunto interno podem sobrepor-se às do externo


• Entidade referida mais que uma vez mantem a primeira definição
• Subconjunto interno é processado antes do externo.
Exemplo
<!-- declarações para os elementos -->
<!ELEMENT motor (tipo, fabricante, composição)>
<!ELEMENT tipo (#PCDATA)>
<!ELEMENT fabricante (#PCDATA)>
<!ELEMENT composição (eléctrico | gasolina)>
<!ELEMENT eléctrico (enrolamento, núcleo, carcaça, tampa)>
<!ELEMENT gasolina (carburador, cilindros, pistões)>
<!ELEMENT enrolamento (#PCDATA | nº espiras | diâmetro)*>
17/10/03 .... AIAD- LEIC
Eugénio Oliveira

Linguagem XML

•Declaração de elemento
<!ELEMENT motor (tipo, fabricante, composição)>

•Texto em elemento
• PCDATA Parsable Character Data
<!ELEMENT texto (#PCDATA)>
• Conteúdo misto
– PCDATA é primeira expressão
– Grupo tem de ser uma escolha
<!ELEMENT endereço (#PCDATA | nome | lugar)*>

17/10/03 AIAD- LEIC


Eugénio Oliveira

8
Linguagem XML
•Declaração de atributos
<!ATTLIST entrada
tipo (pessoa | empresa) "pessoa"
ident ID #REQUIRED>
• Sintaxe
<!ATTLIST elem-id
att1-id att1-tipo att1-class att1-omissão
• Tipos
– CDATA, Enumerado, ID, IDREF, IDREFS, ENTITY,
ENTITIES, NOTATION, NMTOKEN, NMTOKENS
• Classes
– #IMPLIED, #REQUIRED, #FIXED
•Entidade paramétrica no DTD
• Permite identificar blocos comuns que podem ser usados
repetidamente
<!ENTITY % comum "(parag|lista|tabela)">
• Uso (no ficheiro XML)
<!ELEMENT capitulo ((%comum;)*, secção*)>
<!ELEMENT secção (%comum;)*>
17/10/03 AIAD- LEIC
Eugénio Oliveira

Linguagem XML

• Exemplo de Documento XML sobre Notícias:

<?xml version="1.0" encoding="ISO-8859-1"?>


<news>
<head> <title>Colombia Earthquake</title> </head>
<body>
<body.head> <headline> <hl1>
143 Dead in Colombia Earthquake</hl1> </headline>
<byline > <bytag>By Jared Kotler, Associated Press Writer</bytag></byline>
<dateline> <location>Bogota, Colombia</location>
<story.date>Monday January 25 1999 7:28 ET</story.date>
</dateline>
</body.head>
</body>
</news>

17/10/03 AIAD- LEIC


Eugénio Oliveira

9
Linguagem XML
• Exemplo de DTD sobre Notícias:

<!DOCTYPE NEWSPAPER [

<!ELEMENT NEWSPAPER(ARTICLE+)>
<!ELEMENT ARTICLE(HEADLINE,BYLINE,LEAD,BODY,NOTES)>
<!ELEMENT HEADLINE(#PCDATA)>
<!ELEMENT BYLINE(#PCDATA)>
<!ELEMENT LEAD(#PCDATA)>
<!ELEMENT BODY(#PCDATA)>
<!ELEMENT NOTES(#PCDATA)>

<ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>


<ATTLIST ARTICLE EDITOR CDATA #IMPLIED>
<ATTLIST ARTICLE DATE CDATA #IMPLIEDED>
<ATTLIST ARTICLE EDITION CDATA #IMPLIED>

<!ENTITY NEWSPAPER “FINANCIAL TIMES”>


<!ENTITY COPYRIGHT “Copyright 2003 a empresa dona do jornal”>
]> 17/10/03 AIAD- LEIC
Eugénio Oliveira

10

Você também pode gostar