XML: Introdução - Marx Gomes Van der Linden

Transcrição

XML: Introdução - Marx Gomes Van der Linden
XML
Introdução
Ferramentas para Internet
Marx Gomes Van der Linden
( Material baseado no original de
Marcelo José Siqueira Coutinho de Almeida )
Objetivos



Apresentar a linguagem de marcação XML
bem como algumas tecnologias correlatas
Discutir a importância da XML para o
desenvolvimento de aplicações Web e para a
evolução da Internet
Analisar alguns cenários práticos
http://marx.vanderlinden.com.br
2
Bibliografia
“Aprendendo XML”
Erik T. Roy, Editora Campus.
http://marx.vanderlinden.com.br
3
Introdução


Acrônimo para eXtensible Markup Language
Proposto pelo W3C (World Wide Web
Consortium) como um padrão para
representação e troca de dados pela Web.
http://marx.vanderlinden.com.br
4
Visão Geral


XML é uma especificação para a criação de
linguagens de marcação, para propósito
geral.
Pode ser vista como uma metalinguagem,
isto é, um padrão para criação de novas
linguagens.
http://marx.vanderlinden.com.br
5
XML como Metalinguagem

Exemplos de linguagens que seguem a
especificação XML:
– InkML: Utilizada para descrever escrita em
dispositivos eletrônicos
– MathML: Mathematical Markup Language
– CML: Chemical Markup Language
– SMIL: Synchronized Multimedia Integration
Language
– RDF: Resource Description Framework
– RSS: Really Simple Syndication
– SVG: Scalable Vector Graphics
– HTML
http://marx.vanderlinden.com.br
6
Documento XML


Em XML, um documento é uma seqüência de
caracteres que especifica uma estrutura de
dados, de acordo com os padrões de XML e da
linguagem implementada.
Um documento pode ser implementado
fisicamente em:




Um arquivo
Um banco de dados
Um fluxo de dados entre aplicações ou pela
rede
Uma estruturahttp://marx.vanderlinden.com.br
armazenada em memória
7
Vantagens






Padrão aberto
Texto simples
Separação entre estrutura, conteúdo e
apresentação
Extensível
Flexível
Base para novas soluções tecnológicas na
web (Web Semântica, Web Services, etc.)
http://marx.vanderlinden.com.br
8
Exemplo: MathML
<?xml version="1.0"?>
<math
xmlns="http://www.w3.org/1998/Math/MathML">
<mi>F</mi> <mo>=</mo> <mi>G</mi>
<mo>&InvisibleTimes;</mo>
<mfrac>
<mrow>
<mi>M</mi>
<mo>&InvisibleTimes;</mo>
<mi>m</mi>
</mrow>
<apply>
<power/> <ci>r</ci> <cn>2</cn>
</apply>
</mfrac>
http://marx.vanderlinden.com.br
9
</math>
Exemplo: SVG
<?xml version="1.0" standalone="no"?> <!
DOCTYPE svg
PUBLIC "-//W3C//DTD SVG 20001102//EN"
"http://www.w3.org/TR/2000/CR-SVG20001102/DTD/svg-20001102.dtd">
<svg>
<desc>Three shapes</desc>
<rect fill="green" x="1cm" y="1cm"
width="3cm" height="3cm"/>
<circle fill="red" cx="3cm" cy="2cm"
r="4cm"/>
<polygon fill="blue" points="110,160
50,300 180,290"/>
http://marx.vanderlinden.com.br
</svg>
10
Contexto
Internet
XML
Documentos
Banco de Dados
http://marx.vanderlinden.com.br
11
Tecnologias Relacionadas
XPath
XSchema
JAXP
XLink
XML
XHTML
XQL
XSLT
http://marx.vanderlinden.com.br
12
Usando XML
SGBD
DOM / SAX
HTML
XSLT
100
XSLT
80
60
<XML>
Leste
40
Oeste
20
Norte
0
1°
2°
3°
XSLT
4°
Trim Trim Trim Trim
XSL-FO
XSLT
XSLT
TEX
PDF
VRML
WML
http://marx.vanderlinden.com.br
13
SGML
• Standard Generalized Markup Language
 Padrão internacional para definição de
formatos de representação de textos em
meios eletrônicos
 HTML é uma linguagem definida por SGML
 XML é um subconjunto de SGML, com
