50
XML, padrões, armazenamento, publicação e utilizações Sistemas de Informação – Puc Minas 1 publicação e utilizações Prof. Leonardo Grandinetti Chaves, MSc, PMP SECOMP – PUC MINAS - 2013

Xml pucminas2013

Embed Size (px)

Citation preview

Page 1: Xml pucminas2013

XML, padrões,

armazenamento,

publicação e utilizações

Sistemas de Informação – Puc Minas

1

publicação e utilizações

Prof. Leonardo Grandinetti Chaves, MSc, PMP

SECOMP – PUC MINAS - 2013

Page 2: Xml pucminas2013

Agenda

� Introdução� Critérios � Suporte dos SGBDs� Ferramentas de Armazenamento

2

� Ferramentas de Armazenamento� Experimentos e Análise � Conclusões� Trabalhos relacionados

Page 3: Xml pucminas2013

Introdução

pessoaPessoa

Nome

Introdução

XML : descreve a representação dos dados

3

nome

Árvore para Dados XMLModelo de Grafo

Sem uma limitação de profundidade

<pessoa><nome>Leonardo</nome>

<email>[email protected]</email> </pessoa>

Page 4: Xml pucminas2013

XML

<pessoa>Nome: LeonardoE-mail: [email protected]ês aniversário: outubro. Hobbie: leitura. Mês aniversário: outubro. Hobbie: leitura.

Estatura: mediana.</pessoa>

4

Page 5: Xml pucminas2013

Introdução

� Os subelementos podem ser aninhados de forma hierárquica

� Marcação destina-se a delimitar os códigos necessários ao processamento do documento

5

necessários ao processamento do documento

� Documentos bem formados (sintaxe) e Documentos válidos (associados a gramáticas ou formalismos de esquemas)

Page 6: Xml pucminas2013

XML e Esquemas

� DTD� XML Schema� Outros

6

Page 7: Xml pucminas2013

XML Schema

� <xs:complexType name="Endereço"><xs:sequence>

<xs:element name="Rua-numero" type="xs:string"/><xs:element name="Cidade" type="xs:string"/><xs:element name="Estado" type="xs:string"/><xs:element name="Estado" type="xs:string"/><xs:element name="Cep" type="xs:string"/>

</xs:sequence>

<xs:attribute name="tel contato" type="xs:string"/>� </xs:complexType>

7

Page 8: Xml pucminas2013

Introdução

<Imovel>

<Proprietario>..</Proprietario>

<Descricao>..</Descricao>

<Endereco>..</Endereco>...</Imovel>

8

Proprietario Descricao Endereco

Esquemas XML: XML-Data, DCD, DDML, Relax NG, DTD, XML Schema, outros

Tabela:Imovel

Page 9: Xml pucminas2013

XML Schema Tipo complexo

<xs:complexType name="livro"><xs:sequence>

<xs:element name="titulo" type="xs:string"/><xs:element name="autor" minOccurs="0"

maxOccurs="unbounded"><xs:complexType>

<xs:sequence>

9

<xs:sequence><xs:element name="nome" type="xs:string"/><xs:element name="email" type="xs:string"/>

</xs:sequence></xs:complexType>

</xs:element></xs:sequence><xs:attribute name="id" type="xs:integer"/>

</xs:complexType>

Page 10: Xml pucminas2013

Introdução

� Paralelamente à evolução do suporte dos sistemas gerenciadores de bancos de dados (SGBDs) comerciais no armazenamento de documentos XML, observa-se a crescente utilização das ferramentas que traduzem esquemas XML

10

observa-se a crescente utilização das ferramentas que traduzem esquemas XML em classes das linguagens de programação orientadas a objetos

� DOM 3

Page 11: Xml pucminas2013

Introdução

� O mapeamento da estrutura da árvore de documentos XML para esquemas de objetos fornece o suporte para algumas abordagens de armazenamento de documentos XML documentos XML

� Data Binding : consiste basicamente em acoplar alguma linguagem de definição de esquemas para XML em uma linguagem tipada existente, traduzindo tipos de documentos em uma hierarquia de classes ou tipos de dado

11

Page 12: Xml pucminas2013

Introdução

� Abordagens de Armazenamento de documentos XML: técnicas genéricas,regras fixas,linguagens de consulta, etc.

12

� Divergências quanto ao modelo mais adequado para o armazenamento de documentos XML

