Rational Rhapsody attributes

To create a custom template that drills all the way into a class to print information about the class attributes and types, as well as the attributes and types of each class attribute.

About this task

The structure of Rhapsody® data source schema is as follows:
  1. A class has attributes.
  2. Each attribute has a type.
  3. Each type in turn has its own attributes, which also have types, and so on.

The goal is to generate an IBM® Rational® Publishing Engine document that displays:

What IBM Rational Publishing Engine allows: drilling into the class - getting at the class attributes and drilling into the types of those attributes - upon drilling into those types, the IBM Rational Publishing Engine schema starts referring to nested elements, and nested elements do not have types that can be drilled into.

The schema defines the Attribute > Type relation, which represents a Classifier. Classifier is the base type for all the possible types (Class, Type, and so on) an attribute can have. To drill in further than IBM Rational Publishing Engine is currently allowing, IBM Rational Publishing Engine would have to support the ability to get the concrete type from Classifier and drill in further to get more information - this would require that IBM Rational Publishing Engine provide support for casting to a concrete type. To address this type of request, the REST Specification would need to be enhanced.

There is one limitation in IBM Rational Publishing Engine implementation, the CAST can be applied only to the last segment of the query. The following query is correct: Packages/Packages/NestedElements/ModelElement(Class) while this one is not: Packages/Packages/NestedElements/ModelElement(Class)/Attributes.

To make the second one valid you must split it in two:

Procedure

  1. Add a Container element in the editor area.
  2. Add the ownedMember class from the Data Source Schema view to this container. Name the container Class Container for easier reference.
  3. Add the Class type cast for the ownedMember by clicking the Cast to Type icon.
  4. Add a Paragraph element below the Container element, and add the name of the package inside the Class Container by dragging the Name(string) attribute.

Feedback