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.
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: