Introdução. Definição. Validação. Universo XML. Apresentação. Processamento. Prof. Enzo Seraphim. Banco de Dados



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

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

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

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

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

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

XML (extensible Markup Language)

Bem-vindo ao XML. Apostila de XML

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

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

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi

Este relatório tem por objetivo, abordar a sintaxe XML.

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

Bases de dados semi-estruturadas, XML

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

7. Cascading Style Sheets (CSS)

Web Design. Prof. Felippe

Gerenciamento de Dados e Informação Fernando Fonseca. Graduação

HTML 5 + CSS APRESENTANDO O CSS ESTILOS LOCAIS

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

Técnicas e processos de produção. Profº Ritielle Souza

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

L A C Laboratory for Advanced Collaboration

XML (extensible Markup Language)

Leiaute-IMPORTAÇÃO-Plano de Contas - XML

XHTML 1.0 DTDs e Validação

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

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

O que são Bancos de Dados?

Desenvolvimento em Ambiente Web. HTML - Introdução

extensible Stylesheet Language (XSL) XSL descreve como fazer o display de um documento XML. XSL é uma espécie de style sheets para XML...

Aplicativos para Internet Aula 01

css Cascading Style Sheets CSS CASCADING STYLE SHEETS

Transformação de Documentos XML em Bases de Dados Relacionais Utilizando ASP.NET

XML. Introdução Ferramentas para Internet Marx Gomes Van der Linden. ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida )

Prof.: Clayton Maciel Costa

Roteiro 2: Conceitos de Tags HTML

Web Design Aula 13: Introdução a CSS

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

XML XML. Motivação. Mário Meireles Teixeira DEINF-UFMA

Introdução ao HTML 5 e Implementação de Documentos

XML extensible Markup Language. Prof. Fellipe Aleixo

Guia de Consulta Rápida XML. Otávio C. Décio. Novatec Editora

Professor: Paulo Macos Trentin Escola CDI de Videira 4/6/2011 1

Processamento de dados XML

PROGRAMAÇÃO MANUAL DE INSTRUÇÕES SEJA BEM VINDO VERSÃO /01/2013 UDS SOLUÇÕES DIGITAIS

Exercícios Aula 2 BR 2013

LINGUAGEM DE PROGRAMAÇÃO HTML COMPONENTES: ROBSON EDMILSON

BREVE INTRODUÇÃO À LINGUAGEM XML

Capítulo 9: XML! Database System Concepts! Silberschatz, Korth and Sudarshan (modificado)!

Introdução às Folhas de Estilo

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2

Sistemas Operacionais

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

SuporteNativoa XML no

Informática I. Aula 6. Aula 6-12/09/2007 1

Desenvolvimento Web Introdução a XHTML. Prof. Bruno Gomes

Programando em PHP. Conceitos Básicos


QUEM FEZ O TRABALHO?

XPath e XSLT. Ferramentas para Internet Marx Gomes Van der Linden. ( Material baseado no original de Marcelo José Siqueira Coutinho de Almeida )

CSS é a abreviatura para Cascading Style Sheets Folhas de Estilo em Cascata

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Guia de Consulta Rápida XHTML. Juliano Niederauer. Novatec Editora.

Mudança de formatos no HTML. CSS - Cascading Style Sheets. A prioridade para o efeito cascata. A prioridade para o efeito cascata

Introdução ao XML. Extensible Markup Language

Sumário. HTML CSS JQuery Referências IHC AULA

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

TECNOLOGIAS WEB AULA 5 PROF. RAFAEL DIAS

Desenvolvimento em Ambiente Web. Prof. André Y. Kusumoto

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

Documentação Usando o Javadoc

WEBDESIGN. Professor: Paulo Trentin Escola CDI de Videira

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger

Webdesign HTML. Introdução a HTML e as principais tags da linguagem. Thiago Miranda dos Santos Souza

CSS. Oficina de CSS Aula 10. Cascading Style Sheets. Cascading Style Sheets Roteiro. Cascading Style Sheets. Cascading Style Sheets W3C

Orientação a Objetos

#Aula Nº 4 XHTML+CSS webstandards.samus.com.br webstandards.samus.com.br/aulas/aula4.pdf Vinicius Fiorio Custódio samus@samus.com.

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

