Vous êtes sur la page 1sur 18

Travailler avec des donnes de type XML

Version 1.0
Z

Grgory CASANOVA

Travailler avec des donnes de type XML 28/07/2009

Sommaire

1 2 3

Introduction ..................................................................................................................................... 3 Pr requis......................................................................................................................................... 4 XML typ et non typ ...................................................................................................................... 5 3.1 3.2 Non typ .................................................................................................................................. 5 Typ ......................................................................................................................................... 5

XML et DML ..................................................................................................................................... 7 4.1 4.2 Le DML Gnral ....................................................................................................................... 7 Le DML Spcifique ................................................................................................................... 9 Query()............................................................................................................................. 9 Value() ............................................................................................................................. 9 Exist() ............................................................................................................................. 10 Nodes() .......................................................................................................................... 11 Modify() ......................................................................................................................... 12 Les requtes XQuery et XPath ....................................................................................... 13

4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.3 4.4 4.5 5 6

FOR XML ................................................................................................................................ 13 OpenXML ............................................................................................................................... 15 OPENROWSET........................................................................................................................ 16

INDEX et XML................................................................................................................................. 17 Conclusion ..................................................................................................................................... 18

Dotnet France Association - CASANOVA Grgory

Travailler avec des donnes de type XML 28/07/2009

1 Introduction
Le type de donnes XML est apparu dans SQL Server la premire fois pour la version 2000. Ce rsultat est d une volution des types de stockages pour les entreprises. Le type de donnes XML tant de plus en plus utilis, il tait vident que Microsoft sadapte dans son SGBDR. Dans le cas prsent, ce qui nous intresse nest pas de pouvoir stocker les donnes au format XML, mais de les exploiter directement et de faon optimale grce SQL Server 2008. Il sera donc possible, grce SQL Server, dintgrer des donnes contenues dans un document XML, aux tables dans un schma relationnel, ou inversement, de produire un document XML, grce aux donnes relationnelles dune ou plusieurs tables dans une base de donnes. Le but de lintgration du XML dans SQL Server, est de pouvoir stocker les donnes dans leur format natif, cest pourquoi il est possible dintgrer des donnes dans un schma relationnel, aussi bien que dans leur format XML dorigine. Il nest pas difficile de comprendre que Microsoft a considrablement augment sa capacit de gestion des donnes XML depuis la version 2000, dans le sens ou il ntait avant possible que de produire un document XML partir de donnes relationnelles alors que dsormais il est possible de travailler directement dessus dans leur forme native. De faon gnrale, les types de donnes, quils soient relationnel ou typs XML, ne sont pas en concurrence dans votre base de donnes. Chacun possde ses avantages et ses inconvnients. En effet, le XML sera particulirement adapt lorsque nous aurons besoin de faire de lchange dinformation ou encore de lenvoie de messages. Le type XML tant organis de faon hirarchique, Il est donc simple, du moment que la hirarchie est connue, de retrouver des donnes. Les donnes sont types en UTF-16 par SQL Server. Dans SQL Server, il est possible dassocier une colonne de type XML une collection de schma pour satisfaire les exigences du W3C en matire de XML. Dans le cas o la colonne qui contient les documents est attache des collections de schma, on dira que le XML est typ, sinon il sera non typ. Pour ce cours, nous allons utiliser une table, qui possdera une seule colonne type XML, dont le script est le suivant :
CREATE TABLE Donnees_XML (Colonne_XML XML)

Nous nallons pas pouvoir traiter le langage XML dans sa totalit dans ce cours, cest pourquoi, si ce langage vous intresse, il vous est possible de trouver de la documentation sur celui-ci, ladresse suivante : http://www.w3.org/TR/REC-xml/ .

Dotnet France Association - CASANOVA Grgory

Travailler avec des donnes de type XML 28/07/2009

2 Pr requis
Pour pouvoir comprendre ce chapitre au mieux, vous devez connaitre : Les diffrentes oprations possibles sur une base de donnes, grce au T-SQL (Chapitre 4).

Dotnet France Association - CASANOVA Grgory

Travailler avec des donnes de type XML 28/07/2009

3 XML typ et non typ


3.1 Non typ
Le XML, tel quil est dfinit par la norme ISO SQL-2003, se doit daccueillir des documents XML 1.0 bien forms. Comme dit plus haut, un document non typ sera un document qui nest pas rattach une collection de schmas, et donc, qui se doit daccueillir des documents XML bien forms. Vous laurez compris, les donnes XML non typs doivent tre utilises lorsquil nest pas possible de dfinir une collection de schmas.

3.2 Typ
Des donnes XML types seront, comme nonc prcdemment, des documents lis une collection de schmas. Puisque dans SQL Server, nous stockons les documents XML dans les colonnes types XML, il est possible de rattacher directement une collection de schmas une colonne particulire, afin que tous les documents devant tre stocks dans la colonne soient concerns par la collection de schmas. Il ne sera donc pas possible, si une collection de schma est li une colonne, dinsrer un document ne respectant pas le schma dfinit. On peut donc dfinir les schmas comme des contraintes dintgrit concernant les documents XML. La gestion des collections de schmas XML se font par les mots cl CREATE XML SCHEMA COLLECTION, ALTER XML SCHEMA COLLECTION ET DELETE XML SCHEMA COLLECTION. Chaque collection va pouvoir contenir un ou plusieurs schmas XML, et va pouvoir tre modifi aprs sa cration, ce qui va nous permettre de sadapter au fait de devoir ajouter ou supprimer des schmas dans la collection. La gestion des collections sera alors bien plus simple et flexible. La cration dun schma se fait ainsi :
CREATE XML SCHEMA COLLECTION Schema_XML AS N'<?xml version="1.0" encoding="UTF-16"?>'+ '<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">'+ '<xs:complexType name="Client">'+ '<xs:sequence>'+ '<xs:element name="Nom"/>'+ '<xs:element name="Prenom"/>'+ '</xs:sequence>'+ '</xs:complexType>'+ '</xs:schema>';

Dans cet exemple, la colonne laquelle sera rattach le schma devra comporter le mme schma que dfinit aprs la clause AS. Dsormais pour rattacher ce schma une colonne, il faut le dfinir la cration de la table, comme ceci :
CREATE TABLE Donnees_XML (Colonne_XML XML (Schema_XML))

La colonne ou est dsormais dfini le schma ne pourra accepter que des valeurs formates ce schma. Note : Pour des donnes de type XML, il nest pas toujours possible de dfinir lavance tout ce quelles vont contenir. Par exemple, on pourra ajouter un numro de tlphone pour le complter. Dans ce cas, le mot cl any nous aide dans cet objectif.

Dotnet France Association - CASANOVA Grgory

Travailler avec des donnes de type XML 28/07/2009

CREATE XML SCHEMA COLLECTION Schema_XML AS N'<?xml version="1.0" encoding="UTF-16"?>'+ '<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">'+ '<xs:complexType name="Client">'+ '<xs:sequence>'+ '<xs:element name="Nom"/>'+ '<xs:element name="Prenom"/>'+ '<xs:any namespace="autre" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>'+ '</xs:sequence>'+ '</xs:complexType>'+ '</xs:schema>';

Le mot cl any est suivit des attributs suivants : - Namespace : lespace de nom utilis pour la validation des lments de ce type. - processContents : indique la manire dont les lments doivent tre valids par SQL Server. Trois valeurs sont possibles pour cet attribut : - skip : les lments ne sont pas valids par rapport un schma. - strict : les lments sont valids ncessairement par un schma. - lax : les lments sont valids par un schma seulement si celui-ci existe dans la base. - minOccurs : nombre minimal dlments de ce type. - maxOccurs : nombre maximal dlments de ce type.

Dotnet France Association - CASANOVA Grgory

Travailler avec des donnes de type XML 28/07/2009

4 XML et DML
Pour rendre plus simple la comprhension de cette partie, nous allons supprimer la table que nous avons cre avant, puis la recrer de faon ce quelle ne soit plus lie au schma.
DROP TABLE Donnees_XML GO CREATE TABLE Donnees_XML (catalogue XML) GO

Dcouvrons maintenant les diffrentes instructions du DML appliques la manipulation du type de donnes XML.

4.1 Le DML Gnral


Dans un premier temps, il est ncessaire de bien comprendre certaines choses. Tout dabord, lorsque nous appliquons une instruction du DML une colonne de type XML, tout le contenu de lenregistrement est manipul, on peu donc considrer quon ne peut pas mettre jour seulement une balise du document XML. Voici les rsultat des quatre instructions du DML sur une colonne de type XML : INSERT :

