Что такое XML Sapiens


Оглавление (нажмите, чтобы открыть):

XML Sapiens — специализированный язык для разработчиков CMS

Представлена спецификация универсального языка для разработчиков систем управления контентом XML Sapiens.
Проектируя системы управления контентом (CMS), разработчики стремятся создать универсальный продукт, который не нужно было бы переделывать под требования каждого сайта. Язык XML Sapiens описывает концепцию управления контентом c разделением данных, представления и функциональности, что позволяет создавать новые интерфейсы сайтов, не изменяя программный код CMS.

Для поддержки XML Sapiens открыт проект XMLSapiens.org, где помимо спецификации представлен код ядра XML Sapiens на различных программных языках, а также CMS с открытым кодом SAPID. Сайт содержит сервис Works Gallery, который позволит разработчикам свободно обмениваться функциональными решениями для интерфейсов сайтов.

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

Выражения XML Sapiens

Для описания логики функциональных решений в контейнерах динамических данных могут быть использованы выражения XML Sapiens. При разработке операндов выражений использовались конструкции языка скриптов для XML XEXPR (http://www.w3.org/TR/2000/NOTE-xexpr-20001121/). Данная спецификация поддерживает выражения сравнения. Эти выражения могут возвращать одно из двух значений (0 или 1), означающих соответственно FALSE (ложь) или TRUE (истина).

В содержании атрибутов XML Sapiens допускает операнды выражений lt(A, B, C) (меньше), leq(A, B, C) (меньше либо равно), geq(A, B, C) (больше либо равно), eq(A, B, C) или == (равно), neq(A, B, C) или != (не равно), gt(A, B, C) (больше). Где A B C значения, разделенные запятыми. Допускается использование круглых скобок для группирования выражений, а также логические операнды and(A, B, C) или AND (И) и or(A, B, C) OR (ИЛИ).

Также допустимы и математические операнды add(A, B, C) или + (сложить для чисел и соединение для строк), subtract(A, B, C) или — (вычитание чисел), multiply(A, B, C) или * (умножение чисел), divide(A, B, C) (деление чисел).

Выражения XML Sapiens допускают непосредственное обращение к переменным среды CMS. Например:

Выражения могут использоваться в атрибуте EXP элемента SAPI:WHEN, в атрибуте SELECT элемента SAPI:FOR-EACH, в атрибуте EXP элемента SAPI:APPLY или в атрибутах формата SAPI:%Attrib элементов HTML .

При необходимости получения результата выполнения выражения XML Sapiens в коде контейнера (элемент SAPI:CODE) можно использовать следующий синтаксис

Что такое XML Sapiens

Что ж, с радостью отвечу на любые вопросы, связанные с Sapid. Хочу только подчеркнуть:
Весь проект XML Sapiens рассчитан на разработчиков, но то, что они будут предлагать свои функциональные решения и оценивать чужие. Предполагается, что создание такого коммьюнити сможет облегчить жизнь разработчикам CMS и сделать ее интереснее.
Мне, как разработчику Sapid и Диме Шейко, как автору идеи XML Sapiens затруднительно оценить жизнеспособность подобного проекта, поэтому будем рады любой критике и любой поддержке.

Все, что касается XML Sapiens (спецификация и т.п.) можно скачать с офф. сайта XML Sapiens

C уважением и надеждами,
Mephius
==========
Sheiko пишет:

Цитата:

Относительно проекта SAPID следует добавить следующее

Вы можете принять участие в разработке CMS SAPID присоединившись к проекту http://sourceforge.net/projects/sapid/

Замечания об ошибкахhttp://sourceforge.net/tracker/?at > Запросы на техническую поддержкуhttp://sourceforge.net/tracker/?at > Архив «заплаток»http://sourceforge.net/tracker/?at > Запросы на разработку новых возможностейhttp://sourceforge.net/tracker/?at > Публичная документацияhttp://sourceforge.net/docman/?group_ > Список рассылки http://lists.sourceforge.net/lists/listinfo/sapid-community

Ныне в тестировании SAP > Документация к ней: http://prdownloads.sourceforge.net/sapid/readme12b4.ru.pdf?download

Всего записей: 7 | Зарегистр. 11-10-2004 | Отправлено: 13:53 11-10-2004 | Исправлено: Antuan, 00:41 18-01-2005
fathersGrave

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору А скоро будет б/м подробный таториал по созданию DDC под SAPID?
Всего записей: 716 | Зарегистр. 21-04-2003 | Отправлено: 12:14 12-10-2004
Mephius

Newbie

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору вопрос, конечно интересный.
Хотелось бы узнать в каком виде нужен ман. Просто структура DDC достаточно подробно описанa в спецификации.
Попробуйте описать, как бы вы хотели видеть хорошее руководство — на какие моменты больше сделать акценты, что немного опустить.

На самом деле, DDC представляет собой алгоритм, описанный в синтаксисе XML Sapiens.
Рассмотрим, например, контейнер построения новостной ленты:

Код:

Max Baryshnikov
mb@rg.by
www.redgraphic.com

Infochannel. CMS SAPID.

Сначала идет шапка с описанием и авторством:

Код:

Max Baryshnikov
mb@rg.by
www.redgraphic.com

Infochannel. CMS SAPID.

Открываем блок условий:

Код:

Открываем условие (выполняется всегда, потому, что в атрибуте exp указано выражение, всегда принимающее значение true):

Код:

Далее (внимание!) открываем цикл, в котором будет перебираться массив значений, который вернет функция get_news (описанная в автоматически включаемом файле usr/extensions/get_news.inc.php); массив двухмерный, логически предстваляет собой таблицу, т.е. в тело цикла будет передаваться строка с атрибутмаи текущей новости (дата, тело новости. )

Код:

Далее идут уже рассмотренные нами теги, открывающие вложенный блок условий, просмотр которых будет выполняться в цикле:

Описание того, что будет выводить DDC. В коде стоят указатели на элементы перебираемого массива: пример указателя — будет указывать на элемент массива массив[текущая строка][‘date’]:

Потом закрытие всего, что мы пооткрывали ранее:

Вот, в прнципе, и все по этому контейнеру.
Примерно такой формат мануала подойдет?

Всего записей: 7 | Зарегистр. 11-10-2004 | Отправлено: 12:43 12-10-2004
fathersGrave

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Да с таким маном и в огонь, и в воду. А можно как-то в поставляемые DDC комментарии проставить? Еще интересуют PHP-шные бэкфункции:
о get_news.inc.php подключается именно после вызова select=»get_news()» ? И получается по файлу на функцию..
о в .inc.php вроде нужно использовать какой-то уже sapid’овский api?

Btw, на когда планируется версия с БД ?
Уфф.. ладно, кажется, я полностью проникся X-Sapiens’ом 8)

