Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
XML
Kompendium programisty
Autor: Fabio Arciniegas
Tumaczenie: Tomasz mijewski
ISBN: 83-7197-573-2
Tytu oryginau: XML Developer
Format: B5, stron: 589
Zawiera CD-ROM
Ksika ta pomoe Ci przy tworzeniu wydajnych aplikacji XML oraz przygotowywaniu
elastycznych struktur dokumentw. Przedstawiono tu wiele technologii XML
m.in. XML bezprzewodowe (WAP, VoiceXML i inne), a take wiele przykadw oraz jzyk
i powizane z nim technologie. Ksika jest przeznaczona dla redniozaawansowanych
i zaawansowanych twrcw publikacji sieciowych. Mona z niej nauczy si, jak
wykorzysta XML do publikacji w Sieci i do wymiany danych; mona pozna
nowopowstajce standardy, w tym schematy XML, XSLT, XPath, XLink i wiele innych.
Tworzenie elastycznej struktury dokumentw XML.
Dodawanie informacji rdowych do dokumentw XML.
Zrealizowanie relacji w bazie danych XML.
Okrelenie sposobu odczytywania dokumentu XML.
Wysoka jako rozwiza.
Zasady uycia si XML.
"
"
"
"
"
"
O Autorze................................................................................................ 15
Wstp..................................................................................................... 17
Spis treci
Spis treci
Spis treci
10
Dodatki............................................................................... 483
Dodatek A Skadnia XML....................................................................... 485
Elementy i atrybuty ............................................................................................................ 485
Deklaracje DTD ................................................................................................................. 486
Odwoania do encji ............................................................................................................ 486
Spis treci
11
12
Rozdzia 16.
Wprowadzenie
Tworzenie duych witryn sieciowych oraz innych aplikacji zaley od moliwoci
przechowywania, wyszukiwania i pobierania duych iloci danych. Mimo e dokumenty XML s elastyczne i nios w sobie duo treci, to z uwagi na wydajno wymagan przy przechowywaniu duych iloci danych, nie mog rwna si z tradycyjnymi bazami danych, jak np. Oracle czy PostgreSQL.
W tym rozdziale przyjrzymy si, jak wygldaj zwizki midzy XML a bazami danych z punktu widzenia twrcy systemw. Szczeglnie bd nas interesoway praktyczne ich zastosowania. Nie bdziemy zajmowa si podstawowymi konstrukcjami
baz danych, zakadamy znajomo samego XML i zagadnie omawianych w rozdziaach 4. i 6. (szczeglnie interfejsu SAX).
Rozdzia ten podzielony zosta na kilka czci: w pierwszej omawiamy podstawowe
zagadnienia oglne, zwizane z bazami danych i XML oraz sposb ich zapisania
w piciu rnych zastosowaniach. Nastpnie dokadnie objanimy poszczeglne zastosowania oraz pokaemy przykady ich implementacji. Dodatkowo pokaemy zestawienia najlepszych bibliotek i produktw, podzielone wedug kategorii.
346
Podczas tworzenia duych aplikacji sieciowych XML (przykad w rozdziale 19.) lub
jakichkolwiek innych aplikacji, w ktrych mamy do czynienia z du iloci danych,
przechowywanie tych danych bezporednio, w postaci dokumentw XML staje si
coraz mniej opacalne. W takich sytuacjach konieczne staje si powizanie dwch
technologii: XML i klasycznych baz danych.
Poczenie to moe przybiera rne postaci, w zalenoci od obsugiwanych dokumentw, zada stawianych przed aplikacj i od tego, jak intensywne bdzie przeksztacanie danych z dokumentw XML w tabele (obiekty baz danych) i odwrotnie.
Typy dokumentw
Z punktu widzenia trwaoci danych, rozrnia si XML opisujcy dokumenty i XML
opisujcy dane.
XML opisujcy dane ma sztywne struktury, ktre s standardowymi, powtarzalnymi
obiektami, skadajcymi si z atrybutw. W tego typu dokumentach dane typu
wystpuj zwykle jedynie jako elementy-licie, rzadko zdarza si te zawarto mieszana.
Poniszy kod stanowi przykad XML opisujcego dane (kolekcja pyt kompaktowych).
Inne przykady to dokumenty wysyki i pliki konfiguracyjne.
!""#!!$!
!
$%$&'(
))
*%'!+%, -
$
.$%$&'
!!/0123405532
$%$&'(
))
6
&
).$%$&'
$%
$7& 8
!
9):7&;!. $%
$
) !&
$<
.) !&
$
//5.
&$+=
& 6
&
).&$+=
&$+=
& 2.&$+=
.!
!!/200340140230
$%$&'(
))
3& ))
.$%$&'
$%
$> ,$+ . $%
$
) !&
$> ,$+ .) !&
$
/?@.
&$+=
& & )
!
.&$+=
.!
33$&$AB%C
=
$+!
*%D)'%$33
. !
347
%
N
$
$D!
$$M7
BO
.$$
$$L) +!*
!M7
.$$
&$D
&
8
-
8.
&
,
$
PB.,
$
.&$D
339B
$ $:33
. $D!
9
$ :
9+D$:
9+D%:
9D+:
9 ,
:
. $
W tej chwili rnica midzy XML opisujcym dane a sucym do zapisu dokumentw bdzie miaa dla nas kapitalne znaczenie, gdy wie si z ni zasadnicze pytanie: czy interesuj nas dane zapisane w XML, czy sam XML?
W przypadku dokumentw interesuj nas raczej same dokumenty: budowa dokumentu, zawarte w nim komentarze, uycie encji i tak dalej wszystko, co dotyczy
opisywanego problemu.
348
W przypadku XML opisujcego dane interesuj nas gwnie (lub wycznie) dane
znajdujce si w dokumencie. To, czy dokument skada si z piciu zewntrznych encji, czy te jest zapisany w caoci zapisany w jednym pliku, nie ma znaczenia1. Tak
samo nie maj znaczenia komentarze, wcicia, a czasem nawet kolejno elementw
(kolejno akapitw w licie jest bardzo wana, natomiast kolejno pozycji faktury
nie ma ju takiego znaczenia).
W wikszoci aplikacji zwizanych z bazami danych XML traktuje si jako rdo
danych, za kluczowe aspekty to: wydajne przetwarzanie duych iloci dokadnych
danych (przykadami mog by spis towarw w hurtowni, zbir danych geograficznych i tak dalej). Dlatego w tym rozdziale powicimy duo uwagi narzdziom i technikom potrzebnym do przekazywania danych midzy XML a bazami danych.
Stopie powizania
Natkniemy si te na problem z okreleniem, ile aplikacja wie o bazie danych, czyli
na ile jest z ni powizana. Tak naprawd jest to pytanie o to, na ile warstwa aplikacji
odpowiada warstwie bazy danych moe by to zwizek od bardzo cisego a po
cakowit niezaleno.
Z bardzo cisym zwizkiem mamy do czynienia wtedy, gdy klasy specjalizowane
znaj struktur bazy danych, potrafi ustanawia poczenia i tworzy zapytania oraz
generowa kod XML na podstawie wynikw.
Kiedy zwizek ten jest bardzo luny, aplikacja nie wie nic o rnych sposobach zapisu danych i po prostu wywoujc odpowiednie funkcje API serwera XML, otrzymuje
dokument XML.
W przypadku powizania poredniego stopnia, do poczenia tradycyjnej bazy danych
(zwykle relacyjnej, jak PostreSQL czy MS SQL) z dokumentami XML uywa si oprogramowania poredniego.
Z analogiczn warstw oprogramowania poredniego mamy do czynienia, jeli uywany jest parser, pobierajcy tabele i generujcy zdarzenia SAX. Parser taki (bdcy
te pewnego rodzaju oprogramowaniem porednim) umieszczony jest midzy aplikacj a baz danych i tworzy w ten sposb interfejs do bazy relacyjno-obiektowej.
Jeli uwzgldnimy wspomniane dwa czynniki, otrzymamy diagram taki, jak na rysunku 16.1.
Wybranie odpowiedniej technologii z powyszego diagramu zaley od trzeciego czynnika, o ktrym wspomniano na pocztku tego rozdziau: wymaga wobec aplikacji.
Omwione w nastpnych punktach przykady i teoria zilustruj zastosowanie omawianych zasad w praktyce i poka, jak podejmowa decyzj o doborze technologii
waciwej dla danego projektu.
1
Stoi to w jawnej sprzecznoci z XML opisujcym dokumenty, w ktrym podzia na encje jest
podstawowym mechanizmem modularyzacji i moliwoci wielokrotnego uycia.
349
Rysunek 16.1.
Diagram,
przedstawiajcy
sposoby powizania
XML i baz danych
Specjalne klasy
dla poszczeglnych sownikw XML
Pierwszym, najprostszym sposobem tworzenia dokumentu XML na podstawie bazy
danych jest jawne zapisanie logiki dla konkretnego sownika XML w specjalizowanej
klasie. Klasa taka jest cile powizana z baz danych i XML. Mimo e takie rozwizanie bardzo poprawia wydajno, to jest ono ograniczone i trudne do rozszerzania
i utrzymania.
Niezalenie od wspomnianych ogranicze, takie domowe rozwizanie jest czasem
przydatne. Poniszy kod to implementacja specjalizowanej klasy, pobierajcej z tabeli
zbir rekordw dotyczcych filmw:
) $
R
$
:
) $
R #
- :
) $
R"$$
$:
) $
R;
&$"$:
) $&$ ) $
:
) $&$ ) $
:
) $P6
)&$"$ :
)&B
&
$B2M#7U
)&B
$$!
V"$
-HN -WU
,V -
-$DWU
"%
$&$)
$
VEA%(
&
$B2M#7L'O+OW:
"%
$$V3W:
X
$
&:
"$$
$
$$
&:
350
+ !WW:
$$
$"$$
$VW:
$$&$Y& %V"7ZP;#[
%<-$ ) $%V$BWW:
$M#7&
$V
W:
X
$DV
-
Jeli tabela zawiera dane takie, jak na rysunku 16.2, a plik waciwoci ma posta:
_+'O+O&
$B2M#7
E;7!B(!B(
&
)
+ !
$B#
!
&
!B!B`!B!B
Rysunek 16.2.
Tabela Movies
351
352
)&B
<
)
$
2
W tym rozdziale czciej bdziemy mwi o tabelach i relacjach ni o obiektach. Przyczyna tego
jest prosta: w przypadku baz danych model relacyjny jest stosowany znacznie czciej ni model
obiektowy. Jednak te same zasady dziaania i te same rozwizania mona bez trudnoci zastosowa
w przypadku obiektowych baz danych.
353
U
$$Q
! <
!,&$D
!
+Q
! <
VW:
$$%;
$$%Q
!
!,&$D
! :
Q
! !$!Q
!
!,&$D
! :
&
$Q
! !&
$Q
!
!,&$D
! :
Q
! Q
!
!,&$D
! :
Klas t mona bardzo atwo zmodyfikowa tak, aby mc pobiera inne obiekty danych, jak np.
poczenie czy zapytanie.
354
Nasza metoda
otrzymuje cztery parametry.
obiekt
, na podstawie ktrego generowany bdzie
kod XML.
nazwa znacznika uywanego jako element gwny.
kademu wierszowi danych odpowiada element
o nazwie
(jego podelementy s polami w wierszu). W tym
355
Poniszy program testowy nakazuje parserowi odczytanie tej samej tabeli, co w poprzednim przykadzie. Tym razem jednak logika struktury XML nie jest ju zakodowana na stae, zadanie to zlecane jest parserowi SAX, przy ktrym mona zarejestrowa
dowolne procedury obsugi zdarze4 tak, jakby czytanie odbywao si z pliku XML:
) $
R
$
:
) $
R #
- :
) $
R"$$
$:
) $
R;
&$"$:
) $&$ ) $
:
) $&$F$ :
) $P6
)&$"$ :
)&B
$"8M86U
)&B
$$!
V"$
-HN -WU
,V -
-$DWU
"%
$&$)
$
VEA%(&
$B2M#7
L'O+OW:
"%
$$V3W:
X
$
&:
"$$
$
$$
&:
;
&$"$
&:
) $
%<
+ ) $
VW:
$ %
U
%<!V
+P6
)&$"$ V -HNWW:
+ !WW:
$$
$"$$
$VW:
$$&$Y& %V"7ZP;#[
%<-$ ) $%V$BWW:
W programie testowym uyto klasy "8M
$Q
! (aby wypisa zdarzenia otrzymywane tak,
jakby zostay one odczytane z dokumentu XML). Klasa ta bya omwiona w rozdziaach 4. i 5.,
jej kod znajduje si na doczonej do ksiki pycie.
356
Uycie API SAX jest zdecydowanie wygodniejsze od tworzenia klas specjalizowanych. Logika samej aplikacja jest oddzielona od tworzenia kodu XML, dziki czemu
otrzymujemy konstrukcj, ktrej mona uy do wielu baz danych.
Pokazane tutaj rozwizanie jest uniwersalne, ale ma te powane ograniczenia m.in.
brak moliwoci przejcia od XML do bazy danych (nie wspominajc ju o tym, e
ograniczamy si na razie do jednej tabeli). W nastpnym punkcie pokaemy pene rozwizanie z oddzielon warstw poredni, ktra pozwoli nam takich problemw unikn.
357
Jeli oprogramowanie to jest dostarczane wraz z komercyjn baz danych, jest ono
reklamowane jako cz samej bazy. Baza ta z kolei reklamowana jest jako baza danych, obsugujca XML (XML-enabled).
Istnieje te szereg niekomercyjnych, niezalenych pakietw, zawierajcych API wykorzystywany do przekazywania danych midzy dokumentami XML a relacyjnymi
bazami danych (zwykle przez ODBC lub JDBC). W tym punkcie pokaemy zasady
rzdzce wikszoci rozwiza komercyjnych i darmowych, a take pokaemy praktyczn implementacj oprogramowania open source o nazwie xm-dbms, autorstwa
Ronalda Bourreta.
Szablony a odwzorowanie
Kiedy stajemy przed koniecznoci pobrania informacji XML z bazy danych, oprogramowanie porednie oglnego zastosowania moe dziaa dwojako:
moe umoliwia wczanie instrukcji SQL do szablonw XML;
moe udostpnia jawne odwzorowanie midzy polami bazy danych
a elementami XML.
W pierwszym wypadku dane wejciowe systemu byyby dokumentem XML, zawierajcym pewne elementy, ktre byyby przez owo oprogramowanie porednie przeksztacane na kod XML, ktry z kolei odpowiadajcy wynikom zapytania. Na przykad, poniszy dokument definiuje zapytanie do bazy danych w elemencie
:
)
)
)
)+
%D!!A&
-.)
$
$%"7
K)
P;#"$%#&*%*
LQ;$%)!A&
-
.
$
.)
358
w bazie danych.
2. Dokument XML lub dane z bazy danych.
xml-dbms
Autorem pakietu xml-dbms jest Ronald Bourret, on te si tym pakietem opiekuje.
Jest to doskonay przykad opartego na odwzorowaniach API, ktre suy do przeksztacania danych XML w tabele i odwrotnie. Model xml-dbms oparty jest na jzyku
odwzorowa, pozwalajcym na jednoznaczne przeksztacanie danych (na dwa sposoby). Tworzenie typowej aplikacji xml-dbms mona zapisa w postaci trzech punktw:
1. Utworzenie obiektu odwzorowania na podstawie dokumentu odwzorowania.
2. Przekazanie obiektu odwzorowania obiektowi lub .
3. Odebranie i przetwarzanie wynikw przeksztacenia.
Dokumenty odwzorowa
Dokument odwzorowania to dokument XML zgodny z DTD xml-dbms Map5. Dokumenty odwzorowa zawieraj opis sposobu przeksztacania, majcego miejsce midzy
konstrukcjami bazodanowymi (jak tabele i kolumny) a XML (elementami i atrybutami). Pierwszym i najbardziej typowym sposobem odwzorowywania jest odwzorowanie typw elementw na tabele.
Zanim pokaemy takie odwzorowanie, trzeba wspomnie, e jzyk odwzorowa xmldbms opiera si na zaoeniu, e w XML trzeba najpierw zamodelowa jako klasy
i atrybuty, a dopiero potem mona przeksztaca ten model na konstrukcje bazodanowe. Na szczcie obie te czynnoci wykonuje si w dokumencie odwzorowania:
#)
$%)G
S- ,*
.
B
BG#
.
5
359
.
B
!+* +
+'O+O
)+T*
!+* +
.
#)
Istnieje ju zatem relacja midzy typem elementu zoonego a tabel, wic mona powiza atrybuty i elementy proste dokumentu z kolumnami tabeli:
) $%#)
8$$ B&$G"* OC.
&
&
G"*
.&
. ) $%#)
) $%#)
8$$ B&$G'&-OC.
&
&
G&-
.&
. ) $%#)
) $%#)
8$$ B&$G
.
&
&
GG*+#
.&
. ) $%#)
>%6
$B)6
$%)G)
#
.
!!$>%S
$G
&
G)6.
.
!!$>%
P -
>%
&
*
.
.P -
>%
.;$!
Pokazane tutaj trzy konstrukcje wyczerpuj zakres jzyka potrzebny przy wikszoci
zastosowa. Peny opis wszystkich opcji jzyka odwzorowa xml-dbms znajduje si
w DTD tego jzyka i w dokumentacji pakietu.
360
361
#)
$%)G
.
B
BG!!.
.
B
) $%#)
8$$ B&$G!.
&
&
G!!!.
.&
. ) $%#)
) $%#)
8$$ B&$G
$.
&
&
G
.
.&
. ) $%#)
) $%#)
$%)G$$.
&
&
G$$.
.&
. ) $%#)
) $%#)
$%)G$-
.
&
&
G$-
.
.&
. ) $%#)
) $%#)
$%)G$- %.
&
&
G$- %.
.&
. ) $%#)
) $%#)
$%)G
$&!.
&
&
G
$&!.
.&
. ) $%#)
.
#)
.#)
.M#7<#"
Nadszed ju czas na wykorzystanie programu PutDVDs.java, w ktrym w celu wstawienia danych z XML do bazy uyjemy oprogramowania warstwy poredniej xml-dbms:
362
&$F
U
)&B
$$!
V"$
-HN -W$D +
R"Y7)$
U
$
&K
2
&:
#)):
&
$!:
#<#"!<#":
>%S
$ 6)%S
$
&:
"$
-)P
-HN:
"$
-P
-HN:
$ %
U
,V -
-$D2WU
"%
$&$)
$
VEA%(&$F
, GV
&
!B!B`!B!B W:
..!'T*
!B*%!
%D
#
- -$
$
V!B(!B(
W:
2 #
- -$
$
V!B(!B(
W:
..E$+ *
*-
$ &*%
%S
$
+>%S
$ 6)V
W:
%S
$
$*VW:
..E$+ *
B$&!+* +b$+ !&
$&M#7
) $#)V)P
K
2W:
!)
&
$VP
W:
..E$+ *
+-B$&#<#"
..) *
*$'
!
%D
!<#"
+#<#"V)K%S
$ K
+GY #2VWW:
!<#"
$ &
$V!W:
X
$DV)$
W
U
"%
$&$)
$
VW:
X
,
%
U
,V
&W
VW:
363
Wynikiem uruchomienia tego programu z parametrami dvd.map i dvd.xml jest wypenienie tabeli treci dokumentu XML, zgodnie ze specyfikacjami w pliku odwzorowa. Bardziej zoone przykady uycia xml-dbms znajduj si w dokumentacji tego
pakietu (szczeglnie wart uwagi jest przykad transfer.java, w ktrym zaprezentowano zaawansowane zastosowanie wszystkich omwionych tutaj technik).
364
Przeksztacanie metadanych
Z poprzedniego punktu, dotyczcego oprogramowania poredniego jasno wynika, e
w wikszoci wypadkw do poczenia XML z baz danych potrzebne jest odwzorowanie danej DTD na struktur bazy danych.
Oczywicie, w tej sytuacji pojawia si nastpujce pytanie: jak okreli struktur bazy
danych na podstawie DTD? Poniej zestawiono kroki, jakie naley podj w celu zrealizowania tego zadania6:
1. Dla kadego typu elementu zawierajcego elementy lub tre mieszan,
365
Treci (CMS, Content Management System). W nastpnym punkcie z kolei omwimy rozwizanie ukierunkowane na dane, serwery XML.
CMS to szereg produktw, sucych do tworzenia, edytowania i zarzdzania rnymi wersjami duej liczby dokumentw. Podstawowymi zadaniami CMS s:
1. Udostpnienie uytkownikowi sprawnego i prostego interfejsu, sucego
obsugiwanych dokumentw).
CMS zwykle s ukierunkowane przede wszystkim na dostp do nich przez interfejs
uytkownika, mimo e niektre z nich maj te API. Sposb traktowania treci w bardzo duej mierze zaley od producenta7, charakterystyczne jest pooenie najwikszego nacisku na obsug dokumentu.
Z uwagi na opisane cechy CMS nie bdziemy tutaj omawia tych systemw; ograniczymy si do przedstawienia na kocu rozdziau produktw, ktre mona zakwalifikowa jako XML CMS.
Naley jeszcze wspomnie, e pole w diagramie 16.1, odpowiadajce tworzonym lokalnie systemom zarzdzania treci, jest puste, poniewa tworzenie wasnymi siami
rozwiza tak duych jak CMS jest strat czasu i zasobw.
Moe to si zmieni po pojawianiu si produktw takich, jak IM firmy Interleaf, ktry zwiksza
zgodno ze standardami XML.
Nie znaczy to oczywicie, e jest to najlepsze rozwizanie dla wszystkich baz danych XML.
Dowiadczenie pokazuje nawet, e w przypadku projektw redniej wielkoci lepiej skorzysta
z oprogramowania warstwy poredniej.
366
Interfejsy oferowane przez serwery XML s bardzo rne, wic najlepiej po prostu
zaj si API konkretnego serwera. Aby jednak przedstawi przynajmniej podstawowe zasady uycia serwerw XML, pokazano przykad kodu API serwera dbxml9:
) $!B BZ:
) $!B B!$B
Z:
) $!B B$Z:
) $ --
G
-Z:
) $ --
G
-G
-
$$-Z:
) $ --;<8Z:
) $&$ ) $
:
)&B
86)U
)&B
$$!
V"$
-HN -
WU
$ %U
) $
B
,-
+ ) $
VW:
.ZL
*
B
+
&
*+
*-L) *%)!&
Z *%
$
*
,-& ) $ %
Z!%O
-T+%-C*
%
Z.
B
,-)&$V --;<8;<6
$ $K//?W:
B
,-)&$V --;<8;<6
$Q
$KD
$W:
..&$+ *
*;<
;< B;<
$V
+"$
-HNK B
,-W:
..)B
-'=+
-
$
$&
*+
$+
--;<8B$B;,
B
$ ,
VG" W:
G
-
$$
;,G
-
$$Q)
+VB;,W:
.. *+
\B$;,
+G
G)
$
+G)
$V8))$
KW:
G)
$)$DHNU
X:
8))$
))8))$
Q)
+V
;,
V)$DWW:
"%
$&$)
$
V8))$
G[))-$GVWW:
..& &D
) *%'!=+
$$
V))W:
"$
-!
$&
$V))W:
$ &
$V))K!W:
X$DV)$
WU
"%
$&$)
$
V;;;([W:
)
$"$ V"%
$&$W:
X
X
.ZZ
ZL%*
B*!
%DD*B =+
+ *
Z.
9
367
368
FourThought
http://opentechnology.org/4Suite/
ASP2XML
Stonebroom
http://www.stonebroom.com/asp2xml.htm
Beanstalk
Transparency
http://www.transparency.com
Castor
exolab.org
http://castor.exolab.org/index.html
DatabaseDom
IBM
http://www.alphaworks.ibm.com/tech/databasedom
DataCraft
IBM
http://www.alphaworks.ibm.com/formula/datacraft
DB2XML
Volker Turau
http://www.informatik.fh-wiesbaden.de/~turau
DBIx::XML_RDB
Matt Sergeant
http://theory.uwinnipeg.ca/CPAN/
InterAccess
XML Software
Corporation
http://www.xmlsoft.com.au/iaccess.html
Net.Data
IBM
http://www-4.ibm.com/software/data/net.data/
ODBC2XML
Intelligent Systems
Research
http://members.xoom.com/gvaughan/odbc2xml.htm
XML-DB Link
http://www.roguewave.com/
XML-DBMS
Ronald Bourret
http://www.rpbourret.com/xmldbms/index.htm
XML Junction
http://www.xmljunction.net
XLE
IBM
http://www.alphaworks.ibm.com/tech/xle
Chrystal Software
http://www.chrystal.com/products/astoria/astoria.htm
BladeRunner
Interleaf
http://www.xmlecontent.com/products/brintro.htm
Bluestone
XML-Server
Bluestone
http://www.bluestone.com/
Cocoon
Apache.org
http://xml.apache.org/cocoon/sql.html
DataChannel Server
DataChannel
http://www.datachannel.com/
Documentum
Documentum, Inc.
http://www.documentum.com/
Dynabase
Inso
http://www.ebt.com/dynabase/
Epic
Arbortext
http://www.arbortext.com/Products/Epic/epic.html
Excelon
eXcelon Corp.
http://www.exceloncorp.com/products/excelon.html
Frontier
UserLand Software
http://frontier.userland.com
GroveMinder
TechnoTeacher
http://www.techno.com/
369
Hynet Technologies
http://www.hynet.com/Products/main.html
Information
Interleaf Manager
http://www.xmlecontent.com/products/im.htm
Lasso
Blue World
Communications
http://www.blueworld.com/blueworld/products/
LivePage Enterprise
Janna Systems
http://www.janna.com
POET Suite
POET
http://www.poet.com/products/cms/cms.html
Rhythmyx
Percussion Software
http://www.percussion.com/
SigmaLink
STEP
http://www.step.de/sigmalink.htm
SIM
Progressive
Information
Technologies
http://www.simdb.com
Tamino
Software AG
http://www.softwareag.com/tamino/
Target 2000
Magnus
http://www.target2000.com/main.html
WSDOM
XML-Portal
Radian Systems
http://www.radsys.com/products/portal.htm
Sequoia Software
Corp.
http://www.sequoiasw.com/xps/index.asp
XMLBase
eidon
http://www.eidon-products.com/sgmlxmlbase.htm
Podsumowanie
W tym rozdziale omwilimy rne sposoby integrowania XML i baz danych; podzielilimy je wedug poziomu powizania oprogramowania z baz danych i danymi XML.
Omwilimy cz teoretyczn i praktyczn wielu rozwiza, od specjalizowanych
klas, obsugujcych konkretne sowniki XML, przez API SAX do baz danych i oprogramowanie porednie, po serwery XML.
Omwione w tym rozdziale pomysy i klasy bd uywane w nastpnych rozdziaach
jako elementy bardziej zoonych aplikacji.