Transcript
Page 1: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Programacao para WebXML

Ivo Calado

Instituto Federal de Educacao, Ciencia e Tecnologia de Alagoas

27 de Marco de 2012

1 / 27 Ivo Calado IFAL

Programacao para Web

Page 2: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Roteiro

1 Introducao

2 Especificacoes XML

3 XML a fundo

4 Validacao de XMLs

5 Desenvolvendo aplicacoes com XML

2 / 27 Ivo Calado IFAL

Programacao para Web

Page 3: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

O que XML?

Definicao

EXtensible Markup Language

E uma linguagem de marcacao bastante semelhante a HTML

Porem nao descende e nem originou o HTML

E originaria do SGML

E bem mais flexıvel que o HTML

E uma recomendacao da W3C

Qual a relacao entre HTML, XML e XHTML?

XHTML e a linguagem HTML escrita sob as restricoes do XML

3 / 27 Ivo Calado IFAL

Programacao para Web

Page 4: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

O que XML?

Definicao

EXtensible Markup Language

E uma linguagem de marcacao bastante semelhante a HTML

Porem nao descende e nem originou o HTML

E originaria do SGML

E bem mais flexıvel que o HTML

E uma recomendacao da W3C

Qual a relacao entre HTML, XML e XHTML?

XHTML e a linguagem HTML escrita sob as restricoes do XML

3 / 27 Ivo Calado IFAL

Programacao para Web

Page 5: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

O que XML?

Definicao

EXtensible Markup Language

E uma linguagem de marcacao bastante semelhante a HTML

Porem nao descende e nem originou o HTML

E originaria do SGML

E bem mais flexıvel que o HTML

E uma recomendacao da W3C

Qual a relacao entre HTML, XML e XHTML?

XHTML e a linguagem HTML escrita sob as restricoes do XML

3 / 27 Ivo Calado IFAL

Programacao para Web

Page 6: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

O que XML?

Definicao

EXtensible Markup Language

E uma linguagem de marcacao bastante semelhante a HTML

Porem nao descende e nem originou o HTML

E originaria do SGML

E bem mais flexıvel que o HTML

E uma recomendacao da W3C

Qual a relacao entre HTML, XML e XHTML?

XHTML e a linguagem HTML escrita sob as restricoes do XML

3 / 27 Ivo Calado IFAL

Programacao para Web

Page 7: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

O que XML?

Definicao

EXtensible Markup Language

E uma linguagem de marcacao bastante semelhante a HTML

Porem nao descende e nem originou o HTML

E originaria do SGML

E bem mais flexıvel que o HTML

E uma recomendacao da W3C

Qual a relacao entre HTML, XML e XHTML?

XHTML e a linguagem HTML escrita sob as restricoes do XML

3 / 27 Ivo Calado IFAL

Programacao para Web

Page 8: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Diferenca entre XML e HTML

Diferenca entre XML e HTML

Qual seria a diferenca basica entre XML e HTML?

XML foi projetado para armazenar dados e nao para exibi-los!

XML nao e um substituto do HTML

Diferentes objetivos:XML foi projetado para descrever dados e com foco no que odado eHTML foi projetado para exibir dados e com foco em como ainformacao sera apresentada

4 / 27 Ivo Calado IFAL

Programacao para Web

Page 9: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Diferenca entre XML e HTML

Diferenca entre XML e HTML

Qual seria a diferenca basica entre XML e HTML?

XML foi projetado para armazenar dados e nao para exibi-los!

XML nao e um substituto do HTML

Diferentes objetivos:XML foi projetado para descrever dados e com foco no que odado eHTML foi projetado para exibir dados e com foco em como ainformacao sera apresentada

4 / 27 Ivo Calado IFAL

Programacao para Web

Page 10: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Diferenca entre XML e HTML

Exemplo de XML

<? xml v e r s i o n="1.0" encod ing="ISO -8859 -1"?><note>