Всего записей: 716 | Зарегистр. 21-04-2003 | Отправлено: 13:19 12-10-2004 | Исправлено: fathersGrave, 13:22 12-10-2004
Mephius

Newbie

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата:

get_news.inc.php подключается именно после вызова select=»get_news()» ? И получается по файлу на функцию..

не после вызова, а перед. т.е. строка

Код:

интерпретируется примерно вот так (если так понятнее):

Код:

$value) <
.
>
?>

Действительно получается по файлу на функцию, но чем это плохо? Если бы все функции я складывал в один файл, то при обращении к любой из них мне нужно было бы подключать все, что, в общем, не так уж и страшно, но все же.
sapid’овский api в них использовать отнюдь не обязательно, важно просто вернуть массив заданного формата.
можно использовать переменные окружения, генерируемые системой и функции дебага.
Вот простенькая функция построения меню:

Код:

map as $item) <
if ($item[«LEVEL»]!=0 and !$item[«MASK»] and ($level?($item[«LEVEL»]==$level):true)) <
$cnt++;
$stream[$cnt]=$item;
if($env[«page»][» ]=0;
for ($i=0; $i

в $tree хранится информации о структуре поднятая при инициализации из xml; $env — переменные окружения;
Поставьте в начале этой функции

Код:

d($tree); // отобразить массив $tree
d($env); // отобразить массив переменный окружения $env

и вы увидите, чем вы располагаете на данный момент.
Повторюь: использовать системный api вовсе не обязательно.

Версия на БД планируется тогда, когда текущая версия станет stable.
В принципе тогда будет достаточно просто переписать интерфейсы парсера к данным и все.

Цитата:

Уфф.. ладно, кажется, я полностью проникся X-Sapiens’ом 8)
Всего записей: 7 | Зарегистр. 11-10-2004 | Отправлено: 15:26 12-10-2004
fathersGrave

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата:

не после вызова, а перед

Ну это я понимаю Просто некорректно выразился. Подключает «после того, как находит» всю инструкцию.

Цитата:

Действительно получается по файлу на функцию, но чем это плохо?

Да я вот к хилому php’шному ООП привык. Допустим у меня для каждого DDC есть класс, в котором все, используемые мной, функции. Тогда бы я запихивал в каждый файл по классу. Но это, конечно, не критично и вообще пока не в тему.

Цитата:

sapid’овский api в них использовать отнюдь не обязательно, важно просто вернуть массив заданного формата.
можно использовать переменные окружения, генерируемые системой и функции дебага.

А Вам не кажется, что api все-таки иногда полезен в плане, хоть и не строгого, но соблюдения системных стандартов. Конечно, тут основным стандартом является X-Sapiens, но все же..
Я мало смотрел код, но переменные окружения, естественно, бросились в глаза. Просто хотел увидеть их описание в мане

Всего записей: 716 | Зарегистр. 21-04-2003 | Отправлено: 21:35 12-10-2004
Sheiko

Newbie

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Полагаю, имеет смысл добавить от себя некоторые соображения в пользу технологии внеобыденного характера:

1) Вы желаете полноценную интеграцию проектов, коммуникацию интернет приложений и приложений Интранет/ЛВС? На стороне XML Sapiens-ориентированной CMS достаточно разместить вызовы удаленных процедур XML RPC (http://www.xmlrpc.com/, http://www.php.net/manual/en/ref.xmlrpc.php) или же SOAP (http://www.w3.org/TR/SOAP, http://pear.php.net/package-info.php?pac вывод в массив перечня узлов формата array( id -> array( field -> value, f2 -> v2, ..), ..). Ни что нам более не мешает в объединении сетей

2) От вас требуют промо-сайт на Flash с некоторым числом редактируемых страниц? Создаете простейший DDC в SAPID для вывода XML-контейнеров содержания страниц. Открываете новую сцену во флеш и создаете там текстовое поле, назначаете ему имя. Далее пишем в action script
var doc = new XML(); // XML object id created.
doc.load(«http://yoursite_on_sapid.com/folder/»);

if(node.firstChild!=null) <
node=node.firstChild;
while(node!=null) <
if(node.nodeName!=null && node.nodeName!=’title’) <
name_of_template_ddc_tag=node.firstChild.nodeValue;
content_of_your_template_tag=node.firstChild.nodeValue;
// Прикрепляем содержание нужно тега к текстовому полю
>
>

В результате Flash-сайт с вполне управляемым содержанием

Всего записей: 13 | Зарегистр. 07-10-2004 | Отправлено: 11:57 13-10-2004
Sheiko

Newbie

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вопрос:

Я еще не успел разобраться с XML Sapiens в целом и с SAPIDом в
частности, так что если мои вопросы окажутся глупыми или избыточными,
не серчайте, пожалуйста )

