Niektóre bazy - na przykład PostgreSQL - posiadają dedykowane typy danych do przechowywania XMLa i zestawy funkcji do operacji.
http://www.postgresql.org/docs/8.4/interactive/datatype-xml.html
http://www.postgresql.org/docs/8.4/interactive/functions-xml.html
Jesli na przykład masz duży zbiór metadanych w postaci plików XML i nie wiesz co będzie potrzebne z tych plików za pół roku, możesz zaimportować je do bazy danych, a potem wyciągać z nich potrzebne dane za pomocą xpath.
Sytuacja z życia - duży zbiór danych dotyczacych płyt CD - pliki kilkaset tysięcy plików meta, nie bardzo wiadomo co z nich wyciągnąć od razu, jaka struktura będzie potrzebna.
Zostały wciągnięte jako dane typu xml, i teraz w razie potrzeby można uzupełniać strukturę docelową za pomocą zapytań z użyciem funkcji xpath, np tego typu:
SELECT id,
xpath('Artist/text()', meta) as artists,
xpath('//Track/track_title/text()', meta) as tracks
FROM import_sources
LIMIT 3;
Wynik:
[ RECORD 1 ]
id | 1
artists | {"Will Hoge"}
tracks | {"Not That Cool","Be The One","King Of Grey","Secondhand Heart","Hey Tonight","Doesn't Have To Be That Way","It's A Shame","Someone Else's Baby","TV Set","Better Off Now","All Night Long","Baby Girl"}
[ RECORD 2 ]
id | 2
artists | {"Pulse Ultra"}
tracks | {Acceptance,"Finding My Place","Put It Off","Big Brother","Never The Culprit","Slip In Sin",Prelude,Void,"Build Your Cages",Tired,Interlude,"Look Closer","Glass Door",Despot}
[ RECORD 3 ]
id | 3
artists | {Outspoken}
tracks | {"Bitter Shovel",Revolving,Farther,"Feel This","Loose End","Deeper Than Down",Elastic,"Way I Am","My Turn",Now,Judging,Guidance}
Zaloguj się, aby dodać swoją odpowiedź