Rzutowanie typów

Rzutowanie typów ogranicza wyniki zapytania i umożliwia produktowi Rational Publishing Engine traktowanie typów schematów .xsd jako pochodzących z innego typu, podobnie jak operacje rzutowania w językach programowania. Typ nie jest przypisywany do elementów schematu, które mogą mieć więcej niż jeden poprawny typ. Typy dla tych elementów definiuje się przy użyciu opcji Rzutuj na typ dostępnej w widoku schematu źródła danych.

Zanim rozpoczniesz

W produkcie Rational Publishing Engine w wersji 1.2 lub starszej rzutowanie można zastosować tylko do ostatniego segmentu zapytania. Przykłady zapytań:
  • Poprawne: Pakiety/Pakiety/ZagnieżdżoneElementy/ElementModelu(Klasa)
  • Niepoprawne: Pakiety/Pakiety/ZagnieżdżoneElementy/ElementModelu(Klasa)/Atrybuty
Aby drugie przykładowe zapytanie było poprawne w produkcie Rational Publishing Engine 1.2, należy podzielić je na dwa zapytania:
  • $1 - Pakiety/Pakiety/ZagnieżdżoneElementy/ElementModelu(Klasa)
  • $2 - $1/Atrybuty

W produkcie Rational Publishing Engine 1.2.0.1 rzutowanie można zastosować do dowolnego segmentu zapytania.

O tym zadaniu

Rzutowanie typów działa jak alternatywny filtr dla elementów źródła danych. Zapytanie rzutowania filtruje wyniki zwykłego zapytania i zwraca tylko te elementy, które mogą być rzutowane na wybrany typ. Po wybraniu typu staje się on dostępny w widoku Schemat źródła danych w elemencie anyType. Zapytania zbudowane z użyciem rzutowania umożliwiają dostęp do wszystkich elementów potomnych i atrybutów rzutowanego typu. Tabela wynikowa zwracana przez zapytanie rzutowania jest identyczna z tabelą wynikową zwracaną przez zapytanie, które jest filtrowane przy użyciu równoważnego predykatu IsKindOf. Różnica między zapytaniem rzutowania i zapytaniem filtrowanym jest taka, że zapytanie rzutowania zapewnia dostęp do atrybutów i elementów potomnych rzutowanego typu, a zapytanie filtrowane nie.

Uwaga: Produkt IBM® Rational Tau i źródła danych produktu IBM Rational Rhapsody obsługują rzutowanie typów.

Procedura

  1. Przeciągnij element Ikona kontenera Kontener do edytora treści szablonu.
  2. Z widoku Schemat źródła danych przeciągnij klasę ownedMember do szablonu.
  3. Nadaj kontenerowi nazwę Kontener klasy, aby ułatwić jego znalezienie.
  4. Kliknij ikonę Ikona Rzutuj na typ i wybierz rzutowanie typu Klasa dla klasy ownedMember.
  5. Przeciągnij element Ikona akapitu Akapit, umieść go poniżej elementu kontener i dodaj nazwę pakietu w kontenerze klasy, przeciągając atrybut Name(string).
  6. Przeciągnij element Ikona tekstu Tekst do edytora treści szablonu.
  7. Z widoku Schemat źródła danych przeciągnij tekst statyczny (Active) do elementu tekstu.
  8. Kliknij prawym przyciskiem myszy element tekstu, a następnie kliknij opcję Dane > Edytuj warunek.
  9. W oknie Ustawianie warunku dla bieżącego elementu rozwiń pozycję Atrybuty i zaznacz pole wyboru dla atrybutu IsActive.
  10. W polu Lewy operand wybierz wartość IsActive.
  11. W polu Operator wybierz wartość Równe.
  12. W polu Prawy operand wprowadź wartość true.
  13. Kliknij przycisk Dodaj. Warunek zostanie wyświetlony jako: IsActive == "true"
  14. Kliknij przycisk OK.

Wyniki

Dodanie rzutowania typu Klasa do należącego do pakietu elementu ownedMember umożliwi zdefiniowanie następującego zapytania, które zwróci tylko definicje będące klasami z tego samego kontekstu:

Rzutowanie typów


Opinia