webmaster

MSSQL – Gerando XML

Olá, Somos criadores de conteúdo apaixonados por web design, programação, criação de websites e tecnologias digitais. O nosso website está online! Explore a nova versão beta, onde terá acesso a novos recursos e melhorias. A sua experiência e feedback são muito importantes para nós! Novos artigos, todas as semanas! Fique atento.
Artigos SEO

Artigos SEO

Search Engine Optimization

Artigos WordPress

Criação de websites.

Tutoriais

Ensino numa série de passos simples

MSSQL – Gerando XML

MSSQL Server Se você vem acompanhando nossas matérias até hoje, certamente verá que temos falado sempre de segurança. Correto?

Hoje vamos mudar um pouco o foco de nossa matéria para a “praticidade”.

Não sei se você também pensa assim, mas… você já acessou um site de notícias carregado de informações e lento?

A única vontade que sinto ao acessar um site assim, é a de fechar o navegador, e você?

Por esse e outros motivos, vamos falar hoje sobre como gerar XML através do SQL Server!

Para facilitar seu aprendizado e/ou testes, vamos colocar no ficheiro “arquivo.zip” as informações que você precisa. Ok?

Para iniciarmos nossas atividades, precisaremos criar uma tabela contendo os campos a seguir:

– Nome, Sobrenome, Login, Email, Sexo, Data de Cadastro, Tipo, CPF, CNPJ, RazaoSocial, RG, DataNascimento, Logradouro, Numero, Complemento, Referencia, Bairro, Cidade, Estado, Pais, Telefone1, Telefone2, Celular, Fax.

OBS.: Em nossa simulação, não utilizaremos todos os campos. Caso você queira selecionar os principais, não tem problemas.

Bem… antes de colocarmos a mão na massa, digamos que você tenha 3 tabelas com os seguintes nomes: Conta, Usuario e Endereço.

Terá também um sistema interno que receberá todos os dias os novos usuários cadastrados em seu site, porém, na hora de apresentá-los, precisará retornar todos os dias os já cadastrados e os antigos juntos (todos em formato XML).

Não estamos aqui falando de 6 ou 10 usuários e sim de 200.000 cadastros.

Por esse motivo, precisamos pensar sobre o desempenho deste Servidor!

Não sei se você já trabalhou com XML, mas ele deverá seguir o seguinte formato:



Lorem Ipsum
Dolor
Lorem
teste@teste.com

Para retorná-los, você poderá fazer através de uma Procedure (que retorna todos os registros para o meu objeto), entre diversas opções (cada qual especificada dentro de sua linguagem de programação preferencial).

OBS.: Trabalhando com a Procedure, sua aplicação poderá ficar até 60% mais rápida, o que dá uma maior estabilidade ao Servidor e eficiência ao script que está sendo trabalhado.

Para exemplificar vamos dar um Select nos campos Nome, Sobrenome e E-mail (conforme o exemplo abaixo):


------EFETUANDO UM SELECT ------
CREATE PROCEDURE GerarXMLUsuarios AS BEGIN

SELECT [UsuNome], [UsuSobrenome], [UsuEmail] FROM [tbUsuarios] END
------

Feito isso, utilizaremos a cláusula FOR XML.

O FOR XML tem por finalidade organizar e retorna as informações em formato XML.

Se você nunca utilizou este recurso, o FOR XML, veja que ele pode ser utilizado das seguintes maneiras:

Modo Auto

Retorna os resultados da consulta como elementos XML simples e alinhado, ou seja, cada tabela indicada depois da cláusula FROM, é um elemento do XML , as colunas indicadas no SELECT são atributos. Utilizamos o AS para nomear os elementos:

Exemplo:


SELECT [UsuNome] AS Nome, [UsuSobrenome] AS Sobrenome, [UsuEmail] AS Email

FROM [tbUsuarios] AS UsuariosGerais FOR XML AUTO

OBS.: Utilizando tal recurso, você terá um resultado como este:






OBS.:Se alguma coluna do Select for de uma tabela já identificada, ela é colocada como atributo (conforme visto acima), se for de uma tabela diferente será adicionada como elemento dentro do elemento pai, que é a 1º tabela especificada:


SELECT UsuariosGerais.[UsuNome] AS Nome,
UsuariosGeraisIntro.[UsuSobrenome] AS Sobrenome,
UsuariosGerais.[UsuEmail] AS Email FROM [tbUsuarios] AS UsuariosGerais
INNER JOIN [tbUsuarios] AS UsuariosGeraisIntro ON
UsuariosGerais.UsuCodigo = UsuariosGeraisIntro.UsuCodigo FOR XML AUTO

Para este tipo de select, receberemos algo assim:







OBS.: Veja que como estou pegando o Sobrenome de uma “tabela diferente”, ele criou uma nova Tag dentro da principal e aplicou o atributo Sobrenome a ela.

Modo RAW

No modo RAW cada resultado da instrução SELECT vem em linha de acordo com o nome fornecido ao RAW.

Veja o exemplo abaixo:


SELECT [UsuNome] AS Nome, [UsuSobrenome] AS Sobrenome,
[UsuEmail] AS Email FROM [tbUsuarios] AS UsuariosGerais FOR XML RAW
SELECT [UsuNome] AS Nome, [UsuSobrenome] AS Sobrenome, [UsuEmail] AS Email
FROM [tbUsuarios] AS UsuariosGerais FOR XML RAW('Teste')

Para este select, receberemos algo assim:






< Teste Nome="Ipsum" Sobrenome="Teste" Email="ipsum@teste.com.br" />
< Teste Nome="Dolor" Sobrenome="Teste" Email="dolor@teste.com.br" />
< Teste Nome="Lorem Ipsum" Sobrenome="Teste" Email="loremipsum@teste.com.br" />

OBS.: Diferente do AUTO, podemos nomear nossas elementos de acordo com o que colocamos no RAW e tabelas diferentes não são criadas como novos elementos filhos.

Modo PATH

O modo PATH tem uma maneira simples de misturar nós de elementos e atributos, e para propriedades mais complexas o PATH pode ser utilizado para trazer resultados com mais facilidade. Os nomes ou alias de colunas são tratados como expressões XPath.

Veja o exemplo abaixo:


SELECT [UsuNome] AS '@Nome', [UsuSobrenome] AS Sobrenome,
[UsuEmail] AS Email FROM [TIKCUsuarios] AS Usuarios FOR XML PATH

Para este Select, teremos um resultado como o exemplo a seguir:



Teste
lorem@teste.com.br


Dolor
ipsum@teste.com.br


Teste
dolor@teste.com.br


Teste
loremipsum@teste.com.br

OBS.: Veja que onde colocamos o @ temos um Atributo, os que estão sem o @ são Elementos.

Temos uma outra alternativa, veja:


SELECT [UsuCodigo] AS '@ID', [UsuNome] AS 'Nome/Nome' ,
[UsuSobrenome] AS 'Nome/Sobrenome', [UsuEmail] AS 'Email'
FROM [TIKCUsuarios] AS Usuarios FOR XML PATH('Usuarios')

Para este Select, temos o seguinte resultado:




Lorem
Teste

lorem@teste.com.br



Ipsum
Teste

ipsum@teste.com.br



Dolor
Teste

dolor@teste.com.br



Lorem Ipsum
Teste

loremipsum@teste.com.br

Obs.: Veja que neste exemplo estamos utilizando registros pai e filho.
Quando colocamos “/” entre os nomes dos elementos, o elemento anterior a “/” é considerado como pai e o que vem a seguir é considerado como elemento filho.

É importante notar que o @ só pode ser usado se for o 1º elemento, ou se o elemento anterior for @ também. No caso se colocássemos o @ no Email dará um erro.

Bem… essas são algumas opções que você pode começar a usar no seu dia a dia.

Temos ainda opções mais avançadas como o Explicit, Type, entre várias outras opções, mas fogem um pouco deste artigo, já que é voltado a quem está começando com o XML junto ao SQL Server.

Bem… após selecionar o conteúdo corretamente, você terá de trabalhar esse resultado!

Te incentivamos a conhecer mais sobre o XML em matérias específicas.

Caso você tenha alguma dúvida, me coloco a disposição para lhe ajudar.

DOWNLOAD: Descarregue o código utilizado neste tutorial: MSSQL – Gerando XML Através Do MsSQL Server, em formato .zip.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Deixe o seu comentário, participe!

Leave a Reply

Your email address will not be published. Required fields are marked *


Versão Beta

Estamos a mudar

Olá, Somos criadores de conteúdo apaixonados por web design, programação, criação de websites e tecnologias digitais. Ajudamos os nossos clientes a levar o conteúdo certo às pessoas certas, criando artigos e recursos que facilitam a criação e otimização de websites.

Artigos Populares

Guia Prático Sobre Segurança Do Joomla

Dicas para diminuir substancialmente o número de vetores de ataque ao Joomla! Proteja o seu trabalho!

Os Segredos Do Sucesso Na Internet

A responsabilidade. O querer. O erro e a experimentação. O social. A memória da internet. Ser quem você é.

38 Ideias Espetaculares Para Sites De Empresas

Encontre inspiração nestes 45 exemplos de sites de empresas para criar o site da sua empresa.