База знаний

Справочная система SP-XML

Связанные темы:

Общие сведения о платформе SP-XML
Структура приложения
Формы описания данных (.xmd)
Встроенные функции
Встроенные объекты
Встроенные глобальные переменные
Экранные формы (.xms)
Язык XQuery
Дополнительные возможности платформы
Первые шаги в освоении платформы SP-XML

Базы данных

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

  • Основная база, содержащая все данные приложения, и располагающееся на сервере приложения. Как правило, имеет внутреннее имя "data".
  • Пользовательская база, содержащая настройки и другие данные пользователя, и располагающееся на каждом рабочем месте пользователя. Как правило, имеет внутреннее имя "data_local".

Также для реализации "Корзины" заводят отдельную базу, как правило, имеющую внутренне имя "trash".

 

Каждый XML-документ в базе имеет свой виртуальный url, по которому к нему можно обращаться. Существует два вида документов в базе: статические и объектные.

Каждый статический документ имеет произвольный, но заранее заданный относительный путь внутри базы, и для доступа к нему используется специальная url-схема "x-local". Например, документ, содержащий общие настройки, может иметь следящий url:
x-local://data/static/global_settings.xml
где, "data" - внутреннее имя базы, а путь static/global_settings.xml внутри базы произвольно выбран разработчиком приложения.

 

Объектные документы (или просто объекты) имеют другой принцип адресации. Собственно они и содержат основной объем данных любого приложения.

Для каждой базы данных заранее задается определенный набор типов объектов (сущностей), которые используются в приложении (человек, организация, событие, вакансия и др., количество типов объектов может доходить до нескольких десятков). Для каждого типа объекта может существовать любое число экземпляров данного вида объекта, каждый из которых имеет свой уникальный идентификатор (ID), целочисленный 64-битный или строковый .

Модель объектных документов аналогична реляционной СУБД, где тип объекта - это таблица, а объект - запись в таблице. Однако принцип доступа к данным в SP-XML и реляционных СУБД отличаются, о чем будет описано отдельно.

К любому объектному документу также можно обратиться через url, используя специальную схему "x-db-obj":
x-db-obj://data/person/0x41D258E8F25C328A.xml
где, "data" - внутреннее имя базы, "person" - тип объекта, а 0x41D258E8F25C328A - ID объекта в 16-ричном виде. Но, в отличие от url статических документов, разработчик приложения редко видит url объектных документов в явном виде, обычно он создается неявно различными функциями и методами.

 

Таким образом, количество статическим документов в базе, как правило заранее известно, тогда как количество объектных - потенциально неограниченно.

 

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

 

Внимание! Ранние версии E-Staff (до 4.0) а также система WebTutor используют так называемую старую объектную модель, которая активно использовалась до 2010 года, и которую не рекомендуется использовать в новых приложениях. В старой объектной модели все объектные документы базы, независимо от типа, использовали единое пространство целочисленных 64-битных ID, и использовали url схемы "x-local" для адресации:
x-local://data/objects/0x41D258E8F25C32/8A.xml

Схема "x-app" в старой модели не использовалась. Список возможных типов объектов в базе заранее нигде не регистрировался, в базу можно было поместить объектный документ любой формы.