Преобразование типов

Преобразование типов улучшает результаты запроса и позволяет 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. Различие между запросом преобразования и запросом по фильтру в том, что запрос преобразования предоставляет доступ к дочерним элементам и атрибутам приведенного типа, а запрос по фильтру нет.

Прим.: Источники данных IBM® Rational Tau и IBM Rational Rhapsody поддерживают преобразование типов.

Процедура

  1. Перетащите элемент Значок Контейнер Контейнер в редактор материалов шаблона.
  2. В представлении Схема источника данных перетащите класс ownedMember в шаблон.
  3. Присвойте имя контейнеру Контейнер класса для быстрого доступа.
  4. Щелкните на значке Значок приведения к типу и выберите тип Класс для ownedMember.
  5. Перетащите элемент Значок Абзац Абзац и поместите его ниже элемента контейнера, добавьте имя пакета в Контейнер класса, перетащив атрибут Имя(строка).
  6. Перетащите элемент Значок Текст Текст в редактор материалов шаблона.
  7. Из представления Схема источника данных перетащите статический текст (Активный) в элемент Текст.
  8. Щелкните правой кнопкой мыши на элементе Текст и выберите Данные > Изменить условие.
  9. В окне Задать условие для текущего элемента разверните узел Атрибуты и включите переключатель для атрибута IsActive.
  10. Для поля Левый операнд выберите IsActive.
  11. Для поля Оператор выберите Равно.
  12. Для поля Правый операнд введите true.
  13. Выберите Добавить. Условие показывается как: IsActive == "true"
  14. Нажмите кнопку OK.

Результаты

Добавление преобразования Класс в элемент ownedMember пакета позволяет определить следующий запрос, возвращающий только определения, являющиеся классами того же контекста:

Преобразование типов


Комментарии