INSERT INTO [Entreprise].[dbo].[Donnees_XML] ([Colonne_XML]) VALUES ('<article> <nom>Windows Seven</nom> <prix>139</prix> </article>') GO

Ici, nous insrons un article dont la dfinition contient un nom et un prix. Il est aussi possible dimporter les donnes XML depuis un fichier. Pour cela, crez un fichier que nous appellerons Cours.txt, et insrez le code suivant dans celui-ci :
<article> <nom>Windows Seven</nom> <prix>139</prix> </article>

Nous utilisons le code ci-dessous :


INSERT INTO [Entreprise].[dbo].[Donnees_XML] ([Colonne_XML]) SELECT informations FROM (SELECT * FROM OPENROWSET(BULK 'C:\Users\Grgory Casanova\Desktop\Cours.txt', SINGLE_BLOB) AS informations) AS fichierXML(informations)

Grce aux instructions OPENROWSET et BULK, le contenu du fichier dont le chemin est 'C:\Users\Grgory Casanova\Desktop\Cours.txt' sera pars et insr dans la colonne de type XML de notre table. Dotnet France Association - CASANOVA Grgory

Travailler avec des donnes de type XML 28/07/2009 UPDATE :

UPDATE [Entreprise].[dbo].[Donnees_XML] SET [Colonne_XML] = '<article> <nom>Windows Vista</nom> <prix>139</prix> </article>' GO

Note : Il est important de noter quici, nous changeons soit lintgralit de lenregistrement, soit rien. Tout lenregistrement doit tre redfinit dans le cas dun update simple. Il est indispensable de rcrire la totalit du code XML. SELECT :

SELECT * FROM dbo.Donnees_XML

Lintgralit des donnes stockes dans chaque enregistrement sera slectionne. Avec une instruction SELECT simple, il nest pas possible de slectionner seulement le prix de larticle par exemple. Le rsultat dune instruction SELECT se prsente de cette manire :

On remarque alors que le champ est cliquable. Le rsultat Complet est accessible avec un clic sur celui-ci. Nous somme alors redirigs vers une nouvelle fentre de requte qui nous prsente lintgralit du code XML contenu dans le rsultat, comme ceci :

DELETE :

DELETE FROM [Entreprise].[dbo].[Donnees_XML] GO

Dotnet France Association - CASANOVA Grgory

Travailler avec des donnes de type XML 28/07/2009

4.2 Le DML Spcifique


Dans la partie prcdente, nous avons vue que les instructions DML gnrales ne peuvent toucher que lensemble des donnes dun fichier XML, et non pas une partie de celui-ci. Il va de sois que la force principale du XML dans la base de donnes est de pouvoir diffrencier les informations dans un document, sans pour autant avoir besoin de manipuler lenregistrement entier. Cest pourquoi il existe une mthode spcifique au type de donnes XML pour manipuler les donnes. Ces mthodes sont query(), value(), exist(), nodes() et modiify(). Voyons en dtail toutes ces mthodes de manipulation des donnes XML. 4.2.1 Query() Cette requte accepte en paramtre une requte de type Xquery. Elle va nous permettre de naviguer dans notre document XML, et dappliquer une action DML sur un nud particulier de notre document. Cette requte retourne une valeur XML non type. Prenons un exemple :

SELECT catalogue.query('article/nom') FROM Donnees_XML

Le rsultat est le suivant :

Il est aussi possible de cliquer sur le rsultat de la requte pour afficher le rsultat complet dans le gestionnaire de donnes XML. On retiendra que ce type de requte retourne un nud complet du document XML et non la valeur comprise entre les balises dun nud de ce mme document. 4.2.2 Value() Grce linstruction value(), nous allons pouvoir extraire la valeur contenue entre les balises XML dun nud du document XML sur lequel on travaille. Prenons un exemple :
USE Entreprise SELECT catalogue.value('(article/nom)[1]', 'nvarchar(50)') FROM Donnees_XML

La requte value suit le nom de la colonne de type XML o nous allons oprer. Cette requte prend 2 arguments qui sont le chemin de la valeur et un singleton, et le type de retour de la requte. La requte ci-dessus produit le rsultat suivant :

Dotnet France Association - CASANOVA Grgory

10

