Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Событийно управляемые анализаторы.




Один из подходов в обработке данных XML связан с событийно управляемыми анализаторами. В этом случае анализатор осуществляет обратное обращение (call-back) к приложению для каждого класса данных XML: элементы (с атрибутами), символьные данные, команды обработки, нотации или комментарии. Приложение осуществляет всю дальнейшую обработку данных XML, полученных в результате обратных обращений, - анализатор не обслуживает древовидную структуру элемента или любые анализируемые данные. Даже для чрезвычайно больших документов анализатор XML расходует очень небольшое количество системных ресурсов; кроме того, вследствие его простого низкоуровневого доступа к данным XML, он позволяет чрезвычайно гибко работать с данными в приложении XML.

Древовидные анализаторы.

Одной из самых распространенных структур в конструировании программного обеспечения является простое иерархическое дерево. Все правильно оформленные данные XML должны представлять собой такое дерево, и потому для путешествия по узлам документа, поиска его содержания и/или редактирования можно использовать распространенные хорошо разработанные алгоритмы. Эти алгоритмы в течение десятилетий разрабатывались и использовались в академической и коммерческой среде. Использующие этот подход анализаторы XML, как правило, соответствуют предложенной консорциумом W3C объектной модели документа (DOM).

Средства тестирования анализаторов.

Два разработчика недавно создали набор тестов для анализаторов XML (XML parser benchmark tests), применив их затем к различным анализаторам в системах Linux и Solaris. Результаты этих тестов показывают, что наиболее быстрыми являются анализаторы, написанные на языке С, за ними следуют те, что написаны на языке Java, а затем - на языках сценариев (Perl и Python).

 

Описание схемы документа на языке XSD. Встроенные простые типы

Язык XSD создан как реализация XML. Это значит, что схема XML сама записывается в виде документа XML. Ее элементы называют компонентами (components), чтобы отличить их от элементов описываемого документа XML. Корневой компонент схемы носит имя schema. Компоненты схемы описывают элементы XML и определяют различные типы элементов. Рекомендация схемы XML перечисляет 13 типов компонентов, но наиболее важны компоненты, определяющие простые и сложные типы элементов, сами элементы и их атрибуты.

Язык XSD различает простые и сложные элементы XML. Простыми (simple) элементами описываемого документа XML считаются элементы, не содержащие атрибутов и вложенных элементов. Соответственно, сложные (complex) элементы содержат атрибуты и/или вложенные элементы. Схема XML определяет простые типы — типы простых элементов, и сложные типы — типы сложных элементов.

Язык описания схем содержит множество встроенных простых типов.

Встроенные типы языка описания схем XSD позволяют записывать двоичные и десятичные целые числа, вещественные числа, дату и время, строки символов, логические значения, адреса URL.

Вещественные числа в языке XSD разделены на три типа: decimal, float и double.

Тип decimal составляют вещественные числа, записанные с фиксированной точкой: 123.45, —0.1234567689345 и т. д. Фактически хранятся два целых числа. Одно число представляет мантиссу, другое — порядок вещественного числа. Спецификация языка XSD не ограничивает количество цифр в мантиссе, но требует, чтобы можно было записать не менее 18 цифр.

Типы float и double записываются с фиксированной или с плавающей десятичной точкой. Например, 34.567, —45.67, 1е—5, 34.58е14.

Целые числа

Основной целый тип integer понимается как подтип типа decimal, содержащий числа с нулевым порядком. Это целые числа с любым количеством десятичных цифр: —34567, 123456789012345.

Типы long, int, short и byte понимаются как подтипы типа integer, типы более коротких чисел считаются подтипами более длинных чисел, например тип byte — это подтип типа short, оба они подтипы типа int и т. д. Значения типа byte, как следует из его названия, занимают один байт и изменяются от —128 до 127. Тип short занимает два байта, его значения лежат в диапазоне от —32768 до +32767. Числа типа int хранятся в четырех байтах и меняются от —2147483648 до +2147483647. Наконец, тип long располагается в восьми байтах, его значения от —9223372036854775808 до +9223372036854775807.

Типы nonpositivelnteger И negativelnteger — подтипы типа integer — составлены из неположительных и отрицательных чисел соответственно с любым количеством цифр.

Типы nonnegativeinteger и positivelnteger — подтипы типа integer — составлены из неотрицательных и положительных чисел соответственно с любым количеством цифр.

Основной символьный тип string описьшает произвольную строку символов Unicode.

Тип normaiizedstring — подтип типа string — это строки, не содержащие символов перевода строки '\п', возврата каретки '\г' и горизонтальной табуляции '\t\

В строках типа token — подтипа типа normaiizedstring — нет, кроме того, начальных и завершающих пробелов и нескольких подряд идущих пробелов.

В типе token выделены три подтипа. Подтип language определен для записи названия языка, например, ru, en, de, fr. Подтип NMTOKEN используется только в атрибутах для записи их перечисляемых значений. Подтип name составляют имена XML — последовательности букв, цифр, дефисов, точек, двоеточий, знаков подчеркивания, начинающиеся с буквы или знака подчеркивания.

Из типа name выделен подтип NCName (Non-Colonized Name) имен, не содержащих двоеточия, в котором, в свою очередь, определены три подтипа: ID, ENTITY, IDREF, — описывающие идентификаторы XML, сущности и перекрестные ссылки на идентификаторы.

Дата и время. Тип duration описывает промежуток времени.

Тип dateTime содержит дату и время в формате CCYY-MM-DD hh:mm:ss. Остальные типы выделяют какую-либо часть даты или времени.

Тип time содержит время В обычном формате hh:mm:ss.

Тип date содержит дату в формате CCYY-MM-DD.

Тип gYearMonth выделяет год и месяц в формате CCYY-MM.

Тип gMonthDay содержит месяц и день месяца в формате -MM-DD.

Тип gYear означает год в формате CCYY, ТИП gMonth — месяц в формате -мм-, тип gDay — день месяца в формате -DD.

Двоичные типы. Двоичные целые числа записываются либо в шестнадцатеричной форме без всяких дополнительных символов: - это тип hexBinary, либо В кодировке Base64, это тип base64Binary.

Еще три встроенных простых типа описывают значения, часто используемые в документах XML.

Адреса URL относятся к типу anyURL.

Расширенное имя тега или атрибута (qualified name), т. е. имя вместе с префиксом, отделенным от имени двоеточием, — это тип QName.

Обозначение NOTATION описания DTD выделено как отдельный простой тип схемы XML. Его используют для записи математических, химических и других символов, нот, азбуки Бройля и прочих обозначений.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...