Page 13: Xml pucminas2013

Introdução

� Evolução do suporte dos sistemas gerenciadores de bancos de dados (SGBDs) comerciais no armazenamento de documentos XML

13

� Crescente utilização das ferramentas que traduzem esquemas da XML em classes das linguagens de programação orientadas a objetos

Page 14: Xml pucminas2013

Critérios

� O mapeamento de elementos e atributos XML para tabelas e colunas do banco de dados

� O suporte para a modelagem do esquema do banco de dados relacional

14

banco de dados relacional

� O mapeamento dos documentos XML para um modelo de objetos e o armazenamento em sistemas de bancos de dados relacionais

Page 15: Xml pucminas2013

Critérios

� A geração ou não de tabelas adicionais para atributos do tipo composto e/ou coleções das classes

� A tradução de tipos de dados simples, incluindo as restrições

15

incluindo as restrições � A limitação para o controle da ordem dos

elementos do esquema do documento� A especificação do XML Schema � DTDs � Tipos de dados XML mais utilizados� Outros

Page 16: Xml pucminas2013

SGBDs

� Mapeamento de tipos de dados complexos para o SGBD

� Verificação dos relacionamentos� Documentos com conteúdo misto� Tipos de elementos não contemplados� Tipos de dados gerados na tradução para

o SGBD

16

Page 17: Xml pucminas2013

SGBD´s comerciais

� Oracle 9i->versão 10g� SQL Server 2000->versão 2005IBM DB2 v.8

17

� IBM DB2 v.8

Page 18: Xml pucminas2013

Oracle 9i

� Possibilita o armazenamento do documento utilizando um tipo especial do tipo CLOB, chamado XMLType

Ferramenta XSU: armazenamento dos

18

� Ferramenta XSU: armazenamento dos elementos e atributos por várias tabelas (com maior granularidade), mas não possibilita o armazenamento dos valores dos atributos, que exigem transformação

Page 19: Xml pucminas2013

Oracle 9i

Código Java...