Travailler avec des donnes de type XML 28/07/2009 On remarque alors que les balises ont disparues, et quil ne reste que la valeur comprise dans le nud que nous avons plac en argument dans notre requte value(). 4.2.3 Exist() Cette instruction fait partie des instructions XQuery, et retourne une valeur scalaire de type bit. Si les donnes sont localises, sa valeur est 1, si les donnes ne peuvent pas tre localises, sa valeur est 0 et si la valeur de linformation trouver est NULL, alors sa valeur est NULL. Ce type dinstruction est pratique utiliser conjointement aux autres instructions XQuery disponibles, par exemple, pour viter la leve derreurs imprvues. Pour prendre un exemple plus concret, nous allons faire une insertion dans la table.
INSERT INTO Donnees_XML VALUES ('<article> <nom>Windows Seven</nom> <prix>139</prix> </article>'), ('<article> <nom>Windows Vista</nom> <prix>100</prix> </article>'), ('<article> <nom>Windows XP</nom> </article>')

Cette fois-ci, nous avons ajout trois lignes dans notre colonne XML, deux contenant un prix et la troisime nen contenant pas. Voyons maintenant le rsultat dun exemple dutilisation de linstruction exist() :

SELECT catalogue.value('(article/nom)[1]', 'nvarchar(50)') FROM Donnees_XML WHERE catalogue.exist('(article/prix)[1]') = 1

Cette requte retourne toutes les lignes pour laquelle il existe une balise XML <prix> non NULL. En voici le rsultat :

On remarque alors que llment pour lequel il manquait le prix nest pas prsent, puisque la balise XML <prix>, nexistait pas. En revanche, si lon passe la valeur de la requte exist() 0, ce produit sera retourn, en remplacement des deux autre contenant une balise de prix.
SELECT catalogue.value('(article/nom)[1]', 'nvarchar(50)') FROM Donnees_XML WHERE catalogue.exist('(article/prix)[1]') = 0

Voici le rsultat : Dotnet France Association - CASANOVA Grgory

11

Travailler avec des donnes de type XML 28/07/2009

4.2.4

Nodes() Linstruction nodes() va nous permettre de morceler notre rsultat, partir de nuds particuliers, pour retourner seulement le prix par exemple. Dans notre exemple, nous allons morceler le rsultat de rendu dun document XML contenu dans une variable de type XML. Le rsultat retournera plusieurs lignes dans lesquelles chaque prix apparaitra. Nodes() permet par consquent de retourner une suite de lignes de rsultats en dfinissant un nud particulier dans le document XML.
DECLARE @XML XML = '<article> <nom>Windows Seven</nom> <prix>139</prix> </article> <article> <nom>Windows Vista</nom> <prix>100</prix> </article> <article> <nom>Windows XP</nom> </article>' SELECT resultats.x.query('.') from @XML.nodes('article/prix') AS resultats(x)

Le rsultat est le suivant :

Il est important de comprendre le fondement de cette requte. Nous aurions pue utiliser une simple requte query() pour retourner les prix du document XML, comme ceci :
DECLARE @XML XML = '<article> <nom>Windows Seven</nom> <prix>139</prix> </article> <article> <nom>Windows Vista</nom> <prix>100</prix> </article> <article> <nom>Windows XP</nom> </article>' SELECT @XML.query('article/prix')

Dotnet France Association - CASANOVA Grgory

12

Travailler avec des donnes de type XML 28/07/2009 Dont le rsultat est celui-ci :

Simplement, en utilisant une requte query() au lieu dune requte nodes(), tous les prix auraient t dans la mme ligne de rsultat, au lieu dtre spars comme vu dans les exemples. 4.2.5 Modify() Comme son nom lindique, linstruction XQuery modify(), permet de modifier les donnes contenues dans un document XML, de faon cible, contrairement linstruction UPDATE qui nous permet de mettre jour la totalit des donnes contenu dans la colonne. Pour ajouter, modifier ou supprimer des informations dans un document XML via la mthode modify(), on utilisera les instructions XML DML insert, replace value of et delete. Prenons un exemple :
DECLARE @XML1 XML = '<ROOT> <article> <nom>Windows Seven</nom> <prix>139</prix> </article> <article> <nom>Windows Vista</nom> <prix>100</prix> </article> <article> <nom>Windows XP</nom> </article> </ROOT>' DECLARE @XML2 XML ='<quategorie>informatique</quategorie>' SET @XML1.modify('insert sql:variable ("@XML2") as last into (/ROOT/article)[1]') SET @XML1.modify('insert sql:variable ("@XML2") as last into (/ROOT/article)[2]') SET @XML1.modify('insert sql:variable ("@XML2") as last into (/ROOT/article)[3]')

