Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf ·...

30
XATA’06 8-10 Fevereiro Tutorial Introdução ao XML e tecnologias associadas Sessão 4 Sessão 4 Aplica Aplica ç ç ões e dialectos XML ões e dialectos XML Miguel Ferreira [email protected] Departamento de Sistemas de Informação Universidade do Minho

Transcript of Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf ·...

Page 1: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

TutorialIntrodução ao XML e tecnologias associadas

Sessão 4Sessão 4

AplicaAplicaçções e dialectos XMLões e dialectos XMLMiguel Ferreira

[email protected]

Departamento de Sistemas de InformaçãoUniversidade do Minho

Page 2: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

2

Conteúdo

Vantagens do XMLAplicações do XML Armazenamento de XML Processamento de XMLTransmissão de XML Dialectos

SVG, GML, MusicML, DocBook, Dialectos para metainformação, ChessML

Repositórios de DTD/SchemasExercício e discussão

Page 3: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

3

Vantagens do XML

É apenas texto!Interoperabilidade/portabilidade

Não tem dono, é de toda a gente!Norma aberta (W3C)

Feito para ser lido por máquinas, mas também por humanos!

Auto-descritivo, simples de compreender e processarE se eu quiser manipular XML?

Grande nº de ferramentas e bibliotecas para todas as linguagens de programação

Pode ser usado em que contextos?!Todos! É extensível!

Page 4: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

4

Aplicações do XML

Publicação electrónicaUma representação neutra, múltiplas saídas!

Comércio electrónicoIntercâmbio entre diferentes aplicações

MetainformaçãoGrande expressividade e estruturação

Computação ubíquaMesmos dados, múltiplos dispositivos

Aplicações em geralRepresentação, armazenamento e transmissão de informação

Page 5: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

5

<card> <name>John Doe</name> <title>CEO</title> ... </card>

DTD<XSD> <XML>

Editor(e.g. XML Spy)

Utilizador

Parser(e.g. DOM)

Documento XMLbem formado e válido

Processador(e.g. DOM)

<XSLT>

<!ELEMENT card (name,title)>

<!ELEMENT name #PCDATA> ...

Utilizador

Editor(e.g. XML Spy)

<xslt:template match=”/”>…</xslt:template>

Editor(e.g. XML Spy)

Utilizador

Base de Dados

(e.g. HTML, Texto, XML, PDF, etc.)

Ciclo de vida de um XML

Page 6: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

6

<card> <name>John Doe</name> <title>CEO</title> ... </card>

DTD<XSD> <XML>

Editor(e.g. XML Spy)

Utilizador

Parser(e.g. DOM)

Documento XMLbem formado e válido

Processador(e.g. DOM)

<XSLT>

<!ELEMENT card (name,title)>

<!ELEMENT name #PCDATA> ...

Utilizador

Editor(e.g. XML Spy)

<xslt:template match=”/”>…</xslt:template>

Editor(e.g. XML Spy)

Utilizador

Base de Dados

(e.g. HTML, Texto, XML, PDF, etc.)

Ciclo de vida de um XML

Page 7: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

7

<card> <name>John Doe</name> <title>CEO</title> ... </card>

DTD<XSD> <XML>

Editor(e.g. XML Spy)

Utilizador

Parser(e.g. DOM)

Documento XMLbem formado e válido

Processador(e.g. DOM)

<XSLT>

<!ELEMENT card (name,title)>

<!ELEMENT name #PCDATA> ...

Utilizador

Editor(e.g. XML Spy)

<xslt:template match=”/”>…</xslt:template>

Editor(e.g. XML Spy)

Utilizador

Base de Dados

(e.g. HTML, Texto, XML, PDF, etc.)

Ciclo de vida de um XML

Page 8: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

8

<card> <name>John Doe</name> <title>CEO</title> ... </card>

DTD<XSD> <XML>

Editor(e.g. XML Spy)

Utilizador

Parser(e.g. DOM)

Documento XMLbem formado e válido

Processador(e.g. DOM)

<XSLT>

<!ELEMENT card (name,title)>

<!ELEMENT name #PCDATA> ...

Utilizador

Editor(e.g. XML Spy)

<xslt:template match=”/”>…</xslt:template>

Editor(e.g. XML Spy)

Utilizador

Base de Dados

(e.g. HTML, Texto, XML, PDF, etc.)

Ciclo de vida de um XML

Page 9: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

9

Ciclo de vida de um XML

Page 10: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

10

Ciclo de vida de um XML

Page 11: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

11

Sym

bInf

o

Exemplo de uma aplicação XML

1. Armazenamento de XML1. Armazenamento de XML

3. Transmissão de XML3. Transmissão de XML

4. Dialectos4. Dialectos

2. Processamento2. Processamento

http://get.dsi.uminho.pt/local/

Page 12: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

12

Armazenamento de XML

Sistema de ficheirosUm ficheiro por cada documentoDificuldade em encontrar informaçãoNecessidade de índices auxiliares (e.g. RBDMS)

Bases de dados relacionais(uma tabela com uma coluna)

Bloco de textoCLOB (Character Large Object)Varchar, Text

Não é possível questionar o XMLNão permite actualizações parciais

Page 13: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

13

Armazenamento de XML

Bases de dados relacionais(múltiplas tabelas com múltiplas colunas)

tabelas construídas a partir de um DTDNão suporta documentos sem conhecimentoprévio do seu DTDPermite actualizações parciaisNão preserva a ordem dos elementos

