Recapitular XML... Gestão e Tratamento de Informação DEI IST



Documentos relacionados
Uma Abordagem Alternativa para o Armazenamento Electrónico de Dados: O Papel da Norma XML

Bases de dados semi-estruturadas, XML

XML. 1. XML: Conceitos Básicos. 2. Aplicação XML: XHTML 3. Folhas de Estilo em Cascata XML

GERÊNCIA DE DADOS SEMIESTRUTURADOS -DTD. Prof. Angelo Augusto Frozza, M.Sc.

GERÊNCIA DE DADOS SEMI ESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

L A C Laboratory for Advanced Collaboration

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

Um documento XML possui Unidade lógica - os elementos Usuário "inventa" as marcas através de DTDs

XML e Banco de Dados. Prof. Daniela Barreiro Claro DCC/IM/UFBA

XML Schema. Vanessa de Paula Braganholo ftp://metropole/pub/curso/xml/index.html. Janeiro de XML Schema

extensible Markup Language (XML) XML é uma linguagem de anotação. XML utiliza tags para descrever informação.

Este relatório tem por objetivo, abordar a sintaxe XML.

GERÊNCIA DE DADOS SEMIESTRUTURADOS -XML. Prof. Angelo Augusto Frozza, M.Sc.

XML (extensible Markup Language)

XML: uma introdução prática X100. Helder da Rocha

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) XML Origens. HTML Problemas

Introdução. Definição. Validação. Universo XML. Apresentação. Processamento. Prof. Enzo Seraphim. Banco de Dados

Banco de Dados. Gerenciamento de Dados e Informação Fernando Fonseca, Ana Carolina Salgado & Robson Fidalgo

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

Gerência de Dados da Web - DCC922 -

UFG - Instituto de Informática

XHTML 1.0 DTDs e Validação

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

Sumário. XML (extensible Markup Language)

Tutorial. Introdução ao XML e tecnologias associadas. Aplicações e dialectos XML. Sessão Fevereiro XATA 06

Programação SQL. Introdução

Sintaxe XML. César Vittori Outubro de Resumo Introdução à sintaxe XML. Marcação tradicional x marcação de documentos

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Estrutura Básica do Documento HTML

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi

Especificação Técnica ACSS

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

Um estudo sobre esquemas para documentos XML

Desenvolvimento em Ambiente Web. HTML - Introdução

GESTÃO DA CADEIA DE SUPRIMENTOS FORMAS DE TROCA DE INFORMAÇÃO: EDI E XML

XML. Prof. Júlio Machado

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

Guia de Consulta Rápida XML. Otávio C. Décio. Novatec Editora


Dados Semi-Estruturados e XML

XML & Banco de Dados

Técnicas e processos de produção. Profº Ritielle Souza

XML (extensible Markup Language)

Web Design Aula 11: XHTML

XSLT e recursividade estrutural. Gestão e Tratamento de Informação DEI IST

XML extensible Markup Language. Prof. Fellipe Aleixo

Capítulo 9: XML! Database System Concepts! Silberschatz, Korth and Sudarshan (modificado)!

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

Sistema Nacional de Registro de Hóspedes - SNRHos. PGTUR Plataforma de Gestão do Turismo Manual Técnico de Utilização do Web Service Versão 1.

Armazenamento e Pesquisa de Topic Maps em Banco de Dados Relacional

Desenvolvimento Web Introdução a XHTML. Prof. Bruno Gomes

Introdução ao HTML 5 e Implementação de Documentos

Guia de Consulta Rápida XHTML. Juliano Niederauer. Novatec Editora.

Esquemas para Dados XML

Introdução ao XML. Extensible Markup Language

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Keli Cristina Manini Susane Schmidt. Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML

CSS. Oficina de CSS Aula 10. Cascading Style Sheets. Cascading Style Sheets Roteiro. Cascading Style Sheets. Cascading Style Sheets W3C

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

1. Domínio dos Atributos

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Universidade da Beira Interior

Desenvolvimento em Ambiente Web. Prof. André Y. Kusumoto

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação

Leiaute-IMPORTAÇÃO-Plano de Contas - XML

Número: Nome:

XQuery (2ª parte) DEI IST. (baseado nos slides de Ioana Manolescu, acessíveis em:

MARCUS BARBOSA PINTO UMA PROPOSTA PARA INTEGRAÇÃO DE ESQUEMAS PARA DOCUMENTOS XML

XML (extensible Markup Language) por. Rafael Port da Rocha. (Notas de Aula)

SISTEMA GERENCIADOR DE BANCO DE DADOS

Módulo III. Folhas de Cálculo

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

XML (extensible Markup Language)

Introdução XML. Vanessa Braganholo

Introdução ao SQL. O que é SQL?

SQL - Criação de Tabelas

Armazenamento e Gestão de dados XML

Franklin Ramalho Universidade Federal de Campina Grande - UFCG

Keli Cristina Manini Susane Schmidt. Uma Ferramenta para Geração de Esquemas XML a partir de Documentos XML

XML. Introdução Ferramentas para Internet Marx Gomes Van der Linden. ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida )

Tópicos. Apresentando a família XML HTML HTML. XML extesible Markup Language. Problemas com o HTML

XPath e XSLT. Ferramentas para Internet Marx Gomes Van der Linden. ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida )

Persistência e Banco de Dados em Jogos Digitais

Algoritmia e Programação APROG HTML. Introdução. Nelson Freire (ISEP DEI-APROG 2014/15) 1/15

SimpleXML: Integrando PHP e XML de maneira simples. Anderson Casimiro

Apostila de XHTML Curso de Internet Professor Rinaldo Demétrio

Sumário. 1 Aplicações Não-Convencionais 2 BD Orientado a Objetos e Objeto- Relacional 3 BD Temporal 4 BD Geográfico 5 BDs XML

Gestão e Tratamento de Informação 1º semestre

Disciplina de Banco de Dados Introdução

Manual técnico. v /10

Tarefa Orientada 13 Agrupamento e sumário de dados

SQL. Autor: Renata Viegas

O que é XML? A Linguagem de Marcação Extensível (Extensible Markup Language - XML) é:

A linguagem SQL

BREVE INTRODUÇÃO À LINGUAGEM XML

Introdução ao SQL Avançado

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

Transcrição:

Recapitular XML... Gestão e Tratamento de Informação DEI IST

Agenda Introdução ao XML XML Schema XML Namespaces

Agenda Introdução ao XML XML Schema XML Namespaces

Revolução da Web HTML é a linguagem da Web Mesmo se existe uma grande quantidade de ficheiros.doc,.ps,.pdf,.jpg,.gif, som, vídeo Existem milhares de páginas Públicas/privadas, estáticas/dinâmicas, vísiveis/escondidas Suporte natural para a informação distribuída Destinada a seres humanos mas, cada vez mais, também às aplicações

Aplicações sobre dados distribuídos sobre a Web HTML não está adaptado a aplicações do tipo: B2C, B2B, bibliotecas on-line,... Não chega aceder a um conjunto de páginas HTML como nos motores de busca Estas aplicações necessitam de tipos para representar a estrutura dos dados Que modelo de dados então adoptar? Base de Dados?

Modelo BD relacional vs Modelo dados Web (1) Modelo de dados relacional: Conhece-se a estrutura das tabelas e a semântica das colunas; não sobre a Web Estrutura dos dados fixa vs irregular Falta de dados Estrutura explícita vs implícita

Modelo BD relacional vs Modelo dados Web (2) Esquema de dados Web: pode ser deduzido a posteriori pode ser complexo e grande pode ser ignorado pelas interrogações pode evoluir muito rapidamente. Alguns dados podem não ter estrutura Texto, imagens Alguns dados podem não ser conforme a estrutura

Junção de dois modelos resulta... Gestão de documentos SGML Documentação hipertexto HTML Gestão de dados Bases de Dados estruturadas (relacional e OO) Bases de dados semi-estruturadas

XML extensible Markup Language Formato universal para os documentos e dados semi-estruturados na Web Versão simplificada de SGML Esperanto da Web que vai substituir o HTML Família de standards: XLink, XPath, XSL, XQuery, SOAP, DOM,... Modelo de dados baseado em árvores e uma linguagem de representação baseada em tags (etiquetas)

Exemplo fn ln nome Helena Galhardas IST Elementos fn Atributos tipo Dados ficha trab Ender. email cidade CP Porto Salvo2790-380 2790-380 tipo missão ensino Ensinar bem hig@inesc-id.pt <ficha> <nome> <fn>helena</fn> <ln>galhardas</ln> </nome> <trab tipo= ensino"> IST <ender> <cidade>porto Salvo</cidade> <cp>92310</cp> </ender> <email>hig@inesc-id.pt</email> </trab> <missão>ensinar bem </missão> </ficha>

