类型强制类型转换会优化查询的结果并允许 Rational® Publishing Engine 将 .xsd 模式类型视为不同的类型,这与编程语言中的强制类型转换操作类似。不会将类型分配给可以具有多种有效类型的模式元素。使用“数据源模式”视图中的强制类型转换功能来定义这些元素的类型。
开始之前
在
Rational Publishing Engine 1.2 和更低版本中,强制类型转换只能应用到查询的最后一段。查询示例:
- 正确: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 中,强制类型转换可应用到查询的任一段中。
关于此任务
强制类型转换用作数据源元素的备用过滤器。强制类型转换查询将对常规查询的结果进行过滤以仅返回可转换为选定类型的元素。选择类型之后,它在数据源模式视图中 anyType 元素下是可用的。使用强制类型转换构建的查询允许访问该强制类型转换的所有子元素和属性。强制类型转换查询返回的结果集与查询(使用等价的 IsKindOf 谓词进行过滤)返回的结果集相同。强制类型转换查询和过滤查询之间的差别在于强制类型转换查询可让您访问强制类型转换属性和子元素,而过滤查询不允许访问。
注: IBM® Rational Tau 和 IBM Rational Rhapsody® 数据源支持强制类型转换。
过程
- 将
容器元素拖到模板内容编辑器。
- 从数据源模式视图中,将 ownedMember 类拖到模板。
- 将容器命名为 Class Container 以便快速参考。
- 单击
图标,然后选择 ownedMember 的类强制类型转换。
- 拖动
段 元素并将该元素放在容器元素下方,然后通过拖动 Name(string) 属性,在 Class Container 内部添加软件包的名称。
- 将
文本元素拖到模板内容编辑器。
- 从数据源模式视图中,将静态文本 (Active) 拖到文本元素。
- 右键单击文本元素,然后单击。
- 在“为当前元素设置条件”窗口中,展开属性,然后选中 IsActive 属性的复选框。
- 对于左侧的操作数,请选择 IsActive。
- 对于运算符,请选择等号。
- 对于右侧的操作数,请输入 true。
- 单击添加。 该条件将显示为:IsActive == "true"
- 单击确定。
结果
将类强制类型转换添加至软件包的 ownedMember 元素,可让您定义以下仅返回一些定义的查询,这些定义是来自同一上下文的类: