Главная · Карта сайта · Поиск · Статьи · Компьютерные курсы · Обучающие программы · Открытые проекты · Веб-программирование · Создание интернет-сайта · Полезные ссылки · Глоссарий · Контакты · Декабрь 06 2016 22:50:21
Последнее опубликованное

Что такое Model-View-Controller
Pattern Model-View-Controller

Как создать свой веб-сайт
Как создать свой сайт в интернете

Разное
Статистика

Применение XML


Начну обзор вариантов применения XML в программировании от наиболее очевидных и широко используемых к наиболее специфичным и оригинальным случаям.

XML - замечательное средство хранения настроек вашей программы

Настройки программы в формате XML

Это вариант использования XML самый очевидный и широко применяемый в прикладном программировании. Хранить настройки вашей программы в формате XML очень удобно хотя бы потому, что синтаксис элементарный, для их редактирования подходит любой текстовый редактор, а библиотеки программных компонентов, выполняющие за вас синтаксический разбор есть в арсенале практически любого языка программирования. Более того, хранение настроек в отдельном файле может избавить вас от необходимости внесения изменений в программный код с целью поменять поведение программы. Этот довод революционным не назовешь, и для подобных целей еще до появления XML использовали обычный текстовый формат. Ну а если вы программируете с использованием платформы Microsoft .Net Framework, то должны быть знакомы с файлами настроек проектов App.config, Web.config и другими.

XSL трансформация позволит вам легко преобразовать данные в формате вашего XML расширения в любой другой структурированный текстовый формат

XML отчеты

XML является очень удобным инструментом для формирования данных табличных отчетов, состоящих из одной и более табличных форм. Вполне естественно, что вид, в котором этот отчет предстанет перед пользователем без дополнительного оформления - не совсем то, чего бы ему (пользователю) хотелось видеть. Содержимое отчета неплохо было бы отформатировать, и для этих целей великолепно подходит следующее XML расширение - XSL трансформация, применяя которое, вы можете настроить преобразование вашего XML отчета в XHTML документ приемлемого вида. Стоит отметить, что документы Microsoft Office можно сохранять в формате XML. Для каждого приложения из этого семейства существует отдельная XML схема документа, а следовательно, существует схема XSL трансформации, которая преобразует ваш отчет в документ Microsoft Excel или Microsoft Word в формате XML.

Если у вас есть XML документ и файл трансформации XSL, то подключение одного к другому выполняется добавлением в XML документ инструкции:

<?xml-stylesheet type="text/xsl" href="путь к файлу *.xsl"?>

Для просмотра примера XSL трансформации XML на стороне клиента пройдите по ссылке и посмотрите исходный код страницы - там будет XML, а не HTML. Результат преобразования XML в HTML, к сожалению, браузер не показывает. Если результат трансформации может быть корректно открыт приложением из семейства Microsoft Office, например, Microsoft Excel, а вам именно это и нужно, то необходимо добавить инструкцию вида:

<?mso-application progid="Excel.Sheet"?>

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

RSS - одно из прикладных расширений XML

Обмен данными или XML сериализация

Тут также все более или менее очевидно, поскольку XML, в первую очередь, создан для хранения и передачи наборов структурированной информации. Использовать существующие протоколы (XML - расширения), или создавать свои собственные – дело ваше, поскольку все зависит от решаемой вами задачи, но знать о существующих стандартах, чтобы в случае чего не "изобретать велосипед", я считаю необходимым. Вот некоторые из них:

Некоторые стандарты, построенные на основе XML
  • SOAP – протокол общения с web-сервисами и общения web-сервисов между собой. В основном используется для удаленного вызовы web-методов и получения результатов этих вызовов (Remote Procedure Call).
  • WSDL – язык описания интерфейсов Web-сервисов.
  • XAML – язык разметки приложений, создаваемых по технологиям компании Microsoft: WPF и Silverlight.
  • SVG – язык разметки 2D векторной геометрии с элементами описания ее графического представления.
  • RSS – формат представления данных для интернет лент новостей.
  • WML – язык разметки документов, использующийся в мобильных устройствах.
Для создания кэша данных XML является превосходным решением

Естественно, что это далеко не все...

XML и кэш базы данных

Как уже было сказано ранее, XML достаточно легко справляется с описанием структуры и содержимого различных табличных форм. Если ваша программа работает с базой данных, и вы можете уверенно классифицировать данные на "редко используемые" и "часто используемые", то целесообразно организовать кэш последних с использованием XML. Например, технология Microsoft ADO.NET демонстрирует этот подход введением абстракции DataSet. Также, этот кэш есть возможность в любой момент сохранить в файле и, при необходимости, передать пользователям, работающим в off-line, по отношению к основной базе данных, режиме.

XML также великолепно подходит для хранения метаданных

Метаданные и XML

