Обзор XML: Firefox 2.0 и XML (исходники)Источник: IBM developerWorks Россия Уче Огбуйи (Uche Ogbuji)
На текущий момент Web-браузеры являются, пожалуй, наиболее распространенным типом программного обеспечения, выступая в роли платформы для работы других приложений. Мы наблюдаем всплеск активности по разработке приложений, в частности, вновь вернувшихся к использованию динамических HTML-технологий, таких как Асинхронный JavaScript и XML (Ajax), а также возобновление работы над Microsoft Internet Explorer. В серии статей developerWorks, посвященной поддержке XML в Firefox, были представлены функции версии 1.5, созданной на основе движка Mozilla Gecko 1.8. С тех пор, благодаря жесткой конкуренции в мире браузеров, появился Firefox 2.0 на основе Gecko 1.8.1. В новом релизе были затронуты и функции для работы с XML. О новинках мы расскажем в данной статье, а также подробно остановимся на одной потенциальной проблеме, о которой должны помнить разработчики. Ослабленный контроль за Web-каналамиОдно из изменений в Firefox 2.0 несколько испугало пользователей. При публикации Web-канала, например RSS или Atom, можно добавить ссылку на страницу XSLT, которую браузер должен применить к XML-данным для отображения их в виде, удобном для пользователя. Пример использования XSLT-преобразования в канале Atom показан в листинге 1. Листинг 1. Канал Atom со ссылкой на таблицу стилей XSLT
Ключевой является вторая строка, в которой содержатся инструкции по обработке (PI) - ссылка на страницу XSLT. Если загрузить данный канал в Firefox 1.5, то браузер честно загрузит Рисунок 1. Отображение Web-канала в Firefox 2.0 Единственный способ обойти данную проблему - это "обмануть" простой эвристический тест, который использует Firefox для проверки, являются ли данные Web-лентой. Для этого приходится подменять первые 512 байт файла и убирать оттуда строку "rss" или "feed". Зачастую можно просто вставить комментарий, как показано в листинге 2: Листинг 2. Решение проблемы игнорирования XSLT в канале Atom для Firefox 2.0 и Internet Explorer 7
Эта проблема вызвала горячие споры среди пользователей. В итоге разработчики Firefox решили не менять данное решение, и подобное поведение браузера должно сохраниться в следующих версиях. Лично мне оно не нравится, но вы можете сформировать собственное мнение, прочитав обсуждение проблемы. Стоит также упомянуть, что подобным образом себя ведут браузеры Internet Explorer и Apple Safari. МикрозаголовкиМикрозаголовки (Microsummaries или Live Titles) - это новая возможность Firefox 2.0, с помощью которой можно задавать инструкции для замены заголовков на фрагменты содержимого Web-страниц, например из закладок. Например, используя микрозаголовки c сайта IBM developerWorks, можно заменять статичный текст "developerWorks : IBM's resource for developers" на заголовок последней избранной статьи. Микрозаголовки могут предоставляться самим Web-сайтом или создаваться пользователем. Последний вариант, известный также под названием "генерация микрозаголовков", представляет особый интерес в контексте данной статьи, так как пользователю приходится самостоятельно использовать XML и XSL или же запускать ранее созданные генераторы. Пример такого генератора, извлекающего заголовок последней избранной статьи на developerWorks, показан в листинге 3.
Код генератора содержит две секции: шаблон и информацию о странице. Шаблон представляет собой XSLT, применяемую к Web-странице для извлечения микрозаголовков. Сами страницы задаются с помощью элемента В настоящее время микрозаголовки поддерживаются только в браузерах Mozilla. SAX и не толькоИз функций, которые могут заинтересовать разработчиков модулей расширений к браузерам Mozilla, можно выделить SAX-парсер, относящийся к компонентной системе XPCOM. Таким образом, можно создавать расширения, эффективно обрабатывающие XML-данные в случае, если недоступны более высокоуровневые средства. Интеграция с XPCOM означает, что SAX-события можно теперь обрабатывать на C++, JavaScript, а также на любом языке, совместимом с XPCOM. OpenSearchOpenSearch - это стандарт XML, разработанный в инкубаторе Amazon A9. Он определяет несколько форматов XML и другие правила, позволяющие описывать и использовать поисковые сервисы. Firefox всегда предоставлял поддержку расширений поисковых движков, а благодаря поддержке OpenSearch в Firefox 2.0 возможности поиска могут быть дополнены средствами также совместимыми с Internet Explorer и другими браузерами. В настоящее время Firefox поддерживает OpenSearch 1.1, который пока находится в фазе бета-тестирования, поэтому возможно понадобятся обновления, для обеспечения дальнейшей совместимости Firefox и OpenSearch. В листинге 4 показан пример документа OpenSearch, описывающего поиск на сайте IBM developerWorks. Листинг 4. XML-документ, описывающий поиск на сайте IBM developerWorks с помощью OpenSearch
В документе сказано, что поиск на сайте IBM developerWorks находится по адресу
При этом
Система URL-шаблонов определена в спецификации OpenSearch. Кроме этого, спецификация определяет правила выдачи результатов поиска в виде лент RSS 2.0 или Atom 1.0, а также нескольких специальных расширений. В настоящее время Firefox не поддерживает такую возможность, поэтому любое описание поискового сервиса, не содержащее элемент Url с типом содержимого В Firefox 2.0 описания OpenSearch, подобные примеру в Listing 4, выступают в роли полноценного модуля расширения поиска. Описания могут предоставляться Web-сайтами с помощью ссылок в заголовках страниц, таких как:
Замечание: Каждый из трех приведенных выше примеров обычно помещается в одной строке. Они разбиты на несколько строк только в целях удобства просмотра и печати. ЗаключениеЕще более захватывающие возможности по XML-обработке ожидают нас в Firefox 3.0, который пока проходит альфа-тестирование и должен быть выпущен в первой половине 2008 г. Он будет сочетать новые возможности и исправления серьезных ошибок, и я расскажу о них, как только он станет основным релизом Firefox, доступным для широкого использования. Кроме этого, развивается XML-инструментарий Mozilla, которым могут пользовать как разработчики, так и пользователи, работающие с XML-технологиями. В данной серии мы продолжим подробное освещение возможностей последних версий Firefox, так как именно браузер является лицом обработки XML-данных с точки зрения большинства пользователей и программистов. |