SAX-парсеры реализуются путем создания ContentHandler
объекта, который реализует определенные функции обратного вызова, которые соответствуют событиям, которые происходят при синтаксическом анализе XML-документа. Например, метод startDocument
вызывается, когда синтаксический анализатор начинает синтаксический анализ документа, и startElement
вызывается, когда он обнаруживает новый тег; аналогично, endElement
, endDocument
и error
вызываются, когда синтаксический анализатор находит конец тега или документа, или когда обнаружена неверная последовательность.
В этом примере показано, как использовать синтаксический анализатор SAX. Ключ в том, что класс MyHandler
расширяет класс DefaultHandler
(который реализует интерфейс ContentHandler
) и переопределяет пустые реализации каждого метода обратного вызова.
Думайте об этом так: класс Java SAXParser
знает, как анализировать XML-документы, но когда он обнаруживает интересующие его вещи, он полагается на некоторый класс-обработчик, чтобы знать, что с ними делать. Класс DefaultHandler
- это вспомогательная реализация, которую вы можете расширить, чтобы обратить внимание на интересные вещи.