Acesso a dados XML Características das interrogações: Bases de dados (estilo SQL) Navegação Palavras chaves (estilo motor de pesquisa Web) e pattern matching (estilo comando grep ) Interrogação de dados e estrutura ao mesmo tempo a estrutura não é totalmente conhecida previamente

Observações XML fornece uma sintaxe, não fornece semântica apriori As tags não têm significado definido pela linguagem, mas podem fazer sentido para as aplicações XML define apenas a estrutura e conteúdo de um documento, não o seu comportamento nem o seu tratamento Desenvolvida e promovida pelo W3C Indústria: Oracle, IBM, Microsoft, CompaQ, Xerox,... Laboratórios de investigação: MIT, INRIA, etc

Alguns standards importantes DOM (Document Object Model): interface de programação que permite aceder à estrutura e conteúdo dos documentos [DTD], XML Schema: tipos Os documentos devem ser bem formados, mas os tipos não são obrigatórios XPath: linguagem de expressões de caminho para aceder a partes do documento XSLT: linguagem de transformação XQuery: linguagem de interrogação (o SQL do XML)

Dialectos de XML Para uma determinada aplicação, define-se uma sintaxe (um dialecto XML) e define-se a sua semântica. XHTML: Reformulação de HTML como sendo uma aplicação XML sintaxe mais rigorosa, por ex., fecha-se o que se abriu Importação de fragmentos de documentos de outros domínios Possibilidade de utilizar aplicações XML standard MathML: Permite a troca e tratamento de expressões matemáticas sobre a Web Facilita a inserção de expressões matemáticas em docs HTML ou XML

Vantagens do XML

Transferência e partilha de informação Uma comunidade de utilizadores (ex: indústria da biotecnologia) inventa livremente as tags que lhe parecem úteis para representar as informações que pretendem trocar ou partilhar Exemplo: diferentes maneiras de representar uma data <data> 5 Janeiro 2000 </data> <data> <a>2000</a><m>01</m><d>05</d> </data> <data formato='iso-8601'> 2000-01-05 </data>

Interoperabilidade das ferramentas de tratamento Ferramentas para dados XML Parsers, editores, browsers,... Consequências: Um servidor de documentos XML consegue responder a um conjunto de necessidades de uma organização Um único editor permite tratar o conjunto de dados de uma organização

Acesso a fontes de informação heterógeneas A interrogação e a troca de dados entre sistemas de informação heterogéneos é muitas vezes complexa XML pretende colmatar esse problema Formato de transferência de informação normalizado independente da plataforma A indexação e interrogação de bases de dados documentais grandes é baseada em informações estruturais e textuais.

Exemplos de documentos XML <document/> <document> </document> <document> Bom dia! </document> <document> <saudacao> Bom dia! </saudacao> </document> <?xml version="1.0" standalone="yes"?> <document>o <saudacao> Bom dia! </saudacao> </document>

XML 1.0: estrutura de um elemento Um elemento tem a forma: <nome atributo='valor'> conteúdo </nome> <nome> é a tag de abertura </nome> é a tag de fecho [ elementos vazios: <nome> </nome> ou <nome/> ] «conteúdo» é o conteúdo de um elemento! Composto por uma lista (pode ser vazia) de texto, de outros elementos, de instruções de tratamento, de comentários atr='valor' representa um atributo que é um par (nome, valor). Um elemento só pode ter um atributo com um determinado nome.

Exemplos de elementos <a></a> <a>olá, bom dia</a> <a><b> </b><b> </b><a> </a></a> <a><b> </b>olá<b> </b>bom dia</a> Conteúdo de um elemento = floresta de elementos ou de texto Text UNICODE: pode representar qualquer alfabeto

XML 1.0: Restrições sobre os nomes O nome de um elemento ou atributo é uma cadeia não vazia de caracteres, escolhidos entre: Caracteres alfa-numéricos, sublinhado (undescore), sinal menos, o ponto, caracter dois pontos (:) Que deve satisfazer as seguintes condições: O primeiro caracter deve ser alfabético ou sublinhado Os três primeiros caracteres não devem formar uma cadeia cuja representação em minúsculas é "xml". Exemplos de nomes de elementos correctos _nome Nome_sociedade xsl:rule X.11 incorrectos 1998-catalogo XmlSpec nome sociedade

XML 1.0: Sintaxe dos atributos Um atributo é um par nome='valor' que caracteriza um elemento Um elemento pode ter vários atributos (separados por espaço): <relatorio lingua= pt' ult-modif='08/07/99'> a ordem não tem importância O valor de um atributo é uma cadeia delimitada por aspas (") ou ('). Não deve conter os caracteres ^, % e &.