regras bem mais estritas
http://marx.vanderlinden.com.br
14
Características de SGML
CDF
HTML
TEX
SGML
XML
Doc
Book
RDF
CML
TEI
http://marx.vanderlinden.com.br
15
Objetivos de XML

A forma do documento deve estar associada à
sua função

Metalinguagem
Documentos não podem conter ambigüidade
na interpretação dos dados

Separação entre marcação e apresentação

Simplicidade e generalização

Evitar "reinventar a roda"
Universalidade



Unicode
http://marx.vanderlinden.com.br
16
Observações

XML não leva em consideração como os
dados serão apresentados
 Devem existir outros padrões para
descrever o formato de apresentação dos
dados
 CSS (Cascading Style Sheet)
 XSL (eXtensible Style Sheet)
http://marx.vanderlinden.com.br
17
Ferramentas

Qualquer ferramenta que trabalhe com
Unicode (ou com seu subconjunto, o ASCII)
pode ser utilizada para escrever documentos
XML:
 Edit
 Word
 VI e Pico (Unix)
 Notepad
http://marx.vanderlinden.com.br
18
Ferramentas

Para aumentar produtividade
 XMLSpy
 XMLWriter
 Stylus Studio
 Dreamweaver
http://marx.vanderlinden.com.br
19
Construindo Documentos XML



Um documento XML é um documento de texto
Unicode formado por um conjunto de
elementos
Sua estrutura segue uma determinada
hierarquia
Cada elemento é descrito através de
marcações ou tags
http://marx.vanderlinden.com.br
20
Estrutura de um Documento XML
Prólogo
Corpo do documento
http://marx.vanderlinden.com.br
21
Prólogo

A primeira parte de um documento XML se
chama prólogo
 Oferece informações administrativas sobre
o documento
 Contém Declaração XML, Declaração de
Tipo de Documento e Subconjunto Interno
 Opcional, mas é importante que sempre
esteja presente.
http://marx.vanderlinden.com.br
22
Prólogo
Prólogo
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE email SYSTEM "info.dtd"
[
<!ENTITY cap1 SYSTEM "ch01.xml">
<!ENTITY cap2 SYSTEM "ch01.xml">
]>
<email>
...
</email>
http://marx.vanderlinden.com.br
Corpo do Documento
23
Declaração XML

Apresenta as seguintes informações ao
browser:
 O documento é XML
 A versão adotada
 Tipo de codificação
 Existência ou não de outros documentos
associados
http://marx.vanderlinden.com.br
24
Declaração XML

Parâmetros
– Version: atual é 1.0
– Encoding: codificação de caracteres usada
no documento
– Standalone: informa ao browser se há outros
documentos para se carregar
 yes: não há arquivo(s) (Default)
 no: há arquivo(s)
http://marx.vanderlinden.com.br
25
Prólogo
Declaração XML
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE email SYSTEM "info.dtd"
[
<!ENTITY cap1 SYSTEM "ch01.xml">
<!ENTITY cap2 SYSTEM "ch01.xml">
]>
<email>
...
</email>
http://marx.vanderlinden.com.br
Corpo do Documento
26
Tipo de Documento

Definições usadas para validar o documento
 Identifica de que forma o documento será
validado
 Localização do modelo
 Tipo de acesso ao modelo
http://marx.vanderlinden.com.br
27
Tipo de Documento

Parâmetros
 Elemento raiz do documento
 Tipo de acesso do modelo sendo usado
 Tipo de ambiente onde se encontra o
modelo
 URI do modelo
http://marx.vanderlinden.com.br
28
Prólogo
Declaração XML
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE email SYSTEM "info.dtd"
[
<!ENTITY cap1 SYSTEM "ch01.xml">
<!ENTITY cap2 SYSTEM "ch01.xml">
]>
URI do modelo
<email>
...
</email>
Elemento Raiz
http://marx.vanderlinden.com.br
Corpo do Documento
29
Tipo de Documento

As regras que definem um documento podem
estar localizados em dois tipos de lugares
 Internamente (Subconjunto Interno)
 Externamente (Subconjunto Externo)
http://marx.vanderlinden.com.br
30
Tipo de Documento

Subconjunto Externo
 As regras encontram-se fora do arquivo
XML, ou seja no modelo encontrado no
arquivo DTD ou XSchema sendo
referenciado
 Pode ser compartilhado por vários arquivos
