XML: uma introdução prática X100. Helder da Rocha (helder@argonavis.com.br)

Documentos relacionados
introdução principais componentes

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

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

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

Esquemas para Dados XML

XML Schema XPath 2.0 XSLT 2.0 XQuery...

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

XML Schema (Parte. Vanessa de Paula Braganholo

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

Histórico de Revisões

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

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

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

XML Schema (Parte 2) Vanessa Braganholo

Namespaces e Esquemas XML. Namespaces - Motivação

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

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

XML. Prof. Júlio Machado

Soluções de integração: SOA, web services e REST + XML/XSD

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

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

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

Gerência de Dados da Web - DCC922 -

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

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

SIOE-E: WebService público DGAEP

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

Roteiro para Transmissão Ambiente de Testes da Guias Online

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

Ficheiro de Reporte Periódico de Pagamentos

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

MANUAL TÉCNICO DE MENSAGEM

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

L A C Laboratory for Advanced Collaboration

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

Sumário. XML (extensible Markup Language)

Documentos XML 1/20. Exemplo de documento XML:

Estrutura Lógica DTD

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

Especificação Técnica ACSS

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

Crislane Spricigo da Silva

Bases de dados semi-estruturadas, XML

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

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

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

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

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

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

Projeto Nota Fiscal Eletrônica

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

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

Manual Técnico de Reporte Financeiro em XML

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

XML (extensible Markup Language)

Igor Fabiano Nazar. X-Tool: Uma Ferramenta de Teste de Esquemas para Estrutura de Dados

Desmistificando XML: da Pesquisa à Prática Industrial

Web de hoje (2.0) Porquê WEB 2.0?

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

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

PROTÓTIPO DE PADRÃO DE COMUNICAÇÃO E ARMAZENAMENTO DE DADOS CONTÁBEIS USANDO XML

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

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

UFG - Instituto de Informática

3 Classes e instanciação de objectos (em Java)

Gestão e Tratamento de Informação

Manual do Desenvolvedor. Versão 2.7

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha

DTD. Vanessa Braganholo.

21/07/2005 Cobrança F2b Web Services Web rev 26

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

Introdução ao XML. Extensible Markup Language

Introdução a XML X100

Processamento de dados XML

Histórico de Revisões

CATÁLOGO DE APLICAÇÕES EDI XML - Importação de Pedidos via XML

UM MODELO DE MAPEAMENTO DE ESTRUTURAS E DADOS RELACIONAIS PARA DOCUMENTOS XML

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

Projeto Nota Fiscal Eletrônica

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

XML extensible Markup Language. Prof. Fellipe Aleixo

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

Manual Técnico de Relato Financeiro em XML

Módulo III Introdução a XML

Programação de Computadores - I. Profª Beatriz Profº Israel

Manual XML. Versão: 1.1

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

Manual para Integração XML

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Um estudo sobre esquemas para documentos XML

1. Domínio dos Atributos

Programação para Internet I 4. XML. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Transcrição:

XML: uma introdução prática X100 Helder da Rocha (helder@argonavis.com.br) Atualizado em Jan 2003

O que é um Esquema XML? Documentos que aderem à especificação (válidos) O esquema representa uma classe Os documentos são instâncias Documento fora da especificação Como definir esquemas: Esquema (universo de documentos válidos) DTD - Document Type Definition W3C XML Schema 2

DTD vs. XML Schema Um esquema é essencial para que haja comunicação usando XML Pode ser estabelecido "informalmente" (via software) Uso formal permite validação usando ferramentas genéricas de manipulação de XML Soluções padrão do W3C DTD <!ELEMENT contato (nome, email, telefone)> <!ATTLIST contato codigo NMTOKEN #REQUIRED> XML Schema <xsd:schema xmlns:xsd=".../xmlschema"> <xsd:element name="contato"> <xsd:complextype> <xsd:attribute name="codigo" use="required"> Simples mas não é XML Não suporta namespaces Limitado quando a tipos de dados É XML, porém mais complexo Suporta namespaces Permite definição de tipos 3

W3C XML Schema Padrão para validação XML, modular, extensível, com amplo suporte a tipos de dados DTD foco na estrutura poucos recursos para controle de tipos de dados baseado em sintaxe SGML não suporta namespaces XML Schema tudo são tipos de dados; grande controle sobre tipos estruturas são tipos; tipos podem ser estendidos, criados e redefinidos não há suporte para entidades gerais suporte completo a namespaces 4

Exemplo: design plano - objetos globais <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="astro" type="astrotype" /> <xs:element name="imagem" type="imagemtype"/> <xs:attribute name="href" type="xs:anyuri"/> <xs:attribute name="id" type="xs:id"/> <xs:attribute name="nome" type="xs:string"/> <xs:attribute name="diametrokm" type="xs:decimal"/> <xs:complextype name="imagemtype"> <xs:attribute ref="href" use="required"/> <xs:complextype name="astrotype"> <xs:sequence> <xs:element ref="imagem" minoccurs="0"/> </xs:sequence> <xs:attribute ref="id" use="required"/> <xs:attribute ref="nome" use="required"/> <xs:attribute ref="diametrokm"/> </xs:schema> Elementos Atributos Definição de tipos de dados 5

Compare com um DTD Exemplo de documento válido em relação a este DTD Modelo de conteúdo (tipo de dados complexo) <astro id="p5" nome="jupiter"> <imagem href="jup31.jpg" /> <imagem href="jup32.jpg" /> </astro> <!ELEMENT astro (imagem*) > <!ELEMENT imagem EMPTY > Elementos Atributos <!ATTLIST imagem href CDATA #REQUIRED > <!ATTLIST astro id ID #REQUIRED > <!ATTLIST astro nome CDATA #REQUIRED > <!ATTLIST astro diametrokm NMTOKEN #IMPLIED > Atributo sempre associado a elemento Tipos de dados simples (somente para atributos) 6

Exemplo: design "boneca russa" <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="astro"> <xs:complextype> <xs:sequence> <xs:element name="imagem" minoccurs="0"> <xs:complextype> <xs:attribute name="href" type="xs:anyuri"/> </xs:element> </xs:sequence> <xs:attribute name="id" type="xs:id" use="required"/> <xs:attribute name="nome" type="xs:string"/> <xs:attribute name="diametrokm" type="xs:decimal"/> </xs:element> </xs:schema> Apenas um elemento (o elemento raiz) é visível Tipos não podem ser reutilizados Pode haver elementos de mesmo nome em contexto diferente 7

Fundamentos XML Schema: Tipos Há duas qualidades de tipos Tipos simples representam tipos de dados básicos como texto, números, tokens, booleanos Fazem parte do namespace do XML Schema (requerem prefixo associado ao identificador do namespace), por exemplo: xs:int, xs:string Tipos complexos representam estruturas do documento como entidades, atributos, etc. Podem fazer parte do namespace default do próprio documento (e não necessitar de prefixo) se definidos localmente 8

Fundamentos: Modelos de conteúdo Definem a estrutura de tipos complexos Modelos de conteúdo podem ser simples ou complexos São simples quando elemento é vazio ou quando contém apenas texto Modelo de conteúdo simples pode conter atributos São complexos quando elemento contém outros elementos Elementos podem ser definidos localmente Elementos globais podem ser reutilizados 9

Raiz e namespace Um documento XML Schema tem a seguinte estrutura mínima <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema">... definições de elementos, atributos, tipos </xs:schema> Para usá-lo, a sub-árvore a ser validada (instância) deve ter a seguinte assinatura. Exemplo: <sistemaestelar xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="sistemaestelar.xsd">... 10

Namespaces Schemas estimulam o uso de namespaces. Os exemplos abaixo mostram uso com namespaces Esquema principal <xs:schema targetnamespace="http://cosmos.org.br" xmlns:cm="http://cosmos.org.br/com" xmlns:st="http://cosmos.org.br/sat" xmlns="http://cosmos.org.br" xmlns:xs="http://www.w3.org/2001/xmlschema"> Instância <se:sistemaestelar xmlns:se="http://cosmos.org.br" xmlns:sat="http://cosmos.org.br/sat" xmlns:cmt="http://cosmos.org.br/com" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://cosmos.org.br sistema.xsd http://cosmos.org.br/sat satelites.xsd http://cosmos.org.br/com cometas.xsd"> 11

Principais elementos É possível gerar um esquema a partir de um DTD Ferramentas criam elementos e atributos Um esquema simples contém definições de elementos de atributos Elementos típicos em um esquema simples <schema> - elemento raiz <element> <attribute> <simpletype> ou <complextype> <simplecontent> ou <complexcontent> <restriction> ou <extension> <enumeration>, <union>, <list> <sequence>, <choice>, <all> 12

Define um elemento Deve estar associado a um tipo de dados ou <element> <xs:complextype name="cometatype"> <xs:attribute name="id" type="xs:id" use="required"/> <xs:attribute name="nome" type="xs:string" use="required"/> <xs:attribute name="planetas" type="xs:idrefs"/> <xs:element name="cometa" type="cometatype" /> <xs:element name="cometa"> <xs:complextype> <xs:attribute name="id" type="xs:id" use="required"/> <xs:attribute name="nome" type="xs:string" use="required"/> <xs:attribute name="planetas" type="xs:idrefs"/> </xs:element> 13

<attribute> Define um atributo Pode estar embutido na definição de um tipo ou globalmente acessível (para reutilização) <xs:attribute name="raio" type="xs:decimal"/> <xs:complextype name="satelitetype"> <xs:complexcontent> <xs:extension base="astrotype"> <xs:attribute ref="raio" use="required"/> <xs:attribute name="anodesc" type="xs:int"/> </xs:extension> </xs:complexcontent> 14

<simpletype> Tipo que apenas pode conter texto É possível criar novos tipos a partir de derivação dos tipos existentes (globalmente acessíveis) <xs:simpletype name="astroid"> <xs:restriction base="xs:id"> <xs:pattern value="\c\d.*"/> </xs:restriction> </xs:simpletype> Expressão regular 15

Tipos simples do XML Schema anysimpletype duration datetime time date gyearmonth gyear gmonth gday base64binary hexbinary NOTATION double anyuri QName float string boolean decimal normalizedstring nonpositiveinteger integer nonnegativeinteger token negativeinteger long positiveinteger language Name NMTOKEN NCName NMTOKENS ID IDREF ENTITY int short byte unsignedlong unsignedint unsignedshort IDREFS ENTITIES unsignedbyte 16

<complextype> Tipo que pode conter outros elementos ou atributos <xs:complextype name="imagemtype"> <xs:attribute name="href" type="xs:anyuri"/> <xs:complextype name="astrotype"> <xs:sequence> <xs:element ref="imagem" minoccurs="0"/> <xs:element name="satelite" type="satelitetype" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="astroid" use="required"/> <xs:attribute name="nome" type="xs:token" /> <xs:attribute name="diametrokm" type="xs:decimal"/> 17

<simplecontent> Modelo de conteúdo simples Determina o tipo dos dados contido em um elemento que pode possuir atributos <xs:complextype name="imagemtype"> <xs:simplecontent> <xs:restriction base="xs:string"> <xs:attribute name="href" type="xs:anyuri"/> </xs:restriction> </xs:simplecontent> 18

<complexcontent> Modelo de conteúdo complexo Determina a organização dos elementos filho (se uma lista de opções, uma seqüência, etc. <xs:complextype name="estrelatype"> <xs:complexcontent> <xs:extension base="astrotype"> <xs:sequence> <xs:element name="satelite" type="satelitetype" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> <xs:attribute name="cor" type="xs:token"/> </xs:extension> </xs:complexcontent> 19

<restriction> e <extension> Permite restringir um tipo ou estendê-lo Podem também ser usados em modelos de conteúdo complexos para derivar tipos de outros existentes <xs:simpletype name="isbn"> <xs:restriction base="xs:nmtoken"> <xs:length value="10"/> <xs:pattern value="[0-9]{9}[0-9x]"/> </xs:restriction> </xs:simpletype> 20

<sequence> Permite definir uma seqüência de elementos Equivalente ao modelo de conteúdo (a, b, c) no DTD <xs:element name="sistemaestelar"> <xs:complextype> <xs:sequence> <xs:element name="centro" type="centrotype"/> <xs:element name="orbita" type="orbitatype" minoccurs="0" maxoccurs="unbounded"/> <xs:element ref="cometa" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:element> Equivalente, em DTD, a (centro, orbita*, cometa*) 21

<choice> Permite escolher um elemento de um conjunto Ou mais, caso maxoccurs seja "unbounded" Equivalente ao modelo de conteúdo (a b c) no DTD <xs:complextype name="orbitatype"> <xs:choice> <xs:element name="estrela" type="estrelatype"/> <xs:element name="planeta" type="satelitetype"/> <xs:element name="asteroide" type="satelitetype" minoccurs="0" maxoccurs="unbounded"/> </xs:choice> <xs:attribute name="raiomedua" type="xs:decimal"/> Equivalente a (estrela planeta asteroide*) 22

<import> Permite importar sub-esquemas É preciso definir o namespace usando xmlns no elemento raiz Namespace deve coincidir com namespace definido nos sub-schemas <xs:import namespace="http://www.cosmos.org.br/satelites" schemalocation="satelites.xsd"/> <xs:import namespace="http://www.cosmos.org.br/cometas" schemalocation="cometas.xsd"/> 23