Modulo1c XML Basico Schema

download Modulo1c XML Basico Schema

of 55

Transcript of Modulo1c XML Basico Schema

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