Пошарился я в area51 и могу описать увиденное, как cms для создания
общей структуры сайта + блочного построения каждой секции.

Если это так и есть на самом деле, то на след. вопросы наверное можно
не отвечать

Вопросы меня интересуют такие, наверное больше относящиеся к cmf:

1) Насколько XML Sapiens и/или SAPID могли бы помочь в создании cms,
которая бы позволяла юзерам редактировать сущности в бд. Классы
сущностей желательно было бы описывать на чем-нибудь типа xml.

2) Насколько XML Sapiens и/или SAPID могли бы помочь в создании
механизма разруливания прав в cms, где есть такие актеры:

— admin — полный контроль над user-management’ом, полный контроль над
сущностями всех классов.


— semi-admin — права на редактирование ограничены несколькими классами
сущностей. Изменения сущностей некоторых из этих классов должны
проходить разрешение у adminа.

— рядовые юзеры, у которых тоже есть некоторые функции по cms (едва ли
больше, чем в форумах).

1) Что касается SAPID, действительно речь о простой CMS для небольших сайтов, особенность которой — отделенная функциональность, управляемая специализированным языком

2) XML Sapiens — язык разметки интерфейсов сайтов. Мы рекомендуем алгоритмы разделения функциональности от представления и данных, но документную модель оставляем на усмотрение прочих технологий и конкретного разработчика. Впрочем, я могу привести в пример документную структуру Site Sapiens (www.sitesapiens.ru), где взаимосвязи документов в СУБД организуются в карту многоаспектных отношений (развитый граф). Однако независимо, по какой выборке вычислен идентификатор документа для XML Sapiens на вход приходит этот идентификатор и соответствующий ему шаблон представления и далее собираются должные DDC, SDC и QC

