[ Pobierz całość w formacie PDF ]
.Czy¿wiêc programista nie powinien nigdy nie korzystaæ z DOM-a? Oczywiœcie, powinienkorzystaæ! Trzeba jednak zachowaæ du¿¹ ostro¿noœæ i uwa¿aæ na to, coprzekazujemy do modelu.Jeœli operujemy na niewielkich, mniejszych ni¿ megabajtdoku­men­tach, prawdopodobnie ¿adne k³opoty nigdy nam siê nie przydarz¹.Wiêksze dokumenty — pod­rêczniki techniczne czy ca³e ksi¹¿ki — mog¹ poch³on¹æzasoby systemowe i wp³yn¹æ na wy­daj­noœæ aplikacji.Analizatory DOM zg³aszaj¹ce wyj¹tki SAXW naszych przyk³adach zwi¹zanych z modelem DOM nie wspomnieliœmy o wyj¹tkachzg³a­sza­nych w wyniku przetwarzania dokumentu.Wynika to st¹d, ¿e — jakmówiliœmy — proces gene­ro­wania drzewa DOM pozostawiono implementacji parsera,a te ró¿ni¹ siê przecie¿ miedzy sob¹.Jed­nak¿e zawsze dobrze jestprzechwytywaæ specyficzne wyj¹tki i odpowiednio na nie reagowaæ.Od­po­wiedniazmiana g³Ã³wnej pêtli parsera mo¿e byæ nieco zaskakuj¹ca.Oto wersja dla ApacheXerces:/**** Tutaj przetwarzamy plik i wyœwietlamy dokument* za pomoc¹ modelu DOM.*** @param uri String URI pliku do przetworzenia.*/public void performDemo(String uri) {System.out.println("Przetwarzanie pliku XML: " + uri + "\n\n");// Tworzymy egzemplarz implementacji parsera DOM danego producentaDOMParser parser = new DOMParser();try {parser.parse(uri);Document doc = parser.getDocument();// Wyœwietlamy dokument z drzewa DOM// z wciêciem w postaci ³añcucha pustegoprintNode(doc, "");} catch (IOException e) {System.out.println("B³¹d wczytywania URI: " + e.getMessage());} catch (SAXException e) {System.out.println("B³¹d przetwarzania: " + e.getMessage());}}Niespodziank¹ nie jest IOException (wskazuje b³¹d w lokalizacji podanego URI,podobnie jak w przyk³adzie SAX).Zastanawia coœ innego — mo¿liwoœæ zg³oszeniawyj¹tku SAXException.Nasz parser DOM zg³asza wyj¹tek SAX? Chybazaimportowaliœmy nie te klasy! Nie, klasy s¹ w³aœ­ciwe.Pamiêtajmy o tym, comówiliœmy wczeœniej — mo¿liwe jest w³asnorêczne zbudowanie strukturydrzewiastej danych w dokumencie XML za pomoc¹ SAX-a, ale DOM stanowi ciekaw¹alternatywê.To prawda, ale nie wyklucza to jeszcze u¿ycia interfejsu SAX.Rzeczywiœcie SAX udostêpnia wydajny i szybki sposób przetworzenia dokumentu;akurat w naszym przypadku doku­ment jest przetwarzany przez SAX i wstawiany dostruktury DOM.Poniewa¿ nie istnieje standard rz¹dz¹cy sposobem tworzeniastruktury DOM, takie rozwi¹zanie jest dopuszczalne, a nawet po­pu­larne.Nienale¿y wiêc dziwiæ siê, ¿e importujemy i przechwytujemyorg.xml.sax.SAXE­xcep­tion w aplikacjach DOM.Co dalej?Rozdzia³y 1.– 7.stanowi¹ pokaŸny zbiór informacji o XML-u.Czytelnik powinienju¿ potrafiæ po­s³ugiwaæ siê XML-em, definicjami DTD i schematami oraz XSLT.Tonajwa¿niejsze techno­lo­gie w programowaniu z wykorzystaniem jêzyka XML.Wkolejnych rozdzia³ach pojawi¹ siê oczy­wiœ­cie jeszcze inne skróty ispecyfikacje, ale omówione zagadnienia to klucz do korzystania z XML-a zpoziomu Javy.Oprócz specyfikacji zosta³y omówione tak¿e SAX i DOM, zatemCzytelnik potrafi reprezentowaæ wiêkszoœæ danych XML w Javie.Mo¿na powiedzieæ,¿e Czytelnik jest ju¿ ofi­cjalnie programist¹ znaj¹cym Javê i XML!W nastêpnym rozdziale powrócimy do omawiania interfejsów SAX i DOM; wyka¿emyich zalety i wady.Przed zag³êbieniem siê w kodach aplikacji (czemu poœwiêconajest reszta ksi¹¿ki) zo­sta­nie omówiony interfejs JDOM.Twórcy JDOM staralisiê naprawiæ problemy i dokuczliwoœci zwi¹­zane z interfejsami SAX i DOM.Powsta³y w ten sposób interfejs API otwiera przed pro­gramist¹ XML-a nowemo¿liwoœci [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • luska.pev.pl
  •