Archive

Archive for May, 2010

XML Schema 1.1: Часть 1.Введение

May 26th, 2010 No comments

Язык XML Schema получил широкое распространение в самых разных задачах, что, в частности, привело к большому числу запросов на тему новых возможностей. Наиболее популярные из них были реализованы в новом стандарте XML Schema 1.1, разработанном рабочей группой в W3C. В новой версии языка также устранены некоторые недостатки XML Schema 1.0. В этой статье – первой части серии – авторы Нил Делима, Сэнди Гао, Майкл Главассевич и Халед Ноумен познакомят вас с XML Schema 1.1, кратко рассмотрев возможности, появившиеся в этой версии, а также уделив особое внимание изменениям в спецификации, которые коснулись типов данных.

Достоинства и недостатки XML Schema обсуждаются с 2001 года, когда этот язык стал официальной рекомендацией W3C. После этого рабочая группа W3C начала работать над следующей версией XML Schema. В 2005 году, после того как он получил широкое распространение и был интегрирован с другими стандартизованными языками, в частности XSLT, XQuery и WSDL, W3С организовала специальный семинар для обсуждения стандарта и получения достаточного числа отзывов от пользователей, которые должны были определить путь его дальнейшей эволюции. Благодаря этому семинару, а также другим запросам, сформулированным представителями XML-сообщества, был определен круг возможностей XML Schema 1.1.

В этой статье будет приведен обзор некоторых новинок XML Schema 1.1, а затем будут подробно рассмотрены расширения спецификации, касающиеся типов данных. На сегодняшний день стандарт известен под официальным названием “Язык определения XML-схем” (XML Schema Definition Language). В этой и последующих статьях серии мы будем чаще использовать аббревиатуру XSD, хотя в некоторых случаях вам могут встретиться “XML Schema” или просто “схема”, которые обозначают тот же самый язык.

Имейте в виду, что на момент написания этой статьи работа над XML Schema 1.1 еще не была завершена, поэтому некоторые детали могут измениться до выпуска официальной рекомендации W3C.

Источник IBM developerWorks Россия

Tags: ,

Основы использования фреймворка django при построении Web-сайта

May 19th, 2010 No comments

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

Абстрагируясь от низкоуровневого процесса Web-строительства, django позволяет разработчикам быстро создавать основанные на базах данных динамичные Web-сайты. Одним из основных преимуществ django является переносимость созданных на ее основе продуктов в силу переносимости их базиса – языка высокого уровня Python.

Произносится слово django мягко, без выраженного звука «д», как «жан-го».

Django включает в себя Model View Controller (MVC) – инструмент, позволяющий разделить общую архитектуру на отдельные части. При этом управляющая логика разделена на три отдельных компонента так, что модификация одного из них оказывает минимальное воздействие на другие части. К таким компонентам относят разделяемые данные, логику и слои визуализации (view layers). В общем случае такая концепция позволяет разделить разработку информационного наполнения на уровне базы данных и разработку Web-страниц.

Django базируется на классе Python django.db.models.Model, который задает данные модели так, чтобы они были пригодны к использованию на Web-сайтах. Эти данные определяются соответствующими атрибутами объектов, которые сохраняются в базе данных в процессе работы. При создании сайта создается подкласс класса Model и добавляется поле членов в класс для задания специфических данных.

Интерфейс модели django обеспечивает многоплановый выбор из всех имеющихся типов моделей для отбора наиболее подходящего в данной ситуации. Выбранная модель проекта синхронизируется с работающей базой данных, где она сохраняет свои данные в таблицах. Django вообще обеспечивает хороший интерфейс к базам данным, позволяющий получать надежный доступ к информации из слоев визуализации и шаблонов.

Изменение отображения содержимого в зависимости от принимаемого URL-запроса является многоступенчатым процессом. Когда django-сервер получает URL-запрос, он парсит его и, используя предыдущие установки шаблонов, определяет, какой участок кода Python будет выполняться для требуемого отображения.

Парсер шаблонов в django позволяет самостоятельно настраивать свои шаблоны, которые используют функции отображения Web-страниц при построении ответа на URL-запросы. Это позволяет разработчикам Python сфокусироваться на создании данных, которые будут отображаться, а программистам HTML – сфокусироваться на дизайне Web-страниц.

Источник: http://www.ibm.com/developerworks/ru/library/l_django/index.html?S_TACT=105AGX99&S_CMP=GR01

Расширение Joomla!/Mambo – XAMPP, локализация, модули. Создание собственного шаблона

May 7th, 2010 No comments

В этой статье рассказывается о популярной CMS Joomla! и ее аналоге Mambo, о том, как ими пользоваться и как с их помощью можно строить и управлять динамичными Web-сайтами.

Во второй части цикла будет рассмотрена тема, посвященная основам создания собственных шаблонов для сайта на базе Joomla!