3) Управление пользователями отдельная тема, опять же несоприкасающаяся с XML Sapiens непосредственно. В том же Site Sapiens мы применили мат.модель графа для объектов пользователей. Т.е. при инициализации системы в момент запроса пользователем конкретного документа производиться выборка в СУБД массива прав этого пользователя, исходя из атрибутов его объекта, роли, суммы прав групп в которых он участвует

Всего записей: 13 | Зарегистр. 07-10-2004 | Отправлено: 13:33 15-10-2004
Mephius

Newbie

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Залил на http://demo.xmlsapiens.org новую версию (галерея, гостевая, голосовалки и т.п.). Пока это SAPID 1.09 — BETA.
Всего записей: 7 | Зарегистр. 11-10-2004 | Отправлено: 13:58 09-11-2004
fathersGrave

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Супер, но я так и не врубился, что из себя представляет галерея. Похоже, что сейчас это просто страница.
Всего записей: 716 | Зарегистр. 21-04-2003 | Отправлено: 16:59 09-11-2004
chAlx

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Mephius
А можно для начала пояснить обывателю, как установка просходит? Я скачал sapid110.tar.gz (как я понял, последний релиз) и поставил как смог. Т.е. выставил права на директории, запустил инсталл, поменял атрибуты ещё полсотни запрошенных файлов — что-то получилось. Ещё пришлось в .htaccess прописать «php_value include_path /web/sapid/lang», иначе ничего не работало. Теперь в корне демо-сайт появляется, но никакие средства управления не найти.

Код:

$env[«http_path»]=$http_path=»http://www.host.ru/sapid/»;
$admin_login=»login»;
$admin_password=»pass»;
$admin_path=»a51″;
$MODREWRITE=»enabled»;

Пробую www.host.ru/sapid/a51/ и www.host.ru/sapid/area51/ — вылезает 404. (Если создать ./a51/ вылезает — 403.)
В корне только это (плюс тексты):
/web/sapid/etc/
/web/sapid/kernel/
/web/sapid/lang/
/web/sapid/log/
/web/sapid/usr/
/web/sapid/index.php
/web/sapid/preview_image.php

Как правильно и надёжно ставить?

Добавлено
И ещё есть орг.вопрос: по безопасности CMS в целом (на примере sapid, но не привязываясь к ней) здесь писать, или тему делать?

Добавлено
А то существующие темы какие-то дохлые..

Всего записей: 1687 | Зарегистр. 19-03-2003 | Отправлено: 17:07 23-11-2004
Mephius

Newbie

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Да, в 1.10 нашлась куча глюков. Признаю. Исправляю по мере обнаружения.
Как только скомпоную новый релиз — выложу.

А вообще более менее живые темы вот на этом форуме http://cmsobzor.ru/forum/index.php?s=a6a903e5b2134b2a6ac6e4128ffbb03f&showforum=29

Всего записей: 7 | Зарегистр. 11-10-2004 | Отправлено: 12:56 24-11-2004
chAlx

Advanced Member

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Mephius
Лежит там форум: наверно, движок форума не обновили, вот базу и хакнули..

А с САПИДом что теперь делать: ставить 1.09б или ждать следующего релиза?

Опубликована новая версия языка XML Sapiens

В конце ноября компания Red Graphic Systems опубликовала спецификацию XML Sapiens 2.0 (www.xmlsapiens.org), декларативного языка пользовательских интерфейсов веб-приложений. XML Sapiens позволяет описать веб-приложение как композицию абстрактных составляющих: данных, их оформления и функциональности. Язык призван сократить время на разработку и отладку веб-приложений.

В новой версии XML Sapiens расширены возможности по многократному использованию информационных объектов, сценариев, шаблонов, а также по их переносимости. XML Sapiens 2.0 открывает перед широким кругом веб-разработчиков путь к созданию проектов с более глубокой бизнес-логикой, насыщенной интерактивностью, эффективных проектов, близких пожеланиям пользователей.

Для реализации веб-приложений на языке XML Sapiens разработчики могут воспользоваться бесплатным процессором языка или же собственным, написанным согласно указаниям спецификации языка.

XML для начинающих

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

Вероятно, вы слышали о языке XML и вам известно множество причин, по которым его необходимо использовать в вашей организации. Но что именно представляет собой XML? В этой статье объясняется, что такое XML и как он работает.

В этой статье

Пометки, разметка и теги

