Publicando Dados Relacionais e O-R como XML Vânia Vidal [email protected].
Transcript of Publicando Dados Relacionais e O-R como XML Vânia Vidal [email protected].
![Page 2: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/2.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/3.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/4.jpg)
4
Aula de hoje
Como criar visões XML de BDOR Oracle através do XSQL Pages Publishing Framework
![Page 5: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/5.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/6.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/7.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/8.jpg)
8
Visão Geral do XSQL Pages Framework
![Page 9: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/9.jpg)
9
Exemplo
Tabela Livros
Publicar os dados da Tabela Livros usando o XSQL Pages Framework
![Page 10: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/10.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/11.jpg)
11
Resultado no Formato Canônico
![Page 12: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/12.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/13.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/14.jpg)
14
![Page 15: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/15.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/16.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/17.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/18.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/19.jpg)
19
Processador XSQLArquitetura
![Page 20: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/20.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/21.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/22.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/23.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/24.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/25.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/26.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/27.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/28.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/29.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/30.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/31.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/32.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/33.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/34.jpg)
34
XSQL Pages com Parâmetros
![Page 35: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/35.jpg)
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 Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/36.jpg)
36
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 37: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/37.jpg)
37
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 38: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/38.jpg)
38
![Page 39: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/39.jpg)
39
Ação <xsql:query>
Se a consulta SQL não retorna tuplas, o documento XML retornado será:
<?xml version=“1.0”?> <ROWSET/>
![Page 40: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/40.jpg)
40
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 41: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/41.jpg)
41
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 42: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/42.jpg)
42
Exemplo – Tabela Pessoas
Tabela Pessoas
![Page 43: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/43.jpg)
43
Exemplo – Inserir Pessoa
![Page 44: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/44.jpg)
44
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 45: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/45.jpg)
45
Exemplo – Modifica Pessoa Modificar o nome da pessoa de CPF
98765432109 para Vania Vidal
condição
![Page 46: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/46.jpg)
46
Exemplo – Modifica Pessoa Modificar os telefones da pessoa de CPF
98765432109condição
![Page 47: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/47.jpg)
47
Exemplo – Remove Pessoa Remover a pessoa de nome Vania Vidal e CPF
98765432109
![Page 48: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/48.jpg)
48
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 49: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/49.jpg)
49
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 50: Publicando Dados Relacionais e O-R como XML Vânia Vidal vvidal@lia.ufc.br.](https://reader035.fdocument.pub/reader035/viewer/2022062312/552fc105497959413d8c07e0/html5/thumbnails/50.jpg)
50
PERGUNTAS ?