- •Оглавление
- •1. История появления xml и его особенности. Хорошо оформленный документ
- •2. Структура документа xml. Верный документ
- •3. Ссылки на сущности, секция cdata. Комментарии, атрибуты, имена
- •4. Пространства имён xml. Инструкции по обработке
- •5. Конструкции dtd: объявление типа элемента, объявление атрибутов
- •6. Конструкции dtd: объявление сущности, объявление обозначения
- •7. Размещение описания dtd. Программы-анализаторы xml
- •8. Описание схемы документа на языке xsd. Встроенные простые типы
- •9. Определение новых простых типов в xsd
- •10. Объявление элементов и их атрибутов в xsd
- •11. Определение сложных типов в xsd
- •12. Пространства имён языка xsd. Связь документа xml со своей схемой
- •13. Создание ссылок на языке xLink. Пространство имён языка xLink
- •14. Атрибуты, используемые при создании ссылок на языке xLink
- •15. Типы ссылок, создаваемых на языке xLink
- •16. Создание банка ссылок. Программы-обработчики атрибутов xLink
- •17. Таблицы стилей css в языке xml. Язык описания стилей xsl
- •18. Язык записи преобразований xslt бред, не стала разбираться, что из этого надо, а что нет
7. Размещение описания dtd. Программы-анализаторы xml
Описание DTD можно занести в отдельный файл, например ntb.dtd, указав его имя во второй части пролога DOCTYPE. Можно включить описание непосредственно во вторую часть пролога XML-файла, заключив его в квадратные скобки.
Программы-анализаторы XML
После того как создано описание DTD реализации XML и написан документ, размеченный тегами этой реализации, следует проверить правильность их написания и соответствие их друг другу. Для этого есть специальные программы — проверяющие анализаторы (validating parsers). Все фирмы, разрабатывающие средства для работы с XML, выпускают бесплатные или коммерческие проверяющие анализаторы. Например, фирма IBM выпускает анализатор xml4j, написанный на языке Java. Он входит в состав сервера приложений WebSphere, но его можно использовать и отдельно, свободно загрузив с адреса http://www.alphaworks.ibm.com/архивы xml4j.jar, xerces.jar и xercesSamples.jar.
Проверяющий анализатор фирмы Sun Microsystems, написанный тоже на языке Java, содержится в пакете Java-классов JAXP (Java API for XML Processing), входящем в состав и J2SDK Standard Edition, и J2SDK Enterprise Edition. Кроме того, этот пакет можно загрузить отдельно или в составе пакета Java XML Pack с адреса http://java.sun.com/xml/.
Корпорация Microsoft поставляет проверяющий анализатор MSXML (Microsoft XML Parser), доступный по адресу http://msdn.microsoft.com/xml/.
У корпорации Oracle есть полный набор средств для работы с XML, в том числе и анализатор Oracle XML Parser. Его можно получить по адресу http://otn.oracle.com/tech/xml/.
Фирма Mind Electric занимается разработкой программных продуктов, использующих XML. Ее анализатор Electric XML и другие продукты находятся по адресу http://www.themindelectric.com/products/xml/.
Большую популярность получил анализатор ХР Джеймса Кларка, который можно найти по адресу http://www.jclark.com/xml/xp/.
Есть еще множество проверяющих анализаторов, но лидером среди них является, пожалуй, Apache Xerces 2, входящий во многие средства обработки документов XML, выпускаемые другими фирмами. Он создан сообществом Apache Software Foundation и свободно доступен по адресу http:// xml.apache.org/xerces2-j/.
Анализаторы.
Помимо определения синтаксиса XML, в рекомендации W3C описан так же процессор или анализатор XML. Существуют два типа анализаторов:
non-validating (не проверяющий на допустимость) - анализатор просто проверяет, чтобы объект данных был правильно оформленным документом XML
validating (проверяющий на допустимость) - с помощью определения DTD анализатор проверяет допустимость формы и содержания правильно оформленного документа XML
Некоторые анализаторы поддерживают оба типа, при этом в их конфигурации имеется возможность переключаться на один из них, в зависимости от того, надо ли проверять допустимость документа.
Событийно управляемые анализаторы.
Один из подходов в обработке данных XML связан с событийно управляемыми анализаторами. В этом случае анализатор осуществляет обратное обращение (call-back) к приложению для каждого класса данных XML: элементы (с атрибутами), символьные данные, команды обработки, нотации или комментарии. Приложение осуществляет всю дальнейшую обработку данных XML, полученных в результате обратных обращений, - анализатор не обслуживает древовидную структуру элемента или любые анализируемые данные. Даже для чрезвычайно больших документов анализатор XML расходует очень небольшое количество системных ресурсов; кроме того, вследствие его простого низкоуровневого доступа к данным XML, он позволяет чрезвычайно гибко работать с данными в приложении XML.
Древовидные анализаторы.
Одной из самых распространенных структур в конструировании программного обеспечения является простое иерархическое дерево. Все правильно оформленные данные XML должны представлять собой такое дерево, и потому для путешествия по узлам документа, поиска его содержания и/или редактирования можно использовать распространенные хорошо разработанные алгоритмы. Эти алгоритмы в течение десятилетий разрабатывались и использовались в академической и коммерческой среде. Использующие этот подход анализаторы XML, как правило, соответствуют предложенной консорциумом W3C объектной модели документа (DOM).
Средства тестирования анализаторов.
Два разработчика недавно создали набор тестов для анализаторов XML (XML parser benchmark tests), применив их затем к различным анализаторам в системах Linux и Solaris. Результаты этих тестов показывают, что наиболее быстрыми являются анализаторы, написанные на языке С, за ними следуют те, что написаны на языке Java, а затем - на языках сценариев (Perl и Python).