Мельница данных  (12.12.2025)
Структура XML-документа

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

  1. Документ должен иметь один корневой элемент. Имя такого элемента может быть любым, оно не анализируется. В примере ниже такой элемент имеет имя query.
  2. Корневой элемент должен иметь следующие атрибуты:
    • class (обязательный): имя класса или представления, к которому должен быть выполнен запрос;
    • fetchall (необязательный, допустимые значения "0" или "1", по умолчанию "0"): атрибут, позволяющий управлять режимом получения возвращаемого ответа на запрос в случае наличия ограничений на допустимый размер возвращаемого ответа; использование этого атрибута подробнее описано в разделе Использование возвращаемого ответа.
  3. Корневой элемент должен иметь набор дочерних элементов, описывающих условия отбора, сортировки, группировки возвращаемых данных. Эти элементы могут иметь любое имя, в примере ниже они имеют имя item. Каждый элемент второго уровня соответствует одной из частей (кляуз) sql-запроса: what, where, order by, group by и т.д.
  4. Элементы второго уровня должны иметь ряд атрибутов, из которых обязательным является только атрибут part. Обязательность других атрибутов может быть взаимно обусловлена их значениями.
    • part (обязательный): указывает на часть (кляузу) запроса, которой соответствует элемент второго уровня;
    • name: в простом случае (без использования атрибута special) - имя свойства класса (или поля представления), которое будет использовано в запросе; при использовании special может быть как именем свойства класса, так и другой строкой (подробнее: в разделах Допустимые значения part, Допустимые значения special); 
    • value - значение, которое, в зависимости от значений атрибутов part и special, будет использовано для сравнений или для других целей; в простом случае (если part = "where", special отсутствует) будет использовано для сравнения в условии отбора при выполнении запроса (подробнее: в разделах Допустимые значения part, Допустимые значения special);
    • special - вводит дополнительные возможности формирования запроса (подробнее: в разделе Допустимые значения special); от использованного значения special может зависеть обязательность и трактовка значений других атрибутов.
    • subQuery
    • joinKey
    • joinLink
    • joinSource  
  5. Элементы второго уровня могут иметь дочерние элементы третьего уровня parameters или context (имя этих элементов может быть любым, оно не анализируется), которые, в свою очередь, могут иметь дочерние элементы. Элементы третьего уровня с набором своих дочерних элементов интерпретируется тем или иным образом в зависимости от значения атрибута special; например, если special имеет значение "function" (22), то набор дочерних узлов элемента parameters будет интерпретироваться как набор параметров функции с их значениями (подробнее: в разделе Допустимые значения special). 

Пример
Пример XML-документа стандартной структуры:
01<query class="TWorker" fetchall="1">
02  <item part="what" name="LastName" />
03  <item part="what" name="FirstName"/>
04  <item part="what" name="BirthDate"/>
05  <item part="what" name="AcademicDegree"/>
06  <item part="what" name="ContactList" value="TPerson.GetContactList" special="function">
07    <parameters>
08      <ContactType>63474</ContactType>
09    </parameters>
10  </item>
11  <item part="where" name="LastName" value="A*"/>
12  <item part="order" name="LastName"/>
13  <item part="order" name="FirstName"/>
14</query>