XML
 Mais comum
http://marx.vanderlinden.com.br
31
Tipo de Documento

Subconjunto Interno
 As regras são definidas dentro do próprio
documento XML
 Aumenta ou redefine as declarações
encontradas no subconjunto externo
http://marx.vanderlinden.com.br
32
Tipo de Documento
Subconjunto Externo
<?xml version="1.0" encoding="utf-8"
?>
<!DOCTYPE email SYSTEM "info.dtd"
[
<!ENTITY cap1 SYSTEM "ch01.xml">
<!ENTITY cap2 SYSTEM "ch01.xml">
]>
<email>
...
</email>
Subconjunto Interno
http://marx.vanderlinden.com.br
Corpo do Documento
33
Corpo do Documento

Formado por um conjunto de objetos de
marcação XML
 Elementos
 Declarações de Namespaces
 Entidades
 Comentários
 Instruções de processamento
 Seções CDATA
http://marx.vanderlinden.com.br
34
Elemento

Representa um conceito ou uma parte do
conceito sendo modelado
 O conceito pode ser concreto ou abstrato
 É a base de um documento XML
 Descrito como uma seção específica do
documento
 Permite que seções diferentes de um
documento possam ser tratadas ou usadas
de forma diferente
http://marx.vanderlinden.com.br
35
Sintaxe de um Elemento





Deve começar com um sublinhado ou uma
letra
Pode conter qualquer quantidade de letras,
números, hífens, pontos e sublinhados
Pode ser escrito em caracteres de qualquer
alfabeto (ocidental, árabe, grego, chinês, etc.)
Case sensitive
Não pode haver espaço entre o < e a primeira
letra do nome do elemento
http://marx.vanderlinden.com.br
36
Tipos de Elementos

Existem dois tipos de elementos:

Container
<elemento> Conteúdo </elemento>

Vazio
<elemento> </elemento>
<elemento />
http://marx.vanderlinden.com.br
37
Elemento Container

Um elemento Container pode ser composto
de:
 Caracteres
 Outros elementos
 Outros elementos e caracteres
http://marx.vanderlinden.com.br
38
Caracteres
<preço> 10.00 </preço>
Caracteres e Elementos
Elementos
<validade>
<dia> 06 </dia>
<mês> 06 </mês>
<ano> 06 </ano>
</validade>
<produto>
Esse produto está em promoção!
<preco> 10.00 </preco>
<validade>
<dia> 06 </dia>
<mês> 06 </mês>
<ano> 06 </ano>
</validade>
http://marx.vanderlinden.com.br
</produto>
39
Elemento Vazio
<x/>

Menor Documento XML
http://marx.vanderlinden.com.br
40
Elemento Raiz

Representa o elemento que se encontra no
topo da hierarquia de um documento XML
 Todos os demais elementos são
descendentes dele
http://marx.vanderlinden.com.br
41
<?xml version="1.0" ?>
<cidade> <bairro ref=“10”>
<rua>
<casa num="100"> Dona Maria </casa>
<casa num="200"> Seu João </casa>
</rua>
<rua>
<casa num="1"> Dona Francisca
</casa>
</rua>
</bairro>
<bairro ref="2">
<rua>
<casa num="10"> Dona Margarida
</casa>
http://marx.vanderlinden.com.br
42
</rua> </bairro></cidade>
Elemento Raiz
raiz
cidade
bairro ref="10"
rua
casa num=“100”
Dona Maria
bairro ref="2"
rua
casa num=“200”
Seu João
rua
casa num=“1”
casa num=“10”
Dona Francisca Dona Margarida
http://marx.vanderlinden.com.br
43
Nó
cidade
bairro ref="10"
rua
casa num=“100”
Dona Maria
bairro ref="2"
rua
casa num=“200”
Seu João
rua
casa num=“1”
nó
casa num=“10”
Dona Francisca Dona Margarida
http://marx.vanderlinden.com.br
44
Folha
cidade
bairro ref="10"
rua
Dona Maria
rua
casa num=“200”
casa num=“100”
Seu João
folha
bairro ref="2"
rua
casa num=“1”
casa num=“10”
Dona Francisca Dona Margarida
http://marx.vanderlinden.com.br
45
Atributos



Um elemento pode possuir um ou mais
atributos
Atributos de um mesmo elemento não podem
ter o mesmo nome
São especificados no marcador de início ou
no marcador que define um elemento vazio
http://marx.vanderlinden.com.br
46
Atributos