Referências XML XML permite associar identificadores únicos a elementos, como sendo o valor de um determinado atributo. <state id = s2 > <scode> NE </scode> <sname> Nevada </sname> </state> <city id = c2 > <ccode> CCN </ccode> <cname> Carson City </cname> <state-of idref = s2 /> </city>

Referências Serge Abiteboul, Slides of the course: Données Semistructurées, Master Recherche Informatique Paris Sud, http://www-rocq.inria.fr/~abitebou/master- SSD/index.html Erik Wilde, Slides of the course: XML Foundations, UC Berkeley, http://dret.net/lectures/xml-fall07/ XML 1.0 Press Release, http://www.w3.org/press/1998/xml10-rec XML 1.0 Spec, http://www.w3.org/tr/rec-xml/ S. Abiteboul, P. Buneman, D. Suciu, Data on the Web, From Relations to Semistructured Data and XML, Morgan Kaufmann, 2000.

Agenda Introdução ao XML XML Schema XML Namespaces

Tipificação em XML Não é imposta Mas: Melhora o armazenamento Facilita a navegação nos dados Facilita a interrogação Facilita a descrição e explicação dos dados Ajuda à optimização Permite a interoperabilidade entre programas Permite proteger os dados

XML DTD (Document Type Definition) Define uma classe de documentos Um documento XML pode ter uma DTD Terminologia para XML: Bem formado: se as tags estão correctamente fechadas Válido: se tem uma DTD e é conforme essa DTD Validação é útil em transferência de dados

XML DTD Define: Nomes de elementos Estrutura do conteúdo dos elementos Nomes dos atributos Valores dos atributos por omissão Entidades

