XML ja .NET Skeemiga kaitstud andmebaasitulp XMLi levikuga koos on märgatav osa programmeerimiskeeltest ja arendusvahenditest omale lisanud vahendid XMLiga mugavamaks ümberkäimiseks. DOM ja SAX on levinumad, ehk peaaegu "poolkohustuslikud". Levinud on aga ka hulgaliselt muid kasulikke abivahendeid. Microsofti .NET raamistik on püüdnud XMLiga ümber käimist mitut moodi mugavamaks muuta. Kuna XMLi andmed on tehniliselt hariliku teksti andmed, siis saab neid ka rahumeeli tekstina andmebaasi tulpades hoida. Teksti puhul aga saab selle väärtust kontrollida vaid tavatekstile iseloomulike tunnuste abil (pikkus, lubatud sümbolid). XML-vormingus andmeid hoides on kindlam näpuvigadest hoiduda, kui teame ka, et tabelisse sisestatud andmeid kontrollitakse etteantud skeemi järgi. Tulba kaitsmiseks skeemiga tuleb kõigepealt luua skeemitüüp, nimetus konkreetse kirjeldatud skeemi jaoks. Praegusel juhul piirdutakse lihtsa teatega. CREATE XML SCHEMA COLLECTION teateskeem AS N' ' Edasi tabelit luues saab tulba tüübiks määrata XMLi, lisades sulgudes sinna juurde valitud olemasoleva skeemitüübi. CREATE TABLE teatetabel (teatetulp XML(dbo.teateskeem)) Andmeid tabelisse sisestades kontrollitakse nüüd kuju vastavust ettantud skeemile. Reeglipärane teade läheb läbi. INSERT INTO teatetabel (teatetulp) VALUES('Kool algab kell 8'); Kui aga püütakse tabelisse sisestada vigase ülesehitusega XMLli lõiku, siis antakse veateade ning andmed tabelisse ei jõua. INSERT INTO teatetabel (teatetulp) VALUES('Kool algab kell 8'); XML parsing: line 1, character 31, end tag does not match start tag Andmeid küsida saab nagu ikka SELECT-lausega. Soovides lahti saada automaatselt iga rea juurde lidatavast elemendist nimega "row", piisab, kui raw-sõnajuures SELECT-lauses määrata elemendi nimeks tühi tekst. SELECT teatetulp FROM teatetabel FOR XML RAW(''), ROOT('teated'), ELEMENTS Kool algab kell 8 Sussid kaasa Andmed on küsitavad ka XQueru vahenditega: SELECT teatetulp.query('/teade') from teatetabel