Sumário. XML (extensible Markup Language)

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UM NOVO CONCEITO EM AUTOMAÇÃO. Série Ponto

Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos

RSS no desenvolvimento de uma Central de Notícias

Algoritmia e Programação APROG HTML. Introdução. Nelson Freire (ISEP DEI-APROG 2014/15) 1/15

DWEB. Design para Web. CSS3 - Fundamentos. Curso Superior de Tecnologia em Design Gráfico

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Internet e Programação Web

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

Internet e Programação Web

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr.

Mais sobre uso de formulários Site sem Ajax

Transcrição:

Introdução Definição Validação Apresentação Processamento Banco de Dados Universo XML Prof. Enzo Seraphim

Popularidade do HTML Extremamente simples Estilo próprio para formatação de documentos Ligações de hipertexto criadas facilmente Suporte a formulários Interação homem x máquina Estrutura limitada e simples número fixo de tags projetado para formatação de documentos entregues através da Web

Quem deveria suportar? O que mudou entre as versões de HTML? Tags de apresentação O formato que descreve como uma página Web deve ser exibida; não oferece nenhuma descrição dos dados. Como prover suporte a crescente necessidade de desenvolvedores de acrescentarem tags para o padrão?

Solução XML W3C: World Wide Web Consortium http://www.w3.org Quem? Quando? Extensible Markup Language - XML. W3C Recommendation, 10 February 1998, [Online] Como? http://www.w3.org/xml/ Onde?

XML x HTML XML Define o conteúdo (dados) Tags descrevem os dados, como temperatura, humidade, etc. Tags definidas pelo criador do documento Apresentação definida por folhas de estilo Dados separados da apresentação e do processamento dos dados HTML Descreve o formato de apresentação Número limitado e não extensível de tags Inadequado para gerenciamento de grande volume de dados

XML x HTML H T M L X M L <h1>josé da Silva</h1> <h2>ze@bol.com.br</h2> <p> <b>av. Brasil, 123</b> <i>(099)1234 5678 com</i> </p> <cartao> <nome> José da Silva </nome> <email>ze@bol.com.br</email> <endereco>av. Brasil, 123</endereco> <telefone tipo="comercial"> <ddd>099</ddd> <numero>1234 5678</numero> </telefone> </cartao>

Universo XML Estrutura e Semântica (Validação): DTDs e XML Schemas Apresentação: CSS, XSLT e XPath Metadados e mais semântica: RDF Estrutura de hipertexto: XLink e XPointer Processamento de documentos XML DOM, SAX

Linguagens derivadas XML

Introdução Definição Validação Apresentação Processamento Banco de Dados Universo XML Prof. Enzo Seraphim

XML Extensible Markup Language Uma maneira de representar informação Documentos XML são documentos de texto. É uma linguagem de marcação (markup), onde as tags (marcas) são utilizadas para estruturar a informação. Essa estrutura define uma hierarquia de elementos a partir de uma raiz A hierarquia das tags são criadas de forma simples pelo autor do documento XML. Menor documento tem um elemento raiz (vazio ou não)

Documento XML Todo documento deve ter somente um elemento raiz. Elementos podem incluir outros elementos, formando uma estrutura de alinhamento de elementos. Não é permitido desrespeitem desse alinhamento <i> <b> itálico e negrito </i> </b> Instrução de processamento para Parses: versão XML e o character set utilizada. <?xml version ="1.0" encoding="iso-8859-1"?> Parsers XML não devem corrigir e interpretar Documentos que não estão bem formatado

Partes de um DOC XML PRÓLOGO (opcional) Instruções processamento - atributos opcionais: version, encoding, standalone Document Type Declaration: Interno quando o DTD está definido no mesmo arquivo XML. Externo quando o DTD é um outro arquivo: Corpo um ou mais elementos hierarquicamente organizados; EPÍLOGO (opcional) pode conter comentario, instruções de processamento e/ou brancos

