Welcome to Sign in | Join | Help

Tipul de date XML

  •  10-19-2006, 10:54 AM

    Tipul de date XML

    Tipul de Date XML

    Un tip nou de date suportat de SQL Server 2005 este tipul de date xml. Tipul de date xml permite stocarea de documente in format xml sau fragmente de documente xml avand o dimensiune de pana la 2GB. Se pot declara variabile de tip xml, se pot defini tabele cu coloane de acest tip sau se pot folosi parametrii de tip xml. Optional se poate asocia o schema pentru a valida o instanta a tipului xml, schema putand fi stocata in baza de date.

    Pentru stocarea tipului de date xml se foloseste modelul InfoSet (in care ordinea atributelor, spatiile nesemnificative, prefixele spatiilor de nume si declaratia XML nu este pastrata). Astfel in urmatorul exemplu variabilele x si y sunt echivalente din punct de vedere al modelului InfoSet insa distincte lexical.

    Exemplu:

    declare @x xml

    declare @y xml

    set @x = '<document nume="document xml"></document>'

    set @y = '<document nume="document xml"/>'

    select @x,@y

    Doua instante xml nu pot fi comparate direct (insa poate fi convertit la un alt tip de date ca de exemplu varchar pentru a putea fi comparate). Din acest motiv nu putem defini o cheie primara sau unica pe o coloana de tip xml, nu putem defini o constrangere clasica sau folosi un index clasic pentru acest tip de date.

    Pentru a interoga eficient tipul de date xml se foloseste limbajul integrat XQUERY si se pot defini indecsi XML (diferiti de cei clasici – permitand o interogare eficienta in cadrul unei instante si nu a unui set).

    Pentru modificarea datelor se foloseste instructiunea modify - o extensie a limbajului XQUERY.

    Observatii:

    • desi se pot stoca fragmente de documente xml acestea trebuie sa fie „bine formate” 
    • se pot defini constrangeri pe o coloana tip xml folosind functii
    • se poate defini un index full-text pe o coloana tip xml
    • se pot asocia o valoare implicita pentru o coloana de tip xml

    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
    Filed under: ,
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems