Upload
marcosrobertosilva
View
221
Download
0
Embed Size (px)
Citation preview
8/3/2019 Modulo1c XML Basico Schema
1/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 1
Tecnologias de Banco de Dados
para a Web Semntica
Mdulo 1c XML Bsico XML Schema
Marco A. Casanova
8/3/2019 Modulo1c XML Basico Schema
2/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 2
Tpicos
Introduo
Declarao de tipos complexos e elementos Declarao de tipos simples
Outras formas de modelar contedo Namespaces
Resumo
8/3/2019 Modulo1c XML Basico Schema
3/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 3
Introduo
XML Schema:
especifica a estrutura de um conjunto de documentos XML especifica os tipos de dados de cada elemento ou atributo
XML Schema
Documento XML
Validador
Vlido / Invlido
8/3/2019 Modulo1c XML Basico Schema
4/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 4
Introduo
Linguagem para especificao de XML Schemas:
adota conceitos de OO permite derivar novos tipos de dados
oferece construtores sintticos poderosos
permite especificar que sub-elementos de um elementopodem ocorrer em qualquer ordem
permite especificar chaves
.....
8/3/2019 Modulo1c XML Basico Schema
5/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 5
Introduo
DTD vs. XML schema:
sintaxe: DTDs possuem sintaxe diferente dos documentos XML XML schema possui a mesma sintaxe
tipos de dados: DTD oferece 10 tipos de dados
XML schema oferece perto de 50 tipos de dados epermite a definio de novos tipos de dados
8/3/2019 Modulo1c XML Basico Schema
6/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 6
Declarao de tipos complexos e elementos
Exemplo de DTD:
local CDATA#REQUIRED>
]>
8/3/2019 Modulo1c XML Basico Schema
7/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 7
Declarao de tipos complexos e elementos
Exemplo de XML Schema:
declaraes iniciais do XML schema
(explicadas mais tarde!)
8/3/2019 Modulo1c XML Basico Schema
8/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 8
Declarao de tipos complexos e elementos
a declarao do elemento "db" separada da declarao do tipo "tipoBD"
a declarao do tipo "tipoBD" referencia a declarao do elemento "leilao"e inclui a declarao dos atributos obrigatrios "leiloeiro" e "local"
8/3/2019 Modulo1c XML Basico Schema
9/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 9
Declarao de tipos complexos e elementos
a declarao do elemento "leilao" inclui a declarao do tipo
a declarao do tipo referencia a declarao dos elementos "data" e "lote"
a declarao do elemento "data" usa o tipo pr-definido "date"
8/3/2019 Modulo1c XML Basico Schema
10/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 10
Declarao de tipos complexos e elementos
a declarao do elemento "lote" inclui a declarao dos elementos
"no", "valor" e "obra"
a declarao do elemento "valor" no inclui o atributo "moeda" !
8/3/2019 Modulo1c XML Basico Schema
11/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 11
Declarao de tipos complexos e elementos
complexType:
tipicamente contm declaraes de elementos,referncias a elementos e declaraes de atributos
no so propriamente declaraes de tipos, mas sim
restries sobre a sintaxe dos documento
8/3/2019 Modulo1c XML Basico Schema
12/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 12
Declarao de tipos complexos e elementos
complexType - restries sobre ocorrncias:
minOccurs / maxOccurs:
restringem o nmero de ocorrncias de um elemento ou atributo
default = 1
8/3/2019 Modulo1c XML Basico Schema
13/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 13
Declarao de tipos complexos e elementos
complexType - restries sobre ocorrncias:
use="required" ou "optional":
indica a obrigatoriedade de um atributo
8/3/2019 Modulo1c XML Basico Schema
14/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 14
Declarao de tipos complexos e elementos
complexType - restries sobre ocorrncias:
default:
indica o valor de default de um atributo
s faz sentido com use="optional"
8/3/2019 Modulo1c XML Basico Schema
15/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 15
Declarao de tipos simples
Simple Type:
pr-definido em XML schema ou
derivado dos tipos pr-definidos
8/3/2019 Modulo1c XML Basico Schema
16/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 16
Declarao de tipos simples
true, falseboolean
-1.2234, 0, 1000.00decimal
2003-08-23date
3h 41m 0s de 23/08/2003, -3 GMT2003-08-23T15:41:00.000-03:00dateTime
-11, 0, 32793integer
como em DTDID,IDREFIDREFS
http://www.puc-rio.br/
Brasil Argentina Uruguai
Copacabana Palace
Exemplo
lista de NMTOKENs sep. por espao
Observao
anyURI
token
string
Tipo
8/3/2019 Modulo1c XML Basico Schema
17/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 17
Declarao de tipos simples
Simple Type - restriction:
permite definir novos tipos simples como restries deoutros tipos simples
cada restrio sobre o valor do tipo simples chamada de
uma "facet"
8/3/2019 Modulo1c XML Basico Schema
18/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 18
Declarao de tipos simples
Simple Type restriction / range facet:
definem restries sobre tipos numricos simples
exemplo:
restrio do valor dos lotes a decimais entre 1000,00 e 1000000,00
8/3/2019 Modulo1c XML Basico Schema
19/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 19
Declarao de tipos simples
Simple Type restriction / pattern facet:
define restries de xsd:string atravs de padres
exemplo:
numerao de lotes extras:trs dgitos, seguidos de hfen, seguido de uma letra de "A" a "Z"
8/3/2019 Modulo1c XML Basico Schema
20/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 20
Declarao de tipos simples
Simple Type restriction / enumeration facet:
define restries de um tipo por enumerao de valores
exemplo:
enumerao das siglas dos estados brasileiros
...
8/3/2019 Modulo1c XML Basico Schema
21/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 21
Declarao de tipos simples
Simple Type list type:
define um novo tipo de lista
exemplo:
lista de nmeros de lotes extras
8/3/2019 Modulo1c XML Basico Schema
22/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 22
Declarao de tipos simples
Simple Type union types:
define um novo tipo como a unio de outros tipos simples
exemplo:
nmero de lote =nmero de lote normal UNION nmeros de lotes extras
8/3/2019 Modulo1c XML Basico Schema
23/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 23
Declarao de tipos simples
Simple Type union types:
8/3/2019 Modulo1c XML Basico Schema
24/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 24
Declarao de tipos simples
Simple Type union types:
exemplo:
neste caso, o mesmo efeito pode ser obtido comuma expresso regular que combina as duas opes
8/3/2019 Modulo1c XML Basico Schema
25/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 25
Declarao de tipos simples
restrio de Simple Type:
tipos simples no podem ter atributos
exemplo:
a declarao abaixo invlida !
8/3/2019 Modulo1c XML Basico Schema
26/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 26
Declarao de tipos simples
anyType:
raiz da hierarquia de tipos simples ou complexos
8/3/2019 Modulo1c XML Basico Schema
27/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 27
Outras formas de modelar contedo
Derivao de um complex type a partir de umsimple type:
exemplo:
incluso do atributo "moeda" declarao do elemento "valor"
8/3/2019 Modulo1c XML Basico Schema
28/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 28
Outras formas de modelar contedo
Contedo de um elemento normalmente...
contm atributos e seus valores
contm sub-elementos aninhados
s os elementos mais internos contm caracteres
8/3/2019 Modulo1c XML Basico Schema
29/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 29
Outras formas de modelar contedo
Elementos com contedo misto:
XML schema permite definir elementos contendoelementos aninhados junto com caracteres
32a(extra)20.000,00
chalupa adernada
8/3/2019 Modulo1c XML Basico Schema
30/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 30
Outras formas de modelar contedo
Elementos com contedo misto:
8/3/2019 Modulo1c XML Basico Schema
31/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 31
Outras formas de modelar contedo
Elementos com contedo nulo:
exemplo:
declarao de "valor" apenas com os atributos "moeda" e "total"
8/3/2019 Modulo1c XML Basico Schema
32/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 32
Outras formas de modelar contedo
Elementos com contedo nulo:
exemplo:
(sintaxe simplificada)
O f d d l d
8/3/2019 Modulo1c XML Basico Schema
33/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 33
Outras formas de modelar contedo
Grupos de elementos:
8/3/2019 Modulo1c XML Basico Schema
34/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 34
Outras formas de modelar contedo
Choice:
permite especificar alternativas mutuamente exclusivas
O t f d d l t d
8/3/2019 Modulo1c XML Basico Schema
35/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 35
Outras formas de modelar contedo
All:
permite especificar que os elementos do grupo devem
ocorrer uma nica vez, ou no devem ocorrer
aplica-se apenas a grupos de elementos
O t f d d l t d
8/3/2019 Modulo1c XML Basico Schema
36/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 36
Outras formas de modelar contedo
All:
exemplo:
lote com um nmero, um valor possivelmente omitido,apenas uma obra e elementos em qualquer ordem
Namespaces
8/3/2019 Modulo1c XML Basico Schema
37/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 37
Namespaces
Target Namespace:
XML schema
conjunto de declaraes de elementos e tipos
target namespace de um XML schema:
vocabulrio consistindo dos nomes dos elementos e tiposdeclarados no XML schema
Namespaces
8/3/2019 Modulo1c XML Basico Schema
38/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 38
Namespaces
Namespace do vocabulrio de XML Schemas:
namespace: http://www.w3.org/2001/XMLSchema
prefixo: xsd
declarao:
Namespaces
8/3/2019 Modulo1c XML Basico Schema
39/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 39
Namespaces
targetNamespace:
namespace para os nomes dos elementos e descritos pelo
esquema
exemplo:
Namespaces
8/3/2019 Modulo1c XML Basico Schema
40/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 40
Namespaces
default namespace:
namespace ao qual pertencero os elementos e tipos
cujo nome no tem um prefixo
exemplo:
neste exemplo, temos target namespace = default namespace
o default poderia ser o namespace do vocabulrio de XML schemas
Namespaces
8/3/2019 Modulo1c XML Basico Schema
41/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 41
Namespaces
Resumo:
namespace do vocabulrio de XML schemas
(todos os construtores de XML schemas devem ter o prefixo "xsd")
target namespace do XML schema sendo definido(nomes definidos no XML schema vo para este namespace)
default namespace do XML schema(nomes deste namespace no precisam de prefixo)
Namespaces
8/3/2019 Modulo1c XML Basico Schema
42/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 42
Namespaces
elementFormDefault / attributeFormDefault:
"unqualified" / "qualified"
elementos ou atributos declarados localmente (dentro de outradeclarao) no devem / devem ser qualificadostanto dentro do XML schema quanto de um XML document
exemplo:
Namespaces
8/3/2019 Modulo1c XML Basico Schema
43/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 43
Namespaces
Exemplo de uso em XML schema:
no h default namespace
elementos declarados localmente no devem ser qualificados
d h l d "htt // 3 /2001/XMLS h "
8/3/2019 Modulo1c XML Basico Schema
44/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 44
Namespaces
8/3/2019 Modulo1c XML Basico Schema
45/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 45
Namespaces
Exemplo de uso em XML document:
o documento declara um namespace, http://www.leiloes.org,
e o associa ao prefixo "lei"
elementos declarados localmente no devem ser qualificados
8/3/2019 Modulo1c XML Basico Schema
46/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 46
20000829120000Chalupa Adernada
o documento declara um namespace, http://www.leiloes.org,
e o associa ao prefixo "lei"
o XML schema indica que os elementos declarados localmente no devem serqualificados
"bd", "leilao", "data" e "lote" so declarados globalmente no XML schema e,
portanto devem ser qualificados
"no", "valor" e "obra" so declarados localmente no XML schema e, portanto, noprecisam ser qualificados
Namespaces
8/3/2019 Modulo1c XML Basico Schema
47/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 47
Namespaces
Exemplo de uso em XML document:
o documento declara um namespace, http://www.leiloes.org,
como default
8/3/2019 Modulo1c XML Basico Schema
48/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 48
20000829120000Chalupa Adernada
o documento declara um namespace, http://www.leiloes.org, como default
o namespace default contm todo o vocabulrio utilizado no XML document,
logo no necessrio qualificar os nomes dos elementos
Namespaces
8/3/2019 Modulo1c XML Basico Schema
49/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 49
Namespaces
XML schema sem namespace:
comportamento na declarao do XML schema:
todos os nomes de elementos ou tipos sem prefixoso interpretados como do vocabulrio do XML schema
comportamento na validao de um XML document:
os elementos de um XML documentcujos nomes no esto qualificados, explicitamente ou por default,so validados contra as declaraes de elementos e tipos do XMLschema sem targetNamespace
Namespaces
8/3/2019 Modulo1c XML Basico Schema
50/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 50
a espaces
Validao de um XML document sem namespaces:
usurio deve prover um XML schema sem target
namespace
usurio deve assegurar que o XML schema sem target
namespace corresponde ao vocabulrio que deseja validar
Resumo
8/3/2019 Modulo1c XML Basico Schema
51/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 51
XML Schema
gramtica especificando o formato
de um conjunto de XML documents
substitui as DTDs
incorpora tipo de dados e outros construtores maispoderosos do que os construtores de DTDs
Referncias
8/3/2019 Modulo1c XML Basico Schema
52/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 52
W3C Recommendations:
XML Schema Part 0: Primer. W3C Recommendation, 2
May 2001. http://www.w3.org/TR/xmlschema-0/
XML Schema Part 1: Structures. W3C Recommendation 2
May 2001. http://www.w3.org/TR/xmlschema-1/
XML Schema Part 2: Datatypes. W3C Recommendation
02 May 2001. http://www.w3.org/TR/xmlschema-2/
Referncias
8/3/2019 Modulo1c XML Basico Schema
53/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 53
Tutoriais:
http://www.w3schools.com/schema/default.asp
http://www.xfront.com/xml-schema.html
Livro:
XML Bible, Second Edition: Chapter 24 - Schemashttp://www.ibiblio.org/xml/books/bible2/chapters/ch24.html
Referncias
8/3/2019 Modulo1c XML Basico Schema
54/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 54
Ferramentas:
XMLSpy:
http://www.altova.com/download_spy_enterprise.html
XSV:
ftp://ftp.cogsci.ed.ac.uk/pub/XSV/XSV12.EXE
Turbo XML
http://www.extensibility.com
Validador na Web:
http://www.cs.berkeley.edu/~wilensky/test/val-xml4.0.html
Referncias
8/3/2019 Modulo1c XML Basico Schema
55/55
23/09/03 (c) Marco A. Casanova - PUC-Rio 55
APIs
Xerces: XML parsers in Java and C++ (plus Perl and COM)
http://www.apache.org
MSXML 4.0 SDK
(pesquise o Website http://msdn.microsoft.com/pela palavra-chave MSXML 4.0 SDK)