recapitular xml... helena galhardas dei ist. agenda introdução ao xml modelo de dados...

64
Recapitular XML ... Helena Galhardas DEI IST

Upload: lucinda-domingos-candal

Post on 07-Apr-2016

240 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Recapitular XML ...

Helena GalhardasDEI IST

Page 2: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Agenda

Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Page 3: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Agenda

Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Page 4: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Revolução da Web

HTML era 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 e, cada vez mais,

para as aplicações

Page 5: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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?

Page 6: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

Page 7: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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 mto rapidamente. Alguns dados podem não ter estrutura

Texto, imagens Alguns dados podem não ser conforme a

estrutura

Page 8: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Junção de dois modelos resulta ....

Gestão de documentos

SGML

HTML

Documentação hipertexto

Gestão de dados

Bases de Dados estruturadas(relacional e OO)

Bases de dadossemi-estruturadas

Page 9: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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)

Page 10: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Exemplo

ficha

nome trab

ln Ender. email

cidade CPGalhardas

Porto Salvo2790-380

[email protected]

IST Ensinar bem…

missãotipo

ensino

fn

fn

tipo2790-380

Helena

ElementosAtributosDados

<ficha><nome>

<fn>Helena</fn><ln>Galhardas</ln>

</nome><trab tipo=“ensino">

IST<ender><cidade>Porto Salvo</cidade><cp>92310</cp></ender><email>[email protected]</email>

</trab><missão>Ensinar bem</missão></ficha>

Page 11: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Acesso a dados XML Características das interrogações:

Bases de dados (estilo SQL/OQL) 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 Interrogações têem em conta o factor tempo, sobre versões,

arquivos, mudanças nos dados Apoio linguístico: sinónimos, correcções de erros ortográficos

Page 12: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

Page 13: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Alguns standards importantes DOM (Document Object Model): interface de

programação que permite aceder à estrutura e conteúdo dos documentos

[DTD],Xschema, XSD: 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 XLink (XML Linking Language): XSLT: linguagem de transformação XQuery: linguagem de interrogação (o SQL do XML)

Page 14: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

MathXML: 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

Page 15: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Vantagens do XML

Page 16: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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>

Page 17: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

Page 18: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Acesso a fontes de informação heterógeneas A interrogação e a troca de dados entre

sistemas de informação heterógeneos é mtas 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.

Page 19: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Exemplos de documentos XML

<?xml version="1.0" standalone="yes" ?> <document>o <saudação> Bom dia! </saudação> </document>

<document> <saudação> Bom dia! </saudação> </document>

<document> </document>

<document/>

<document> Bom dia! </document>

Page 20: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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.

Page 21: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Exemplos de elementos

<a></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

Page 22: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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 primeiros 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 incorrectos

_totoNome_sociedadexsl:ruleX.11

1998-catalogoXmlSpecnome sociedade

Page 23: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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):<relatório língua=‘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 &.

Page 24: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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.

Page 25: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Agenda

Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Page 26: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Modelo de dados semi-estruturado Dados semi-estruturados são muitas vezes

conotados como “sem-esquema” (schemaless) ou “explicáveis por si próprios” (self-describing)

Dados são descritos através de uma sintaxe simples:{nome: {primeiro: “Bruno”, ultimo: “Martins”}, tel: 21 4233290, email: “[email protected]”}

Page 27: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Representação gráfica

nometel

email

primeiro ultimo

“Bruno” “Martins”

214233290“[email protected]

Page 28: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Variações na estrutura

{pessoa:{nome: {primeiro: “Bruno”, ultimo: “Martins”},

tel: 21 4233290, email: “[email protected]”},

pessoa: {nome: “Pável”, tel: 21 4233267, email: [email protected]},

pessoa:{nome: “Helena”, tel: 21 4233246, altura: 1,60}

}

Page 29: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Representação de dados relacionais{ r1: {linha: {a: a1, b: b1, c: c1}, linha: {a: a2, b: b2, c: c2} }, r2: {linha: {c: c2, d: d2}, linha: {c: c3, d: d3},

linha: {c: c4, d: d4} }

}

Page 30: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Modelo de dados semi-estruturado

&o1

&o12 &o24 &o29

&o43&96

&243 &206

&25

“Serge” “Abiteboul”

1997

“Victor” “Vianu” 122 133

paper bookpaper

references

references references

author title year httpauthor

authorauthor

title publisherauthor

authortitle

page

firstnamelastname firstname lastname first

last

Bib

Object Exchange Model (OEM)

complex object

atomic object

Page 31: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Terminologia de grafos para descrever dados semi-estruturados Grafo (N, E) consiste num conjunto N de nós e um

conjunto E de arcos (edges) Associado a cada e E, existe um par ordenado de

nós, o nó fonte s(e) e o nó destino t(e). Um caminho (path) é uma sequência e1, e2, ..., ek

de arcos tal que: t(ei) = s(ei+1), 1<=i<=k-1, K: tamanho do caminho

Um nó r é a raíz do grafo se existir um caminho de r para n, para qualquer n N

Um ciclo num grafo é um caminho entre um nó e ele mesmo. Um grafo sem ciclos é aciclico.

Page 32: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Terminologia de grafos para descrever dados semi-estruturados (2) Um grafo com raíz é uma árvore se existir

um caminho único de r para n, para qualquer n N

Um nó é terminal ou folha se não é a fonte de nenhum arco em E.

DAG: Directed Acyclic graph Modelo de dados semi-estruturados: grafo

com arcos etiquetados (edge-labeled graph) Tb pode incluir etiquetas nos nós

Page 33: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

