Publicando Dados XML de Banco de Dados Objeto- Relacional

76
Publicando Dados XML de Banco de Dados Objeto- Relacional Wamberg Oliveira wamberg@ gmail.com

description

Publicando Dados XML de Banco de Dados Objeto- Relacional. Wamberg Oliveira wamberg@ gmail.com. Introdução. XML tornou-se um padrão para troca e integração de dados na WEB. A maioria dos dados corporativos estão armazenados em banco de dados relacionais. - PowerPoint PPT Presentation

Transcript of Publicando Dados XML de Banco de Dados Objeto- Relacional

Page 1: Publicando Dados XML de Banco de Dados Objeto- Relacional

Publicando Dados XML de Banco de Dados Objeto- Relacional

Wamberg [email protected]

Page 2: Publicando Dados XML de Banco de Dados Objeto- Relacional

2

Introdução XML tornou-se um padrão para troca e

integração de dados na WEB. A maioria dos dados corporativos estão

armazenados em banco de dados relacionais. Isto cria a necessidade de publicar dados

armazenados em bases convencionais, no formato XML.

Vendedores de sistemas de BD Objeto-Relacional estão estendendo seus produtos para suportar o armazenamento e recuperação de dados XML

Page 3: Publicando Dados XML de Banco de Dados Objeto- Relacional

3

Enfoques para armazenar documentos XML em BDOR

Usa visões XML como uma camada intermediária entre a aplicação e o banco de dados. Apropriado para documentos “data-centric”

(dados estruturados). Armazena XML nativo em uma coluna de

tabela relacional Apropriado para documentos “document-

centric” (dados sem estrutura bem definida)

Page 4: Publicando Dados XML de Banco de Dados Objeto- Relacional

4

Aula de hoje

Como criar visões XML de BDOR Oracle através do XSQL Pages Publishing Framework

Page 5: Publicando Dados XML de Banco de Dados Objeto- Relacional

5

O que é XSQL Pages ?

XSQL Pages Publishing Framework é uma plataforma extensível que possibilita a publicação de visões XML de dados objeto-relacionais

Combina o poder de SQL, XML e XSLT para publicar conteúdo Web dinâmico baseado nos dados armazenados num BD Gera XML a partir de consultas SQL Usando XSLT é possível transformar o documento

XML gerado no formato desejado

Page 6: Publicando Dados XML de Banco de Dados Objeto- Relacional

6

O que é XSQL Pages?

Também pode ser usado para carregar dados de um documento XML no BD Inserção, atualização e remoção

Possibilidade de utilização com outros SGBDs que não o Oracle Padrão JDBC

Multi-plataforma Java

Page 7: Publicando Dados XML de Banco de Dados Objeto- Relacional

7

Visão Geral de XSQL

Passo1: A página XSQL é requisitada... http://......

Passo2: O documento XML é montado a partir do resultado de uma ou mais consultas SQL.

• Gera documento XML no formato canônico

Passo3: Retorna o documento montado Opcionalmente transforma o documento XML

montado num formato desejado usando XSLT HTML WML XML com formato arbitrário

Page 8: Publicando Dados XML de Banco de Dados Objeto- Relacional

8

Visão Geral do XSQL Pages Framework

Page 9: Publicando Dados XML de Banco de Dados Objeto- Relacional

9

Exemplo

Tabela Livros

Publicar os dados da Tabela Livros usando o XSQL Pages Framework

Page 10: Publicando Dados XML de Banco de Dados Objeto- Relacional

10

Exemplo

<?xml version=“1.0”?><xsql:query connection=“bd”

xmlns:xsql=“urn:oracle-xsql”> Select isbn, titulo

From Livros </xsql:query>

exemplo.xsql

XSQL Page que retorna o isbn e o titulo de todos os livros

Page 11: Publicando Dados XML de Banco de Dados Objeto- Relacional

11

Resultado no Formato Canônico

Page 12: Publicando Dados XML de Banco de Dados Objeto- Relacional

12

