分配查询

查询定义从数据源中抽取的数据,并且采用数据源模式中的路径的形式。可以将查询分配给模板元素以定义该元素及其子代的数据上下文。

关于此任务

IBM® Rational® DOORS® 中的查询的开头是根元素(模块),接着是其子元素(对象),然后是对象的子属性。例如,Module/Object/Attribute/Name

IBM Rational Tau 中的查询在语法上类似于 XPath 语法。然而,与 XPath 不同,Rational Publishing Engine 查询并不指定过滤器;过滤器和排序子句已与查询分开。通过 Rational Tau 本机查询来定义每个模式元素(查询除外)。此查询表示为 OCL,用于访存 Rational Tau 数据。例如,模型元素 model.rootResource 下的根元素附加了 GetModelRoots() Rational Tau 查询。

过程

  1. 指定查询。
    1. 在 Document Studio 中,打开数据源模式视图。
    2. 将元素添加至模板。
    3. 将查询从数据源模式视图拖到元素。
    查询会指定给模板元素,您可以将查询类型(从数据源模式视图拖移的元素)的属性用在模板元素及其子元素中的任何位置。
  2. 设置查询元素限制。
    注: 可通过设置查询元素限制来处理模板元素的子集。
    1. 在 Document Studio 中,选择包含查询的模板元素。
    2. 属性视图中,选择数据选项卡。
    3. 对于限制属性,输入来自数据源的对象数以用在各自的查询中。值 0(零)表示没有设置查询限制。
  3. 将反复出现的属性指定给查询。 使用数据递归,从模式中的主要源需求抽取所有子需求。
    1. 选择包含查询的元素。
    2. 在“属性”视图中,对于递归级别属性,输入查询的深度级别。
    3. 对于递归段属性,输入段在查询中的重复次数。
    请参阅下面的示例,以了解有关递归级别和递归段的信息。
  4. 保存更改。

结果

将查询应用到元素时,有三个可视指示器,缺省情况下,它们在模板内容编辑器中显示为蓝色:
  • 数据源模式名
  • 上下文显示有美元符号 ($)
  • 查询名称
应用了查询的单元格元素
提示: 清除查询中的信息时,清除引用清除数据所执行的工作不同。只有当您选择具有查询的元素时,清除引用才可用。清除引用会除去所选元素及其子元素(如果这些子元素也分配有查询或属性的话)上的所有查询、属性、过滤器、排序和条件。清除数据会除去所选元素及其子元素上的所有查询、属性、过滤器、排序和条件。不会除去母版页、样式和格式化属性。

示例:递归级别和递归段

要查看软件需求的列表,可以使用 IBM Rational RequisitePro® 模式中的 PRRequirement 查询 (%RPE_HOME%\source\XML\examples\RequisitePro.xsd),该模式可以在随 Rational Publishing Engine 安装的样本中找到。

对于每个 PRRequirement,可以抽取所有子需求,而对于每个子需求,抽取其子需求,而不必将每个查询添加至模板。

不必添加下列每个查询:
  • [$1] Project/Requirements/PRRequirement 以抽取 PRRequirements
  • [$2] $1/Children/Relationship/RelatedReq 以抽取每个 PRRequirement 的子需求。
  • [$3] $2/Children/Relationship/RelatedReq 以抽取每个 PRRequirement 的每个子需求的子需求。
可以自动为这些需求构造一个查询:
  1. Project/Requirements/PRRequirement/Children/Relationship/RelatedReq 查询添加至元素。
  2. 将值添加至“递归级别”和“递归段”属性:
    • 对于递归级别属性,输入 4

      递归级别表示查询的级别深度。如果您输入 1 或者更高的值,那么还必须为递归段属性设置 1 或者更高的值。

    • 对于递归段属性,输入 3
      递归段表示段在查询中的重复次数。本示例中的段是 Children/Relationship/RelatedReq
      注:递归段属性输入的数目不能大于查询所包含的分段的数目。 父查询不会作为分段包括在内。
  3. 运行要测试的报告。
    运行报告时,会包括下列查询:
    • [$1] - Project/Requirements/PRRequirement/Children/Relationship/RelatedReq
      注: 第一个查询必须包括查询的完整上下文。
    • [$2] - $1/ Children/Relationship/RelatedReq
    • [$3] - $2/Children/Relationship/RelatedReq
    • [$4] - $3/Children/Relationship/RelatedReq
    如果您发现为递归段属性输入的数目大于查询所包含的分段的数目,那么可使用这两个选项中的其中一个来解决该问题:
    • 选择已应用递归段属性的元素。在“属性”视图中,选择数据选项卡,并减小递归段属性的值。
    • 您也可以重新设计查询以从不同的父查询开始。如果您的递归段值是一个太高的段,请创建一个容器元素并添加一个比现有元素的父查询高一个级别的查询。然后,将现有元素移至该容器元素。

下一步做什么

提示: 要搜索查询和属性的列表,您可以右键单击元素,然后选择搜索 > 元素中的数据引用。此时,会打开“搜索”视图并显示查询和属性的列表。可以双击结果中的查询或属性以编辑其内容。

要搜索元素中所使用的变量分配、属性和查询的列表,请右键单击元素,并选择搜索 > 元素中的所有引用。此时,会打开“搜索”视图并显示一个列表。可以双击结果中的项目以进行编辑。

要在“数据源模式”视图中从应用了查询或属性的元素中找到该查询或属性,您可以右键单击元素,然后选择搜索 > 转至模式。此时,会打开“数据源模式”视图并突出显示该查询或属性。


反馈