XML e dados semi-estruturados<person>

<name> Alan </name> <age> 42 </age> <email> ab@com </email></person>

Expressão de dados semi-estruturados: {person: {name: “Alan”, age: 43, email: [email protected]}}

Função de tradução T:T(valoratomico) = valoratomicoT({l1:v1, ..., ln:vn} = <l1> T[v1] </l1> ... <ln> T[vn] </ln>

Page 34: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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>

Page 35: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Semelhanças e diferenças

<person id=“o123”> <name> Alan </name> <age> 42 </age> <email> ab@com </email></person>

{ person: &o123 { name: “Alan”, age: 42, email: “ab@com” }}

person

name age email

Alan 42 ab@com

person

name age email

Alan 42 ab@com

father father

<person father=“o123”> …</person>

{ person: { father: &o123 …}}

Semelhante em árvores, diferente em grafos

Page 36: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Ordem em XML Em XML, existe a noção de ordem, em ssd não.

Person:{fn:”John”, ln:”Smith”} igual aPerson:{ln:”Smith”, fn:“John”}Mas<person><fn>John</fn>

<ln>Smith</ln></person>Diferente de:<person><ln>Smith</ln>

<fn>John</fn></person> Atributos em XML não têm noção de ordem

Page 37: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Mistura de elementos e texto XML pode misturar texto e elementos <talk> Making Java easier to type and easier to type <speaker> Phil Wadler </speaker> </talk>

Além disto, XML tem uma panóplia de outras construções como entidades, instruções de processamento, comentários, etc.

Todas estas diferenças fazem com que a gestão de dados XML seja mais complexa

Page 38: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado 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

Page 39: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Melhora o armazenamento

Root

Company Employee

string

company

person

works-for

c.e.o.

address

name

managed-by

name

o i d n a m e a d d r e s s c . e . o .… … … …… … … …

Company

o i d n a m e m a n a g e d - b y w o r k s - f o r… … … …… … … …

Employee

Page 40: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Ajuda na optimização de interrogações

Bib

paper book

yearjournal

title

int string string

addressauthor

title

zip city street

lastname

firstname

string string string string string

string

select X.titlefrom Bib._ Xwhere X.*.zip = “12345”

select X.titlefrom Bib.book Xwhere X.address.zip = “12345”

Page 41: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

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, (caps 2, 3 e 7)

Page 42: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Agenda

Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Page 43: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

Page 44: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

Page 45: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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)>]>

Page 46: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

Page 47: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

Page 48: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

Page 49: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

Page 50: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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 Análogo a & nas DTDs SGML

Page 51: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

Page 52: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Expressões regulares - resumoAlternância element-type-element:

<xsd:complexType name=“....”> [regular expression on elements] </xsd:complexType>

Expressões regulares: <xsd:sequence> A B C </...> = A B C <xsd:choice> A B C </...> = A | B | C <xsd:group> A B C </...> = (A B C) <xsd:... minOccurs=“0” maxOccurs=“unbounded”> ..</...> = (...)* <xsd:... minOccurs=“0” maxOccurs=“1”> ..</...> = (...)?

Page 53: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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: choice> < xsd:element name=“journal”/> <xsd:element name=“conference”/> </xsd:choice> </xsd:sequence></xsd:element>

DTD: <!ELEMENT paper (title,author?,year, (journal|conference))>

Page 54: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Elementos versus Tipos

<xsd:element name=“person”> <xsd:complexType> <xsd:sequence> <xsd:element name=“name” type=“xsd:string”/> <xsd:element name=“address” type=“xsd:string”/> </xsd:sequence> </xsd:complexType></xsd:element>

<xsd:element name=“person” type=“ttt”><xsd:complexType name=“ttt”> <xsd:sequence> <xsd:element name=“name” type=“xsd:string”/> <xsd:element name=“address” type=“xsd:string”/> </xsd:sequence></xsd:complexType>

DTD: <!ELEMENT person (name,address)>

Page 55: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Tipos locais e globais

Tipo local: <xsd:element name=“person”>

[define localmente o tipo da pessoa] </xsd:element>

Tipo global: <xsd:element name=“person” name=“ttt”/>

<xsd:complexType name=“ttt”> [define aqui o tipo ttt] </xsd:complexType>

Tipos globais podem ser reutilizados noutros elementos

Page 56: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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

Page 57: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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 Use = “fixed” para constantes Use = “default” value =“ ...” para valor por omissão

Para enumeração, usar xsd:SimpleType Atributos têm que ser declarados no fim de um

xsd:complexType

Page 58: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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:NMTOKEN" fixed=“English"/></xsd:complexType></xsd:element>

.

Page 59: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Conteúdo “Mixed”, Tipo “Any”

Melhor do que nas DTDs: pode assegurar o tipo, mas pode existir texto entre quaisquer elementos

Significa que qualquer coisa é permitida

<xsd:complexType mixed="true"> . . . .

<xsd:element name="anything" type="xsd:anyType"/> . . . .

Page 60: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Tipos de dados simples String Token Byte unsignedByte Integer positiveInteger Int (larger than integer) unsignedInt Long Short ...

Time dateTime Duration Date ID IDREF IDREFS

Page 61: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

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)

Page 62: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Referências Peter Wood, Slides on “Representing and Querying Data on the

Web”, http://www.dcs.bbk.ac.uk/~ptw/teaching/data-on-the-web.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

Page 63: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Agenda

Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Page 64: Recapitular XML... Helena Galhardas DEI IST. Agenda Introdução ao XML Modelo de dados semi-estruturado XML Schema XML Namespaces

Tópicos próxima aula XPath XSLT