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
- Przeciągnij element
Kontener do edytora treści
szablonu.
- Z widoku Schemat źródła danych przeciągnij klasę ownedMember do szablonu.
- Nadaj kontenerowi nazwę Kontener klasy, aby ułatwić
jego znalezienie.
- Kliknij ikonę
i wybierz rzutowanie typu
Klasa dla klasy ownedMember.
- Przeciągnij element
Akapit, umieść go poniżej
elementu kontener i dodaj nazwę pakietu w kontenerze
klasy, przeciągając atrybut Name(string).
- Przeciągnij element
Tekst do edytora treści szablonu.
- Z widoku Schemat źródła danych przeciągnij tekst statyczny (Active) do elementu tekstu.
- Kliknij prawym przyciskiem myszy element tekstu, a następnie kliknij opcję .
- W oknie Ustawianie warunku dla bieżącego elementu rozwiń pozycję Atrybuty i zaznacz pole wyboru dla
atrybutu IsActive.
- W polu Lewy operand wybierz wartość IsActive.
- W polu Operator wybierz wartość Równe.
- W polu Prawy operand wprowadź wartość true.
- Kliknij przycisk Dodaj. Warunek zostanie wyświetlony jako: IsActive == "true"
- 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: