00 08 4EYYVIPOLXVOTVKVZJ62QZLCZ Nieznany (2)

background image

C:\WINDOWS\Pulpit\Szymon\Java i XML\00-08.doc — strona 7

Przedmowa

XML, XML, XML... Ten skrót pojawia się na czapeczkach i koszulkach. W każdym czasopiśmie
technicznym, w radiu, w czasopismach kobiecych... no, może sprawy nie zaszły jeszcze tak daleko,
ale niewiele brakuje. XML, rozszerzalny język znaczników (ang. Extensible Markup Language),
wydaje się pojawiać w każdej branży technicznej, a szczególnie często słychać o nim w środo-
wisku programistów języka Java

®

. Aplikacji nie uważa się już za produkt przemysłowy, jeśli nie

użyto w niej w jakiś sposób języka XML. Wreszcie powstała możliwość nowych zastosowań dla
starych, firmowych systemów, a przedsiębiorstwa oszczędzają miliony i miliardy dolarów na inte-
gracji systemów — wszystko dzięki tym trzem literkom. Programiści Javy będą zmuszeni do przy-
swajania sobie jeszcze jednej technologii, a zadanie wydaje się być tym trudniejsze, im bardziej
się w nie zagłębić. Drogę do XML-a wytyczają kolejne skróty: XSL, XPath, RDF, XML Schema,
DTD, PI, XSLT, XSP, JAX

®

, SAX, DOM i inne. I nie ma już chyba dyrektora, który nie wyma-

gałby od swojego personelu informatycznego znajomości XML-a!

Kiedy na początku 1998 roku XML zyskał status specyfikacji formalnie określonej przez World
Wide Web Consortium, niewiele osób zgodziłoby się uznać, że powstała właśnie najwspanialsza
technologia od czasów Javy (a może jeszcze wspanialsza!). Ale już dwa lata później XML i grupa
technologii służących do manipulacji tym językiem zaczęły stanowić podstawowy sposób repre-
zentacji danych w Javie. XML ma szansę wnieść do formatu danych to, co Java wniosła do
języków programowania — całkowitą przenośność. I właściwie to zamierzenie twórców Javy
osiągnąć można tylko dzięki językowi XML; przenośność Javy bardzo ucierpiała ze względu na
używane od lat, firmowe formaty danych — aplikacja mogła zostać uruchomiona na wielu platfor-
mach, ale nie w wielu firmach, na standardowym formacie danych. XML może rozwiązać ten
problem — powoduje, że te firmowe formaty danych zaczynają być zbędne i umożliwia wzajemne
komunikowanie się systemów za pomocą standardowej reprezentacji danych.

To książka o języku XML, ale napisana głównie z myślą o programistach Javy. Zarówno XML,
jak i Java są potężnymi narzędziami. W tej książce jednak uwaga skupiona zostanie na tym, jak ze
sobą współpracują — to właśnie dzięki tej współpracy XML staje się naprawdę potężną technolo-
gią. Przedstawione zostaną różne słowniki XML. Czytelnik nauczy się tworzyć, zawężać i prze-
kształcać XML, pozna także wszystkie interfejsy programistyczne (API) do obsługi języka XML
z poziomu kodu Javy. W książce zostaną także podjęte najciekawsze zagadnienia dotyczące języka
XML: dynamiczna zawartość, usługi powiadamiania, e-biznes i składnice danych. Za każdym ra-
zem będzie stosowany ten sam, wąski punkt widzenia programisty, któremu zależy na wykonaniu
konkretnego zadania z użyciem opisywanych narzędzi. Zostaną przedstawione narzędzia, jakie

background image

8

Przedmowa

C:\WINDOWS\Pulpit\Szymon\Java i XML\00-08.doc — strona 8

udostępnia XML; a jeśli istnieje coś, co — choć popularne! — nie jest zbyt użyteczne, zostanie
tylko pobieżnie omówione. Jeżeli natomiast któraś wyjątkowo przydatna funkcja XML-a sprawia
wrażenie „ukrytego rodzynka” — zostanie on wydobyty i opisany pod kątem użyteczności. Java
i XML
ma służyć pomocą Czytelnikowi. Nie jest pozycją referencyjną ani nie ma na celu reklamo-
wania standardu XML.

Połowa tej książki to kod — praktyczny i działający. Można go także pobrać z Internetu, ale umie-
szczono go w książce po to, aby Czytelnik mógł prześledzić proces tworzenia różnych aplikacji
XML. Czytelnik powinien więc raczej zagłębiać się w te przykłady, a nie je pomijać. Jest tutaj
przedstawiony także nowy interfejs API do manipulacji XML-em z poziomu Javy — został on
opisany w pełni, z przykładami. To książka dla programisty Javy, dlatego zastosowano podejście
praktyczne. To nie jest ani teoretyczny, ani pobieżny przegląd „fajnej” technologii. Tam, gdzie to
możliwe, unikamy słów-haseł; tam, gdzie nie — podajemy ich precyzyjne definicje. Cały kod oraz
rozwiązania z tej książki zostały ręcznie wpisane do edytora i przetestowane. Są tutaj po to, by
pomóc Czytelnikowi w solidnym opanowaniu Javy i XML-a.

Organizacja książki

Książka została podzielona w szczególny sposób. W pierwszej połowie (rozdziały 1. do 7.) został
przedstawiony standard XML oraz najważniejsze interfejsy API Javy do jego obsługi. Może nie są
to rozdziały niezwykle interesujące, jednak powinny być czytane w proponowanej kolejności,
a przynajmniej dokładnie przejrzane — nawet jeśli XML nie jest Czytelnikowi obcy. Rozdział 8.
to jakby fragment przejściowy pomiędzy dwiema częściami książki. Opisano w nim niezwykle
ciekawy nowy interfejs API do obsługi XML-a z poziomu Javy — JDOM. Ten rozdział trzeba
przeczytać koniecznie, ponieważ publikacja tego interfejsu zbiegnie się z wprowadzeniem niniej-
szej książki do sprzedaży, a tutaj przedstawiono pełne materiały referencyjne odnośnie tego API
(interfejs ten, który autor utworzył wraz z Jasonem Hunterem, ukierunkowany jest właśnie na roz-
wiązywanie problemów z wykorzystaniem Javy i XML-a!). W pozostałej części książki (rozdziały
9. do 14.) omawiane są specyficzne tematy związane z XML-em, nieustannie poruszane na konfe-
rencjach i w samouczkach programistów. Analiza tych tematów pozwoli Czytelnikowi maksymal-
nie wykorzystać XML we własnych aplikacjach — i to od zaraz! Książkę zamykają dwa dodatki.
Poniżej przedstawiony jest skrótowy opis poszczególnych rozdziałów:

Rozdział 1. Wprowadzenie

Omówienie alfabetu XML-a i próba znalezienia odpowiedzi na pytanie, dlaczego standard
ten jest tak istotny dla obecnych i przyszłych aplikacji stosowanych w przedsiębiorstwach.

Rozdział 2. Tworzenie dokumentów XML

Omówienie procesu budowania dokumentu XML od podstaw; zastosowanie najważniejszych
konstrukcji XML, takich jak elementy, atrybuty, encje.

Rozdział 3. Przetwarzanie kodu XML

Przedstawienie interfejsu API Javy służącego do obsługi XML-a — Simple API for XML
(SAX). Szczegółowo opisano proces przetwarzania oraz zdarzenia udostępniane przez
interfejs SAX, przeznaczone do wykorzystania przez programistów.

Rozdział 4. Zawężanie danych XML

Przedstawienie dwu sposobów zawężenia dokumentu XML: zastosownie definicji typu doku-
mentu (DTD) oraz XML Schema.

background image

Organizacja książki

9

C:\WINDOWS\Pulpit\Szymon\Java i XML\00-08.doc — strona 9

Rozdział 5. Sprawdzanie poprawności składni XML-a

Uzupełnienie poprzedniego rozdziału. Omówiono, jak za pomocą poznanego interfejsu SAX
umożliwić weryfikację składni dokumentu oraz reagować, gdy dokument wykracza poza na-
rzucone zawężenia.

Rozdział 6. Przekształcanie kodu XML

Opis rozszerzalnego języka arkuszy stylów XSL oraz innych istotnych komponentów służą-
cych do przekształcania dokumentów XML z jednego formatu na inny. Omówiono różne me-
tody konwersji dokumentów XML na inne formaty tekstowe oraz sposób wykorzystania
obiektów formatujących do konwersji na formaty binarne.

