XML Schema (Parte 2) Vanessa Braganholo

Documentos relacionados
XML Schema (Parte. Vanessa de Paula Braganholo

introdução principais componentes

Dados Semi-Estruturados e XML Vanessa Braganholo. Lista de Exercícios 3 XML Schema

Esquemas para Dados XML

XML Schema. Vanessa Braganholo. Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo

<xs:complextype> <xs:sequence> "unbounded"/> </xs:sequence> </xs:complextype>

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

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

Ficheiro de Reporte Periódico de Pagamentos

Linguagens e Programação XML / XShema. Paulo Proença

Manual Técnico de Reporte Financeiro em XML

Introdução XML. Vanessa Braganholo

Manual para Integração XML

Projeto Nota Fiscal Eletrônica

Especificação de Integração Linx Microvix WebApi v1.2

XML. Prof. Júlio Machado

Roteiro para Transmissão Ambiente de Testes da Guias Online

Manual Técnico de Relato Financeiro em XML

Manual Técnico XML. Ficheiros de Reporte Periódico de Informação Económico-Financeira.

Histórico de Revisões

Série Desenvolvimento de Sistemas. Curso de XML. Conceito básicos, XML Schema, Namespaces, DOM/SAX, XPath, XSLT, XLink e XPointer.

XML Schema, RDF(S) e UML: uma Comparação

Documentos XML 1/20. Exemplo de documento XML:

Crislane Spricigo da Silva

XDocValidator: Uma Interface Gráfica Para Atualização e Validação Incremental de Documentos XML

Gestão e Tratamento de Informação

4 Uma Linguagem para Workflows de Sistemas de Gerência de Análises em Biossequências 4.1 Introdução

< > a m l. b x. helder.da.rocha. inding. argonavis.com.br

DTD. Vanessa Braganholo.

XML Schema. Um XML schema descreve a estrutura de um documento XML.

Sumário. XML (extensible Markup Language)

E que a r espost a ao pedido HTTP HEAD t em o f or mat o: HTTP- Version St at us- Code Reason- Phrase\ r\ n (Header- name: Header- value\ r\ n)*

Histórico de Revisões

Projeto Nota Fiscal Eletrônica

Namespaces e Esquemas XML. Namespaces - Motivação

O Documento Único Automóvel

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

Manual do Desenvolvedor. Versão 2.7

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

SIOE-E: WebService público DGAEP

Fabiana Frata Furlan Peres. Uma Proposta de Mapeamento do Modelo de Banco de Dados Orientado a Objetos para o Modelo XML Schema

PROPOSTA DE IMPLANTAÇÃO DO PADRÃO NTCIP NO CONTEXTO BRASILEIRO

Dados na Web. Gerenciamento de Dados e Informação. Web X Banco de Dados. Representação de Dados para Web/BD. Estrutura dos Dados. Web X Banco de Dados

- MANUAL DE ORIENTAÇÃO - Módulo Veículos: Transmissão em Lote de Comunicações de Transferência de Propriedade

Número: Nome: Página 1 de 7

definição e composição de esquemas instâncias documentação

Consultando documentos XML utilizando inferência

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

MANUAL DE CARGA DA CENTRAL DE INFORMAÇÕES DO REGISTRO CIVIL NACIONAL CRC NACIONAL. Provimento nº 38/2014 e 46/2015 Conselho Nacional de Justiça (CNJ)

Adenda Técnica :: LCPA :: Manual Técnico XML

Bibliografia. Use a Cabeça HTML com CSS e XHTML, Freeman e Freeman. XML for Dummies, Lucinda Dykes.

Gerência de Dados da Web - DCC922 -

extensible Markup Language <XML/> XML XML XML vs. HTML Evolução

Mapeamento de Definições XML Schema para SQL:1999

Transformação XML2HTML. Processamento Estruturado de Documentos. Carlos Carvalho, CEI n.º 5337

Dados na Web integrar irregular ausente não conhecida completamente evoluem Fernando Fonseca Ana Carolina Robson Fidalgo

Uma Proposta de Mapeamento do Modelo XML Schema para o Modelo Relacional

Controle de Restrições de Integridade de Domínio em Documentos XML

INSTITUTO SUPERIOR TÉCNICO Gestão e Tratamento de Informação

GraphSchema Uma Linguagem Visual Para a Criação de Modelos de Contratos com SML

ANEXO 1. Informação Técnica para entidades exploradoras de jogo online com Liquidez Partilhada

Projeto Nota Fiscal Eletrônica

Estrutura Lógica DTD

MANUAL TÉCNICO DE MENSAGEM

Universidade do Minho Cartão Bancário como Título de Transporte Pós-Pago ago ós-p te P io como ranspor tão Bancár Car Título de T

Sistema de Integração de Tecnologias de Agregação de Medição

XML (extensible Markup Language)

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

ANEXO 1 Informação Técnica para entidades exploradoras de apostas desportivas à cota em que os jogadores jogam uns contra os outros (Apostas

CARLOS EDUARDO GESSER UMA ABORDAGEM PARA A INTEGRAÇÃO DINÂMICA DE SERVIÇOS WEB EM PORTAIS

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

8 Referências bibliográficas

Web de hoje (2.0) Porquê WEB 2.0?

CONHECIMENTO ESPECÍFICO

MANUAL DE ESPECIFICAÇÕES TÉCNICAS

Modelo Relacional. Aula 02

The role of marking languages in Information Science

Desenvolvimento de Aplicações XML. Wamberg Oliveira, Msc, PMP, COBIT-F Instrutor

CONTEÚDO PROGRAMÁTICO

Teste Exemplo Revisão da tentativa 1

XML (extensible Markup Language)

Informática PowerCenter (Versão 9.0.1) Guia XML

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

Banco de Dados II. Prof. Fiorin

Tecnologias Java para Implementação de NF e Edilmar Alves Novembro/2008 edilmaralves@intersite.com.br

Linguagens de Marcação e Web Semântica

Computação Orientada aos Serviços. Introdução Semestre de Inverno 11/12

PEDRO FILIPE DE JESUS VIEIRA MARQUES TROCA DE INFORMAÇÃO DE NEGÓCIO PARA NEGÓCIO - DO EDI AO XML/EDI E EBXML UNIVERSIDADE FERNANDO PESSOA

No âmbito do respetivo procedimento de consulta regulamentar foram recebidos contributos dos vários interessados que se pronunciaram.

XML extensible Markup Language. Prof. Fellipe Aleixo

Divulga PL_CTe_103 Pacote de Liberação versão 1.03, com mudanças no manual de integração e schemas

Desmistificando XML: da Pesquisa à Prática Industrial

Desenvolvimento de um Dicionário Eletrônico de Apoio à Produção de Textos em Língua Estrangeira

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO PROJETO DE BANCO DE DADOS RELACIONAL. Profº Erinaldo Sanches Nascimento

Transcrição:

XML Schema (Parte 2) Vanessa Braganholo Curso baseado em mini-cursos apresentados no SBBD. Autores: Carlos Heuser, Carina Dorneles e Vanessa Braganholo

Conteúdo Misto <xs:complextype name="tendereco mixed= true > <xs:sequence> <xs:element name="rua" type="xs:string" minoccurs="0" maxoccurs="1"/> <xs:element name="numero" type="xs:integer" minoccurs="0" maxoccurs="1"/> </xs:sequence> </xs:complextype> <xs:element name= endereco type= tendereco /> Na instância XML... <endereco>meu endereço é <rua>rua das Flores</rua> número <numero>34</numero></endereco>

Diferença em relação à DTD Os elementos de conteúdo misto respeitam as cardinalidades definidas para os sub-elementos. No exemplo anterior, endereço pode ter no máximo 1 rua e 1 número Na DTD, éramos obrigados a colocar um choice com repetição

Cardinalidade também pode ser colocada no sequence, choice e all... <xs:complextype name="tendereco > <xs:sequence maxoccurs= unbounded > <xs:element name="rua" type="xs:string" minoccurs="0" maxoccurs="1"/> <xs:element name="numero" type="xs:integer" </xs:sequence> </xs:complextype> minoccurs="0" maxoccurs="1"/> <xs:element name= endereco type= tendereco />

Este exemplo é equivalente ao anterior? <xs:complextype name="tendereco > <xs:sequence> <xs:element name="rua" type="xs:string" minoccurs="0" maxoccurs= unbounded"/> <xs:element name="numero" type="xs:integer" minoccurs="0" maxoccurs= unbounded"/> </xs:sequence> </xs:complextype> <xs:element name= endereco type= tendereco />

Derivação de Tipos Simples Tipos simples podem ser derivados de tipos simples através de uma técnica chamada restrição Um tipo simples é usado com base, e sobre ele são aplicadas facetas ou expressões regulares

Facetas MinInclusive e MaxInclusive Estabelecem valores mínimos e máximos <xs:simpletype name="tnumero"> <xs:restriction base="xs:integer"> <xs:mininclusive value="0"/> <xs:maxinclusive value="99999"/> </xs:restriction> </xs:simpletype> <xs:element name="numero" type="tnumero"/>

Facetas - Enumeration Limita um tipo simples a um conjunto de valores distintos <xs:simpletype name= tfigura"> <xs:restriction base="xs:string"> <xs:enumeration value = "jpeg"/> <xs:enumeration value = "gif"/> <xs:enumeration value = "bmp"/> <xs:enumeration value = "tiff"/> <xs:enumeration value = "wmf"/> </xs:restriction> </xs:simpletype> <xs:attribute name="tipo" type= tfigura />

Expressões Regulares <xs:simpletype name="tcep"> <xs:restriction base="xs:string"> <xs:pattern value="\d{5}-\d{3}"/> </xs:restriction> </xs:simpletype> <xs:element name="cep" type="tcep"/> Na instância XML: <cep>24220-290</cep>

Expressões Regulares Uma lista completa do tipo de expressões regulares que podem ser aplicadas está disponível em http://www.w3.org/tr/2004/rec-xmlschema-2-20041028/datatypes.html#dt-regex Veja que este endereço apresenta a definição formal de expressões regulares em XML Schema

Exercício 1 Crie um documento XML que contenha um elemento do tipo tfigura, conforme definido no slide 7

Exercícios 2 e 3 2. Crie um tipo tcnpj para aceitar somente CNPJs com o seguinte formato: <cgc>00.000.000/0001-00</cgc> 3. Crie um tipo tcpf para aceitar somente CPFs com o seguinte formato: <cpf>000.000.000-00</cpf>

Derivação de Tipos Complexos Tipos complexos podem ser derivados por restrição ou por extensão Restrição semelhante a restrição de tipos simples, mas ao invés de restringir valores, ela restringe elementos (por exemplo, cardinalidade) Extensão utilizada para "aumentar" um tipo o novo tipo derivado possuirá tudo que o tipo base possuía, mais outros elementos e atributos definidos na extensão

Derivação por Extensão <xs:complextype name="tendereco"> <xs:sequence> <xs:element name="rua" type="xs:string" minoccurs="0" maxoccurs="1"/> <xs:element name="numero" type="xs:integer" minoccurs="0" maxoccurs="1"/> </xs:sequence> </xs:complextype> Extensão ao tipo complexo apresentado acima: <xs:complextype name="tenderecoestendido"> <xs:complexcontent> <xs:extension base="tendereco"> <xs:sequence> <xs:element name="bairro" type="xs:string" minoccurs="0" maxoccurs="1"/> </xs:sequence> </xs:extension> </xs:complexcontent> </xs:complextype>

Derivação de Tipos Reflexo nas Instâncias É possível declarar um elemento no esquema como sendo do tipo mais genérico, e, na instância, usar um tipo mais específico...

Derivação de Tipos Reflexo nas Instâncias No esquema... <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:complextype name="tpessoa"> <xs:sequence> <xs:element name="nome" type="xs:string"/> <xs:element name="endereco" type="tendereco"/> </xs:sequence> </xs:complextype> <xs:element name="pessoa" type="tpessoa"/>... <!-- Declarações dos tipos tendereco e tenderecoestendido, como nas transparências anteriores --> </xs:schema>

Derivação de Tipos Reflexo nas Instâncias Na instância... <pessoa xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="pessoa.xsd"> <nome>jose da Silva</nome> <endereco xsi:type="tenderecoestendido"> <rua>rua das Flores</rua> <numero>34</numero> <bairro>inga</bairro> </endereco> </pessoa>

Atributo em elemento simples Também são declarados usando extensão... Mesmo sendo de tipo simples, é necessário declarar o elemento como um complextype <xs:element name= preco"> <xs:complextype> <xs:simplecontent> <xs:extension base="xs:decimal"> <xs:attribute name= moeda" type="xs:string"/> </xs:extension> </xs:simplecontent> </xs:complextype> </xs:element>

Atributo em elemento simples Exemplo Na instância XML... <preco moeda = Real >95.3</preco>

Derivação por Restrição <xs:complextype name="tendereco"> <xs:sequence> <xs:element name="rua" type="xs:string" minoccurs="0" maxoccurs="1"/> <xs:element name="numero" type="xs:integer" minoccurs="0" maxoccurs="1"/> </sequence> </complextype> Restrição ao tipo complexo apresentado acima: <xs:complextype name="tenderecoobrigatorio"> <xs:complexcontent> <xs:restriction base="tendereco"> <xs:sequence> <xs:element name="rua" type="xs:string" minoccurs="1" maxoccurs="1"/> <xs:element name="numero" type="xs:integer" minoccurs="1" maxoccurs="1"/> </xs:sequence> </xs:restriction> </xs:complexcontent> </xs:complextype>

Exercício 4 Crie um esquema para representar Pessoa, sendo que Pessoa pode ser Física ou Jurídica. Use extensão de tipos complexos. Valide os dois documentos XML abaixo contra o esquema criado: <pessoa> <nome>joão</nome> <endereco>rua das Flores,45</endereco> <cpf>999.999.999-01</cpf> </pessoa> <pessoa> <nome>abc LTDA</nome> <endereco>rua das Flores,45</endereco> <cnpj>99.999.999/0001-01</cnpj> </pessoa>

Unicidade Permite especificar que o valor de um elemento ou atributo deve ser único em um determinado escopo Elemento unique, declarado dentro de um element Este elemento será o escopo onde a unicidade será testada Subelementos: Selector indica uma lista de elementos que serão testados um a um Field indica o elemento ou atributo que tem que ser único dentro do escopo

Unicidade <xs:element name="items" type= titems"> <xs:unique name= codprod"> <xs:selector xpath="item"/> <xs:field xpath="@cod"/> </xs:unique> </xs:element> Escopo Um nome para esta restrição de unicidade Lista de elementos a serem testados um a um Atributo que tem que ser único dentro de items (escopo)

Na instância XML...... <items> <item cod= c1 >... </item> <item cod= c2 >... </item> <item cod= c3 >... </item> </items>...

key e keyref key também tem que ser única a diferença é que o valor pode ser referenciado por keyref Declaração de key igual a declaração de unique, só que usando o elemento key ao invés de unique <xs:element name= produtos" type= tprodutos"> <xs:key name= chavecodprod"> <xs:selector xpath= produto"/> <xs:field xpath="codigo"/> </xs:key> </xs:element>

keyref <xs:element name="items" type= titems"> <xs:keyref name= chaveestrcodprod refer= chavecodprod > <xs:selector xpath="item"/> <xs:field xpath="@cod"/> </xs:keyref> </xs:element> Nome da restrição de chave declarada anteriormente

Na instância XML... <produtos> <produto><codigo>c1</codigo>...</produto> <produto><codigo>c2</codigo>...</produto> <produto><codigo>c3</codigo>...</produto> <produto><codigo>c4</codigo>...</produto> <produto><codigo>c5</codigo>...</produto> </produtos> <items> <item cod= c4 >... </item> <item cod= c2 >... </item> <item cod= c3 >... </item> </items>...

Exercício 5 Faça um XML Schema que valide o documento XML abaixo. Ele contém uma lista de produtos. O XML Schema deve garantir que o código do produto seja único. <produtos> <produto> <codigo>1</codigo> <nome>caneta</nome> </produto> <produto> <codigo>2</codigo> <nome>caderno</nome> </produto> <produto> <codigo>3</codigo> <nome>borracha</nome> </produto> </produtos>

Para pesquisar Verifique a especificação do W3C e descubra o que é e como usar os seguintes conceitos: include import