[ Pobierz całość w formacie PDF ]
.Oprócz tego (na potrzebyzgodnoœci wstecz), podawana jest „surowa” nazwa elementu.Chodzi tu oniezmodyfikowan¹ nazwê elementu, zawieraj¹c¹ ewentualny przedrostekprzestrzeni nazw — czyli to, co umieszczone by³o w dokumencie XML; dla naszegoelementu Ksiazka by³aby to nazwa JavaXML: Ksiazka.Obecnoœæ tych trzech typównazw umo¿liwia opisanie dowolnego elementu, z przestrzeni¹ nazw, czy te¿ bezniej.Skoro wiemy ju¿, jak udostêpnia siê element i jego atrybuty, spójrzmy naimplementacjê wywo³ania wstecznego SAX, wyœwietlaj¹c¹ informacjê na ekranie.W tym przyk³adzie sprawdzamy, czy nazwa elementu posiada skojarzony z ni¹identyfikator URI przestrzeni nazw; jeœli tak — drukujemy przestrzeñ nazw;jeœli nie — drukujemy komunikat, informuj¹cy, ¿e z elementem nie skojarzono¿adnej przestrzeni nazw:/**** Komunikat o pojawieniu siê faktycznego elementu.Podawane s¹ atrybuty* elementu, za wyj¹tkiem atrybutów specyficznych dla s³ownika XML,* takich jak:* xmlns:[namespace prefix] i* xsi:schemaLocation.*** @param namespaceURI String URI przestrzeni nazw, z któr¹* skojarzony jest ten element lub pusty.* String* @param localName String nazwa elementu (bez* przedrostka przestrzeni nazw, jeœli taki istnieje)* @param rawName String Wersja XML 1.0 nazwy elementu:* [namespace prefix]:[localName]* @param atts Attributes -- lista atrybutów tego elementu.* @throws SAXException jeœli coœ pójdzie nie tak.*/public void startElement(String namespaceURI, String localName,String rawName, Attributes atts)throws SAXException {System.out.print("startElement: " + localName);if (!namespaceURI.equals("")) {System.out.println(" w przestrzeni nazw " + namespaceURI +" (" + rawName + ")");} else {System.out.println(" nie posiada skojarzonej przestrzeni nazw");}for (int i=0; i java SAXParserDemo D:\prod\JavaXML\contents\contents.xmlPolecenie to powinno zwróciæ du¿o danych wyjœciowych.Jeœli Czytelnik korzystaz systemu Windows, mo¿e siê okazaæ konieczne zwiêkszenie bufora dla oknaDOS-owego w takim stopniu, aby mo¿liwe by³o przewiniêcie ekranu i obejrzeniewszystkich danych wyjœciowych.Dane te powinny mieæ postaæ podobn¹ do tychprzedstawionych w przyk³adzie 3.2 [2 W tym oraz innych przyk³adach danychzwracanych przez programy mo¿liwe jest, ¿e zosta³y dodatkowo prze³amanewiersze w celu poprawnego umieszczenia wydruku w ksi¹¿ce.O ile jednak samedane tekstowe siê zgadzaj¹, to na pewno wszystko jest w porz¹dku!].Przyk³ad 3.2.Dane wyjœciowe zwracane przez program SAXParserDemoPrzetwarzanie pliku XML: contents.xml* setDocumentLocator() zosta³a wywo³ana.Rozpoczyna siê przetwarzanie.Pocz¹tek odwzorowania dla przedrostka JavaXML odwzorowanego dla URI.http://www.oreilly.com/catalog/javaxml/startElement: Ksiazka w przestrzeni nazw.http://www.oreilly.com/catalog/javaxml/ (JavaXML:Ksiazka)znaki:startElement: Tytul w przestrzeni nazw.http://www.oreilly.com/catalog/javaxml/ (JavaXML:Tytul)znaki: Java i XMLendElement: Tytulznaki:startElement: Spis w przestrzeni nazw.http://www.oreilly.com/catalog/javaxml/ (JavaXML:Spis)znaki:startElement: Rozdzial w przestrzeni nazw.http://www.oreilly.com/catalog/javaxml/ (JavaXML:Rozdzial)Atrybut: tematyka=XMLznaki:startElement: Naglowek w przestrzeni nazwhttp://www.oreilly.com/catalog/javaxml/ (JavaXML:Naglowek)znaki: WprowadzenieendElement: Naglowekznaki:startElement: Temat w przestrzeni nazwhttp://www.oreilly.com/catalog/javaxml/ (JavaXML:Temat)Atrybut: podRozdzialy=7znaki: Co to jest?endElement: Tematznaki:startElement: Temat w przestrzeni nazwhttp://www.oreilly.com/catalog/javaxml/ (JavaXML:Temat)Atrybut: podRozdzialy=3znaki: Jak z tego korzystaæ?endElement: Tematznaki:startElement: Temat w przestrzeni nazwhttp://www.oreilly
[ Pobierz całość w formacie PDF ]