Cette instruction va permettre de rajouter aux trois lignes, une valise quategorie pour chaque nud article du document. Voici le rsultat :

Dotnet France Association - CASANOVA Grgory

13

Travailler avec des donnes de type XML 28/07/2009

<ROOT> <article> <nom>Windows Seven</nom> <prix>139</prix> <quategorie>informatique</quategorie> </article> <article> <nom>Windows Vista</nom> <prix>100</prix> <quategorie>informatique</quategorie> </article> <article> <nom>Windows XP</nom> <quategorie>informatique</quategorie> </article> </ROOT>

4.2.6

Les requtes XQuery et XPath Il existe un langage pour excuter la plupart des requtes possible dans SQL Server pour le format XML : Le XQuery et le XPath. Couvrir la totalit de ce langage serai trop long pour un seul chapitre, de plus, il est entirement disponible sur le site officiel du W3C laddresse suivante : http://www.w3.org/TR/xquery .

4.3 FOR XML


La clause for XML permet de passer un jeu de rsultat de donnes dun format relationnel en un format XML au travers dune requte de type SELECT. Cependant, malgr le fait que les informations soient extraites dans une forme XML, elles ne sont pas pour autant types XML. Pour typer les donnes extraites au format XML, il faut ajouter la clause TYPE. Dans ce cas, les donnes extraites pourront directement insres dans une colonne de type XML par exemple, car elles sont types XML. Prenons un exemple concret :
USE Entreprise SELECT Id_Client, Nom_client FROM Client FOR XML AUTO, TYPE

Le rsultat est le suivant au travers de lditeur XML:


<Client <Client <Client <Client <Client <Client Id_Client="1" Id_Client="2" Id_Client="3" Id_Client="4" Id_Client="5" Id_Client="6" Nom_client="CASANOVA" /> Nom_client="RAVAILLE" /> Nom_client="DOLLON" /> Nom_client="VERGNAULT" /> Nom_client="VASSELON" /> Nom_client="HOLLEBEC" />

Si FOR XML AUTO transcrit directement les nuds de votre format relationnel au format XML, il est possible de dfinir ce chemin de la manire suivante :
USE Entreprise SELECT Id_Client, Nom_client FROM Client FOR XML PATH('Client'), TYPE

Le rsultat est le suivant : Dotnet France Association - CASANOVA Grgory

14

Travailler avec des donnes de type XML 28/07/2009

<Client> <Id_Client>1</Id_Client> <Nom_client>CASANOVA</Nom_client> </Client> <Client> <Id_Client>2</Id_Client> <Nom_client>RAVAILLE</Nom_client> </Client> <Client> <Id_Client>3</Id_Client> <Nom_client>DOLLON</Nom_client> </Client> <Client> <Id_Client>4</Id_Client> <Nom_client>VERGNAULT</Nom_client> </Client> <Client> <Id_Client>5</Id_Client> <Nom_client>VASSELON</Nom_client> </Client> <Client> <Id_Client>6</Id_Client> <Nom_client>HOLLEBEC</Nom_client> </Client>

De plus, lune des rgles essentielle du XML est la suivante : Tout nud doit avoir un seul nud au niveau suprieur. Cest pourquoi il existe la clause ROOT. En voici un exemple :
USE Entreprise SELECT Id_Client, Nom_client FROM Client FOR XML PATH('Client'),ROOT('ROOT'), TYPE

Le rsultat est le suivant :

Dotnet France Association - CASANOVA Grgory

15

Travailler avec des donnes de type XML 28/07/2009

<ROOT> <Client> <Id_Client>1</Id_Client> <Nom_client>CASANOVA</Nom_client> </Client> <Client> <Id_Client>2</Id_Client> <Nom_client>RAVAILLE</Nom_client> </Client> <Client> <Id_Client>3</Id_Client> <Nom_client>DOLLON</Nom_client> </Client> <Client> <Id_Client>4</Id_Client> <Nom_client>VERGNAULT</Nom_client> </Client> <Client> <Id_Client>5</Id_Client> <Nom_client>VASSELON</Nom_client> </Client> <Client> <Id_Client>6</Id_Client> <Nom_client>HOLLEBEC</Nom_client> </Client> </ROOT>