Exemplo Usando XSLT é possível transformar o

resultado num formato desejado

<?xml version=“1.0”?><?xml-stylesheet

type=“text/xsl” href=“livrohtml.xsl”?>

<xsql:query connection=“bd” xmlns:xsql=“urn:oracle-xsql”> Select isbn, titulo

From Livros </xsql:query>

exemplo2.xsql

Page 13: Publicando Dados XML de Banco de Dados Objeto- Relacional

13

Exemplo

<HTML xmlns:xsl=“http://www.w3c.org/1999/XSL/Transform” xsl:version=“1.0”>

<BODY><TABLE BORDER=“1”> <xsl:for-each select=“ROWSET/ROW”> <TR> <TD><xsl:value-of select=“ISBN”/></TD> <TD><xsl:value-of select=“TITULO”/></TD> </TR> </xsl:for-each></TABLE></BODY></HTML> livrohtml.xsl

Page 14: Publicando Dados XML de Banco de Dados Objeto- Relacional

14

Page 15: Publicando Dados XML de Banco de Dados Objeto- Relacional

15

XSQL Pages - Características

Uma XSQL Page é um documento XML (.xsql) que contém Elementos estáticos Elementos de ação Consultas SQL embutidas

<?xml version=“1.0”?><xsql:query connection=“bd” xmlns:xsql=“urn:oracle-xsql”> Select col1, col2 , col3 From Tabela</xsql:query>

Page 16: Publicando Dados XML de Banco de Dados Objeto- Relacional

16

XSQL Pages - Características

Arquivos .xsql devem iniciar com <?xml version=“1.0”?>

O elemento raiz deve conter os seguintes atributos: connection : nome de uma conexão pré-

definida no arquivo de configuração do Processador XSQL

xmls:xsql=“urn:oracle-xsql” : declaração do namespace xsql

Page 17: Publicando Dados XML de Banco de Dados Objeto- Relacional

17

Processador XSQL

O processador XSQL interpreta, faz o caching e processa o conteúdo de páginas XSQL do servidor Pooling de conexões para BDs Caching de páginas “.xsql” Caching e pooling de folhas de estilo “.xsl”

Page 18: Publicando Dados XML de Banco de Dados Objeto- Relacional

18

Processador XSQL

O processador XSQL pode ser acionado de 4 formas: A partir da linha de comando

XSQL Command Line Utility Através da Web

XSQL Servlet instalado no web server de uso Como parte de uma aplicação JSP

Utilizando <jsp:include> para inclusão de um template “.xsql” Através de programação

Utilizando o objeto XSQLRequest (API Java)

Page 19: Publicando Dados XML de Banco de Dados Objeto- Relacional

19

Processador XSQLArquitetura

Page 20: Publicando Dados XML de Banco de Dados Objeto- Relacional

20

Passos do Processador XSQL

Recebe uma requisição para processar uma XSQL Page

Monta um documento XML usando o resultado de uma ou mais consultas SQL. XML com formato canônico

Retorna o documento montado Opcionalmente transforma o documento XML

montado num formato desejado usando XSLT HTML WML XML com formato arbitrário

Page 21: Publicando Dados XML de Banco de Dados Objeto- Relacional

21

Configuração Básica do XSQL

Os pacotes necessários oraclexsql.jar XSQL page processor xmlparserv2.jar XML Parser for Java v2 xsu12.jar Oracle XML SQL utility classes12.zip Oracle JDBC driver

O servlet oracle.xml.xsql.XSQLServlet servlet interface

Associar extensão “.XSQL” ao servlet

oracle.xml.xsql.XSQLRequest interface de programação

Page 22: Publicando Dados XML de Banco de Dados Objeto- Relacional

22

Configuração Básica

O arquivo XSQLConfig.xml<connectiondefs>

<connection name="demo"><username>scott</username><password>tiger</password><dburl>jdbc:oracle:thin:@localhost:1521:testDB</dburl><driver>oracle.jdbc.driver.OracleDriver</driver><autocommit>true</autocommit>