Rozdział 7. Czerpanie z XML-a

Kontynuacja tematu przekształcania dokumentów XML. Przedstawiono procesory transfor-
macji XML oraz sposoby konwersji dokumentów XML na inne formaty. Opisano również
model obiektowy dokumentu (DOM) i wyjaśniono, w jaki sposób można za jego pomocą ob-
służyć dane XML.

Rozdział 8. JDOM

Omówienie interfejsu Java API for XML Parsing (JAXP) i próba przeanalizowania, jak duże
znaczenie w XML-u ma niezależność od rozwiązań firmowych. Zaprezentowano też interfejs
JDOM, wskazano przyczyny jego powstania, szczegółowo opisano sposób korzystania z nie-
go oraz porównano go z interfejsami SAX oraz DOM.

Rozdział 9. Struktury publikacji WWW

Analiza struktur publikacji WWW i wybór najodpowiedniejszej. Omówiono także strukturę
Apache Cocoon oraz wyjaśniono, w jaki sposób korzystać z niej przy budowaniu dynami-
cznej zawartości stron WWW.

Rozdział 10. XML-RPC

Przedstawienie zdalnych wywołań procedur (RPC), uwzględnienie ich znaczenia w systemach
rozproszonych w porównaniu z RMI oraz wyjaśnienie, dlaczego technologie RPC w przy-
padku niektórych problemów tak wiele zyskują dzięki XML-owi. Omówienie biblioteki
XML-RPC Javy oraz konstrukcji klientów XML-RPC.

Rozdział 11. XML na potrzeby konfiguracji

Omówienie sposobów tworzenia danych konfiguracyjnych w postaci XML i wyjaśnienie,
dlaczego format ten jest tak istotny w aplikacjach wieloplatformowych, szczególnie w syste-
mach rozproszonych.

Rozdział 12. Tworzenie danych XML w języku Java

Przedstawienie procesu generowania i modyfikowania formatu XML z poziomu Javy przy
wykorzystaniu mechanizmów działających po stronie serwera, takich jak serwlety. Wskazano
też, na co trzeba zwrócić uwagę przy dokonywaniu mutacji XML.

Rozdział 13. Operacje typu firma-firma

Omówienie sposobu komunikacji pomiędzy firmami i wewnątrz firmy z wykorzystaniem
przenośnego formatu danych XML. Posłużą do tego przykładowe aplikacje, napisane w róż-
nych językach i porozumiewające się ze sobą za pomocą XML-a.

Rozdział 14. XML Schema

Omówienie przyczyn niezwykłego zainteresowania specyfikacją XML Schema oraz wyjaś-
nienie, dlaczego technologie Java i XML Schema nawzajem się uzupełniają.

background image

10

Przedmowa

C:\WINDOWS\Pulpit\Szymon\Java i XML\00-08.doc — strona 10

Dodatek A. Interfejs API — materiał referencyjny

W tym dodatku wymieniono wszystkie klasy, interfejsy i metody dostępne w interfejsach
programistycznych SAX, DOM, JAXP i JDOM.

Dodatek B. Funkcje i właściwości SAX 2.0

W tym dodatku wymieniono wszystkie funkcje i właściwości implementacji interfejsu SAX 2.0.

Dla kogo jest ta książka?

Podstawą napisania książki było przekonanie, że XML jest już nieodłącznym elementem
programowania w Javie. Książka została napisana w taki sposób, że najpierw Czytelnik dowiaduje
się, jak w ogóle korzystać z XML-a i Javy. Nie ma tutaj rozważań dotyczących tego, czy powinno
się korzystać z XML-a. Programista Javy powinien korzystać z XML-a. Dlatego, jeśli Czytelnik
programuje w Javie, chce programować w Javie, zarządza programującymi w Javie lub jest odpo-
wiedzialny albo związany z projektem pisanym w Javie — książka na pewno mu się przyda. Jeśli
Czytelnik chce się rozwijać, pogłębiać wiedzę programistyczną, pisać bardziej przejrzysty kod,
tworzyć udane projekty w terminie i bez przekraczania budżetu, musi korzystać z danych w forma-
tach firmowych, tworzyć rozproszone systemy lub po prostu ciekaw jest, skąd całe to zaintereso-
wanie XML-em — książka na pewno mu się przyda.