Exemplos
<midia id = "100">
<tipo> LP </tipo>
<titulo> Balão Mágico
</titulo>
<ano> 1983 </ano>
</midia>
<arquivo path="file:capa1.jpg" />
<img src="capa1.jpg" />
http://marx.vanderlinden.com.br
47
Elementos e Atributos

Distinção entre um elemento e um atributo
nem sempre é clara
 Elementos possuem estrutura hierárquica
 Endereço, produto, nota fiscal
 Elementos podem ter mais de um valor
 Autor, dono, responsável
http://marx.vanderlinden.com.br
48
Entidades

Constantes associadas a um valor de texto
 Podem aparecer em qualquer lugar de um
documento XML
 Substituídas durante o processamento
http://marx.vanderlinden.com.br
49
Entidades
Entidades
Gerais
Parâmetros
Internas
Externas Caractere Conteúdo Misto Não Analisadas
Pré-definidas
Numeradas
Nomeadas
http://marx.vanderlinden.com.br
Internas
Externas
50
Entidades Gerais de Caractere

Representam um único caractere
– Pré-definidas:
 &amp;(&), &quot;("), &apos; ('), &gt;(>) e
&lt(<);
– Numeradas:
 &#caracter_unicode; (Ç = &#231; ou
&#xe7;)
http://marx.vanderlinden.com.br
51
Entidades Gerais de Caractere

Exemplos
<?xml version=“1.0”?>
<!DOCTYPE codigo SYSTEM “programa.dtd”>
<codigo>
<estrutura>
<if>
if (a &gt; b) { código }
else {código}
</if>
</estrutura>
http://marx.vanderlinden.com.br
52
</codigo>
Conteúdo Misto

Valores de tamanho ilimitado que podem
incluir marcação e texto
– Internas: aponta para texto no próprio
documento
 Texto repetido com freqüência
– Externas: aponta para texto em outro
documento
 Pedaços de arquivo XML
http://marx.vanderlinden.com.br
53
Entidades Gerais Internas
<?xml version="1.0" ?>
<!DOCTYPE msg SYSTEM
"/xml/dtds/carta.dtd"
[ <!ENTITY eu "Marcelo José Siqueira
Coutinho de Almeida">
<!ENTITY cefet "Centro Federal de
Ensino Tecnológico da Paraíba">
]>
<msg>
Ilmo Sr. Presidente da Nut Software,
Meu nome é &eu; e trabalho no
&cefet;...
</msg>
http://marx.vanderlinden.com.br
54
Entidades Gerais Externas
Fragmento XML
&parte1;
meuarquivo.xml
&parte2;
Documento XML
outroarquivo.xml
Fragmento
XML
http://marx.vanderlinden.com.br
55
Entidades Gerais Externas
<?xml version="1.0" ?>
<!DOCTYPE doc SYSTEM "genérico.dtd"
[
<!ENTITY parte1 SYSTEM
"meuarquivo.xml">
<!ENTITY parte2 SYSTEM
"outroarquivo.xml">
]>
<doc>
&parte1;
&parte2;
</doc>
http://marx.vanderlinden.com.br
56
Entidades Gerais Não-Analisadas



Mantém o conteúdo que não deve ser
analisado, pois, do contrário, poderia
confundir o analisador.
 Ex.: gráficos, sons, dados não caracteres.
Depende de uma notação (NOTATION)
Só pode ser referenciado em atributos
<!ENTITY nome SYSTEM "uri"
NDATA notação>
http://marx.vanderlinden.com.br
57
Entidades Gerais Não-Analisadas
Fica em um arquivo DTD
<!NOTATION gif SYSTEM "image/gif">
<!ENTITY mapa SYSTEM "brasil.gif"
NDATA gif>
<imagem fonte="&mapa;">
Fica em um arquivo XML 58
http://marx.vanderlinden.com.br
Categorias de Documentos


Bem Formados
 Um documento é bem formado quando está
de acordo com a sintaxe da especificação
XML.
Válidos
 Além de bem formado, está de acordo com
a gramática que define a sua estrutura
http://marx.vanderlinden.com.br
59
Documentos Bem Formados

É essencial que um documento XML seja bem
formado
 Ter um único elemento raiz
 Valores dos atributos devem estar entre
aspas
 Atributos não podem se repetir
 Todos os elementos devem ter tags de
fechamento
 Todos os elementos devem estar aninhados
corretamente
http://marx.vanderlinden.com.br
60
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE
livro SYSTEM
"info.dtd"
>
Documentos
Bem
Formados
<índice>
<capítulo>
<título número=1 número=I> Introdução
<seção> Pré-História </seção>
<seção> O Homem de <itálico> Cro-Magnon
</seção> </itálico>
</capítulo>
<capítulo>
<título número=2 número=II> Era Moderna
<seção> Sociedade Industrial </seção>
<seção> Sociedade Tecnológica </seção>
</capítulo>
http://marx.vanderlinden.com.br
61
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE
livro SYSTEM
"info.dtd"
>
Documentos
Bem
Formados
<livro>
<índice>
<capítulo>
<título número=1 número=I> Introdução
<seção> Pré-História </seção>
<seção> O Homem de <itálico> Cro-Magnon
</seção> </itálico>
</capítulo>
<capítulo>
<título número=2 número=II> Era Moderna
<seção> Sociedade Industrial </seção>
<seção> Sociedade Tecnológica </seção>
</capítulo>
http://marx.vanderlinden.com.br
62
</livro>
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE
livro SYSTEM
"info.dtd"
>
Documentos
Bem
Formados
<livro>
<índice>
<capítulo>
<título número="1" número="I">
Introdução
<seção> Pré-História </seção>
<seção> O Homem de <itálico> Cro-Magnon
</seção> </itálico>
</capítulo><capítulo>
<título número="2" número="II"> Era
Moderna
<seção> Sociedade Industrial </seção>
<seção> Sociedade Tecnológica </seção>
</capítulo>
http://marx.vanderlinden.com.br
63
</livro>
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE
livro SYSTEM
"info.dtd"
>
Documentos
Bem
Formados
<livro>
<índice>
<capítulo>
<título número="1"> Introdução
<seção> Pré-História </seção>
<seção> O Homem de <itálico> Cro-Magnon
</seção> </itálico>
</capítulo><capítulo>
<título número="2"> Era Moderna
<seção> Sociedade Industrial </seção>
<seção> Sociedade Tecnológica </seção>
</capítulo>
</livro>
http://marx.vanderlinden.com.br
64
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE
livro SYSTEM
"info.dtd"
>
Documentos
Bem
Formados
<livro>
<índice/>
<capítulo>
<título número="1"> Introdução
</título>
<seção> Pré-História </seção>
<seção> O Homem de <itálico> Cro-Magnon
</seção> </itálico>
</capítulo><capítulo>
<título número="2"> Era Moderna
</título>
<seção> Sociedade Industrial </seção>
<seção> Sociedade Tecnológica </seção>
</capítulo>
http://marx.vanderlinden.com.br
65
</livro>
<?xml version="1.0" encoding="utf-8" ?>
Documentos
Bem
Formados
<!DOCTYPE
livro SYSTEM
"info.dtd"
>
<livro>
<índice/>
<capítulo>
<título número="1"> Introdução
</título>
<seção> Pré-História </seção>
<seção> O Homem de <itálico> Cro-Magnon
</itálico> </seção>
</capítulo><capítulo>
<título número="2"> Era Moderna
</título>
<seção> Sociedade Industrial </seção>
<seção> Sociedade Tecnológica </seção>
</capítulo>
http://marx.vanderlinden.com.br
66
</livro>

Documentos relacionados

Trabalhando com XML

Trabalhando com XML informações nos são apresentadas. De cara você detecta logo do que se trata o arquivo sem a necessidade de um documento para detalhar cada conjunto de dados. Vimos que XML DOM é uma boa escolha par...

Leia mais

Algoritmos Morfológicos escritos em XML

Algoritmos Morfológicos escritos em XML no sistema de criação de documentos conhecido como LATEX [13]. O conteúdo é armazenado em um arquivo texto, a estrutura é armazenada em um arquivo de estilo (book, article, report, etc.) e a saída ...

Leia mais

XPath e XSLT - Marx Gomes Van der Linden

XPath e XSLT - Marx Gomes Van der Linden  São utilizados para descrever como uma determinada parte de um documento XML deve ser transformada.  Uma Folha de Estilo XSL deve ser composta por um ou mais templates.  Semelhante à definição ...

Leia mais