|
B
Funkcje i właściwości SAX 2.0 |
|
W tym dodatku przedstwione są standardowe funkcje i właściwości interfejsu SAX 2.0. W oprogramowaniu określonego producenta mogą znaleźć się dodatkowe funkcje i właściwości; tutaj jednak przedstawiono tylko cechy podstawowe, które powinny być obsługiwane przez każdą implementację parsera zgodną ze standardem SAX 2.0.
Podstawowe funkcje
Wymieniono tutaj podstawowe funkcje obsługiwane przez implementacje SAX 2.0 XMLReader. Funkcje te można ustawić za pomocą metody setFeature(); wartość określonej funkcji można uzyskać metodą getFeature(). Każda funkcja może być tylko do odczytu lub do odczytu i zapisu. Możliwe jest także, że określone funkcje da się modyfikować tylko w czasie przetwarzania lub przeciwnie — tylko wtedy, gdy przetwarzanie się nie odbywa.
Przetwarzanie przestrzeni nazw
Włączenie tej funkcji powoduje, że parser wykonuje przetwarzanie przestrzeni nazw. W wyniku tego przetwarzania przedrostki i identyfikatory URI przestrzeni nazw oraz nazwy lokalne będą dostępne poprzez wywołania SAX obsługujące przestrzenie nazw (startPrefixMapping() oraz endPrefixMapping(), a także niektóre parametry przekazywane do startElement() oraz endElement()). Kiedy tej funkcji przypisana jest wartość true, przetwarzanie przestrzeni nazw będzie miało miejsce; jeśli false — przetwarzania przestrzeni nazw nie będzie (w tym ostatnim przypadku automatycznie zakłada się, że funkcja komunikowania o przedrostku przestrzeni nazw jest włączona).
URI: http://xml.org/sax/features/namespaces
Dostęp — tylko do odczytu przy przetwarzaniu; do odczytu i zapisu w innych przypadkach.
Komunikowanie o przedrostku przestrzeni nazw
Włączenie tej funkcji powoduje, że parser informuje o atrybutach wykorzystywanych w deklaracjach przestrzeni nazw, czyli o atrybutach w rodzaju xmlns:[przedrostek przestrzeni]. Kiedy funkcja ta nie jest włączona (przypisano jej wartość false) i parser przetwarza atrybuty związane z przestrzeniami (w celu poznania odwzorowania przedrostków na identyfikatory URI), nie informuje o tym. Ponadto, kiedy przetwarzanie przestrzeni nazw jest włączane, zazwyczaj odwzorowanie przedrostków zostaje wyłączone.
URI: http://xml.org/sax/features/namespaces/namespace-prefixes
Dostęp — tylko do odczytu przy przetwarzaniu, do odczytu i zapisu w innych przypadkach.
--> Internalizacja [Author:AJ] łańcuchów
Włączenie tej funkcji powoduje, że wszystkie nazwy elementów (w postaci „surowej” oraz lokalne), przedrostki oraz identyfikatory URI przestrzeni nazw są „internowane” za pomocą metody java.lang.String.intern(). Kiedy funkcja jest wyłączona, wszystkie komponenty XML pozostają nienaruszone.
URI: http://xml.org/sax/features/string-interning
Dostęp — tylko do odczytu przy przetwarzaniu, do odczytu i zapisu w innych przypadkach.
Sprawdzanie poprawności
Włączenie tej funkcji powoduje, że będzie sprawdzana poprawność dokumentu, a wszystkie błędy wynikłe z naruszenia zawężeń zostaną zgłoszone poprzez interfejs SAX ErrorHandler (jeśli zarejestrowano odpowiednią implementację). Jeśli funkcji przypisano wartość false, sprawdzanie poprawności nie odbędzie się.
URI: http://xml.org/sax/features/validation
Dostęp — tylko do odczytu przy przetwarzaniu, do odczytu i zapisu w innych przypadkach.
Przetwarzanie zewnętrznych encji (ogólnych)
Włączenie tej funkcji powoduje, że wszystkie ogólne (tekstowe) w danym dokumencie XML zostaną przetworzone.
URI: http://xml.org/sax/features/external-general-entities
Dostęp — tylko do odczytu przy przetwarzaniu, do odczytu i zapisu w innych przypadkach.
Przetwarzanie zewnętrznych encji (parametrów)
Włączenie tej funkcji powoduje, że przetworzone zostaną wszystkie zewnętrzne parametry, w tym te znajdujące się w zewnętrznych podzbiorach definicji DTD.
URI: http://xml.org/sax/features/external-parameter-entities
Dostęp — tylko do odczytu przy przetwarzaniu, do odczytu i zapisu w innych przypadkach.
Podstawowe właściwości
Właściwości opisują obiekty wykorzystywane w procesie przetwarzania, szczególnie w czasie pracy z procedurami obsługi takimi jak LexicalHandler i DeclHandler, które nie należą do podstawowego zestawu procedur SAX 2.0 (te ostatnie to EntityResolver, DTDHandler, ContentHandler oraz ErrorHandler). Każda właściwość może być tylko do odczytu lub do odczytu i zapisu. Możliwe jest także, że określone funkcje da się modyfikować tylko w czasie przetwarzania lub przeciwnie — tylko wtedy, gdy przetwarzanie się nie odbywa.
Procedura obsługi fragmentów leksykalnych
Właściwość ta umożliwia ustawienie (lub odczytanie ustawienia) implementacji LexicalHandler wykorzystywanej do obsługi komentarzy i odwołań do definicji DTD występujących w dokumencie XML.
URI: http://xml.org/sax/properties/lexical-handler
Typ danych: org.xml.sax.ext.LexicalHandler
Dostęp: do odczytu i zapisu zarówno w czasie przetwarzania, jak i w innych przypadkach.
Procedura obsługi deklaracji
Właściwość ta umożliwia ustawienie (lub odczytanie ustawienia) implementacji DeclHandler wykorzystywanej do obsługi zawężeń określonych w definicji DTD.
URI: http://xml.org/sax/properties/declaration-handler
Typ danych: org.xml.sax.ext.DeclHandler
Dostęp: do odczytu i zapisu zarówno w czasie przetwarzania, jak i w innych przypadkach.
Węzeł DOM
Kiedy odbywa się przetwarzanie, za pomocą tej właściwości można pobrać bieżący węzeł DOM (o ile korzystamy z parsera DOM). W pozostałych przypadkach za pomocą tej właściwości pobiera się węzeł główny DOM.
URI: http://xml.org/sax/properties/dom-node
Typ danych: org.w3c.dom.Node
Dostęp: tylko do odczytu przy przetwarzaniu, do odczytu i zapisu w innych przypadkach.
--> Dosłowny łańcuch [Author:AJ] XML
Za pomocą tej właściwości można pobrać ten tekst dosłowny znajdujący się w dokumencie, który spowodował uruchomienie bieżącego zdarzenia (tj. zdarzenia, które trwa w czasie użycia tej właściwości).
URI: http://xml.org/sax/properties/xml-string
Typ danych: java.lang.String
Dostęp: tylko do odczytu zarówno w czasie przetwarzania, jak i w innych przypadkach.
394 Dodatek B Funkcje i właściwości SAX 2.0
Podstawowe właściwości 393
C:\Roboczy\Skład\Java i XML\B-07.doc — strona 394
C:\Roboczy\Skład\Java i XML\B-07.doc — strona 393
C:\Roboczy\Skład\Java i XML\B-07.doc — strona 391
W.D.: Internalizacja łańcuchów. (tłumacz: tak, internalizacja jest stanowczo lepsza)
W.D.: Literał XML (tłumacz: proszę nie zmieniać, literał to termin jak najbardziej poprawny, ale wolę -- i stosowałem w całym tlumaczeniu -- „łańcuch dosłowny”)