Чтобы понять XML, полезно вспомнить о том, как можно помечать данные. Документы создавались людьми в течение многих столетий, и на протяжении всего этого времени люди делали в них пометки. Например, учителя часто делают пометки в работах учащихся, указывая на необходимость переместить абзацы, сделать предложение более ясным, исправить орфографические ошибки и т. д. Посредством пометок в документе можно определить структуру, смысл и внешний вид информации. Если вы когда-либо использовали исправления в Microsoft Office Word, то вы знакомы с компьютеризованной формой добавления пометок.

В мире информационных технологий термин «пометка» превратился в термин «разметка». При разметке используются коды, называемые тегами (или иногда токенами), для определения структуры, визуального оформления и — в случае XML — смысла данных.

Текст этой статьи в формате HTML является хорошим примером применения компьютерной разметки. Если в Microsoft Internet Explorer щелкнуть эту страницу правой кнопкой мыши и выбрать команду Просмотр HTML-кода, вы увидите читаемый текст и теги HTML, например

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

) и местоположение рисунков.

Отличительные черты XML

Документы в форматах HTML и XML содержат данные, заключенные в теги, но на этом сходство между двумя языками заканчивается. В формате HTML теги определяют оформление данных — расположение заголовков, начало абзаца и т. д. В формате XML теги определяют структуру и смысл данных — то, чем они являются.

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

Учитывайте при работе следующее:

HTML нельзя использовать вместо XML. Однако XML-данные можно заключать в HTML-теги и отображать на веб-страницах.

Возможности HTML ограничены предопределенным набором тегов, общим для всех пользователей.

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

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

Но не путайте теги в данном примере с тегами в HTML-файле. Например, если приведенный выше текст в формате XML вставить в HTML-файл и открыть его в браузере, то результаты будут выглядеть следующим образом:

Izzy Siamese 6 yes no Izz138bod Colin Wilcox

Веб-браузер проигнорирует теги XML и отобразит только данные.

Правильно сформированные данные

Вероятно, вы слышали, как кто-то из ИТ-специалистов говорил о «правильно сформированном» XML-файле. Правильно сформированный XML-файл должен соответствовать очень строгим правилам. Если он не соответствует этим правилам, XML не работает. Например, в предыдущем примере каждый открывающий тег имеет соответствующий закрывающий тег, поэтому в данном примере соблюдено одно из правил правильно сформированного XML-файла. Если же удалить из файла какой-либо тег и попытаться открыть его в одной из программ Office, то появится сообщение об ошибке и использовать такой файл будет невозможно.

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

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

В дополнение к правильно сформированным данным с тегами XML-системы обычно используют два дополнительных компонента: схемы и преобразования. В следующих разделах описывается, как они работают.

Схемы

Не пугайтесь термина «схема». Схема — это просто XML-файл, содержащий правила для содержимого XML-файла данных. Файлы схем обычно имеют расширение XSD, тогда как для файлов данных XML используется расширение XML.

Схемы позволяют программам проверять данные. Они формируют структуру данных и обеспечивают их понятность создателю и другим людям. Например, если пользователь вводит недопустимые данные, например текст в поле даты, программа может предложить ему исправить их. Если данные в XML-файле соответствуют правилам в схеме, для их чтения, интерпретации и обработки можно использовать любую программу, поддерживающую XML. Например, как показано на приведенном ниже рисунке, Excel может проверять данные на соответствие схеме CAT.

Схемы могут быть сложными, и в данной статье невозможно объяснить, как их создавать. (Кроме того, скорее всего, в вашей организации есть ИТ-специалисты, которые знают, как это делать.) Однако полезно знать, как выглядят схемы. Следующая схема определяет правила для набора тегов . :

Не беспокойтесь, если в примере не все понятно. Просто обратите внимание на следующее:

Строковые элементы в приведенном примере схемы называются объявлениями. Если бы требовались дополнительные сведения о животном, например его цвет или особые признаки, то специалисты отдела ИТ добавили бы к схеме соответствующие объявления. Систему XML можно изменять по мере развития потребностей бизнеса.

Объявления являются мощным средством управления структурой данных. Например, объявление означает, что теги, такие как и
, должны следовать в указанном выше порядке. С помощью объявлений можно также проверять типы данных, вводимых пользователем. Например, приведенная выше схема требует ввода положительного целого числа для возраста кота и логических значений (TRUE или FALSE) для тегов ALTERED и DECLAWED.

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

Преобразования

Как говорилось выше, XML также позволяет эффективно использовать и повторно использовать данные. Механизм повторного использования данных называется преобразованием XSLT (или просто преобразованием).

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

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


В следующем примере представлено преобразование, которое загружает данные в таблицу на веб-странице. Суть примера не в том, чтобы объяснить, как создавать преобразования, а в том, чтобы показать одну из форм, которую они могут принимать.

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

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

