Quartz Composer - 结构关键成员错误?

时间:2009-11-11 18:22:18

标签: xml quartz-composer

我正在尝试使用Quartz Composer创建一个持续集成构建散热器。

我整理了一个简单的XML文件来描述项目以及每个工作流程的最新成功:

<projects>
  <project>
    <title>Project A</title>
    <workflows>
      <workflow>
        <title>Build 1.0</title>
        <status>success</status>
      </workflow>
      <workflow>
        <title>Build 2.0</title>
        <status>success</status>
      </workflow>
    </workflows>
  </project>
  <project>
    <title>Project B</title>
    <workflows>
      <workflow>
        <title>Build 1.0</title>
        <status>success</status>
      </workflow>
    </workflows>
  </project>
</projects>

这显然会有更多的信息,但我只是想让基础工作暂时工作。我设置了一个合成,并使用XML Downloader从文件系统加载上述XML文件。

我遇到的问题是:当我在一个有多个子元素的元素上使用Structure Key Member补丁时,我会找回多个孩子,但是当我在一个只有一个孩子的元素上使用Structure Key Member时,我会回来单个孩子而不是1个项目的集合。

我在示例组合中说明了以下问题:

Quartz Composition

我做错了吗?这是预期的行为吗?为什么下链不会返回QCStructure?

1 个答案:

答案 0 :(得分:2)

不幸的是,XML Downloader补丁无法正确处理多个相邻的空元素。

一种可能的解决方法可能是重构XML以删除“项目”组,只需使“项目”成为每个“工作流程”的属性:

<workflows>
  <workflow project="Project A">
    <title>Build 1.0</title>
    <status>success</status>
  </workflow>
  <workflow project="Project A">
    <title>Build 2.0</title>
    <status>success</status>
  </workflow>
  <workflow project="Project B">
    <title>Build 1.0</title>
    <status>success</status>
  </workflow>
</workflows>

这会产生一个可用结果的结构。

(当XML Downloader从XML构建结构时,属性等同于子标记,因此“project”可以是并且您将获得相同的结果。)