« Поставить закладку » « Сделать стартовой »

« Форумы » « Блоги » « Статьи » « Новости » « Файлы » « Realcoding IRC » « Site map » « Поиск »


Главная Главная
Анонсы Анонсы
Форумы Форумы
Каталог Каталог
Поиск Поиск
Опросы Опросы
Книжный магазин Книжный магазин
Реклама на сайте
Публикации Публикации
Партнеры Партнеры
Карта Карта сайта
Рассылки Рассылки
RSS экспорт
Настройки Настройки
О нас пишут О нас пишут
Контакты Контакты
Гостевая книга Гостевая книга



ПнВтСрЧтПтСбВс
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
    Популярное
Функция DestroyCursor

Создание компонент в DELPHI

Учебная программа Калькулятор

Функция AccessResource

"Бабе – цветы, детям – мороженое", или Какими бывают инструкции

Функция Escape

Chapter 7. Инициализация или как написать приложение с нуля

Введение в Windows Workflow Foundation. Марат Бакиров

Использование триггеров и хранимых процедур

Выбор Windows Vista и .Net 3.0 Development, которые подойдут вам




    Архив файлов



    Сообщества

    Документация

    Кто на сайте
Вы не зарегистрированы.
Имя:

Пароль:

Запомнить

Регистрация позволит Вам пользоваться дополнительными сервисами.
Сейчас на сайте:
Гостей: 144
Пользователей: 0

Статьи:: Интернет технологии :: XML :: Использование XML/XSL для публикации в Web



отправить ссылку другу версия для печати  Обсудить на форуме

Использование XML/XSL для публикации в Web

С развитием Internet-технологий все более актуальной становится проблема представления одного и того же документа в различных формах и форматах. Если в обычном Web-е достаточно написать только один HTML-документ, который вполне приемлемо будет отображается ведущими броузерами, то ситуация в мобильном Web-е несколько более сложна.

Популярность мобильных устройств растет с каждым днем, число пользователей мобильных устройств увеличивается стремительно. В странах, где число мобильных устройств достигает 80% на 100% населения (Япония, Ю.Корея, Тайвань, Гонконг, Индонезия), веб-мастера и веб-разработчики уже столкнулись с этой проблемой.

Использование мобильных устройств - это не дань моде или престижу, это в первую очередь дань удобству. В Европе и Америке пользователей пока останавливает только цена и сложность в работе этих устройств, а также - разброд в стандартах и методах представления информации. Именно благодаря решению этих проблем популярность мобильных устройств так высока в Азии. Опыт Азии уже начинает применяться в Европе и в Америке. Следовательно скоро и там веб-мастерам придется решать проблему, которая уже стоит перед веб-мастерами Азии.



В мобильном Web-е пока еще нет единого стандарта представления информации. Практически каждый производитель мобильного устройства, начиная от мобильного телефона и кончая наладонными компьютерами, поддерживает какой-то свой собственный стандарт представления информации, например, WML (для WAP), MML (J-Phone), HDML (для EZweb), CHTML (для DoCoMo), упрощенный HTML (для PDA). Почти все эти форматы несовместимы друг с другом - WAP-телефон не может показать страницу, написанную в CHTML, а PDA iPAQ не может показать страницу, написанную на WML для WAP-телефона. А некоторые родственные варианты - MML и CHTML - имеют небольшие специфические отличия. Преобразование одного формата в другой весьма трудоемкий процесс. А если учесть то, что мобильные устройства, использующие одну и ту же технологию представления информации, могут еще отличаться размерами экрана, глубиной цвета и форматом графических файлов, то число комбинаций различных вариантов страниц, которые вам придется писать вручную, достигает астрономической величины. Еще большие трудности возникают при поддержке всей этой кучи вариантов страниц. Для внесения изменения в содержание текста вам придется менять ВСЕ варианты страниц, что может превратиться в кошмар.

Есть множество подходов к решению этой проблемы, но одним из самых привлекательных является XML/XSL-технология. Состоит она в том, чтобы отделить данные (содержание) от их визуального представления (формы и формата).

XML/XSL

Схема работы XML/XSL-приложения может выглядеть так:

Работает все это достаточно просто: для того, что бы преобразовать XML-документ по XSL-таблице нужно взять XSL-процессор, дать ему на вход два файла и на выходе получится результат.

Теперь давайте рассмотрим более подробно весь процесс, состоящий из трех шагов:

  1. Создание XML-кода. Владелец информационного наполнения создает и разрабатывает XML-файлы. Ему не надо ничего знать о том, как контент обрабатывается и представляется. Именно так обращаются с контентом более современные издательские системы, однако большинство средств публикации в Web не работают в такой манере. Вместо этого владельцы контента и кодировщики HTML часто делают работу друг друга.

    Как правило, эта часть цикла выполняется с помощью обычных текстовых редакторов, хотя имеются и специализированные редакторы XML-кода, несколько упрощающие работу. Некоторые поставщики СУБД оснастили свои продукты функцией непосредственной генерации XML-кода в ответ на ввод оператора select.

  2. Создание XSL-таблиц.

    Вся логика обработки и вывода XML-документа заключается здесь. Задача создания XSL-таблицы не тривиальная, поэтому XSL-таблицы создаются администратором-программистом и после создания меняются уже редко.

  3. Наложение стилевых таблиц XSL.

    На документ, сгенерированный на шаге 1, затем накладываются стилевые таблицы XSL (шаг 2). При этом выполняются конкретные правила форматирования, выдавая в результате документ, соответствующий запрашивающему клиенту. В число возможных выходных форматов входят HTML, PDF, WML и XML.

Химия XML/XSL

Химия на стороне клиента

Последний процесс - процесс преобразования - может выполняться на стороне клиента: новейшие броузеры понимают xml и стили для них, умеют подключать стили к xml-документам и формировать окончательный документ. Принцип работы похож на то, что происходит с html-файлом и прилинкованным к нему css-файлом. В настоящее время xml/xsl-преобразование могут выполнять IE 5+, Netscape 6, Mozilla.

Вариант преобразования на стороне клиента весьма привлекателен. Современные компьютеры достаточно мощны, чтобы справиться с такой задачей. При этом существенно сокращается нагрузка на сервер, да и стилевая таблица загружается только один раз. Однако сейчас еще рано публиковать XML-документы в Интернете "просто так" - для Web есть HTML, значит его и надо отдавать пользователю. И кроме того, что делать в случае тех броузеров, которые не понимают полноценный HTML и не могут сами выполнять xmlxsl-преобразования? Для этого приложение стиля к XML-документу осуществляется на сервере.

Химия на стороне сервера

Делаться это может двумя способами: вручную, либо автоматически.

Вы можете собрать коллекцию xml-файлов и стилевых таблиц и вручную откомпилировать их, а на сервере выложить только полученные файлы. Но это можно сделать и автоматически. Для этого используется специальная система, примером которой может служить Cocoon.

Система занимается тем, что, работая на web-сервере, делает требуемое преобразование xml-документа автоматически до того, как отдать его пользователю. Технически размещение подобной системы на web-сервере ничем не отличается от установки SSI или PHP3 процессоров. При этом ресурсы у пользователя не отбираются и, что самое главное, пользователю не требуется браузер, способный выполнять xsl-преобразования. Также, если нам захочется воспользоваться самым новейшим и быстрым xml-парсером и xsl-преобразователем - нам его достаточно установить на сервере и не беспокоиться о том, например, обновил ли владелец IE5 свой парсер, что шел в комплекте с броузером, до самой свежей версии, которая соответствует стандартам W3C.

Web-сервер в этом варианте превращается в систему публикации (Publishing Framework). В отличие от обычных серверов, которые в ответ на запрос выдают файл, хранящийся на сервере, publishing web-сервер выдает "опубликованную" версию файла, которая соответствует параметрам запроса, броузеру посетителя, его настройкам и/или предпочтениям. Например, если запрос делается программой Acrobat Reader, то публикуемая страница придет к посетителю в формате PDF. WAP-устройства (Wireless Application Protocol) получат WML-старницу (Wireless Markup Language), а обычный Web-браузер - HTML-страницу, более продвинутый - XHTML-страницу.

В случае с Web-браузером можно даже выбирать между различными вариантами и даже версиями программы. И выдавать различный документ в зависимости от того, пришел ли запрос от браузера Lynx, который может показывать только текст, от Netscape Navigator 3/4.7/6.2 или от Microsoft Internet Explorer. Посетитель сайта не видит исходной версии файла (хранящейся в xml), она ему и не требуется, но в то же время он не указывает явно, что xml-файл нужно преобразовать в какую-то версию. Все это делается полностью автоматически.

Разумеется нагрузка на сервер из-за этого возрастает, но и преимущества в этом тоже есть. Один и тот же xml-документ с легкостью может быть подан как супернавороченному броузеру (IE), так и простейшему варианту (Lynx, Netscape 3), либо их микрособратьям - броузерам, встроенным в мобильные телефоны (WAP/i-mode), либо вообще таким экзотическим вариантам, как голосовым броузерам или броузерам для слепых (код Брейля). Более того с использованием особых библиотек и небольших ухищрений можно реально отделить содержание документа от его представления и подать его в виде pdf-файла или Excel-файла, gif/png/jpeg/svg - картинки.

Назад к постановке задачи

Я не веду речь о платформе для публикации любого контента для любого броузера, хотя в теории и это возможно. Контент для мобильных телефонов и для полноценных броузеров должен быть разным. Отличия заключаются в объеме подаваемой информации, в порядке и логике ее представления, в оформлении и навигации. Создателям текстов для сайта всегда придется писать разные тексты, предназначенные для обычных броузеров и для их усеченных собратьев. Если кто-то приходит к вам и говорит, что "купив наш продукт, вы сможете написать текст один раз, и он автоматически будет переделан под любой известный броузер", знайте, вам просто вешают лапшу на уши. Я могу сохранить текст "Божественной комедии" данте в HTML и вывесить на сайте, и пользователи IE и Netscape, хоть и скрипя зубами, но смогут загрузить и прочитать 200 страниц текста. А теперь представьте каково будет читать этот текст в броузере, чье окно по размеру равно спичечному коробку.

Поэтому наша цель - подать однотипный контент для разнотипных броузеров одного порядка. Либо мы создаем сайт, который сможет давать одно и то же содержание для всех полноценных броузеров (IE, Netscape, Mozilla, Opera, Lynx и проч.), либо сайт, который выдает одно и то же содержание для всех "усеченных" броузеров (различные мобильные телефоны, PDA, голосовые броузеры и проч.).

...между прочим

Кроме задач визуального представления информации, XML-технология может с успехом использоваться в решении задач обмена и хранения данных. XML может быть использован, например, для хранения конфигурационной информации. Это обеспечивается тем, что функции парсера (интерпретатора) XML встроены во многие средства разработки приложений. А самое главное, тем, что XML-документ может быть отредактирован с помощью самого обычного текстового редактора. Т.е. данные, хранящиеся в XML-документе могут передаваться из программы в программу и оставаться при этом понятными человеку (human readable).

Источник: Webmascon Project
Автор:
Александр Качанов




Рубрика: XML




Подгрузка через AJAX HTML-кода, содержащег....

AJAX

При разработке CMS S.Builder наша команда активно использовала AJAX. Теперь вот решили поделиться накопленным опытом. Начнем с этого хабратопика. Не буду здесь затрагивать различные фреймворки и библиотеки. Свой код всегда роднее. Для работы с AJAX-ом в S.Builder написана библиотека sbAJAX. Можете качать и пользоваться :). В этом файле есть функция sbEvalJS. Для тех, кто не знает, объясню. При подгрузке через AJAX и вставке на страницу HTML-кода, содержащего JavaScript, JavaScript выполняться не будет или полезут баги. Эта функция как раз решает поставленную задачу.


Подробнее... | Рубрика: AJAX | Добавлено: 19.11.2008

Обзор нового релиза самой мощной Ajax библ....

AJAX

Хотя наш обзор немного запоздал, оригинальный Dojo 1.2 вышел в релизной версии ещё 6-го октября, но сейчас мы наверстаем упущенное. И так, Dojo Toolkit — это самая мощная и гибкая ajax-библиотека из всех, что есть на рынке, она активно развивается и имеет большое комьюнити. Кстати, это самое комьюнити, совместно с компанией Sitepen, имеет ещё несколько проектов, среди которых и Cometd и некоторые другие, не менее интересные, о которых мы скоро вам расскажем. Сегодня же все внимание на флагманский продукт — Dojo 1.2.


Подробнее... | Рубрика: AJAX | Добавлено: 19.11.2008

Firebug 1.3 и 1.4 alpha — что нового и инт....

Вебмастеру

Если вы профессиональный веб-разработчик и постоянно имеете дело с разработкой и отладкой сложных AJAX приложений, то наверняка знаете и используете Firebug — плагин для браузера Firefox, предназначенный для отладки и исследования веб-приложений. Текущая его версия, 1.2х достаточно стабильная и функциональна, чтобы помочь в 99% проблем, которые могут возникнуть при разработке. Но и этот инструмент не лишён если не недостатков, то некоторых фич, которые могли бы облегчить работу. И даже идеальный инструмент можно сделать ещё более идеальным, как бы это не звучало.


Подробнее... | Рубрика: Вебмастеру | Добавлено: 19.11.2008

Остальные статьи:

Релиз Microsoft Silverlight 2.0. Что новог...
XML документация в C#
Курсоры в MySQL 5
Microsoft опубликовала подробности о сесси...
Microsoft делится подробностями о том, что...
Тестируем новый javascript от нового брауз...
MySQL Query Cache
Использование провайдеров компиляции в As...
Чего мы ждем от C# 4.0
Delphi 2009 и C++Builder 2009
Джоэл Спольски и Джеф Этвуд запустили новы...
Поиск кода Google /* что нового? */
10 jQuery скриптов для улучшения интерфейс...
Генераторы отчетов FastReport 4 и QuickRep...
День программиста — набор стерeотипов
Индусские програмисты
Вышел Django 1.0
Портативная версия Google Chrome Portable
Исходные коды .Net Frameword 3.5 SP1 для о...
Пишем правильный online WYSIWYG-редактор


Цитата дня (все,добавить):

Портал фрилансеров

работа на дому


    Рубрикатор

Программирование

C/С++
Обучение
Windows API
XAML
Моделирование
Паттерны
Visual Basic 7 .NET
WxWidgets
Функции WinApi
Функции С++
Разработка под Mac OS
Eiffel
Visual Studio 2008
UI дизайн
Алгоритмы
Конкурсные статьи
Turbo Pascal
Visual Studio
CASE-средства
Visual Studio 2005
Без VCL
Delphi
Тех. документация
Тестирование
Software Testing
ООП
TCP/IP
Google Android
Windows Installer
.NET Framework
Драйвера
C# C Sharp
Справка
Проектирование
Информ. системы
Visual Basic
Assembler
Оптимизация кода
Gtk+
Компоненты
Реинжиниринг
Управление проектами
Extreeme programming
Lotus Notes
Алгебраическое проектирование


Интернет технологии

PHP
Perl
ASP
WAP
Cookies
SSI
CGI
Web Servers
VB Script
DNS
CSS
XML
Html
Java Script
Java2ME
Firewall
Flash
.htaccess
Apache
VRML
Протоколы
Поисковые системы
Технология JAVA
Учебник по PHP
Учебник по JavaScript
Учебник по XML
Java Q&A
AJAX
DHTML
XHTML
Dreamweaver
Web 2.0
Python
Вебмастеру
Cisco
Ruby on Rails
Silverlight

Базы данных

Access
InterBase
MySQL
Oracle
ADO .NET
Основы SQL
Учебник по Access 2002
MS
Microsoft FoxPro
Доступ к данным
XML в MS SQL Server 2000
ODBC и MyODBC
Обучение
Caché
DB2
PostgresSQL
Sybase
Теория
Хранилища данных
Безопасность
Реляционные данные
MySQL и mSQL

Остальное:

Разное
Обзоры книг
Безопасность
Графика и дизайн
Юмор
Linux
Фракталы
Microsoft Axapta
Многоядерность
Сети
Microsoft Office
Работа
MS-DOS
Криптография
Графика и игроделание
Новости SDK
Системы защиты
Учебник по AutoCad
CVS
Windows XP
Windows Server 2003
Windows Vista
Windows 7
Мероприятия