|
|
Для передачи информации о запросе в формате XML необходимо сформировать XML-документ, отвечающий следующим требованиям: - Документ должен иметь один корневой элемент. Имя такого элемента может быть любым, оно не анализируется. В примере ниже такой элемент имеет имя query.
- Корневой элемент должен иметь следующие атрибуты:
- class (обязательный): имя класса или представления, к которому должен быть выполнен запрос;
- fetchall (необязательный, допустимые значения "0" или "1", по умолчанию "0"): атрибут, позволяющий управлять режимом получения возвращаемого ответа на запрос в случае наличия ограничений на допустимый размер возвращаемого ответа; использование этого атрибута подробнее описано в разделе Использование возвращаемого ответа.
- Корневой элемент должен иметь набор дочерних элементов, описывающих условия отбора, сортировки, группировки возвращаемых данных. Эти элементы могут иметь любое имя, в примере ниже они имеют имя item. Каждый элемент второго уровня соответствует одной из частей (кляуз) sql-запроса: what, where, order by, group by и т.д.
- Элементы второго уровня должны иметь ряд атрибутов, из которых обязательным является только атрибут part. Обязательность других атрибутов может быть взаимно обусловлена их значениями.
- part (обязательный): указывает на часть (кляузу) запроса, которой соответствует элемент второго уровня;
- name: в простом случае (без использования атрибута special) - имя свойства класса (или поля представления), которое будет использовано в запросе; при использовании special может быть как именем свойства класса, так и другой строкой (подробнее: в разделах Допустимые значения part, Допустимые значения special);
- value - значение, которое, в зависимости от значений атрибутов part и special, будет использовано для сравнений или для других целей; в простом случае (если part = "where", special отсутствует) будет использовано для сравнения в условии отбора при выполнении запроса (подробнее: в разделах Допустимые значения part, Допустимые значения special);
- special - вводит дополнительные возможности формирования запроса (подробнее: в разделе Допустимые значения special); от использованного значения special может зависеть обязательность и трактовка значений других атрибутов.
- subQuery
- joinKey
- joinLink
- joinSource
- Элементы второго уровня могут иметь дочерние элементы третьего уровня 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> |
|