Зачем нужны метаданные, и какие преимущества дает их применение я попытался изложить в отдельной статье. Метаданные являются краеугольным камнем приложений, их использующих, и поэтому, хранение метаданных обязано быть организованным таким образом, чтобы время поиска любого их раздела было оптимальным. Использование XML для организации хранения кэша метаданных, извлеченных из базы данных, в принципе, разумно, но стоит задуматься о дополнительном индексировании отдельных его разделов с использованием хэш-таблиц. Преимущества использования XML для организации кэша метаданных те же, что и для часто используемых данных (см. выше).

В статье про метаданные я упоминал абстракцию “брокер информационных объектов”, который инкапсулирует в себе работу с хранилищами данных и предоставляет сервисы манипуляции экземплярами информационных объектов. Если вам необходимо реализовать возможность работы как с данными в базе данных, так и с кэшем в виде набора XML документов в условиях off-line режима (требования к работе программ бывают и такие), то именно эта абстракция поможет реализовать сей каприз, не затрагивая уровень бизнес-логики приложения. Ну а работу SQL, в данном случае, придется возложить на механизм XPath запросов.

Прикладной XML интерпретатор

Данное применение XML, на мой взгляд, наиболее интересное и нетривиальное. Если вспомнить тему шаблонов проектирования, то можно сказать, что с использованием XML легко реализовать шаблон проектирования “прикладной интерпретатор” из группы шаблонов поведения. Прикладным интерпретатором, в данном случае, будет интерпретатор, обеспечивающий работу “мастера настроек” (wizard) или выполнение бизнес операции в контексте текущего бизнес-процесса.

С помощью XML и XSD легко создать собственный язык бизнес-сценариев
Пример описания алгоритма бизнес-сценария с использованием XML.

Описание логики или алгоритма бизнес-операции может быть представлено хранимой процедурой и являться частью метаданных автоматизированной системы. На любом шаге такого алгоритма может быть запущена интерактивная операция, требующая непосредственного участия пользователя. Пользователь может заполнять данные, выбирать что-то из предложенных вариантов, осуществлять поиск чего-то, может даже рисовать или делать все перечисленное сразу. В силу сложности контекста исполнения таких операций, необходимости делегирования и обработки событий пользовательского интерфейса, требований сохранять контекст исполнения в случае нештатных ситуаций и т.д. и т.п. может так статься, что создание специализированного прикладного интерпретатора является единственно возможным вариантом реализации подобной задачи. Языком такого интерпретатора - языком бизнес-сценариев может стать ваше собственное расширение XML, синтаксис которого будет описан в отдельной XML схеме. Использование схемы избавит вас от необходимости самостоятельно выполнять синтаксический контроль при редактировании пользователями вашей программы исходного кода бизнес - сценариев. Как будет организована работа самого интерпретатора - определяется его программным окружением.

Применение XML могут быть самыми неожиданными, вплоть до описания графического пользовательского интерфейса приложения

Динамический пользовательский интерфейс и его XML описание

Для программных продуктов, чья функциональность может быть расширена динамически подключаемыми компонентами – plug-in модулями, также актуальна возможность динамической настройки пользовательского интерфейса. Если ваша программа в состоянии, например, “общаться” с внешними командами, то ее пользователю необходимо дать возможность управлять этим общением. Конечно, можно сгруппировать все вызовы внешних функций в один общий пункт меню, но это не будет способствовать хорошей эргономике приложения. Стандарт XML – весьма удачное решение для описания динамически создаваемых пользовательских элементов управления и связывания их с обработчиками событий. Доказательством этому служит технология Microsoft Windows Presentation Foundation (WPF). Авторы WPF не “открыли Америки”, они просто доработали все идеи и решения (не только самой Microsoft), связанные с языками разметки приложений до уровня программной платформы и, вероятно, собираются довести все это дело до единого технологического стандарта. Пример простейшей XML схемы, призванной решать подобную задачу можно найти здесь.

Читать далее: способы обработки XML



Компьютерные курсы и курсы программирования
Основы программирования

Курс для начинающих программистов на C# и VB.NET.

SQL 25™

Построение SQL запросов и работа с базой данных.

C# Quick Guide™

Программирование на C#. Краткое руководство.

RegEx

Применение регулярных выражений.

Plug-in архитектура

Примеры программной Plug-in архитектуры.

XML и его расширения

Язык разметки XML и его расширения с примерами.

HTML и разметка гипертекста

Языки HTML, XHTML и CSS с примерами разметки.

Основы веб-дизайна

Основы веб-дизайна: решения типовых задач верстки.

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

Руководство по программированию на PHP для начинающих.

Справочные материалы

Шаблоны проектирования
Каталог шаблонов проектирования программных компонентов.

Рефакторинг кода
Каталог приемов рефакторинга программного кода.

Гость
Имя

Пароль



Забыли пароль?
Запросите новый здесь
.
Coding Craft. Все права защищены © 2011. Проект Инициативного Народного Фронта Образования - ИНФО-проект.