Não pode ser aplicada na ElPubSolução baseada em middleware

XML-DBMS - http://www.rpbourret.com/xmldbms/As BD mais recentes já suportam o tipo de dados XML

Page 14: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

14

Armazenamento de XML

Bases de dados XML-NativasSuporta qualquer tipo de XMLSistema de interrogação integrado

XPath, XQuery, XUpdateIndexação pesada, por vezes lentaPesquisas muito rápidasAlgumas bases de dados

Xindice (http://xml.apache.org/xindice/)eXist (http://exist.sourceforge.net/)dbXML (http://www.dbxml.com)Tamino (http://www.softwareag.com)

Page 15: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

15

Processamento de XML

Document Object Model(DOM)

Norma da W3CRepresenta um documento XML como uma árvore de objectosPermite ler e escrever XMLSuporta validação (Schema)Suporta transformações XSLTSuporta XPathImplementações em (quase) todas aslinguagens de programação

Java, .Net, Perl, Python, PHP, Javascript, etc.

Page 16: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

16

Processamento de XML

Simple API for XML (SAX)Processamento conduzido por eventos

e.g. abrir etiqueta, fechar etiqueta, instrução de processamento, …

Processamento muito rápidoÚtil no processamento de documentosXML grandes (i.e. da ordem dos Megabytes)Complexo de programarSuporta XSLT

Page 17: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

17

Web services

Desenvolvimento de aplicações distribuídas sobre protocolos InternetIndependente da plataforma

e.g. Windows/Linux, Java/Perl, telemóvel/mainframe

Protocolos XML abertosWSDL, SOAP, UDDI, XML

Funciona sobre HTTP, …Sem reconfiguração de firewalls

Utilizador

Fornecedor de Serviço

Directório de Serviços(UDDI)

SOAP

Publicação do serviço (WSDL)

Descoberta de serviço (WSDL)

Invocação de serviço

Resposta

Reutilização de serviçosMensagens de grande dimensão

Poderá não ser adequado a todos os cenários de utilização

Page 18: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

18

Dialectos XML

Linguagens de anotação para domínios de aplicação específicosProcuram resolver a generalidade dos problemas nesse domínioPodem ser grandes e complexas

Dependendo da complexidade da aplicação e do domínio

Geralmente é necessário “podar” a linguagem antes de a utilizar

Page 19: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

19

SVG - Scalable Vector Graphics

Imagens vectoriais 2DNorma aberta da W3CSuporta animação

Page 20: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

20

GML - Geography Markup Language

Representação de informação geográficaNorma aberta do Open Geospacial ConsortiumInformação geométrica e semântica

Pontos, Linhas, PolígonosNome da rua, Nº de habitantes, tipo de objecto

Suporte para múltiplas camadas (layers)

Page 21: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

21

MusicML

Formato XML para partilha de pautasmusicais

Page 22: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

22

DocBook

Dialecto XML para descrever documentos de textoLivros, artigos, etc.

Page 23: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

23

Dialectos para Metainformação

EADDescrição de fundos documentais (arquivos)

Dublin CoreDescrição de recursos

XMARCCatálogos bibliográficos

METSEstruturação e transmissão de objectos digitais

RDF/OWL e Topic MapsMapas de conceitos (i.e. ontologias)

Muitos outros…

Page 24: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

24

ChessML

XML para descrever jogadas de xadrez

Page 25: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

25

Repositórios de DTD/Schemas

XML.ORG Registry (http://www.xml.org/xml/registry.jsp)

Repositório de especificações XML (i.e DTD/Schemas)Vasto conjunto de normasQualquer pessoa pode publicar uma especificaçãoProcurar sempre utilizar DTD já existentes!

Page 26: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

26

Alguma questão?

<nota> antes de passarmos ao exercício?! </nota>

Page 27: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

27

Exercício

Criação de uma interface para o Authentic para editar um documento XML.Geração de derivadas HTML e PDF do documento

Page 28: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

28

Referências

Armazenamento XMLStoring XML in Relational Databases

http://www.xml.com/pub/a/2001/06/20/databases.html

Introduction to Native XML Databaseshttp://www.xml.com/pub/a/2001/10/31/nativexmldb.html

Ronald BourretConsulting, writing, and research in XML and databases

http://www.rpbourret.com

Page 29: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

29

Referências

Processamento XMLDOM - http://www.w3.org/DOM/SAX - http://www.saxproject.org/

Web servicesA Web Services Primer

http://webservices.xml.com/pub/a/ws/2001/04/04/webservices/index.html

W3C Web Services Activityhttp://www.w3.org/2002/ws/

Page 30: Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf · XATA’06 8-10 Fevereiro 12 Armazenamento de XML Sistema de ficheiros Um ficheiro

XATA

’06

8-10

Fev

erei

ro

30

Referências

DialectosSVG: http://www.w3.org/TR/SVG/GML: http://opengis.net/gml/Music & XML: http://xml.coverpages.org/xmlMusic.htmlDocBook: http://www.docbook.org/Metainformação

Dublin Core: http://www.dublincore.orgEAD: http://www.loc.gov/eadMARC 21: http://lcweb.loc.gov/marc/marcdocz.htmlMARCXML: http://www.loc.gov/marc/marcxml.htmlMETS: http://www.loc.gov/standards/metsRDF: http://www.w3.org/RDF

ChessML: http://xml.coverpages.org/chessML.html