Для создания вложенных запросов присвойте их дочерним элементам.
Процедура
- В Document Studio откройте панель Схема источника данных.
- С помощью указателя мыши перенесите элемент с панели
Схема источника данных на элемент шаблона. При переносе запроса на элемент, для которого задан родительский элемент,
выполняется проверка возможности обработки запроса в контексте запроса
родительского элемента. Показываются все запросы, которые могут служить контекстом,
отображаются в окне Выбрать контекст.
В списке отображается ИД и его текстовое представление.
- Выберите контекст запроса в списке. Если контекст не выбран, создаются два несвязанных
вложенных запроса.
- Нажмите кнопку OK.
Пример
В следующем примере показан вложенный запрос, присвоенный
элементу шаблона Rational DOORS.
Paragraph DOORS 1 $1 Module/Object
Text
Module/Object/Object/Heading
Paragraph DOORS 1 $2 Module/Object/Attribute
Text
Module/Object/Attribute/Name
В этом примере запрос
Module/Object
выполняет роль контекста для
Module/Object/Attribute.
В этом примере контекст $1 для второго запроса позволяет получить следующий вывод:
- Набор абзацев, содержащих заголовки объектов в модуле.
- Список абзацев с именами атрибутов для текущего объекта в запросе $1.
Контекст none для второго
запроса позволяет получить следующий вывод:
- Набор абзацев, содержащих заголовки объектов в модуле.
- Список абзацев с именами атрибутов для всех объектов.
В следующем примере показан вложенный запрос, присвоенный
элементу шаблона
IBM® Rational Tau.
Первый запрос model/root(Package)
выполняется в контексте модели Rational Tau.
Второй запрос model/root(Package)/ownedMember
выполняется для каждого пакета, возвращаемого первым запросом.
Полный
список классов из пакетов верхнего уровня можно получить с помощью
запроса
model/root(Package)/ownedMember(Class).
В этом случае документ вывода не содержит имена отдельных пакетов. Способ
создания списка классов аналогичен первому случаю. Запрос разбивается на составляющие запросы, каждый из которых
выполняется в контексте, определяемом предыдущими
запросами:
Табл. 1. Подчиненные запросыПодзапрос |
Контекст |
Результат |
model |
Не применимо |
модель |
model/root(Package) |
модель |
список пакетов |
ownedMember(Class) |
список пакетов |
список классов |
Каждый
подзапрос выполняется один раз для каждого элемента; результаты
каждого выполнения объединяются. Эти результаты становятся контекстом следующего подзапроса или
списка результатов в случае последнего подзапроса.