Введение
За последние несколько лет XML стал универсальным форматом данных. В этом усовершенствованном учебном пособии я расскажу о самых общих программных интерфейсах для работы с XML-документами на языке Java.
Стандартная задача в обработке XML-парсинг XML-документа. Парсинг (или разбор) предполагает чтение XML-документа с целью определить его структуру и содержание. Одним из достоинств XML-программирования является наличие доступных и бесплатных парсеров XML, которые читают для вас XML-документы. Данное руководство научит вас создавать парсеры, с их помощью обрабатывать XML-файлы и интерпретировать полученные результаты. Как вы и предполагали, сделать это можно несколькими способами; я исследую используемые стандарты и посоветую, когда следует использовать один подход, а когда другой.
Чтобы упростить написание Java-программ, способных обрабатывать XML, был создан целый ряд программных интерфейсов. Они разработаны крупными компаниями, комитетами по стандартизации и просто группами пользователей так, чтобы отвечать потребностям XML-программистов. В данном руководстве я затрону следующие интерфейсы:
- Объектную модель документа (DOM), Уровень 2
- Простой API для XML (SAX), Версия 2.0
- JDOM, простой Java API, созданный Джейсоном Хантером и Брэдом МакЛафлином
- Java API для обработки XML (JAXP)
Первые три из этих четырёх интерфейсов (DOM, SAX, и JDOM) определяют, как происходит обращение к содержанию XML-документа и его отображение. JAXP содержит классы для создания парсеров. Чтобы создать DOM- и SAX-парсеры, необходимо воспользоваться JAXP. При работе с JDOM, архив JDOM использует JAXP в скрытом виде, чтобы создать парсер. Подведем итоги вышесказанного:
- Вы используете DOM, SAX, и JDOM при работе с содержанием XML-документа.
- Если вы используете DOM или SAX, то для создания парсера используете JAXP.
- При работе с JDOM архив JDOM создает для вас парсер.
Я проанализирую цели проектирования, сильные и слабые стороны каждого из этих API, расскажу об истории их создания.
В данном руководстве я приведу несколько программ-примеров, которые используют DOM, SAX, и JDOM API. Все они работают с сонетом Шекспира, записанного в XML-тегах. Структура сонета такова:
<sonnet>
<author>
<lastName>
<firstName>
<nationality>
<yearOfBirth>
<yearOfDeath>
</author>
<lines>
[14 <line> elements]
</lines>
</sonnet>
|
Чтобы посмотреть законченный пример, обратитесь на sonnet.dtd (скачайте, чтобы просмотреть в текстовом редакторе).
Прежде чем работать с программами-примерами, вам необходимо настроить некоторые вещи на вашем компьютере. (Я полагаю, вы знаете, как создать и запустить Java-программу и как задать значение переменной CLASSPATH.)
- Сначала посетите домашнюю страницу XML-парсера Xerces на Apache XML Project (http://xml.apache.org/xerces2-j/). Вы также можете сразу перейти на страницу загрузки (http://xml.apache.org/xerces2-j/download.cgi).
- Распакуйте файл, который вы скачали с Apache. После этого в вашем компьютере появится каталог с названием
xerces-2_5_0или подобным ему, в зависимости от уровня релиза парсера. Необходимые вам JAR-файлы (xercesImpl.jarиxml-apis.jar) должны находиться в корневом каталоге Xerces. - Посетите веб-сайт проекта JDOMt и скачайте самую последнюю версию JDOM (http://jdom.org/).
- Распакуйте файл, который вы скачали с JDOM. После этого в вашем компьютере появится каталог с названием
jdom-b9или подобным ему. Необходимый вам JAR-файл (jdom.jar) должен находиться всозданномкаталоге. - Добавьте текущий каталог (
.),xercesImpl.jar,xml-apis.jar, иjdom.jarк переменнойCLASSPATH.