XML-RPC + Python + Banco de Dados - Fernando Massen
Introdução a eXtensible Markup Language (XML)
1. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Programa¸˜o para Web
ca
XML
Ivo Calado
Instituto Federal de Educa¸˜o, Ciˆncia e Tecnologia de Alagoas
ca e
27 de Mar¸o de 2012
c
1 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
2. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Roteiro
1 Introdu¸˜o
ca
2 Especifica¸˜es XML
co
3 XML a fundo
4 Valida¸˜o de XMLs
ca
5 Desenvolvendo aplica¸˜es com XML
co
2 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
3. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
O que XML?
Defini¸˜o
ca
EXtensible Markup Language
´
E uma linguagem de marca¸˜o bastante semelhante ` HTML
ca a
3 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
4. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
O que XML?
Defini¸˜o
ca
EXtensible Markup Language
´
E uma linguagem de marca¸˜o bastante semelhante ` HTML
ca a
Por´m n˜o descende e nem originou o HTML
e a
´ origin´ria do SGML
E a
3 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
5. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
O que XML?
Defini¸˜o
ca
EXtensible Markup Language
´
E uma linguagem de marca¸˜o bastante semelhante ` HTML
ca a
Por´m n˜o descende e nem originou o HTML
e a
´ origin´ria do SGML
E a
´
E bem mais flex´ que o HTML
ıvel
´
E uma recomenda¸˜o da W3C
ca
3 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
6. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
O que XML?
Defini¸˜o
ca
EXtensible Markup Language
´
E uma linguagem de marca¸˜o bastante semelhante ` HTML
ca a
Por´m n˜o descende e nem originou o HTML
e a
´ origin´ria do SGML
E a
´
E bem mais flex´ que o HTML
ıvel
´
E uma recomenda¸˜o da W3C
ca
Qual a rela¸˜o entre HTML, XML e XHTML?
ca
3 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
7. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
O que XML?
Defini¸˜o
ca
EXtensible Markup Language
´
E uma linguagem de marca¸˜o bastante semelhante ` HTML
ca a
Por´m n˜o descende e nem originou o HTML
e a
´ origin´ria do SGML
E a
´
E bem mais flex´ que o HTML
ıvel
´
E uma recomenda¸˜o da W3C
ca
Qual a rela¸˜o entre HTML, XML e XHTML?
ca
XHTML ´ a linguagem HTML escrita sob as restri¸˜es do XML
e co
3 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
8. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Diferen¸a entre XML e HTML
c
Diferen¸a entre XML e HTML
c
Qual seria a diferen¸a b´sica entre XML e HTML?
c a
4 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
9. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Diferen¸a entre XML e HTML
c
Diferen¸a entre XML e HTML
c
Qual seria a diferen¸a b´sica entre XML e HTML?
c a
XML foi projetado para armazenar dados e n˜o para exibi-los!
a
XML n˜o ´ um substituto do HTML
a e
Diferentes objetivos:
XML foi projetado para descrever dados e com foco no que o
dado ´e
HTML foi projetado para exibir dados e com foco em como a
informa¸˜o ser´ apresentada
ca a
4 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
10. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Diferen¸a entre XML e HTML
c
Exemplo de XML
<? xml v e r s i o n=" 1.0 " e n c o d i n g=" ISO -8859 -1 " ?>
<n o t e>
<t o>Tove</ t o>
<from>J a n i</ from>
<h e a d i n g>Reminder</ h e a d i n g>
<body>Don ’ t f o r g e t me t h i s weekend !</ body>
</ n o t e>
5 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
11. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Porque XML ´ importante?
e
Porque XML ´ importante?
e
Texto Plano
F´cil de editar
a
´
Util para armazenar pequenas quantidades de dados
Possibilita o armazenamento eficiente de uma grande
quantidade de dados atrav´s de um XML front end e de um
e
banco de dados
Indentifica¸˜o dos Dados
ca
Descreve o tipo de informa¸˜o armazenado (Metadado)
ca
Pode ser usado de diferentes formas por diferentes aplica¸˜es
co
6 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
12. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Porque XML ´ importante?
e
Porque XML ´ importante?
e
Estilo de exibi¸˜o
ca
Desassocia o armazenamento da informa¸˜o do seu
ca
processamento
7 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
13. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Porque XML ´ importante?
e
Porque XML ´ importante?
e
Estilo de exibi¸˜o
ca
Desassocia o armazenamento da informa¸˜o do seu
ca
processamento
Para isso, usa-se a linguagem XSL
XSL possibilita a apresenta¸˜o do conte´do armazenado no
ca u
XML sob diferentes estilos
Reusabilidade inline
Pode ser composto de diferentes entidades
´
E poss´ modularizar o documento e fazer referencia entre
ıvel
eles
7 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
14. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Porque XML ´ importante?
e
Porque XML ´ importante?
e
Facilmente process´vel
a
Possui uma nota¸˜o regular e consistente
ca
Nota¸˜o independente de fabricante
ca
Formato baseado em hierarquia
R´pido de acessar
a
F´cil de rearranjar
a
8 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
15. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Especifica¸oes XML
c˜
Diversas especifica¸˜es fazem parte do padr˜o XML
co a
XML 1.0: define a estrutura da sintaxe de documento XML
XPointer e XLink: define uma abordagem padr˜o para
a
representa¸˜o referˆncia entre recursos
ca e
XSL: Define uma abordagem padr˜o para representa¸˜o de
a ca
estilos a serem aplica¸˜es em documentos XML
co
9 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
16. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
XML Building blocks
Elementos
Delimitados por colchetes angulates (< e >)
Identifica a natureza do conte´do que circunda
u
Formato geral:
<e l e m e n t> . . . </ e l e m e n t>
Elementos vazios:
<e m p t y e l e m e n t />
10 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
17. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
XML Building blocks
Atributos
Pares chave-valor
Em geral usa-se como metadado sobre os elementos
Os valores devem estar entre aspas
<e l e m e n t a t t r i b u t e=" value ">
11 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
18. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Sintaxe XML
Sintaxe XML
Todos elementos devem ter uma tag de fechamento
Tags XML s˜o case sensitive
a
Todo os elementos XML devem estar corretamente aninhados
12 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
19. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Sintaxe XML
Sintaxe XML
Todos elementos devem ter uma tag de fechamento
Tags XML s˜o case sensitive
a
Todo os elementos XML devem estar corretamente aninhados
<n o t e>
<t o>Tove</ t o>
<from>J a n i</ from>
<h e a d i n g>Reminder
<body>Don ’ t f o r g e t me t h i s weekend !
</ h e a d i n g>
</ body>
</ n o t e>
12 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
20. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Sintaxe XML
Sintaxe XML
Espa¸os em branco s˜o preservados
c a
Coment´rios seguem a mesma estrutura do HTML
a
13 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
21. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Sintaxe XML
Conclus˜es a partir da sintaxe
o
Os elementos s˜o extens´
a ıveis
H´ um relacionamento entre os elementos
a
Os elementos tem conte´do (que podem ser inclusive outros
u
elementos)
14 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
22. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Sintaxe XML
D´vida
u
Quando usar elementos e quando usar atributos?
15 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
23. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Sintaxe XML
D´vida
u
Quando usar elementos e quando usar atributos?
Metainforma¸˜o sobre os elementos devem ser armazenados como
ca
atributos e o dado por si s´ deve ser armazenado como elemento.
o
15 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
24. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Por que ´ necess´rio validar um documento XML?
e a
16 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
25. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Por que ´ necess´rio validar um documento XML?
e a
Apesar do arquivo estar sintaticamente correto poderemos
querer que ele siga alguma estrutura
16 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
26. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Por que ´ necess´rio validar um documento XML?
e a
Apesar do arquivo estar sintaticamente correto poderemos
querer que ele siga alguma estrutura
Suponha que desejamos criar a estrutura de uma entidade
Pessoa, poderemos querer for¸ar que a pessoa tenha um
c
elemento informando o CPF e ter apenas um elemento
endere¸o
c
16 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
27. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Por que ´ necess´rio validar um documento XML?
e a
Apesar do arquivo estar sintaticamente correto poderemos
querer que ele siga alguma estrutura
Suponha que desejamos criar a estrutura de uma entidade
Pessoa, poderemos querer for¸ar que a pessoa tenha um
c
elemento informando o CPF e ter apenas um elemento
endere¸o
c
Para isso usamos estruturas de valida¸˜o DTD ou
ca
XMLSchema
16 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
28. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
DTD
DTD
Acrˆnimo de Document Type Definition
o
Especifica a estrutura a ser utilizada pelo documento XML
Pode ser definido tanto dentro do XML quanto em um
documento externo
<!DOCTYPE note [
<!ELEMENT n o t e ( to , from , h e a d i n g , body )>
<!ELEMENT t o (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT h e a d i n g (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
17 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
29. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
DTD
DTD
<? xml v e r s i o n=" 1.0 " e n c o d i n g=" ISO -8859 -1 " ?>
<!DOCTYPE n o t e SYSTEM " Note . dtd ">
<n o t e>
<t o>Tove</ t o>
<from>J a n i</ from>
<h e a d i n g>Reminder</ h e a d i n g>
<body>Don ’ t f o r g e t me t h i s weekend !</ body>
</ n o t e>
<!DOCTYPE r o o t −e l e m e n t SYSTEM " f i l e n a m e ">
18 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
30. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
XMLSchema
O que ´?
e
Trata-se de uma altertativa ao DTD
Oferece uma abordagem baseada em XML
Tamb´m referenciado como XSD
e
19 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
31. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
XMLSchema
O que possibilita?
Define os elementos e atributos que podem aparecer no
documento
Define a ordem, o n´mero e quais s˜o os elementos filhos de
u a
um certo elemento
Define se um elemento pode ser vazio ou se cont´m texto
e
Define o tipo de dado de cada elemento e atributo
Possibilita definir valores padr˜es para elementos e atributos
o
20 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
32. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
XMLSchema
Porque XMlSchema s˜o sucessores dos DTDs?
a
S˜o mais ricos e mais poderosos que os DTDs
a
S˜o escritos em XML
a
Suportam tipos de dados
21 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
33. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
XMLSchema
Exemplo XSD
<? xml v e r s i o n=" 1.0 " ?>
<x s : schema xmlns : x s=" http :// www . w3 . org /2001/ X M L S c h e m a "
t a r g e t N a m e s p a c e=" http :// m y n a m e s p a c e /2011/ e m p r e s a "
xmlns=" http :// www . w 3 s c h o o l s . com "
e l e m e n t F o r m D e f a u l t=" q u a l i f i e d ">
<x s : e l e m e n t name=" note ">
<x s : complexType>
<x s : s e q u e n c e>
<x s : e l e m e n t name=" to " type=" xs : string " />
<x s : e l e m e n t name=" from " type=" xs : string " />
<x s : e l e m e n t name=" h e a d i n g " type=" xs : string " />
<x s : e l e m e n t name=" body " type=" xs : string " />
</ x s : s e q u e n c e>
</ x s : complexType>
</ x s : e l e m e n t>
</ x s : schema>
22 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
34. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
XMLSchema
Exemplo XML
<? xml v e r s i o n=" 1.0 " ?>
<n o t e xmlns=" http :// www . w 3 s c h o o l s . com "
xmlns : x s i=" http :// www . w3 . org /2001/ XMLSchema - i n s t a n c e "
x s i : s c h e m a L o c a t i o n=" http :// www . w 3 s c h o o l s . com note . xsd ">
<t o>Tove</ t o>
<from>J a n i</ from>
<h e a d i n g>Reminder</ h e a d i n g>
<body>Don ’ t f o r g e t me t h i s weekend !</ body>
</ n o t e>
23 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
35. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
XMLSchema
O que s˜o namespaces
a
Prov´m um m´todo de evitar conflitos em nomes de elementos
e e
´´
E util quando ´ necess´rio unir documentos de dois
e a
documentos XML
24 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
36. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
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>A p p l e s</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 . w 3 s c h o o l s . com / f u r n i t u r e ">
<f : name>A f r i c a n C o f f e e T a b l e</ 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 o o t>
25 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
37. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Desenvolvendo aplica¸˜es com XML
co
Diversas APIs est˜o dispon´
a ıveis para o desenvolvimento de
aplica¸˜es que fazem uso de XML
co
Nessas APIs ´ poss´ a cria¸˜o de uma ´rvore XML, sendo
e ıvel ca a
poss´ inclusive a valida¸˜o com base em DTD ou
ıvel ca
XMLSchema
Vamos tabalhar com a API JDOM
26 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca
38. Introdu¸˜o
ca Especifica¸˜es XML
co XML a fundo Valida¸˜o de XMLs
ca Desenvolvendo aplica¸˜es com XML
co
Trabalho
Trabalho I
Implementar mecanismo de serializa¸˜o e desserializa¸˜o de
ca ca
objetos. Fornecer suporte aos seguintes mecanismos
Tipos primitivos
Tipos complexos definidos pelo usu´rio
a
Arrays de tipos complexos
Objetos do tipo ArrayList
Implementar mecanismo de XMLSchema que valide o arquivo XML
27 / 27 Ivo Calado IFAL
Programa¸˜o para Web
ca