XML в системе Microsoft Office

Профессиональные выпуски Office обеспечивают расширенную поддержку XML. Начиная с 2007 Microsoft Office System, Microsoft Office использует форматы файлов на основе XML, например DOCX, XLSX и PPTX. Так как XML хранит данные в текстовом формате, а не в собственном двоичном формате, клиенты могут определять собственные схемы и использовать ваши данные разными способами, без необходимости платить ройалтиес. Дополнительные сведения о новых форматах см. в статье форматы Open XML и расширения имен файлов. Ниже приведены другие преимущества.

Меньший размер файлов. Новый формат использует ZIP и другие технологии сжатия, поэтому размер файла на 75 процентов меньше, чем в двоичных форматах, применяемых в более ранних версиях Office.

Более простое восстановление данных и повышенная безопасность. XML — это читаемость, поэтому если файл поврежден, вы можете открыть его в Microsoft Notepad или в другом текстовом средстве чтения и восстановить по крайней мере часть ваших данных. Кроме того, новые файлы более безопасны, поскольку они не могут содержать код Visual Basic для приложений (VBA). Если для создания шаблонов используется новый формат, все элементы ActiveX и макросы VBA располагаются в отдельном, более безопасном разделе файла. Кроме того, для удаления личных данных можно использовать инструменты, такие как инспектор документов. Дополнительные сведения об использовании инспектора документов см. в статье Удаление скрытых и персональных данных путем проверки документов.

Все это замечательно, но что делать, если у вас есть XML-данные без схемы? Это зависит от того, какую программу Office вы используете. Например, при открытии XML-файла без схемы в приложении Excel оно предполагает, что схема существует, и дает возможность загрузить данные в XML-таблицу. Вы можете использовать XML-списки и таблицы для сортировки, фильтрации и вычисления данных.

Включение средств XML в Office

По умолчанию вкладка «Разработчик» не отображается. Ее необходимо добавить на ленту для использования команд XML в Office.

В Office 2020, Office 2013 или Office 2010: Отображение вкладки «Разработчик».

Sap >Четверг, 1 октября 2009

Sapid CMF — это свободнораспространяемая система управления контентом с открытым кодом на базе XML Sapiens. Система не требует Базы данных (file-flat), включает WYSIWYG, RSS и сервисы (для лент новостей, голосований, галерей и т.д.)

Данная система является инструментарием для создания сайтов, а также для управления готовыми ресурсами. Sapid CMF отличается удобным интерфейсом, основанным на технологии Ajax, для управления структурой сайта. Кроме того система обладает высокой гибкостью в интеграции дизайна, содержания и функциональности сайта. Движок может быть установлен в хостинг-плане, не включающем MySQL и прочие серверы баз данных.

Sapid CMF — Inline CMS. Это значит, что все документы сайта редактируются «как есть» — документ выглядит одинаково как в режиме доставки посетителю, так и в режиме редактирования.

Sapid CMF использует стандарт XML для хранения данных структуры и содержания. Для разметки интерфейсов и функциональности применяется XML Sapiens. Для оформления данных могут быть применены технологии HTML/XHTML, CSS, XSL и прочие. Для адресации документов в системе используются человеко-понятные URL (Friendly URL).

Чтобы установить систему вам понадобиться порядка 1МБ дискового пространства на хостинг-сервере и поддержка этим сервером PHP версии выше четвертой. Заметьте никаких хлопот с СУБД или специальными настройками сервера. Можно воспользоваться почти любым бесплатным хостинг-планом.

В административной области системы вас ждет привычный по приложениям Windows интерфейс управления структурой сайта с Drag&. А технология прямого редактирования позволяет наблюдать любые производимые вами изменения содержания на сайте тот час же.

Формат XML — Что это и как его открыть?!

Файлик с расширением XML (формат XML) — это расширяемый язык разметки. Непонятно? — Вот и меня данное определение вводит в ступор, а обычного новичка (который пытается освоить компьютер) такой ответ не устраивает. В данной заметке я хочу вам рассказать — что же за формат такой XML и как его можно открыть (и для чего он нужен).

На самом деле XML — самый простой текстовый документ, структура которого может состоять из пользовательских тегов или других описаний документа.

Что такое формат XML

XML — это язык разметки, который создан для удобства кодирования и чтения как машинами, так и простыми смертными людьми. Делается это с помощью тегов, которые формируют структура документа и его параметры.