<to>Tove</ to><from>Jan i</ from><head ing>Reminder</ head ing><body>Don ’ t f o r g e t me t h i s weekend !</body>

</ note>

5 / 27 Ivo Calado IFAL

Programacao para Web

Page 11: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Porque XML e importante?

Porque XML e importante?

Texto Plano

Facil de editar

Util para armazenar pequenas quantidades de dados

Possibilita o armazenamento eficiente de uma grandequantidade de dados atraves de um XML front end e de umbanco de dados

Indentificacao dos Dados

Descreve o tipo de informacao armazenado (Metadado)

Pode ser usado de diferentes formas por diferentes aplicacoes

6 / 27 Ivo Calado IFAL

Programacao para Web

Page 12: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Porque XML e importante?

Porque XML e importante?

Estilo de exibicao

Desassocia o armazenamento da informacao do seuprocessamento

Para isso, usa-se a linguagem XSL

XSL possibilita a apresentacao do conteudo armazenado noXML sob diferentes estilos

Reusabilidade inline

Pode ser composto de diferentes entidades

E possıvel modularizar o documento e fazer referencia entreeles

7 / 27 Ivo Calado IFAL

Programacao para Web

Page 13: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Porque XML e importante?

Porque XML e importante?

Estilo de exibicao

Desassocia o armazenamento da informacao do seuprocessamento

Para isso, usa-se a linguagem XSL

XSL possibilita a apresentacao do conteudo armazenado noXML sob diferentes estilos

Reusabilidade inline

Pode ser composto de diferentes entidades

E possıvel modularizar o documento e fazer referencia entreeles

7 / 27 Ivo Calado IFAL

Programacao para Web

Page 14: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Porque XML e importante?

Porque XML e importante?

Facilmente processavel

Possui uma notacao regular e consistente

Notacao independente de fabricante

Formato baseado em hierarquia

Rapido de acessar

Facil de rearranjar

8 / 27 Ivo Calado IFAL

Programacao para Web

Page 15: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Especificacoes XML

Diversas especificacoes fazem parte do padrao XML

XML 1.0: define a estrutura da sintaxe de documento XML

XPointer e XLink: define uma abordagem padrao pararepresentacao referencia entre recursos

XSL: Define uma abordagem padrao para representacao deestilos a serem aplicacoes em documentos XML

9 / 27 Ivo Calado IFAL

Programacao para Web

Page 16: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

XML Building blocks

Elementos

Delimitados por colchetes angulates (< e >)

Identifica a natureza do conteudo que circunda

Formato geral:

<e l ement> . . . </ e lement>

Elementos vazios:

<emptye lement />

10 / 27 Ivo Calado IFAL

Programacao para Web

Page 17: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

XML Building blocks

Atributos

Pares chave-valor

Em geral usa-se como metadado sobre os elementos

Os valores devem estar entre aspas

<e l ement a t t r i b u t e=" value ">

11 / 27 Ivo Calado IFAL

Programacao para Web

Page 18: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Sintaxe XML

Sintaxe XML

Todos elementos devem ter uma tag de fechamento

Tags XML sao case sensitive

Todo os elementos XML devem estar corretamente aninhados

<note><to>Tove</ to><from>Jan i</ from><head ing>Reminder

<body>Don ’ t f o r g e t me t h i s weekend !</ head ing>

</body></ note>

12 / 27 Ivo Calado IFAL

Programacao para Web

Page 19: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Sintaxe XML

Sintaxe XML

Todos elementos devem ter uma tag de fechamento

Tags XML sao case sensitive

Todo os elementos XML devem estar corretamente aninhados

<note><to>Tove</ to><from>Jan i</ from><head ing>Reminder

<body>Don ’ t f o r g e t me t h i s weekend !</ head ing>

</body></ note>

12 / 27 Ivo Calado IFAL

Programacao para Web

Page 20: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Sintaxe XML

Sintaxe XML

Espacos em branco sao preservados

Comentarios seguem a mesma estrutura do HTML

