Преобразование типов улучшает результаты запроса и
позволяет
Rational Publishing Engine
интерпретировать тип схемы .xsd как другой тип,
подобно операциям преобразования типов в языках программирования. Тип не сопоставляется с элементами схемы, которые могут иметь несколько допустимых типов. Определить типы для элементов схемы можно с помощью функции
привести к типу на панели схемы источника данных.
Прежде чем начать
В
Rational Publishing Engine
1.2 и более ранних версий оператор cast можно применить только к
последнему сегменту запроса. Примеры запросов:
- Правильный:
Packages/Packages/NestedElements/ModelElement(Class)
- Неправильный:
Packages/Packages/NestedElements/ModelElement(Class)/Attributes
Для того чтобы сделать второй пример запроса допустимыми в
Rational Publishing Engine 1.2,
необходимо разбить его на два запроса:
- $1 - Packages/Packages/NestedElements/ModelElement(Class)
- $2 - $1/Attributes
В Rational Publishing Engine
1.2.0.1 оператор cast можно применить к любому сегменту
запроса.
Об этой задаче
Преобразование типов работает как еще один фильтр для элементов источника данных. Запрос преобразования фильтрует результаты обычных запросов для возврата только элементов, которые можно привести к выбранному типу. После выбора типа он становится доступен в представлении Схема источника данных в элементе anyType.
Сформированные с помощью преобразования типов запросы обеспечивают доступ ко всем дочерним элементам и атрибутам преобразованного типа. Набор результатов, возвращенный запросом преобразования типов, аналогичен набору результатов, возвращенному запросом с фильтром с аналогичным предикатом IsKindOf. Различие между запросом преобразования и запросом по фильтру в том, что запрос преобразования предоставляет доступ к дочерним элементам и атрибутам приведенного типа, а запрос по фильтру нет.
Процедура
- На панели Палитра перенесите элемент
Контейнер в редактор
содержимого шаблона.
- На панели Схема источника данных
перенесите класс ownedMember в элемент
контейнера.
- Необязательно: Назовите контейнер Контейнер
класса для облегчения ссылки на него.
- Щелкните на значке
Привести к
типу для добавления типа Class
для ownedMember.
- Добавьте элемент
Абзац под
элементом контейнера.
- На панели Схема источника данных перенесите
атрибут Name(string) в Контейнер
класса, чтобы добавить имя пакета.