</connection><connection name="lite">

<username>system</username><password>manager</password><dburl>jdbc:Polite:POlite</dburl><driver>oracle.lite.poljdbc.POLJDBCDriver</driver>

</connection></connectiondefs>

Exemplo de configuração

de XSQLConfig.xml

Adicionar esse arquivo

ao CLASSPATH

Page 23: Publicando Dados XML de Banco de Dados Objeto- Relacional

23

Mapeamento Canônico O resultado da consulta é delimitado pelo

elemento raiz <ROWSET> .... </ROWSET>. Cada tupla do resultado é colocada em <ROW NUM=“xx“> .... </ROW>. , onde o

atributo NUM é um identificador da tupla Valores de Atributos (relacional) são

mapeados em <Name> valor_do_atributo </Name>, onde Name é o nome do atributo (coluna)

Page 24: Publicando Dados XML de Banco de Dados Objeto- Relacional

24

Mapeamento Canônico Exemplo : Select nome,idade From Pessoas

<?xml version=“1.0”?><ROWSET> <ROW NUM=“1”> <NOME>Lineu Lima</NOME> <IDADE>24</IDADE> </ROW></ROWSET>

Page 25: Publicando Dados XML de Banco de Dados Objeto- Relacional

25

Mapeamento Canônico Mapeamento de atributos cujo tipo é um

TAD:

<?xml version=“1.0”?><ROWSET> <ROW NUM=“1”> <NOME>Lineu Lima</NOME> <ENDERECO> <RUA>St. Dumont </RUA> <NUM>6997</NUM> </ENDERECO> </ROW></ROWSET>

Exemplo: Select Nome, Endereco From Pessoas

Page 26: Publicando Dados XML de Banco de Dados Objeto- Relacional

26

Mapeamento Canônico Mapeamento de atributos do tipo coleção