Если сравнить его с HTML, то в целом, задачи решают одинаковые, только в HTML все эти теги жестко прописаны и жирный будет определяться как , то в случае с XML мы можем сделать жирный как , т.е. разработчики сами определяют эти теги.

Фишка XML в том, что даже если вы не знаете в какой программе он сформирован, то беглым взглядом можно прочитать и осознать информацию, которая в нем содержится.

Как открыть XML файл

Если вы впервые столкнулись с XML… не расстраивайтесь, формат очень распространенный и, раз уже мы знаем что это текст, то и открывается он любым текстовым редактором (только не вздумайте открывать его в MS Office Word)

Способ 1. Лучший текстовый редактор — Notepad++

Если вы достаточно часто сталкиваетесь с XML в своей жизни, то у вас обязательно должен быть установлен Notepad++! Данный текстовый редактор имеет огромный функционал и подсветку синтаксиса, которая так необходима при просмотрел XML. Notepad++ показывает XML формат в максимально удобном и усвояемом обычным человеком виде.

Способ 2. Блокнот Windows

Если XML файл нужно отредактировать максимально быстро, то и самый простой блокнот сгодится. Кликните правой кнопкой мыши на файлике и в контекстном меню «Открыть с помощью…» и выберите в списке «Блокнот».

В обычном блокноте Windows, к сожалению, нет подсветки синтаксиса, что несколько затрудняет восприятие информации… но по быстрому подправить вполне сгодится.

Способ 3. Браузер

Если нет надобности в редактировании, то XML файл можно открыть только для чтения в любом браузере. Я использую браузер Яндекс, но можно использовать даже ненавистный многим Internet Explorer. Для этого кликните правой кнопкой по файлу и выберите пункт «Открыть с помощью», в списке найдите свой веб обозреватель…

Бывают такие ситуации, когда браузер попытается отобразить информацию согласно тегам… что нам совершенно не нужно — просто нажмите CTRL+ U для просмотра исходного кода документа.

Как можете видеть, браузер отображает более вменяемо информацию из XML файла в отличии от стандартного Блокнота.

Заключение

Вот мы и рассмотрели что такое XML файл и различные способы его открыть. Если разбирать вопрос более подробно, то многие читатели могут заметить, что в сети присутствует огромное количество онлайн сервисов для работы с XML — рассматривать их в разрезе данной заметки не вижу смысла, моя цель была рассказать как его просмотреть и отредактировать (по возможностями средствами самой ОС Windows)

Что такое XML Sapiens

, ведущий программист Red Graphic Systems

В 1995 году компания Vignette представила на рынке первую коммерческую систему класса CMS (систем управления контентом). С тех пор число коммерческих CMS неустанно растет и ныне сам термин CMS прижился на рынке и, как правило, не требует расшифровки. За последние годы было утверждено множество отрытых стандартов, позволяющих структурировать информацию на сайтах, отделить ее от дизайна, но, по-прежнему, большинство CMS не следует им.

Так уже много лет существует стандарт XSLT, позволяющий формирование документов из разделенных источников: XML-файла со структурированным содержанием документа и XSL-шаблона с описанием того, как документ будет представлен на сайте. Причем само формирование документа, может происходить на стороне клиента. Достаточно передать браузеру XML-структуру данных, содержащую ссылку на XSL-шаблон и браузер сам «нарисует» страницу в том виде, как это предполагалось дизайнерами. Содержание каждой страницы сайта различается, однако форма подачи этого содержания, обычно, ограниченна небольшим числом шаблонов. Таким образом, XSLT позволяет нам одиножды написанный шаблон представления данных на сайте использовать многократно. Казалось бы, вот она идеальная технология для CMS. Однако повсеместное применение данной технологии сдерживает ряд факторов. Из них психологическая инерция — не главенствующий фактор. Описание функциональности сайта с помощью XSLT — весьма трудоемкая задача. Кроме того, XSL-шаблон слишком зависим от XML-документа с данными, что ограничивает гибкость решений на основе данной технологии.

Таким образом, XSLT представляет собой концептуально безупречное, но на практике трудоемкое решение. Данное обстоятельство побуждает разработчиков искать новые решения, включающие преимущества утвержденных открытых стандартов и, в то же время, относительно удобные в использовании. Одно из таких решений — декларативный язык XML Sapiens.

Design, photoshop, illustrator, web-разработки, дизайн, уроки photoshop

XML Sapiens — магия оживления сайтов

Несколько слов о новой спецификации языка разметки для разработчиков CMS XML Sapiens