Exemplo: Uma DTD muito simples <!DOCTYPE company [[ <!ELEMENT company ((person product)*)> <!ELEMENT person (ssn, name, office, phone?)> <!ELEMENT ssn (#PCDATA)> <!ELEMENT name (#PCDATA)> <!ELEMENT office (#PCDATA)> <!ELEMENT phone (#PCDATA)> <!ELEMENT product (pid, name, description?)> <!ELEMENT pid (#PCDATA)> <!ELEMENT description (#PCDATA)> ]> ]>

Desvantagens das DTDs Sintaxe não XML Não tem tipos de dados, em particular para o conteúdo dos elementos Só é marginalmente compatível com namespaces Não consegue usar conteúdo misto e obrigar ordem e número de elementos filhos Nomes dos elementos são globais

XML Schema Generaliza DTDs Utiliza a sintaxe XML Descreve o conteúdo possível para documentos XML É uma W3C Recommendation XML Schema Part 0: Primer XML Schema Part 1: Structures XML Schema Part 2: Datatypes Também referida como XSDL: XML Schema Definition Language, ou XSD: XML Schema Document

DTD vs XML Schema DTD XML Schema <!ELEMENT> declaration xsd:element element <!ATTLIST> declaration xsd:attribute element <!ENTITY> declaration n/a #PCDATA content xsd:string type n/a other data types

Tipos de dados simples e complexos XML Schema suporta a definição de tipos de dados e a declaração de elementos e de atributos Tipos: simples (inteiros, strings,...) complexos (expressões regulares, como nas DTDs) Alternância element-type-element: elemento raiz tem um tipo complexo que é uma expressão regular de elementos esses elementos têm os seus tipos complexos... nas folhas, temos tipos simples

Estrutura da declaração de elementos xsd:sequence Obriga a que os elementos ocorrem na ordem dada análogo a, em DTDs xsd:choice Permite que um dos elementos dados ocorra Análogo a em DTDs xsd:all Permite que os elementos ocorram numa ordem qualquer

Definição do número de ocorrências dos elementos Os atributos minoccurs e maxoccurs controlam o número de ocorrências de um elemento, sequence ou choice minoccurs tem que ser um inteiro não negativo maxoccurs tem que ser um inteiro não negativo ou sem limite O valor por omissão para ambos é 1

Expressões regulares - resumo Alternância element-type-element: <xsd:complextype name=... > [construção de elementos] </xsd:complextype> Construção de Elementos: <xsd:sequence> A B C </...> <xsd:choice> A B C </...> <xsd:all> A B C </...> <xsd:... minoccurs= 0 maxoccurs= unbounded >..</...> <xsd:... minoccurs= 0 maxoccurs= 1 >..</...>

Exemplo <xsd:element name= paper type= papertype /> <xsd:complextype name= papertype > <xsd:sequence> <xsd:element name= title type= xsd:string /> <xsd:element name= author minoccurs= 0 /> <xsd:element name= year /> <xsd: <xsd: choice> < xsd:element name= journal /> <xsd:element name= conference /> </xsd:choice> </xsd:sequence> </xsd:complextype> DTD: <!ELEMENT paper (title,author?,year, (journal conference))>

Elementos versus Tipos <xsd:element <xsd:element name= person > name= person > <xsd:complextype> <xsd:complextype> <xsd:sequence> <xsd:sequence> <xsd:element <xsd:element name= name name= name type= xsd:string /> type= xsd:string /> <xsd:element <xsd:element name= address name= address type= xsd:string /> type= xsd:string /> </xsd:sequence> </xsd:sequence> </xsd:complextype> </xsd:complextype> </xsd:element> </xsd:element> <xsd:element <xsd:element name= person name= person type= ttt > type= ttt > <xsd:complextype <xsd:complextype name= ttt > name= ttt > <xsd:sequence> <xsd:sequence> <xsd:element <xsd:element name= name name= name type= xsd:string /> type= xsd:string /> <xsd:element <xsd:element name= address name= address type= xsd:string /> type= xsd:string /> </xsd:sequence> </xsd:sequence> </xsd:complextype> </xsd:complextype> DTD: <!ELEMENT person (name,address)>

Tipos locais e globais Tipo local: <xsd:element name= person > [define localmente o tipo da pessoa] </xsd:element> Tipo global: <xsd:element name= person type= ttt /> <xsd:complextype name= ttt > [define aqui o tipo ttt] </xsd:complextype> Tipos globais podem ser reutilizados noutros elementos

Elementos locais versus elementos globais Elemento local: <xsd:complextype name= ttt > <xsd:sequence> <xsd:element name= address type=... />... </xsd:sequence> </xsd:complextype> Elemento global: <xsd:element name= address type=... /> <xsd:complextype name= ttt > <xsd:sequence> <xsd:element ref= address />... </xsd:sequence> </xsd:complextype> Elementos globais como nas DTDs

Atributos Utilizar o elemento xsd:attribute dentro de um xsd:complextype Tem atributos name, type Atributo use é opcional Se omitido, então atributo é opcional use = required para atributos obrigatórios fixed para constantes default =... para valor por omissão Atributos têm que ser declarados no fim de um xsd:complextype

Exemplo. <xsd:element name= paper type= papertype /> <xsd:complextype name= papertype > <xsd:sequence> <xsd:element name= title type= xsd:string />......... </xsd:sequence> <xsd:attribute name= language" type="xsd:string" fixed= English"/> </xsd:complextype> </xsd:element>

Conteúdo Mixed, Tipo Any <xsd:complextype mixed="true">........ Melhor do que nas DTDs: pode assegurar o tipo, mas pode existir texto entre quaisquer elementos <xsd:element name="anything" type="xsd:anytype"/>... Significa que qualquer coisa é permitida

Tipos de dados simples String Token Byte unsignedbyte Integer positiveinteger Int (larger than integer) unsignedint Long Short... Time datetime Duration Date ID IDREF IDREFS

Tipos de dados simples derivados (pelo utilizador) Tipos de dados complexos podem ser criados de raiz Novos tipos de dados simples podem ser derivados a partir de outros tipos de dados simples já existentes Derivação pode ser: Extensão: Lista: uma lista de valores de um determinado tipo União: permite valores de dois ou mais tipos de dados Restrição: limita os valores permitidos usando: Valor máximo, valor mínimo, tamanho, número de dígitos, enumeração, padrões (facetas)

Referências Peter Wood, Slides on Representing and Querying Data on the Web, http://www.dcs.bbk.ac.uk/~ptw/teaching/data-on-theweb.html. Dan Suciu, Slides on The semistructured data model, CSE 590ds: Management of XML and Semistructured Data, http://www.cs.washington.edu/education/courses/cse590ds/01sp/ S. Abiteboul, P. Buneman, D. Suciu, Data on the Web, From Relations to Semistructured Data and XML, Morgan Kaufmann, 2000, (cap 3) www.w3.org/tr/xmlschema-0 W3C's XML Schema Recommendation, Part 0: Primer www.w3.org/tr/xmlschema-1 W3C's XML Schema Recommendation, Part 1: Structures www.w3.org/tr/xmlschema-2 W3C's XML Schema Recommendation, Part 2: Datatypes

Agenda Introdução ao XML XML Schema XML Namespaces