Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf ·...
Transcript of Tutorial - Universidade do Minho - Departamento de ...jcr/XML/CURSOS/PED2007/aulasT/aula2T.pdf ·...
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
Departamento de Sistemas de InformaçãoUniversidade do Minho
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
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!
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
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
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
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
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
XATA
’06
8-10
Fev
erei
ro
9
Ciclo de vida de um XML
XATA
’06
8-10
Fev
erei
ro
10
Ciclo de vida de um XML
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/
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
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
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)
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.
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
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
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
XATA
’06
8-10
Fev
erei
ro
19
SVG - Scalable Vector Graphics
Imagens vectoriais 2DNorma aberta da W3CSuporta animação
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)
XATA
’06
8-10
Fev
erei
ro
21
MusicML
Formato XML para partilha de pautasmusicais
XATA
’06
8-10
Fev
erei
ro
22
DocBook
Dialecto XML para descrever documentos de textoLivros, artigos, etc.
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…
XATA
’06
8-10
Fev
erei
ro
24
ChessML
XML para descrever jogadas de xadrez
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!
XATA
’06
8-10
Fev
erei
ro
26
Alguma questão?
<nota> antes de passarmos ao exercício?! </nota>
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
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
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/
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