Случалось ли вам искать Open Source CMS для сборки своего сайта? Наверняка, вы столкнулись со сложностями при реализации своих функциональных моделей. Возможно, вам пришлось даже отказаться от некоторых идей по части интерфейса и ограничиться базовыми возможностями CMS. Скорее всего, у вас даже возникала мысль: «Хорошо было бы с помощью какого-нибудь макроязыка самостоятельно описывать интерфейсы сайтов, не ограничиваясь какими-либо штампами».

И действительно, существует ряд реализаций CMS, но нет общей концепции, описывающей модель CMS, где функциональность сайта не была бы привязана к программному ядру. Нет?! Все же есть. Это концепция представлена в спецификации XML Sapiens — XML-ориентированного языка, описания пользовательских интерфейсов, представленной компанией Red Graphic Systems.

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

Как это работает? Скажем, мы планируем разместить на всех страницах сайта типа, определенного шаблоном A вертикальное навигационное меню. Для этого нам следует создать описание этого контейнера динамических данных в XML Sapiens. В этом описании будет размещен указатель на приложение CMS, возвращающее массив со структурой сайта. Мы располагаем возможностью задания условий и стиля вывода в код контейнера содержания данного массива. Теперь осталось лишь разместить указатель на данный контейнер в шаблоне А. Таким же образом формируются самые различные навигационные формы, интерактивные формы, информационные каналы различных типов. Более того, шаблон и его контейнеры можно настроить для отображения веб-документов в виде XML, что будет корректно воспринято Flash, Java-applet, WAP, SVG.

Добавить в:

Постоянные ссылки

При копировании ссылка на Заметки дизайнера обязательна!

XML-Sapiens — орудие разделения функциональности сайта и программного ядра

Автор: Дмитрий Шейко, 29 октября 2004

С каждым днем, и даже с каждым часом, объем котента в Интернете неизменно растет и тенденция эта прогрессирует. Более того, конкурентная среда вынуждает сайтостроителей разрабатывать все более и более сложные интерфейсы для доступа к этому самому контенту. Поколения систем управления контентом (CMS) сменяют друг друга с впечатляющей динамикой. Сегодняшние решения в сфере информационной архитектуры сайтов требуют от CMS принципиально новых возможностей, каковые были не доступны вчера. Завтрашние решения потребуют возможностей недоступных сегодня. Классическая эволюция технологий. Однако вопрос в том, как, разрабатывая новую CMS сохранить вложенные инвестиции и вложить требуемый потенциал для, хотя бы, ближайших поколений систем.

Если проанализировать тенденции развития CMS, то можно заметить, что одним из наиболее узких мест является жесткая привязанность функциональности сайта к его программному ядру. Это столь же очевидное ограничение, как некогда и контент, неотделенный от представления в технологии HTML. На смену HTML пришла технология XML/XSL и проблема была решена. Что же поможет решить проблемы неразделенной функциональности и программного ядра CMS? Может быть XML Sapiens?

XML Sapiens (http://xmlsapiens.org) — это спецификация программных интерфейсов для CMS-базированных сайтов, предложенная компанией Red Graphic Systems. Данная спецификация как раз и описывает концепцию сайта с разделенными функциональностью, контентом и его представлением. То есть, в CMS, отвечающих требованиям XML Sapiens интерфейсы сайта не привязаны к программному ядру. Для создания нового интерфейса на сайте нет необходимости переделывать CMS, а достаточно лишь добавить описание нового интерфейса в справочник XML Sapiens.

Как это все работает? В общем и целом, при обращении по URI к заданному документу сайта определяются переменные окружения XML Sapiens. В соответствии со значениями аргументов из среды окружения из хранилища данных (например, из базы данных) запрашиваются данные документа и шаблон их представления. И то и другое передается на обработку парсеру XML Sapiens. Парсер разбирает шаблон представления, анализирует найденные элементы XML Sapiens и обрабатывает в соответствии с их описаниями в справочнике XML Sapiens. Так, скажем элементы динамических контейнеров данных будут заменены кодом, сгенерированным на основании модели, представленной в описании этого объекта и аргументов среды окружения. Контейнеры запросов в случае процесса доставки данных (отображения сайта посетителю) будут заменены, соответствующими данными для данного документа, принятыми из хранилища данных. В случае процесса администрирования элементы этих контейнеров будут заменены формами запросов данных, соответствующего типа.

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

Мастер Йода рекомендует:  Стрелочные функции ES6 в JavaScript - начало работы Javascript
Добавить комментарий