13 / 27 Ivo Calado IFAL

Programacao para Web

Page 21: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Sintaxe XML

Conclusoes a partir da sintaxe

Os elementos sao extensıveis

Ha um relacionamento entre os elementos

Os elementos tem conteudo (que podem ser inclusive outroselementos)

14 / 27 Ivo Calado IFAL

Programacao para Web

Page 22: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Sintaxe XML

Duvida

Quando usar elementos e quando usar atributos?

Metainformacao sobre os elementos devem ser armazenados comoatributos e o dado por si so deve ser armazenado como elemento.

15 / 27 Ivo Calado IFAL

Programacao para Web

Page 23: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Sintaxe XML

Duvida

Quando usar elementos e quando usar atributos?

Metainformacao sobre os elementos devem ser armazenados comoatributos e o dado por si so deve ser armazenado como elemento.

15 / 27 Ivo Calado IFAL

Programacao para Web

Page 24: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Por que e necessario validar um documento XML?

Apesar do arquivo estar sintaticamente correto poderemosquerer que ele siga alguma estrutura

Suponha que desejamos criar a estrutura de uma entidadePessoa, poderemos querer forcar que a pessoa tenha umelemento informando o CPF e ter apenas um elementoendereco

Para isso usamos estruturas de validacao DTD ouXMLSchema

16 / 27 Ivo Calado IFAL

Programacao para Web

Page 25: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Por que e necessario validar um documento XML?

Apesar do arquivo estar sintaticamente correto poderemosquerer que ele siga alguma estrutura

Suponha que desejamos criar a estrutura de uma entidadePessoa, poderemos querer forcar que a pessoa tenha umelemento informando o CPF e ter apenas um elementoendereco

Para isso usamos estruturas de validacao DTD ouXMLSchema

16 / 27 Ivo Calado IFAL

Programacao para Web

Page 26: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Por que e necessario validar um documento XML?

Apesar do arquivo estar sintaticamente correto poderemosquerer que ele siga alguma estrutura

Suponha que desejamos criar a estrutura de uma entidadePessoa, poderemos querer forcar que a pessoa tenha umelemento informando o CPF e ter apenas um elementoendereco

Para isso usamos estruturas de validacao DTD ouXMLSchema

16 / 27 Ivo Calado IFAL

Programacao para Web

Page 27: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Por que e necessario validar um documento XML?

Apesar do arquivo estar sintaticamente correto poderemosquerer que ele siga alguma estrutura

Suponha que desejamos criar a estrutura de uma entidadePessoa, poderemos querer forcar que a pessoa tenha umelemento informando o CPF e ter apenas um elementoendereco

Para isso usamos estruturas de validacao DTD ouXMLSchema

16 / 27 Ivo Calado IFAL

Programacao para Web

Page 28: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

DTD

DTD

Acronimo de Document Type Definition

Especifica a estrutura a ser utilizada pelo documento XML

Pode ser definido tanto dentro do XML quanto em umdocumento externo

