Projektowanie systemów informatycznych implementacje interfejsu ErrorHandler.
Interfejs DTDHandler jest implementowany gdy aplikacja SAX potrzebuje informacji o notacjach i nieparsowanych encjach. Wystąpienie deklaracji tych elementów zgłaszają metody instancji DTDHandler - notationDecl, unparsedEntityDecl.
EntityResolver to prosty interfejs do analizowania encji. Posiada tylko jedną metodę resolveEntity, która jest wywoływana gdy parser musi zidentyfikować dane, identyfikowane za pomocą URI. W większości przypadków URI jest prostym adresem URL, który określa położenie dokumentu.
Solidne aplikacje implementują metody interfejsu ContentHandler i ErrorHandler. Interfejsy ContentHandler, ErrorHandler, DTDHandler, EntityResolver implementuje klasa DefaultHandler z pakietu org.xml. sax.helpers.
Przykład. Program dokonuje analizy dokumentu XML (komunikatu SOAP), który zawiera treść zamówienia.
Szkielet programu order_sax.java:
1. Import pakietów Javy
• java.io.*, java.util podstawowe pakiety
• java.awt.*, javax. swing. *, javax. swing, table* - pakiety pozwalające stworzyć graficzny interfejs użytkownika
• javax.xml.parsers.*, org.xml.sax.helpers.*, org.xml.sax.* -pakiety umożliwiające parsowanie dokumentu za pomocą parsera SAX
2. Główne fragmenty programu
klasa reprezentująca pojedynczy element zamówienia, posiada metody get, set dla odpowiednich pól
class element {
int id;
String nazwa; int ilosc;
klasa reprezentująca zamówienie, którego elementy przechowuje obiekt typu ArrayList
class elements {
ArrayList elements_list = new ArrayList(); konstruktor
public elements()
}
f-cja dodaje element
public void add_element(element e)
elements_list.add(e);
f-cja zwraca element o odpowiednim indeksie
Michał Bleja
Uniwersytet Łódzki