4.4 OpenXML
Cette instruction permet de traiter un document XML sous la forme dun jeu de rsultats. Il est possible dutiliser cette instruction couple un SELECT, INSERT, UPDATE et DELETE. Pour utiliser cette mthode, il est necessaire de retenir lutilisation de deux procdures stockes qui sont les suivantes : Sp_xml_preparedocument : permet de prparer un document texte au format XML. Cette procdure stocke retourne un identifiant qui va servir la mthode OpenXML retrouver les donnes XML cres. Sp_xml_removedocument : permet de librer lespace mmoire occup par le document prpar par la procdure stocke prcdente.

Prenons un exemple :
DECLARE @ID_XML int DECLARE @XML1 nvarchar(500) = '<ROOT> <article nom="Windows Seven" prix="139"></article> </ROOT>' exec sp_xml_preparedocument @ID_XML OUT, @XML1 SELECT * FROM OPENXML(@ID_XML, 'ROOT/*') WITH (nom nvarchar(50), prix money) exec sp_xml_removedocument @ID_XML

Le rsultat est le suivant :

Dotnet France Association - CASANOVA Grgory

16

Travailler avec des donnes de type XML 28/07/2009

On stocke dans un premier temps notre document texte dans une variable. On le prpare ensuite grce la procdure stocke de prparation de documents XML. On applique ensuite OPENXML pour extraire les donnes contenues dans le document au format XML. Lorsque linstruction SELECT est termine, on utilise la procdure stocke de suppression de document XML pour librer lespace mmoire contenant le document prpar.

4.5 OPENROWSET
Cette mthode permet de travailler facilement avec des donnes prsentes lextrieur du serveur. La source de donnes peut tre le systme de fichier Windows ou encore une autre base OLEDB. Prenons un exemple :
USE Entreprise INSERT INTO Donnees_XML SELECT INFO FROM (SELECT * FROM OPENROWSET (BULK 'C:\Users\Grgory Casanova\Desktop\Cours.xml', SINGLE_BLOB) AS INFO) AS fichierXML(INFO)

Dans cet exemple, on insre les donnes contenues dans un document XML, prsent sur le systme de fichier Windows, dans une table contenant une colonne type XML.

Dotnet France Association - CASANOVA Grgory

17

Travailler avec des donnes de type XML 28/07/2009

5 INDEX et XML
Lors dune requte, les donnes types XML peuvent tre volumineuses ou/et nombreuses, et donc tre couteuses en ressources au niveau serveur. Un index dit principal, sur une colonne XML, est construit de la mme manire quun index sur une colonne dun type simple. Il existe simplement des index dit secondaires qui vont servir acclrer la recherche de donnes. Les index secondaires sont dfinis celons des classes de requtes frquentes : PATH : Pour les requtes portant sur le chemin daccs. PROPERTY : Pour les requtes portant sur les proprits. VALUE : Pour les requtes portant sur des valeurs.

Tout dabord, la cration dun index primaire ncessite que la cl primaire de la table qui contient la colonne XML contienne un index organis. On peut alors crer lindex primaire de cette faon :
CREATE PRIMARY XML INDEX nom_index ON nom_table(Colonne)

Il nest donc possible de crer un index secondaire seulement si un index primaire est dfinit sur cette colonne. Voici la mthode de construction :
CREATE XML INDEX nom_index_secondaire ON nom_table(Colonne) USING XML INDEX nom_index_primaire FOR (PATH|PROPERTY|VALUE)

Vous lavez compris avec la structure gnrale, la cration de lindex secondaire ncessite le rfrencement de lindex primaire. Il est alors possible de choisir les trois options dfinis auparavent : PATH : Ce genre de clause amliore sensiblement les performances dune requte contenant une clause exist(). PROPERTY : Amliore les performances dune requte utilisant la mthode value(). VALUE : Amliore aussi sensiblement la mthode exist().

Dotnet France Association - CASANOVA Grgory

18

Travailler avec des donnes de type XML 28/07/2009

6 Conclusion
Le type de donnes XML est de plus en plus prsent dans le cadre de lentreprise, et dans le cas gnral dans le cadre de linformation, en particulier lors de linteraction dapplications clientes avec la base. Toutes les informations prsentes dans ce chapitre vous permettrons de transformer des donnes relationnelles en donnes XML et linverse, aussi bien quindexer une colonne de type XML.

Dotnet France Association - CASANOVA Grgory

Vous aimerez peut-être aussi