<!DOCTYPE note [<!ELEMENT note ( to , from , heading , body )><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT head ing (#PCDATA)><!ELEMENT body (#PCDATA)>]>

17 / 27 Ivo Calado IFAL

Programacao para Web

Page 29: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

DTD

DTD

<? xml v e r s i o n="1.0" encod ing="ISO -8859 -1"?><!DOCTYPE note SYSTEM " Note .dtd"><note><to>Tove</ to><from>Jan i</ from><head ing>Reminder</ head ing><body>Don ’ t f o r g e t me t h i s weekend !</body></ note>

<!DOCTYPE root−e l ement SYSTEM " filename ">

18 / 27 Ivo Calado IFAL

Programacao para Web

Page 30: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

XMLSchema

O que e?

Trata-se de uma altertativa ao DTD

Oferece uma abordagem baseada em XML

Tambem referenciado como XSD

19 / 27 Ivo Calado IFAL

Programacao para Web

Page 31: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

XMLSchema

O que possibilita?

Define os elementos e atributos que podem aparecer nodocumento

Define a ordem, o numero e quais sao os elementos filhos deum certo elemento

Define se um elemento pode ser vazio ou se contem texto

Define o tipo de dado de cada elemento e atributo

Possibilita definir valores padroes para elementos e atributos

20 / 27 Ivo Calado IFAL

Programacao para Web

Page 32: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

XMLSchema

Porque XMlSchema sao sucessores dos DTDs?

Sao mais ricos e mais poderosos que os DTDs

Sao escritos em XML

Suportam tipos de dados

21 / 27 Ivo Calado IFAL

Programacao para Web

Page 33: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

XMLSchema

Exemplo XSD

<? xml v e r s i o n="1.0"?><xs : schema xmlns : x s=" http :// www.w3.org /2001/ XMLSchema "targetNamespace=" http :// mynamespace /2011/ empresa "xmlns=" http :// www. w3schools .com"e l ementFormDefau l t=" qualified "><xs : e l ement name=" note ">

<xs : complexType><xs : sequence>

<xs : e l ement name="to" type="xs: string "/><xs : e l ement name=" from " type="xs: string "/><xs : e l ement name=" heading " type="xs: string "/><xs : e l ement name=" body " type="xs: string "/>

</ xs : sequence></ xs : complexType>

</ xs : e l ement></ xs : schema>

22 / 27 Ivo Calado IFAL

Programacao para Web

Page 34: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

XMLSchema

Exemplo XML

<? xml v e r s i o n="1.0"?><note xmlns=" http :// www. w3schools .com"xmlns : x s i=" http :// www.w3.org /2001/ XMLSchema - instance "x s i : schemaLocat ion=" http :// www. w3schools .com note .xsd"><to>Tove</ to><from>Jan i</ from><head ing>Reminder</ head ing><body>Don ’ t f o r g e t me t h i s weekend !</body></ note>

23 / 27 Ivo Calado IFAL

Programacao para Web

Page 35: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

XMLSchema

O que sao namespaces

Provem um metodo de evitar conflitos em nomes de elementos

E util quando e necessario unir documentos de doisdocumentos XML

24 / 27 Ivo Calado IFAL

Programacao para Web

Page 36: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

XMLSchema

Exemplo Namespace

Forma de usar: xmlns:prefix=”URI”

<r o o t><h : t a b l e xmlns : h=" http :// www.w3.org/TR/ html4 /">

<h : t r><h : td>App les</h : td><h : td>Bananas</h : td>

</h : t r></h : t a b l e><f : t a b l e xmlns : f=" http :// www. w3schools .com/ furniture ">

<f :name>A f r i c a n Co f f e e Table</ f :name><f : width>80</ f : width><f : l e n g t h>120</ f : l e n g t h>

</ f : t a b l e></ r oo t>

25 / 27 Ivo Calado IFAL

Programacao para Web

Page 37: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Desenvolvendo aplicacoes com XML

Diversas APIs estao disponıveis para o desenvolvimento deaplicacoes que fazem uso de XML

Nessas APIs e possıvel a criacao de uma arvore XML, sendopossıvel inclusive a validacao com base em DTD ouXMLSchema

Vamos tabalhar com a API JDOM

26 / 27 Ivo Calado IFAL

Programacao para Web

Page 38: Introdução a eXtensible Markup Language (XML)

Introducao Especificacoes XML XML a fundo Validacao de XMLs Desenvolvendo aplicacoes com XML

Trabalho

Trabalho I

Implementar mecanismo de serializacao e desserializacao deobjetos. Fornecer suporte aos seguintes mecanismos

Tipos primitivos

Tipos complexos definidos pelo usuario

Arrays de tipos complexos

Objetos do tipo ArrayList

Implementar mecanismo de XMLSchema que valide o arquivo XML

27 / 27 Ivo Calado IFAL

Programacao para Web