Agenda:
- Debate inicial
- Suas experiências: XML e SQL Server
- XML e tecnologias relacionadas
- O que é XML?
- XML bem-formado
- XML Schema e XML válido
- XPath e XQuery
- Algumas aplicações de XML
- Suporte XML no SQL Server
- Tipo de dado XML nativo
- XML Schema Collections
- Métodos do tipo de dados XML
- Cláusula FOR XML
- Debate final
- Minhas experiências: XML e SQL Server
1. SQLServerDF
Suporte XML nativo no
SQL Server 2014/2016
Rogério Moraes de Carvalho
Consultor e instrutor de TI
rogeriom.wordpress.com | @rogeriomc
2. Agenda
Suporte XML nativo no SQL Server 2014/2016
Debate inicial
Suas experiências: XML e SQL Server
XML e tecnologias relacionadas
O que é XML?
XML bem-formado
XML Schema e XML válido
XPath e XQuery
Algumas aplicações de XML
Suporte XML no SQL Server
Tipo de dado XML nativo
XML Schema Collections
Métodos do tipo de dados XML
Cláusula FOR XML
Debate final
Minhas experiências: XML e SQL Server
3. Suas experiências: XML e SQL Server
Debate inicial
XML sem SQL Server
Suas opiniões
O que você entende por XML?
Quando você usaria XML?
Você acha XML obsoleto?
Que desvantagens você destacaria?
Que vantagens você destacaria?
Casos de uso
Você tem casos de sucesso?
Você tem casos de fracasso?
XML no SQL Server
Suas opiniões
Você acha uma mistura possível?
Quando você usaria XML no SQL Server?
Você acha XML no SQL Server obsoleto?
Que desvantagens você destacaria?
Que vantagens você destacaria?
Casos de uso
Você tem casos de fracasso?
Você tem casos de sucesso?
4. O que é XML?
XML e tecnologias relacionadas
Linguagem de marcação
XML: Extensible Markup Language
Formato texto simples e flexível
Derivado do SGML
Criação e manutenção
W3C: World Wide Web Consortium
Comunidade internacional responsável
pelo desenvolvimento de padrões Web
Responsável pela especificação XML
Exemplo de documento XML
<?xml version="1.0" enconding="ISO-8859-1"?>
<Contato Id="1" Sexo="Feminino"
DataNascimento="1980-10-29">
<PrimeiroNome>Beatrice</PrimeiroNome>
<Sobrenome>Dias Lima</Sobrenome>
<Empresa Funcao="Gerente de Marketing">
Grupo Capivara
</Empresa>
<Endereco Tipo="Residencial"
CEP="08830-170" UF="SP">
<Logradouro Numero="1507">
Rua João Fernandes
</Logradouro>
<Cidade>Mogi das Cruzes</Cidade>
</Endereco>
</Contato>
5. XML bem formado
XML e tecnologias relacionadas
Todo documento XML com uma sintaxe correta
Principais regras para um documento bem formado
Deve ter um elemento raiz, que deve ser único
Todo elemento XML deve ter um marcador de abertura e outro de fechamento
Os marcadores de um elemento diferenciam letras maiúsculas de minúsculas
Elementos XML devem ser aninhados corretamente
Atributos de um elemento não podem ser repetidos
Valores de atributos devem ser delimitados por aspas ou apóstrofos
6. XML Schema e XML válido
XML e tecnologias relacionadas
XSD: XML Schema Definition
Linguagem baseada em XML para expressar as restrições de documentos XML
Define uma gramática para um conjunto de documentos XML
Um documento XML que satisfaz um XML Schema é denominado XML válido
7. XPath e XQuery
XML e tecnologias relacionadas
XPath
É uma sintaxe para definir partes de um documento XML
Usa expressões de caminho para navegar por documentos XML
Contém uma biblioteca padrão de funções
Recomendação do W3C: XML Path Language (XPath) 2.0 (Second Edition)
XQuery
É a linguagem padrão para consulta de dados XML
XQuery é para XML o que SQL é para bancos de dados relacionais
É construída com base em expressões XPath
Recomendação do W3C: XQuery 1.0: An XML Query Language (Second Edition)
8. Algumas aplicações de XML
XML e tecnologias relacionadas
Arquivos de configuração
Web.config (aplicações web ASP.NET)
Documentos de software para escritório
Microsoft Office 2007 ou superior (compactados no formato .zip)
OpenDocument - OpenOffice/LibreOffice (compactados no formato .zip)
Imagens vetoriais
SVG (Scalable Vector Graphics)
XML Web Services
Mensagens SOAP
...
9. Tipo de dado XML nativo
Suporte XML no SQL Server
Tipo de dado do SQL Server para armazenar dados XML
Instâncias de dados XML podem ser armazenados em:
Uma coluna do tipo XML
Uma variável do tipo XML
Exemplos
DECLARE @telefone xml = '<Telefone DDD="61">3222-2222</Telefone>';
CREATE TABLE Seguranca.Auditoria (IdAuditoria int PRIMARY KEY, Registro xml);
Sintaxe
xml ( [ CONTENT | DOCUMENT ] xml_schema_collection )
10. XML Schema Collections
Suporte XML no SQL Server
O SQL Server fornece armazenamento nativo para dados XML
Através do tipo de dado XML
Com uso de XML Schema Collection é possível associar esquemas XSD
Com uma coluna do tipo xml
Com uma variável do tipo xml
XML Schema Collections
Armazenam XML Schemas importados para o banco de dados
Objetivo dos XML Schema Collections
Validar instâncias XML
Definir tipo para os dados XML armazenados no banco de dados (XML tipado)
11. Métodos do tipo de dados XML
Suporte XML no SQL Server
Objetivos dos métodos
Para consultar uma instância XML
armazenada em uma variável ou uma
coluna do tipo XML
Cinco métodos do tipo XML
query()
value()
exist()
modify()
nodes()
Método query() do tipo XML
Descrição
Consulta XQuery em uma instância XML
Retorna um XML não tipado
Sintaxe
query('Xquery')
Método value() do tipo XML
Descrição
Consulta XQuery em uma instância XML
Retorna um valor escalar do tipo SQL
Sintaxe
value('Xquery', 'TipoSQL')
12. Métodos do tipo de dados xml
Suporte XML no SQL Server
Método exist() do tipo xml
Descrição
Consulta XQuery em uma instância XML
Retorna um bit
1: representa true (resultado não vazio)
0: representa false (resultado vazio)
NULL: instância XML nula (valor NULL)
Sintaxe
exist('Xquery')
Método modify() do tipo xml
Descrição
Modifica o conteúdo de uma instância XML
Utiliza XML Data Manipulation Language
XML DML: extensão da Microsoft ao XQuery
Sintaxe
modify('XML DML')
XML DML: insert
Sintaxe
insert
Expressao1
[ as first | as last ] into | after | before
Expressao2
13. Métodos do tipo de dados xml
Suporte XML no SQL Server
Método modify() do tipo xml
Sintaxe
modify('XML DML')
XML DML: delete
Sintaxe
delete Expressao
XML DML: replace value of
Sintaxe
replace value of
Expressao1
with
Expressao2
Método nodes() do tipo xml
Descrição
Útil para separar conteúdo de uma
instância XML em dados relacionais
Sintaxe
nodes('XQuery') as Tabela(Coluna)
14. Cláusula FOR XML
Suporte XML no SQL Server
Uma consulta SELECT retorna o resultado como um conjunto de linhas
Opcionalmente, é possível retornar o resultado como XML
Pela especificação da cláusula FOR XML
A cláusula FOR XML pode ser usada em consultas ou subconsultas
Em subconsultas, pode ser usado em instruções INSERT, UPDATE e DELETE
Modos da cláusula FOR XML
RAW: gera um elemento <row> por linha no conjunto de linhas
AUTO: gera um resultado aninhado baseado na instrução SELECT
EXPLICIT: permite maior controle do XML gerado
PATH: permite maior controle do XML gerado, porém mais simples que EXPLICIT
15. Minhas experiências: XML e SQL Server
Debate final
XML sem SQL Server
Minhas opiniões
O que eu entendo por XML?
Quando eu usaria XML?
Eu acho XML obsoleto?
Que desvantagens eu destacaria?
Que vantagens eu destacaria?
Casos de uso
Eu tenho casos de sucesso?
Eu tenho casos de fracasso?
XML no SQL Server
Minhas opiniões
Eu acho uma mistura possível?
Quando eu usaria XML no SQL Server?
Eu acho XML no SQL Server obsoleto?
Que desvantagens eu destacaria?
Que vantagens eu destacaria?
Casos de uso
Eu tenho casos de fracasso?
Eu tenho casos de sucesso?