(Varray or Nested Table: Exemplo: Select nome, fones From Pessoas

<?xml version=“1.0”?><ROWSET> <ROW NUM=“1”> <NOME>Lineu Lima</NOME> <FONES> <FONES_ITEM>2346349</FONES_ITEM> <FONES_ITEM>88057324</FONES_ITEM> </FONES> </ROW></ROWSET>

Page 27: Publicando Dados XML de Banco de Dados Objeto- Relacional

27

Usando o operador CURSOR para “rowsets” aninhadas

O operador CURSOR permite selecionar uma “rowset” aninhada como uma coluna numa consulta SQL O operador CAST-MULTISET possui a

mesma função, mas só é utilizado quando o tipo do “rowset” é previamente definido no banco de dados

Page 28: Publicando Dados XML de Banco de Dados Objeto- Relacional

28

Usando o operador CURSOR para “rowsets” aninhadas

Select Nome , CAST(MULTISET (Select ddd,num From Telefones t

Where t.pessoa=p.codigo)

as fones_ty ) as Fones

From Pessoas p

Page 29: Publicando Dados XML de Banco de Dados Objeto- Relacional

29

Usando o operador CURSOR para “rowsets” aninhadas

Select Nome , Cursor (Select ddd,num From Telefones t

Where t.pessoa=p.codigo) as Fones

From Pessoas p

Page 30: Publicando Dados XML de Banco de Dados Objeto- Relacional

30

Usando o operador CURSOR para “rowsets” aninhadas

<?xml version=“1.0”?>

<ROWSET> <ROW NUM=“1”> <NOME>Lineu Lima</NOME> <FONES> <FONES_ROW NUM=“1”> <DDD>85</DDD><NUM>2346349</NUM> </FONES_ROW> <FONES_ROW NUM=“2”>...</FONES_ROW> </FONES> </ROW></ROWSET>

Alias obrigatório

Select Nome ,Cursor (Select ddd,num From Telefones t Where t.pessoa=p.codigo) as FonesFrom Pessoas p

Page 31: Publicando Dados XML de Banco de Dados Objeto- Relacional

31

XSQL Pages com Parâmetros

Possibilita flexibilidade e resposta diferentes de acordo com parâmetros de entrada para a página XSQL

Incluir sinal ? em qualquer local onde for legal o uso de variáveis de ligação no SQL Toda vez que for acionada a página, os valores

de parâmetro são ligados às variáveis de ligação. A ligação é feita de forma posicional.

Utilizar o atributo bind-params=“par1 par2 ...”

Page 32: Publicando Dados XML de Banco de Dados Objeto- Relacional

32

XSQL Pages com Parâmetros

Tabela Pessoas

Criar página XSQL para obter o nome e fone de uma pessoa dado o seu CPF.

Page 33: Publicando Dados XML de Banco de Dados Objeto- Relacional

33

XSQL Pages com Parâmetros

<?xml version="1.0"?><xsql:query connection="teste“ bind-params=“cpf” xmlns:xsql="urn:oracle-xsql"> SELECT nome, fones FROM pessoas WHERE cpf = ?</xsql:query>

XSQL Page que retorna o nome e fones de uma pessoa cujo CPF é passado como parâmetro.

Page 34: Publicando Dados XML de Banco de Dados Objeto- Relacional

34

XSQL Pages com Parâmetros

Page 35: Publicando Dados XML de Banco de Dados Objeto- Relacional

35

XSQL Pages com Parâmetros

Substituição léxica Substituição léxica de parâmetros utiliza a

seguinte sintaxe: {@ParameterName}

Ex.:teste2.xsql<?xml version="1.0"?><xsql:query connection="teste“

cpf=“79221068315” xmlns:xsql="urn:oracle-xsql">

SELECT * FROM pessoas WHERE cpf = ‘{@cpf} ‘</xsql:query>

Valor default

Page 36: Publicando Dados XML de Banco de Dados Objeto- Relacional

36

Principais Ações - Publicação

<xsql:query> ação que executa uma consulta SQL

<xsql:no-rows-query> Fallback query

<xsql:include-owa> ação que executa uma stored procedure

<xsql:include-xml> ação que inclui um documento XML no

resultado <xsql:include-xsql>

Ação que inclui o resultado de uma XSQL Page em outra XSQL Page

Page 37: Publicando Dados XML de Banco de Dados Objeto- Relacional

37

Ação <xsql:query>

Executa declarações SELECT do SQL

Inclui o resultado XML canônico em uma página

Requer conexão com o BD alvo Atributo connection="connname"

Page 38: Publicando Dados XML de Banco de Dados Objeto- Relacional

38

Ação <xsql:query>

Alguns atributos importantes bind-params=“string” row-element=“string” rowset-element=“string” include-schema=“yes” | “no” null-indicator=“yes” | “no” id-attribute = “string” id-attribute-collumn=“string” tag-case = “upper” | ”lower”

Page 39: Publicando Dados XML de Banco de Dados Objeto- Relacional

39

Ação <xsql:query>

<?xml version=“1.0”?><PESSOAS connection="teste“

xmlns:xsql="urn:oracle-xsql"> <xsql:query rowset-element=“” row-element=“PESSOA”>

SELECT cpf,nome FROM pessoas </xsql:query></PESSOAS>

pessoas.xsql

Page 40: Publicando Dados XML de Banco de Dados Objeto- Relacional

40

Page 41: Publicando Dados XML de Banco de Dados Objeto- Relacional

41

Ação <xsql:query>

Se a consulta SQL não retorna tuplas, o documento XML retornado será:

<?xml version=“1.0”?> <ROWSET/>

Page 42: Publicando Dados XML de Banco de Dados Objeto- Relacional

42

Ação <xsql:no-rows-query>

Essa ação só pode aparecer dentro de uma ação <xsql:query>

Se a consulta da ação <xsql:query> correpondente não retorna tuplas, a consulta embutida em <xsql:no-rows-query> será executada

Uma ação <xsql:no-rows-query> pode ter outra ação <xsql:no-rows-query> aninhada

Page 43: Publicando Dados XML de Banco de Dados Objeto- Relacional

43

Ação <xsql:no-rows-query>

<?xml version="1.0"?>

<xsql:query connection="teste“ xmlns:xsql="urn:oracle-xsql">

SELECT * FROM livros

WHERE categoria = ‘{@cat}’

<xsql:no-rows-query>

SELECT * FROM livros

WHERE titulo = ‘%{@cat}%’

</xsql:no-rows-query>

</xsql:query>

Page 44: Publicando Dados XML de Banco de Dados Objeto- Relacional

44

Ação <xsql:include-xsql>

Essa ação agrega informações Inclui resultados de uma página XSQL

em outra Seu uso é indicado quando uma

mesma XSQL page deve ser exibida em formatos diferentes criar uma nova XSQL para cada XSLT

Page 45: Publicando Dados XML de Banco de Dados Objeto- Relacional

45

Ação <xsql:include-xsql>

<?xml version=“1.0”?><?xml-stylesheet type=“text/xsl” href=“PessoaHTML.xsl”?><xsql:include-xsql href=“pessoas.xsql” xmls:xsql=“urn:oracle-xsql”>

<?xml version=“1.0”?><?xml-stylesheet type=“text/xsl” href=“PessoaWML.xsl”?><xsql:include-xsql href=“pessoas.xsql” xmls:xsql=“urn:oracle-xsql”>

Page 46: Publicando Dados XML de Banco de Dados Objeto- Relacional

46

Mapeamento Canônico Inverso

O Documento XML que gera uma atualização no Banco de Dados deve seguir o formato canônico apresentado anteriormente

Possui algumas restrições Atributos XML são ignorados Possui um único objeto alvo

Tabela Relacional Tabela de Objeto Visões

Elementos de ROW não necessitam aparecer na mesma ordem das colunas do objeto alvo

Page 47: Publicando Dados XML de Banco de Dados Objeto- Relacional

47

Mapeamento Canônico Inverso

Dado o XML Canônico para atualizar o estado do banco de dados, o processador XSQL procede da seguinte forma : Recupera os metadados da tabela ou visão alvo

para gerar o comando de atualização apropriado Extrai os dados do documento XML atribuindo-os

às colunas/condições apropriadas Executa a operação de atualização Retorna um documento XML contendo o

“STATUS” da execução da atualização

Page 48: Publicando Dados XML de Banco de Dados Objeto- Relacional

48

Exemplo – Tabela Pessoas

Tabela Pessoas

Page 49: Publicando Dados XML de Banco de Dados Objeto- Relacional

49

Exemplo – Inserir Pessoa

Page 50: Publicando Dados XML de Banco de Dados Objeto- Relacional

50

Mapeamento Canônico Inverso

Operações de DELETE ou UPDATE podem afetar mais que uma linha num objeto do banco de dados

Essas operações precisam de um lista de colunas chave para XSQL poder construir uma cláusula WHERE no UPDATE/DELETE para identificar que objetos modificar/remover

Page 51: Publicando Dados XML de Banco de Dados Objeto- Relacional

51

Exemplo – Modifica Pessoa Modificar o nome da pessoa de CPF

98765432109 para Vania Vidal

condição

Page 52: Publicando Dados XML de Banco de Dados Objeto- Relacional

52

Exemplo – Modifica Pessoa Modificar os telefones da pessoa de CPF

98765432109condição

Page 53: Publicando Dados XML de Banco de Dados Objeto- Relacional

53

Exemplo – Remove Pessoa Remover a pessoa de nome Vania Vidal e CPF

98765432109

Page 54: Publicando Dados XML de Banco de Dados Objeto- Relacional

54

Mapeamento Canônico InversoLimitações

Não possibilita atualizações em Nested Table

Só permite condições que envolvem comparações de igualdade em operações UPDATE e DELETE

Somente um único objeto pode ser atualizado

Page 55: Publicando Dados XML de Banco de Dados Objeto- Relacional

55

Principais Ações - Atualização

<xsql:dml> Executa qualquer operação DML ou DDL

<xsql:insert-request>,<xsql:insert-param> Insere dados numa tabela ou visão a partir de um

documento XML Canônico <xsql:update-request>

Atualiza dados numa tabela ou visão a partir de um documento XML Canônico

<xsql:delete-request> Remove dados numa tabela ou visão a partir de

um documento XML Canônico

Page 56: Publicando Dados XML de Banco de Dados Objeto- Relacional

56

Ação <xsql:dml>

Ação utilizada para executar operações DML ou DDL, bem como blocos PL/SQL

<?xml version=“1.0”?><xsql:dml connection=“teste”

xmls:xsql=“urn:oracle-xsql”> Insert into pessoas Values (‘{@cpf}’,’{@nome}’)</xsql:dml>

inserepessoa.xsql

Page 57: Publicando Dados XML de Banco de Dados Objeto- Relacional

57

Ação <xsql:dml>

Page 58: Publicando Dados XML de Banco de Dados Objeto- Relacional

58

Ação <xsql:insert-param>

Insere, a partir de XML, dados em uma tabela ou visão da respectiva connection O documento XML deve estar no formato

canônico apropriado à tabela ou visão Parâmetros

connection : conexão table : tabela ou visão name : nome do parâmetro que contém o

XML a ser inserido

Page 59: Publicando Dados XML de Banco de Dados Objeto- Relacional

59

Ação <xsql:insert-param>ins.html : Código de um formulário HTML que

recebe XML canônico para inserção na tabela Pessoas (num,nome)<HTML><BODY> <FORM ACTION=inserePessoa.xsql METHOD=GET> <P>XML Canônico:</P> <TEXTAREA NAME=‘xml’></TEXTAREA> <INPUT TYPE="SUBMIT" VALUE="ENVIAR"> </FORM></BODY></HTML>

Page 60: Publicando Dados XML de Banco de Dados Objeto- Relacional

60

Ação <xsql:insert-param>

Page 61: Publicando Dados XML de Banco de Dados Objeto- Relacional

61

Ação <xsql:insert-param>

<?xml version="1.0" ?><xsql-status action="xsql:insert-param" rows="1" />

<?xml version="1.0"?>

<xsql:insert-param connection="teste" xmlns:xsql="urn:oracle-xsql" table=“PESSOAS" name=“xml"/>

Page 62: Publicando Dados XML de Banco de Dados Objeto- Relacional

62

Ação <xsql:insert-request>

Insere dados recebidos via requisição POST-HTTP numa tabela ou visão da respectiva connection Antes de inserir os dados na tabela ou visão,

deve-se aplicar uma transformação XSLT para produzir o formato canônico apropriado à tabela ou visão

Parâmetros connection : conexão table : tabela ou visão usada para inserir os

dados transform : arquivo XSLT que transforma os

dados num XML canônico apropriado à table

Page 63: Publicando Dados XML de Banco de Dados Objeto- Relacional

63

Ação <xsql:insert-request>

Ex.:cad.html<HTML><BODY> <FORM ACTION=cad.xsql METHOD=POST>

Numero:<INPUT TYPE="TEXT" NAME=num><BR>Nome:<INPUT TYPE="TEXT"

NAME=nome><BR><INPUT TYPE="SUBMIT" VALUE="ENVIAR">

</FORM></BODY></HTML>

Page 64: Publicando Dados XML de Banco de Dados Objeto- Relacional

64

Ação <xsql:insert-request>

Page 65: Publicando Dados XML de Banco de Dados Objeto- Relacional

65

Ação <xsql:insert-request>

Formato dos dados enviados pelo navegador no HTTP-POST <request>

<parameters><num>2</num><nome>Lineu</nome>

</parameters>:

</request>

Page 66: Publicando Dados XML de Banco de Dados Objeto- Relacional

66

Ação <xsql:insert-request>

Ex.:trans.xsl<?xml version="1.0"?><ROWSET xsl:version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:for-each select="request/parameters"> <ROW> <NUM><xsl:value-of select="num"/></NUM> <NOME><xsl:value-of select="nome"/></NOME> </ROW> </xsl:for-each></ROWSET>

Page 67: Publicando Dados XML de Banco de Dados Objeto- Relacional

67

Ação <xsql:insert-request>

<?xml version="1.0"?><xsql:insert-request

connection="teste" xmlns:xsql="urn:oracle-xsql"

table=“PESSOAS“ transform=“trans.xsl"/>

<?xml version="1.0" ?>

<xsql-status action="xsql:insert-request" rows="1" />

Page 68: Publicando Dados XML de Banco de Dados Objeto- Relacional

68

Ação <xsql:update-request>

Atualiza dados de uma tabela ou visão a partir de dados recebidos via requisição POST-HTTP Antes atualizar os dados na tabela ou visão, deve-

se aplicar uma transformação XSLT para produzir o formato canônico apropriado à tabela ou visão

Parâmetros connection : conexão table : tabela ou visão a ser atualizada transform : arquivo XSLT que transforma os dados

num XML canônico apropriado à table key-columns : lista de colunas usadas para

identificar as tuplas a serem atualizadas

Page 69: Publicando Dados XML de Banco de Dados Objeto- Relacional

69

Ação <xsql:update-request>

Ex.:upd.html<HTML>

<BODY> <FORM ACTION=upd.xsql METHOD=POST> Número:<INPUT TYPE="TEXT" NAME=num>

Nome:<INPUT TYPE="TEXT" NAME=nome><BR>

<INPUT TYPE="SUBMIT" VALUE="ENVIAR"></FORM>

</BODY></HTML>

Page 70: Publicando Dados XML de Banco de Dados Objeto- Relacional

70

Ação <xsql:update-request>

Page 71: Publicando Dados XML de Banco de Dados Objeto- Relacional

71

Ação <xsql:update-request>

<?xml version="1.0"?><xsql:update-request connection="teste"

xmlns:xsql="urn:oracle-xsql" table=“PESSOAS" key-columns="num" transform=“trans.xsl“/>

<?xml version="1.0" ?> <xsql-status action="xsql:update-request" rows="1" />

Update PESSOAS Set nome=‘Lineu Lima’ Where num=1

Page 72: Publicando Dados XML de Banco de Dados Objeto- Relacional

72

Ação <xsql:delete-request>

Remove dados de uma tabela ou visão a partir de dados recebidos via requisição POST-HTTP Antes de remover os dados na tabela ou visão,

deve-se aplicar uma transformação XSLT para produzir o formato canônico apropriado à tabela ou visão

Parâmetros connection : conexão table : tabela ou visão a ser atualizada transform : arquivo XSLT que transforma os dados

num XML canônico apropriado à table key-columns : lista de colunas usadas para

identificar as tuplas a serem removidas

Page 73: Publicando Dados XML de Banco de Dados Objeto- Relacional

73

Ação <xsql:delete-request>

Ex.:del.html<HTML>

<BODY> <FORM ACTION=del.xsql METHOD=POST> Numero:<INPUT TYPE="TEXT" NAME=num>

<INPUT TYPE="SUBMIT" VALUE="ENVIAR"> </FORM>

</BODY></HTML>

Page 74: Publicando Dados XML de Banco de Dados Objeto- Relacional

74

Ação <xsql:delete-request>

Page 75: Publicando Dados XML de Banco de Dados Objeto- Relacional

75

Ação <xsql:delete-request>

<?xml version="1.0"?><xsql:delete-request connection="teste"

xmlns:xsql="urn:oracle-xsql" table=“PESSOAS" key-columns="num" transform=“trans.xsl“/>

<?xml version="1.0" ?> <xsql-status action="xsql:delete-request" rows="1" />

Delete From PESSOAS Where num=1

Page 76: Publicando Dados XML de Banco de Dados Objeto- Relacional

76

PERGUNTAS ?