Prólogo Corpo Epílogo <?xml version ="1.0" encoding="iso-8859-1"?> <?comando parametro="abc"?> <!DOCTYPE cartao [ <!ELEMENT cartao (nome,email,endereco,telefone)> <!ELEMENT nome (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT endereco (#PCDATA)> <!ELEMENT telefone (ddd, numero)> <!ATTLIST telefone tipo CDATA #REQUIRED> <!ELEMENT ddd (#PCDATA)> <!ELEMENT numero (#PCDATA)> ]> <cartao> <nome>josé da Silva</nome> <email>ze@bol.com.br</email> <endereco>av. Brasil, 123</endereco> <telefone tipo="comercial"> <ddd>099</ddd> <numero>1234 5678</numero> </telefone> </cartao> <!-- exemplo cartao visita -->

Elementos de um DOC XML Instruções de Processamento Comentário Elementos Atributos Nó de Texto

Instruções de Processamento Mecanismo de inserção de informações explícitas em um documento destinadas a alguma aplicação. Sintaticamente uma instrução de processamento é: <?comando parametro= "valor"?> Os parsers XML não interpretam tais informações, somente a instrução inicial; <?xml version ="1.0" encoding="iso-8859-1"?> A aplicação deve saber o que fazer com a instrução definida.

Codificação Caracteres <?XML version= 1.0 encoding= UTF-8?> ASCII - 1 byte, 7 bits 128 combinações ISO 8859-1 (Latin-1) 256 combinações (ASCII + Europa Ocidental) ISO 8859-(2...15) 256 combinações (ASCII + outras línguas) Unicode 2bytes 65534 combinações, onde 40.000 estão definidas (20000 usadas para os ideogramas Han japonês, chinês, koreano) e 25.000 reservado para futuras extensões. UTF-8 versão compacta do Unicode que usa 1 byte para a maioria dos caracteres e 3 bytes para os menos comuns

Instruções de Processamento <?xml version ="1.0" encoding="iso-8859-1"?> <!-- exemplo cartao visita --> <?comando parametro="abc"?> <cartao> <nome>josé da Silva</nome> <email>ze@bol.com.br</email> <endereco>av. Brasil, 123</endereco> <telefone tipo="comercial"> <ddd>099</ddd> <numero>1234 5678</numero> </telefone> </cartao>

Comentários Todo dado entre essas marcas é ignorado pelo processador XML. Sintaticamente uma instrução de processamento é: <!-- e terminam com --> Os parsers XML não interpretam tais informações; Não podem acontecer : antes da instrução de processamento XML que deve ser a primeira sentença de um documento; nem dentro de um elemento. não pode aparecer em um comentário, exceto como parte dos delimitadores.

Comentários <?xml version ="1.0" encoding="iso-8859-1"?> <!-- exemplo cartao visita --> <?comando parametro="abc"?> <cartao> <nome>josé da Silva</nome> <email>ze@bol.com.br</email> <endereco>av. Brasil, 123</endereco> <telefone tipo="comercial"> <ddd>099</ddd> <numero>1234 5678</numero> </telefone> </cartao>

Elementos Construtor básico de um documento que forma a estrutura de alinhamento do documento. Elementos podem incluir descendentes: outros elementos; atributos; e nó de texto Os elementos de abertura são definidos: <nome do elemento> Os elementos de fechamento são definidos: </nome do elemento> Elemento vazio são definidos: <nome do elemento/>

Nomeação dos Elementos Os nomes dos elementos são sensitivos a maiúsculo e minúsculo devem começar com uma letra ou "_"; caracteres seguintes podem incluir letras, dígitos, hífens, pontos ou " _"; não pode conter caracter espaço. dois pontos é válido, embora é reservado para composições especiais de nomes (Namespaces )

Elementos <?xml version ="1.0" encoding="iso-8859-1"?> <!-- exemplo cartao visita --> <?comando parametro="abc"?> <cartao> <nome>josé da Silva</nome> <email>ze@bol.com.br</email> <endereco>av. Brasil, 123</endereco> <telefone tipo="comercial"> <ddd>099</ddd> <numero>1234 5678</numero> </telefone> </cartao>

Atributos Estão dentro dos elementos de abertura ou elementos vazios; As mesmas regras de composição de nomes de elementos aplicam-se para nomes de atributos. Os valores dos atributos devem ser delimitadas por aspas. Elementos podem incluir um descendente nó de texto Um elemento pode conter um ou mais atributos, que são pares nome="valor".

Atributos <?xml version ="1.0" encoding="iso-8859-1"?> <!-- exemplo cartao visita --> <?comando parametro="abc"?> <cartao> <nome>josé da Silva</nome> <email>ze@bol.com.br</email> <endereco>av. Brasil, 123</endereco> <telefone tipo="comercial"> <ddd>099</ddd> <numero>1234 5678</numero> </telefone> </cartao>

Nó de Texto Armazenam os valores para os elementos ou atributos <?xml version ="1.0" encoding="iso-8859-1"?> <!-- exemplo cartao visita --> <?comando parametro="abc"?> <cartao> <nome>josé da Silva</nome> <email>ze@bol.com.br</email> <endereco>av. Brasil, 123</endereco> <telefone tipo="comercial"> <ddd>099</ddd> <numero>1234 5678</numero> </telefone> </cartao>

Hierarquia / cartao nome Jose da Silva email ze@bol.com.br endereco Av. Brasil, 123 telefone tipo comercial ddd 099 numero 1234 5678 raiz nó elemento nó atributo nó texto

Introdução Definição Validação Apresentação Processamento Banco de Dados Universo XML Prof. Enzo Seraphim

Validação de documento Pode-se definir a gramática de um documento XML através: Document Type Definition (DTD) XML SCHEMA O documento XML é válido somente se satisfaz todas definições da gramática. Documentos não válidos são individualistas e não é possível prever a hierárquica do documentos

A Criação de um DTD Requer análise de documentos que elementos irão ocorrer? como se relacionam entre si? como irão os usuários interagir com eles? Tarefa difícil quanto mais amplo o escopo maior a complexidade difícil conseguir a concordância de todos os envolvidos

Document Type Declaration Interno quando o DTD está definido no mesmo arquivo XML. <!DOCTYPE livroreceita[ ]> Externo quando o DTD é um outro arquivo: <!DOCTYPE livroreceita SYSTEM "receita.dtd">

Exemplo (cartao.xml) <?xml version ="1.0" encoding="iso-8859-1"?> <!DOCTYPE cartao SYSTEM "cartao.dtd"> <agenda> <cartao> <nome>josé da Silva</nome> <email>ze@bol.com.br</email> <endereco>av. Brasil, 123</endereco> <telefone tipo="comercial"> <ddd>099</ddd> <numero>1234 5678</numero> </telefone> </cartao> </agenda>

Exemplo (cartao.dtd) <!DOCTYPE agenda [ <!ELEMENT agenda(cartao*) <!ELEMENT cartao(nome,email?,endereco,telefone)> <!ATTLIST cartao apelido ID #REQUIRED"> <!ELEMENT nome (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT endereco (#PCDATA)> <!ELEMENT telefone (ddd, numero)> <!ATTLIST telefone tipo CDATA #REQUIRED"> <!ELEMENT ddd (#PCDATA)> <!ELEMENT numero (#PCDATA)> ]>

Declarações DTD ELEMENT declaração do elemento ATTLIST declaração do atributo do elemento ENTITY conteúdo reusável NOTATION declarações de conteúdo externo que não deve ser parsed

Elemento Define a hierarquia do documento; <agenda> + <cartao> - <nome> - <email> - <endereco> + <telefone> - <ddd> - <numero> + <cartao>... <agenda> <cartao> <nome> José da Silva </nome> <email>ze@bol.com.br</email> <endereco>av. Brasil, 123</endereco> <telefone tipo="comercial"> <ddd>099</ddd> <numero>1234 5678</numero> </telefone> </cartao> </agenda>

ELEMENT, : elementos devem ocorrer na ordem especificada; : apenas um elemento deve ocorrer; + : o elemento deve ocorrer 1 ou + vezes; * : o elemento pode ocorrer zero ou + vezes;? : o elemento é opcional; #PCDATA: uma seqüência de caracteres; EMPTY: indica que o elemento é vazio;

Exemplo (cartao.dtd) <!DOCTYPE agenda [ <!ELEMENT agenda(cartao*) <!ELEMENT cartao(nome,email?,endereco,telefone)> <!ATTLIST cartao apelido ID #REQUIRED"> <!ELEMENT nome (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT endereco (#PCDATA)> <!ELEMENT telefone (ddd, numero)> <!ATTLIST telefone tipo CDATA #REQUIRED"> <!ELEMENT ddd (#PCDATA)> <!ELEMENT numero (#PCDATA)> ]>

ATTLIST CDATA: string ID: ident único IDREF/IDREFS: referencia(s) para um ID (existente) #REQUIRED: obrigatório #IMPLIED: opcional #FIXED: sempre fixo, aparece opcionalmente apenas valor: valor assumido qdo não especificado [Valor enumerado]: um entre os valores

Exemplo (cartao.dtd) <!DOCTYPE agenda [ <!ELEMENT agenda(cartao*) <!ELEMENT cartao(nome,email?,endereco,telefone)> <!ATTLIST cartao apelido ID #REQUIRED"> <!ELEMENT nome (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT endereco (#PCDATA)> <!ELEMENT telefone (ddd, numero)> <!ATTLIST telefone tipo CDATA #REQUIRED"> <!ELEMENT ddd (#PCDATA)> <!ELEMENT numero (#PCDATA)> ]>

Elemento x Atributo Em geral elemento armazena dado e atributos armazenam metadados Os elementos armazenam as informações mais relevantes, enquanto os detalhes ficam nos atributos Atributos não representam bem estruturas

ENTITY Entidades parâmetros: para reuso em DTDs Gerais: para reuso, deve resultar em XML bem-formado após parsing <!ENTITY unifei Universidade de Federal de Itajubá > <aluno universidade= &unifei />

Outras Formas de Validação DTD vantagem: é simples; desvantagens: não usa sintaxe XML e é limitado. XML Schema vantagem: é XML; permite validação mais detalhada. desvantagem: é muito mais complicado que DTD Em certos casos é preciso realizar validação adicional usando processamento em alguma linguagem (Python, Java)

Introdução Definição Validação Apresentação Processamento Banco de Dados Universo XML Prof. Enzo Seraphim

Benefícios Acesso mais fácil à informação através de atribuição de significado mais relevante aos dados; Desenvolvimento de aplicações mais flexíveis; Integração de dados de origens diferentes; Múltiplas visões dos dados; Formas de Transformação: CSS Style Sheet XSL Style Sheet

CSS Cascading Style Sheets Originalmente preparada para HTML. Uma lista de regras, onde cada regra começa com um seletor (nomes do elemento) ao qual os estilos de apresentação são aplicados. Se não houver regras que especifiquem o estilo de um determinado elemento, esse elemento as herda de seu elemento pai. Duas versões versão CSS1e CSS2.

CSS Cascading Style Sheets Atribui estilos somente a conteúdo que já aparece no documento. Não pode: adicionar conteúdo; transformar o conteúdo. Através de instrução de processamento <?xml-stylesheet type="text/css" href= arq.css"?>

Exemplo: X M L <nome> José da Silva </nome> <email>ze@bol.com.br</email> <endereco>av. Brasil, 123</endereco> <telefone tipo="comercial"> <ddd>099</ddd> <numero>1234 5678</numero> </telefone> nome { display: inline; font-size: 16pt; fontweight: bold; border: 2px inset } email { display: inline; font-size: 16pt; fontweight: bold; border: 2px inset } endereco { color: red; display: block; font-size: 12pt } ddd { color: blue; display: block; font-size: 12pt } ddd { color: blue; display: block; font-size: 12pt }

XSL Extensible Style Language Recomendação da W3C. Geração de texto constante Supressão de conteúdo Movimentação de texto (ex: mudança de ordem de nome e sobrenome) Duplicação de texto (ex: cópia de títulos para produção de um índice) Ordenação Transformações mais complexas que computem novas informações em função das informações existentes.

XSL Extensible Style Language

Transformação Através de instrução de processamento <?xml-stylesheet type="text/xsl" href= arq.xsl"?> Transformação no clientes: Web Browser Transformação no Servidor: Web Aplication Cocoon Apache novas características foram adicionadas.

Elementos XLS xsl:for-each select xsl:value-of xsl:if xsl:attribute xsl:sort xsl:number

Introdução Definição Validação Apresentação Processamento Banco de Dados Universo XML Prof. Enzo Seraphim

Processamento carregar dados do documento separar diversos tipos de dados (nome dos elementos, atributos, conteúdo, subelementos...) expandir todas as entidades utilizadas verificar se o documento é válido montar uma estrutura que represente o documento navegar pela estrutura montada e acessar os componentes do documento

Motivação Construir um programa para processar documentos XML Pode ser uma tarefa trabalhosa se não for utilizado algum ferramental de suporte. Bibliotecas ajudam na manipulação do XML Como construir uma biblioteca que funcione em qualquer linguagem de programação? Definição de API permitindo que sejam implementadas em sua linguagem de programação favorit

Aplication Programming Interface Baseados Eventos SAX Oferece métodos que respondem a eventos produzidos durante a leitura do documento; Baseados Árvores Document Object Model (DOM) monta uma estrutura hierárquica de objetos, em forma de árvore, que permite a navegação na estrutura do documento;

SAX Foi editada e publicada por David Megginsom ( www.megginson.com/sax) É um parser baseado em eventos Dispara eventos durante processamento do documento eventos podem ser capturados por ouvintes cadastrados ações podem ser tomadas em cada situação Exemplos de Eventos: inicio e fim do documento início e fim do elemento (pode-se descobrir qual) nó de caractere nó de comentário

Implementação (Eventos) <carta> <mensagem id="1">bom dia!</mensagem> </carta> startdocument() startelement("carta", []) startelement("mensagem", [Attribute("id","1")]) characters("bom dia!") endelement("mensagem") endelement("carta") enddocument() Programador deve implementar um objeto "ouvinte" para capturar os eventos e extrair as informações desejadas

DOM W3C (http://www.w3.org/dom/) estabeleceu a recomendação DOM Document Object Model. Os documentos XML são representados estrutura de árvore que reflete a sua estrutura lógica hierárquica. Suporta a manipulação da estrutura e conteúdo do documento, permitindo : criar um novo documento XML navegar na árvore XML modificar, remover ou adicionar nós (elementos, atributos, texto, comentários, etc.)

DOM: Hierarquia

Introdução Definição Validação Apresentação Processamento Banco de Dados Universo XML Prof. Enzo Seraphim

Oracle Suporta para padronizar o SQL para normalizado pelo consórcio W3C através do XQuery; A Oracle a partir do banco de dados 9i oferece suporte XML: Transformar modelo relacionar para XML Inserir dados XML Consulta em campos XML Indexação de campos XML

Transformando Select em XML XMLElement (nome tag, campo) Adiciona elementos no select XMLAttributes( campo as "valor chave") Adiciona atributos no select O alinhamento de XMLElement formam a hierarquia do documento.

Transformando Select em XML select XMLElement ("cliente", nome) from enderecos; select XMLElement ("cartao", XMLAttributes (nick as "apelido"), XMLElement ("cliente", nome), XMLElement ("endereco", email)) from enderecos;

Armazenamento XML Na tabela com o tipo de dado (Oracle 9i) : XMLType Exemplo de criação create table cartoes ( nome varchar(30), cartaoxml XMLType); Para inserir em um campo XMLType deve-se usar a função XMLType;

Armazenamento XML Exemplo insert into cartoes values ('zé', XMLType(' <cartao> <nome>josé da Silva</nome> <email>ze@bol.com.br</email> <endereco>av. Brasil, 123</endereco> <telefone tipo="comercial"> <ddd>099</ddd> <numero>1234 5678</numero> </telefone> </cartao>'));

Consulta campos XML extractvalue(campo XML, expressão Xpath) Extrai um valor de um campo XML sem os tags Exemplo: select extractvalue(cartaoxml, '/cartao/telefone@tipo'), extractvalue(cartaoxml, '/cartao/telefone/ddd'), extractvalue(cartaoxml, '/cartao/telefone/numero') from cartoes;

Consulta campos XML existsnode(campo XML, expressão Xpath) Verifica se existe o path e retorna um elemento XML Se o elemento existir retorna 1, caso contrário retorna 0 Essa função só deve ser usada na cláusula where. Exemplo: select nome from cartoes where existsnode(cartaoxml, '/cartao[nome ="José da Silva"]') = 1;

Criando índice Um índice pode ser criado para ajudar o algoritmo de busca Exemplo: create index ind_cartao on cartoes (extractvalue(cartaoxml, '/cartao/email') );

Autor: Prof. Enzo Seraphim Os logotipos, marcas comerciais e nomes de produtos citados nesta publicação tem apenas o propósitos de identificação e podem ser marcas registradas de suas respectivas companhias. Universo XML