Connection conn = DriverManager.getConnection("jdbc:ora

19

DriverManager.getConnection("jdbc:oracle:oci:@","hr","hr");

OracleXMLSave sav = new OracleXMLSave(conn, "employees");

sav.insertXML(sav.getURL(argv[0]));

Page 20: Xml pucminas2013

<?xml version="1.0"?>

Oracle 9i

� Regras fixas de mapeamento. Alternativa: utilização da XSLT mas é preciso customização adicional

20

<?xml version="1.0"?>

<ROWSET>

<ROW num="1">

<PROPRIET>JOSE</PROPRIET>

<DESC>APTO</DESC>

<CONT>JOAO</CONT>

<LOCAL>CONTORNO</LOCAL>

</ROW>

</ROWSET>

PROPRIET DESC CONT LOCAL

JOSE APTO JOAO CONTORNO

java OracleXML putXML -user

"scott/tiger" -fileName

“imovel.xml" “imovel"

Page 21: Xml pucminas2013

21

Oracle 9i

Page 22: Xml pucminas2013

SQL Server 2000

� Especificação do mapeamento da estrutura do documento para o banco de dados baseada na linguagem XDR (XML-Data Reduced Schema)

22

� Alguns atributos são usados para declarar uma tabela e uma coluna e o relacionamento entre duas tabelas no esquema do banco de dados

� Xpath, Utilitário XML Bulk Load

Page 23: Xml pucminas2013

SQL Server - mapeamento

<Imovel>

<Proprietario>..</Proprietario>

<Descricao>..</Descricao>

<Endereco>..</Endereco>...</Imovel>

23

<ElementType name="Imovel" sql:relation="Imovel">

<element type="Proprietario" sql:field="Proprietario" />

<element type="Descricao" sql:field="Descricao" />

<element type="Endereco" sql:field="Endereco" />

...

</ElementType>

Page 24: Xml pucminas2013

SQL Server 2000

VBScript:

Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")

objBL.ConnectionString = "provider=SQLOLEDB.1;data source=MeuServidor;database=MeuBD;uid=usuario;pwd=senha"

objBL.ErrorLogFile = "c:\erro.log"

24

objBL.ErrorLogFile = "c:\erro.log"objBL.Execute "c:\mapaImovel.xml", "c:\imovel.xml“

Criação das tabelas de forma automática:

...objBL.CheckConstraints=trueobjBL.XMLFragment = TrueobjBL.SchemaGen = TrueobjBL.SGDropTables = True...

Page 25: Xml pucminas2013

SQL Server

25

SQL Server

Page 26: Xml pucminas2013

IBM DB2 v.8

� XML Extender para o gerenciamento de documentos XML e dois modelos para o armazenamento relacional dos documentos: XML Column e XML Collection

26

� Possui uma linguagem de especificação do mapeamento da estrutura do documento para o esquema do banco de dados chamada DAD (Data Access Definition)

Page 27: Xml pucminas2013

IBM DB2 v.8

� Possui suporte para uma API para permitir asconsultas(XQuery)

27

� Os elementos são traduzidos para tabelas ou colunas do banco de dados, os atributos são mapeados para colunas e os relacionamentos entre os elementos XML são mapeados para os relacionamentos entre as chaves primárias/estrangeiras das tabelas do banco de dados

Page 28: Xml pucminas2013

Suporte dos SGBD´s

� O armazenamento de documentos XML comumente exige a especificação do mapeamento da estrutura do documento para

28

mapeamento da estrutura do documento para o esquema do banco de dados

� Proprietárias, limitadas para o mapeamento das estruturas dos documentos XML e encontram-se embutidas no SGBD

� Intervencão do projetista

Page 29: Xml pucminas2013

Ferramentas

� XML-DBMS

� Altova XML Spy

Castor, Especificação JAXB, Outras

29

� Castor, Especificação JAXB, Outras

� Edição de documentos XML

Page 30: Xml pucminas2013

XML-DBMS

� É um conjunto de classes Java, desenvolvidas por BOURRET, que permite transferências de informações entre os documentos XML e os

30

informações entre os documentos XML e os SGBD´s

� O conjunto de classes traduz o documento como uma árvore de objetos e utiliza um mapeamento objeto-relacional para mapear esses objetos para um esquema de banco de dados relacional

Page 31: Xml pucminas2013

XML-DBMS

� As classes são traduzidas para tabelas, aspropriedades são mapeadas para colunase as referências para o relacionamentochave primária/chave estrangeira(DOM)

31

� Gera a definição do esquema apenas para bancos de dados relacionais

� Inexistência de uma interface para a manutenção do documento de mapeamento

Page 32: Xml pucminas2013

XML-DBMS

<!ELEMENT LIVRO (TITULO, CAPITULO+)><!ELEMENT TITULO (#PCDATA)><!ELEMENT CAPITULO (#PCDATA)>

CREATE TABLE "LIVRO" ("TITULO" VARCHAR(255) NOT NULL,

32

NULL,"LIVROPK" INTEGER NOT NULL, CONSTRAINT PrimaryKey PRIMARY KEY ("LIVROPK"));

CREATE TABLE "CAPITULO" ("CAPITULOPK" INTEGER NOT NULL, "LIVROFK" INTEGER NOT NULL,"CAPITULO" VARCHAR(255) NOT NULL, CONSTRAINT PrimaryKey PRIMARY KEY ("CAPITULOPK"),CONSTRAINT LIVROFK FOREIGN KEY ("LIVROFK")

REFERENCES "LIVRO" ("LIVROPK"));

Page 33: Xml pucminas2013

Altova XML Spy

� Ambiente de desenvolvimento de aplicações que permite manipular, editar, projetar e transformar documentos XML com o suporte a XML Schema, DTD, XLST e possui compatibilidade com padrões da

33

e possui compatibilidade com padrões da indústria e os inúmeros SGBDs relacionais e XML nativo

Page 34: Xml pucminas2013

Altova XML Spy

� O mapeamento de documentos XML é feito para um modelo de objetos e uma interface chamada XMLData possibilita a tradução do formato DOM

34

� Os processos de importação, exportação e geração do esquema dos dados do documento XML para os sistemas de bancos de dados relacionais são feitos através dos métodos de um objeto chamado Application (aplicação), definido por esse modelo

Page 35: Xml pucminas2013

35Altova XML Spy

Page 36: Xml pucminas2013

Altova XML Spy

CREATE TABLE [Teste].[dbo].[IMOVEL] ([PROPRIETARIO] varchar (255) NOT NULL ,[DESCRICAO] varchar (255) NOT NULL ,[TIPO] varchar (255) NOT NULL ,

36

[TIPO] varchar (255) NOT NULL ,[ENDERECO] varchar (255) NOT NULL ,[CONTATO] varchar (255) NOT NULL ,[VALORMAXIMO] varchar (255) NOT NULL ,[VALORMINIMO] varchar (255) NOT NULL );

Page 37: Xml pucminas2013

JAXB

� A arquitetura JAXB constitui uma referência de implementação de um padrão de mapeamento para classes Java

A especificação define um conjunto de

37

� A especificação define um conjunto de regras-padrão para o mapeamento

� Tipos: java.lang.string, etc.

Page 38: Xml pucminas2013

JAXB<xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:jxb="http://java.sun.com/xml/ns/jaxb"jxb:version="1.0">

<xsd:annotation><xsd:documentation>

38

<xsd:documentation>Declaração das regras globais do documento</xsd:documentation> <xsd:appinfo><jxb:globalBindings

...="java.util.date"---------------------</jxb:globalBindings>

</xsd:appinfo></xsd:annotation>

Page 39: Xml pucminas2013

Castor

� Framework para os objetos XML e o esquema XML

39

� Possui um conjunto de APIs que facilitam a conversão entre objetos Java e os arquivos XML

� Similarmente à ferramenta XML-DBMS, é possível especificar e combinar o mapeamento de objetos em arquivos externos

Page 40: Xml pucminas2013

Análise

� Suportam o mapeamento de tipos de elementos complexos para classes e tipos de elementos simples e atributos para propriedades

40

� Ferramentas que utilizam esse mapeamento classificam, de forma bastante simplificada, os tipos de elementos em classes ou propriedades da classe.

Page 41: Xml pucminas2013

Análise

� Possuem limitação na geração do esquema para o SGBD relacional, exigindo a intervenção do projetista

Mapeamento dos esquemas dos documentos

41

� Mapeamento dos esquemas dos documentos para o SGBD relacional

� Determinação dos relacionamentos entre as tabelas geradas para o SGBD relacional

Page 42: Xml pucminas2013

Análise

� Geração de tabelas adicionais para atributos do tipo composto e/ou coleções das classes

Tradução de tipos de dados simples,

42

� Tradução de tipos de dados simples, incluindo as restrições

� Limitação para o controle da ordem dos elementos do esquema do documento, dentre outros

Page 43: Xml pucminas2013

Análise

� Especificação do XML Schema

� Tipos de Dados

Especificação do mapeamento :

43

� Especificação do mapeamento :

� Ferramentas

� SGBDs

Page 44: Xml pucminas2013

Análise

� A reconstrução do documento

� Resumidamente, as classes são traduzidas para tabelas, as propriedades são mapeadas para colunas e as referências são

44

mapeadas para colunas e as referências são mapeadas para o relacionamento chave primária/chave estrangeira

� Possibilidade de alteração do resultado do mapeamento e a utilização do formato DOM

Page 45: Xml pucminas2013

Análise

� Limitações: cadeia de caracteres, geração do script, reconstrução do documento, especificação do XML Schema, diversas linguagens para a especificação do mapeamento, tabelas /colunas, campos do tipo

45

mapeamento, tabelas /colunas, campos do tipo BLOB, suporte builtin dos SGBDs, regras fixas

� Limitações na geração do esquema e armazenamento

� Necessidade de customização e Intervenção do projetista

Page 46: Xml pucminas2013

Conclusões

� Aninhamento dos elementos e ordem dos elementos

� Predominantemente relacional� Relacionamentos

46

� Padronização: modelo OR

Page 47: Xml pucminas2013

Conclusões

� A maior parte das ferramentas possui uma ligação com os SGBDs e permite que o armazenamento do documento XML seja customizado, desde que se utilize uma codificação adicional específica

47

uma codificação adicional específica � DOM

Page 48: Xml pucminas2013

Conclusões

� Ferramentas: campos caractere 255 posições, blob

� Objetos� Intervenção do projetista

SGBDs:

48

� SGBDs:

� a dificuldade de padronização;

� necessidade de pré-especificação do modelo de armazenamento dos documentos;

� a complexidade da especificação do esquema XML;

� Regras fixas: predominantemente relacional (BLOB).

Page 49: Xml pucminas2013

Trabalhos Relacionados e

Futuros

� Trabalhos Relacionados� Futuros

� Análise das novas versões� Suporte nativo

49

� Suporte nativo� SGBDs gratuitos� XQuery� Framework

Page 50: Xml pucminas2013

Dúvidas

50