Синтаксический анализатор с проверкой достоверности: SAX и DOM
Имея правильный инструмент для усиления качества контроля, мы может сделать жизнь намного легче. Это одна из великих преимуществ XML, а так как цель XML состоит в том, чтобы быть универсальным языком, который работает одинаково все время, стандарт для целостности данных должен быть высоким.
Ключом для целостности такого уровня является синтаксический анализатор с проверкой достоверности. Синтаксический анализатор с проверкой достоверности проверяет ваш XML документ на хорошее форматирование, которое обычно страдает от отсутствующих закрывающих тэгов или орфографических ошибок. Как это предполагает название, этот синтаксический анализатор выполняет проверку на хорошее форматирование документа, проверяя ошибки, которые трудно найти: отсутствующие элементы или неверный порядок элементов, основываясь на модели документа, помещенной в DTD или XML Схему.
Другой великолепный аспект, относящийся к синтаксическим анализаторам проверки достоверности с открытым кодом, является то, что лучшие из них бесплатны. Синтаксический анализатор, который я буду использовать в этой главе, это Apache Xerces. Существует Java и C++ версии, которые поддерживают модель документов, выполненных как в DTD, так и в XML Схеме. (xml.apache.org)
XML прогрессирует так быстро, что трудно за ним уследить. Это относится и к инструментам, которые мы будем использовать. Xerces 2.1.0 значительно отличается по архитектуре от Xerces 1.4. Это произошло потому, что XML среды очень быстро эволюционируют. Xerces 2 работает с SAX 2.0, DOM Level 2, некоторыми добавлениями из DOM Level 3... - это бесконечно, и команда Apache сделала восхитительную работу, включив все пересмотренные и новые технологии.
Но что же в точности делает синтаксический анализатор? Он разделяет на части XML документ и позволяет вам иметь дело с ним программно. Существует два метода для программистской работы с XML документом, вы можете иметь дело с событиями, которые происходят во время синтаксического разбора, или вы можете разбить XML документ на общее представление содержимого и модель, которой все инструменты могут манипулировать.
Простейшее API для XML (SAX - Simple API for XML) является интерфейсом для синтаксического анализа документа и последующей вставки кода приложения при возникновении важных событий во время синтаксического разбора документа. SAX является системой управления XML документом, основанной на событиях. Она позволяет обрабатывать документ последовательно, без необходимости считывать весь документ в память.
Объектная Модель Документа DOM (Document Object Model) является стандартным представлением содержимого и модели XML документа для всех языков программирования и инструментов. Поддержка существует для JavaScript, Java, C++, CORBA, Python, Perl и других языков, что позволяет DOM быть кроссплатформенной и кроссязычной спецификацией.
В своей наиболее фундаментальной форме DOM является древовидной моделью. В то время, как SAX дает вам событийную концепцию синтаксического разбора, DOM дает вам полное представление документа в памяти. Обе модели имеют свои сильные и слабые стороны, как мы это увидим.
← | Хорошо Форматированный и Достоверный XML | SAX | → |