Ни у кого не возникает сомнений в том, что на сегодняшний день наличие CMS (Content Menagement System) является стандартом «де-факто» для любого более или менее крупного сайта, точнее, специалиста, его обслуживающего. Вопросы организации «сайтостроения», размещения контента, управления пользователями и их привилегиями – вот далеко не полный перечень всего того, что можно выполнять с помощью CMS.

На сегодняшний день одно из лидирующих мест в мире занимает совершенно бесплатная CMS Joomla!. Она является зрелым продуктом с очень широкими возможностями, и очень многие организации и предприятия отдают предпочтение этому продукту с открытыми исходными текстами. Одно из основных ее преимуществ – это гибкость, что и подтверждает то многообразие организаций, которые построили свои сайты на ее основе. Joomla! позволяет быстро развертывать такие сайты, как корпоративные, школьные и университетские, электронной коммерции и малого бизнеса, сайты общественных и правительственных организаций, – и это далеко не весь перечень возможностей этой удивительно производительной CMS.

При этом следует обратить внимание на то, что пользование Joomla! на базовом уровне не требует знаний ни PHP, ни CSS, ни javascript, хотя владение этими технологиями никогда не будет излишним для разработчика сайтов.

Вот краткий перечень возможностей Joomla!.

1. Простота создания содержимого с помощью текстового редактора, доступного в открытой и закрытой части сайта.
2. Регистрация пользователей и ограничение доступа к страницам в соответствии с их правами.
3. Контроль за редактированием и публикацией содержимого.
4. Голосования.
5. Создание контактных форм.
6. Статистики сайта.
7. Подключение механизмов поиска по сайту.
8. Возможность распечатать или отправить статью в формате PDF по электронной почте.
9. Подключение каналов RSS.
10. Наличие возможности отображать ленты новостей с других сайтов.

В настоящее время очень сложно найти какой либо сайт, сделанный на Joomla!, который не пользовался бы функциональной расширяемостью за счет подключения дополнительных расширений – модулей. В наиболее общем смысле под словом модули имеется в виду компоненты, разного рода дополнения и языки программирования. Сейчас существуют сотни таких расширений, распространяемых коммерческим путем или созданных для свободного использования. И те, и другие имеют свои положительные и отрицательные стороны и могут применяться в зависимости от ваших потребностей и вкусов.

Источник IBM developerWorks Россия

Tags: , ,

Определяйте кодировки документов XML при помощи SAX и XNI

May 5th, 2010 No comments

В некоторых случаях при пересылке документов XML достаточно просто передать массив байтов из точки А в точку Б. При этом необязательно разбирать содержимое документа, однако следует определить его кодировку, чтобы правильно задать метаданные. Эффективным средством достижения этой цели являются потоковые API, такие как SAX и XNI, которые позволяют проанализировать кодировку, проигнорировав остальное содержимое.

В спецификации XML используется Unicode, однако при передаче и хранении в памяти компьютеров символы представляются в виде байтов, анализируемых XML-процессорами (парсерами). Для этого существует ряд различных схем кодировки: UTF-8, UTF-16, ISO-8859-1, Cp1252, SJIS и многих других.

Как правило, но не всегда, можно не заботиться о том, какая кодировка используется, поскольку парсер автоматически преобразует содержимое документа в массивы строк и символов Unicode. В этой статье рассматриваются реже встречающиеся случаи, в которых особенности кодировки необходимо учитывать.

* Чаще всего это происходит, если требуется сохранить исходную кодировку документа.
* Другим примером может служить сохранение документа в базе данных в виде строки или крупного символьного объекта (Character Large Object – CLOB) без предварительного разбора.
* Некоторые приложения пересылают документы XML по протоколу HTTP, не анализируя их. Тем не менее при этом необходимо задать правильный тип содержимого в заголовке HTTP, поэтому приходится определять тип кодировки.

Чаще всего вы и так знаете кодировку документа, поскольку сами же его создали. Однако если вы просто получили документ из некоего источника (например, обратившись к ленте Atom), то для определения кодировки лучше всего использовать потоковые API, такие как простой API для XML (SAX), потоковый API для XML (StAX), либо собственный интерфейс Xerces (XNI). Разумеется, можно воспользоваться и интерфейсами, строящими представление документа в виде дерева, например DOM (объектная модель документа), но не забывайте, что они будут считывать в память все содержимое документа, даже если для определения кодировки достаточно просмотреть первые 100 байтов. В отличие от них потоковые API прочитают ровно столько, сколько необходимо, и вернут результат сразу после того как он получен. Это значительно более эффективный способ.

Источник: http://www.ibm.com/developerworks/ru/library/x-tipsaxxni/index.html?S_TACT=105AGX99&S_CMP=GR01

Tags: , ,