Pisząc książkę, starałem się czynić jak najmniej założeń. Nie chcę rozpoczynać omawiania XML-a od
takiego poziomu, że zniechęci to część Czytelników. Ale uważam także, że jeśli Czytelnik wydał już
pieniądze na tę książkę, to zależy mu na czymś więcej niż tylko na podstawach. Dlatego zakładam
jedynie znajomość Javy i zagadnień programowania po stronie serwera (takich jak serwlety Javy czy
komponenty Enterprise JavaBean

®

. Jeśli Czytelnik nie miał jeszcze nigdy do czynienia z Javą albo

dopiero rozpoczyna przygodę z tym językiem, być może warto najpierw przeczytać Learning Java Pata
Niemeyera i Jonathana Knudsena (wyd. O'Reilly & Associates). Zakładam, że Czytelnik nie wie nic
o XML-u, więc zaczynam od samych podstaw. Ale zakładam również, że Czytelnik będzie ciężko pra-
cował i szybko przyswajał wiedzę. Dlatego podstawy zostaną omówione błyskawicznie, by jak naj-
szybciej przejść do bardziej zaawansowanych zagadnień. Materiał nie będzie wielokrotnie powtarzany
poza tymi miejscami, gdzie jest to absolutnie koniecznie. Może więc zajść potrzeba ponownego
przeczytania wcześniejszych fragmentów. Jeśli Czytelnik chce uczyć się XML-a, trochę zna Javę
i przygotowany jest na „wstukanie” przykładowego kodu do swojego ulubionego edytora tekstów, nie
powinien mieć większych problemów z przyswojeniem materiału opisanego w książce.

Oprogramowanie i wersje

Informacje w tej książce dotyczą XML-a w wersji 1.0 oraz różnych słowników XML w wersjach
najbardziej aktualnych w czasie ukończenia książki, tj. w kwietniu 2000 r. Ponieważ rozmaite spe-
cyfikacje XML nie uzyskały jeszcze ostatecznej postaci, pomiędzy drukowaną wersją książki
a opisywanymi specyfikacjami mogą wystąpić drobne różnice.

Cały kod Javy prezentowany w tej książce oparty jest na platformie Java 1.1, za wyjątkiem opisów
dotyczących interfejsu JDOM 1.0. Ta odmienność jest odnotowana i uzasadniona w odpowiednim
miejscu, w rozdziale 8. Wykorzystano parser Apache Xerces, procesor Apache Xalan oraz biblio-
teki Apache FOP w najnowszych stabilnych wersjach z kwietnia 2000 r. Zastosowano strukturę
publikacji WWW Apache Cocoon w wersji 1.7.3, a biblioteki Javy XML-RPC w wersji 1.0 beta 3.
Całe oprogramowanie można pobrać za darmo z adresów http://java.sun.com, http://xml.apache.org
oraz http://www.xml-rpc.com.

background image

Konwencje typograficzne

11

C:\WINDOWS\Pulpit\Szymon\Java i XML\00-08.doc — strona 11

Kod źródłowy przykładów, w tym klasy narzędziowe com.oreilly.xml, jest w całości zamieszczo-
ny w książce. Zarówno kod źródłowy, jak i postać binarną wszystkich przykładów (w tym szeroką
dokumentację Javadoc) można pobrać z adresów http://www.oreilly.com/catalog/javaxml oraz
http://www.newInstance.com. Wszystkie przykłady mogące funkcjonować jako serwlety lub
nadające się do przekonwertowania na serwlety można obejrzeć w działaniu online pod adresem
http://www.newInstance.com.

Pełną dystrybucję JDOM 1.0, wraz ze specyfikacją, implementacją referencyjną, kodem źródło-
wym, dokumentacją interfejsu oraz postacią binarną można pobrać z adresu http://www.jdom.org.
Ponadto stworzono drzewo CVS zawierające kod JDOM i pozwalające na uzupełnianie i komento-
wanie źródeł. Informacje o tym, jak korzystać z CVS-a JDOM, można znaleźć także pod adresem
http://www.jdom.org.

Konwencje typograficzne

W książce zastosowane zostały następujące konwencje typograficzne:

Druk pochyły wykorzystywany jest do oznaczania:

• uniksowych ścieżek dostępu, nazw plików i nazw programów,
• adresów internetowych (nazw domen i identyfikatorów URL),
• nowych, definiowanych terminów.

Czcionka proporcjonalna

oznacza:

• tekst wpisywany w wierszu poleceń i opcje — czyli to, co ma być wpisane dokładnie tak, jak

wydrukowano,

• nazwy i słowa kluczowe w programach Javy, w tym nazwy metod, zmiennych i klas,
• nazwy elementów i znaczników XML-a, nazwy atrybutów i innych konstrukcji XML-a

wyglądających tak, jak wyglądałyby w dokumencie XML .

Czcionka proporcjonalna pogrubiona służy do oznaczania:

• nowo wprowadzonych fragmentów kodu,
• fragmentów większego kodu, które właśnie są opisywane w tekście.

Opinie i komentarze

Opinie i komentarze dotyczące tej książki można przysyłać do wydawcy:

O'Reilly & Associates, Inc.
101 Morris Street
Sebastopol, CA 95472
(800) 998-9938 (Stany Zjednoczone lub Kanada)
(707) 829-0515 (międzynarodowe lub lokalne)
(707) 829-0104 (faks)

Można także wysłać list elektroniczny. W celu zapisania się na listę adresową lub zamówienia ka-
talogu, wystarczy wysłać e-mail pod adres helion@helion.pl.

background image

12

Przedmowa

C:\WINDOWS\Pulpit\Szymon\Java i XML\00-08.doc — strona 12

Podziękowania

Kiedy tak spoglądam na plik arkuszy składających się na manuskrypt tej książki, to widzę, że w tych
kilku akapitach nie udałoby się podziękować wszystkim, którzy przyczynili się do jej powstania.
A jednak jest to na pewno prostsze niż omówienie całej tematyki Javy i XML-a, więc za chwilę
spróbuję... Gdybym kogoś pominął, bardzo proszę — wybaczcie!

Historia tej książki rozpoczęła się w Święto Dziękczynienia w roku 1999. Wtedy to mój redaktor,
Mike Loukides, zaproponował mi napisanie tej książki, mimo że w tym czasie zajęty byłem pisa-
niem innej książki dla O'Reilly. Nieco wahałem się przed odłożeniem na jakieś sześć miesięcy
tekstu, którego tworzenie bardzo mnie pochłonęło. Mike jednak przekonywał mnie tak wprawnie,
jak potem redagował gotowy tekst do czytelniejszej postaci. Teraz ten czas wspominam jako naj-
ciekawszy okres w mojej karierze technicznej i wiem, jak wiele zawdzięczam właśnie Mike'owi:
służył mi wskazówkami przy pisaniu trudnych, pierwszych rozdziałów; wysłuchał narzekań, gdy
trzykrotnie (tak, trzykrotnie!) zmieniałem rozdział o XML Schema z powodu aktualizacji specyfi-
kacji; wreszcie, kiedy trzeba było trochę odpocząć, okazywał swoje wszechstronne zdolności mu-
zyczne. Bez niego ta książka nie osiągnęłaby tak wysokiego poziomu.

Książce mogłem poświęcić tak wiele wysiłku i czasu tylko dzięki rodzinie i przyjaciołom:
rodzicom, którzy dzień w dzień przez osiemnaście lat zabiegali o poprawność mojego języka; cioci,
która pasjonowała się tym, co robię, nawet jeśli nie wiedziała, o co w tym chodzi; Jody Durret,
Carlowi Henry'emu i Pam Merryman, którzy poświęcili bardzo dużo czasu na zrobienie ze mnie
autora książek; Gary'emu i Shirley Greathouse'om, którzy zawsze przypominali, abym wytrwale
parł naprzód i nie osiadał na laurach; oraz moim dziadkom, Deanowi i Gladys McLaughlinom,
którzy cały czas mnie wspierali.

Nad merytoryczną poprawnością i precyzją książki czuwali liczni recenzenci techniczni: Marc
Loy, Don Weiss, George Reese (którego komentarze spowodowały dodanie całego rozdziału!),
Matthew Merlo i James Duncan Davidson. Szczególną pomoc okazał James — pieczołowicie pun-
ktował drobne błędy i był brutalnie szczery, dzięki czemu nigdy nie zapomniałem, że jestem prze-
de wszystkim programistą, a dopiero potem autorem książek.

Bardzo dużo zawdzięczam Jasonowi Hunterowi, autorowi Java Servlet Programming (O'Reilly &
Associates). Choć pisanie tej książki rozpoczęło się w listopadzie 1999 roku, to przeżyła ona
swoiste odrodzenie w marcu 2000, kiedy to Jason i ja całe popołudnie spędziliśmy na trawniku
w Santa Clara, narzekając na istniejące interfejsy API Javy do obsługi XML-a. Te utyskiwania za-
procentowały w dwójnasób — przede wszystkim, stworzyliśmy opisywany w tej książce interfejs
JDOM (przy pomocy i zachętach ze strony Jamesa Davidsona z Sun Microsystems). Uważamy, że
interfejs ten znacząco przyczyni się do zacieśnienia współpracy pomiędzy XML-em i Javą i spo-
woduje, że XML z punktu widzenia Javy będzie standardem przejrzystym i użytecznym, a nie
zagmatwanym i nieprzydatnym. Po drugie, bardzo zaprzyjaźniliśmy się z Jasonem. Pomógł mi

w niełatwym procesie tworzenia książki. Niejednokrotnie siedzieliśmy do późnych godzin noc-
nych, zastanawiając się, co można zrobić by JDOM i inne programy działały bardziej intuicyjnie.

Na pewno ta książka nie powstałaby, gdyby nie moja żona, Leigh. Jakimś cudem wytrzymała i nie
wyrzuciła mnie z domu przez te ostatnie 6 miesięcy, w ciągu których najczęściej byłem zmęczony,
nieprzystępny i w ogóle zajęty. Te krótkie chwile, jakie udawało nam się zdobyć dla siebie po
moim pisaniu i pełnoetatowej pracy konsultanta, sprawiały, że cała moja praca wydawała mi się
więcej warta. Tęsknię już za nią bardzo i nie mogę się doczekać, kiedy wrócę do zwyczajnego try-

background image

Podziękowania

13

C:\WINDOWS\Pulpit\Szymon\Java i XML\00-08.doc — strona 13

bu życia właśnie z nią, z naszymi trzema bassetami (Charlie, Molly i Daisy) i moimi labradorami
(Sethem i Mosesem).

Dziękuję też mojemu dziadkowi, Robertowi Earlowi Burdenowi, który nie doczekał wydania tej
książki. Był takim człowiekiem, jakim ja zawsze chciałem być. Dziękuję mu za to, że nauczył mnie,
iż nigdy nie powinienem poprzestawać tylko na tym, czego oczekują ode mnie inni.

background image

14

Przedmowa

C:\WINDOWS\Pulpit\Szymon\Java i XML\00-08.doc — strona 14


Wyszukiwarka

Podobne podstrony:
08 2HBZ25RJBN6D4ITZUMZK4SZDSTJD Nieznany
III CKN 694 00 id 210233 Nieznany
00 Niedobory odpornoscioweid 1 Nieznany (2)
IV CKN 1616 00 id 220952 Nieznany
00 04id 1901 Nieznany
00 Wprowadzenieid 2064 Nieznany (2)
00 08
Informacje na temat oleju Scania LDF TI 00 00 08 22 T pl(1)
08 XQIL6MKVUXK325A77WFQXEA6D5JP Nieznany
06 08 4NUISS5FYYDYAMVPM5UYKTR64 Nieznany (2)
IV CKN 622 00 id 220954 Nieznany
Podklad strunobetonowy PS 08 id Nieznany
09 rozdzial 08 4sgpmlmyclqg6hyv Nieznany (2)
II CKN 440 00 id 209807 Nieznany
III CKN 748 00 id 210234 Nieznany
02 08 AUM3QLLNN4ETLMSZBVTG6BEWL Nieznany (2)
07 08 GJCESOIYC7RKN6TD5XUQIWADT Nieznany (2)
05 08 CTR4YEAEUMGQHN7FSNWCCAV4G Nieznany (2)
00 Wstepid 2068 Nieznany

więcej podobnych podstron