Xml ccnet.xsd是如何工作的

Xml ccnet.xsd是如何工作的,xml,xsd,cruisecontrol.net,Xml,Xsd,Cruisecontrol.net,好吧,原谅我我只是CruiseControl.net的新手。在阅读了一些关于如何开始使用它的教程之后。我发现,了解允许在ccnet.config文件中写入的内容非常重要。以及它是如何工作的 因此,我试图找出ccnet.xsd和CCNetConfigBuilder.xsd中的内容。在这里。我只是在xmlspy 2010中展示了它 从cc.net的模式。据我理解。配置的根元素是cruisecontrol。 它的子元素可以是project,queue,cb:define或cb:scope。这些元素

好吧,原谅我我只是CruiseControl.net的新手。在阅读了一些关于如何开始使用它的教程之后。我发现,了解允许在
ccnet.config
文件中写入的内容非常重要。以及它是如何工作的

因此,我试图找出
ccnet.xsd
CCNetConfigBuilder.xsd
中的内容。在这里。我只是在xmlspy 2010中展示了它

从cc.net的模式。据我理解。配置的根元素是
cruisecontrol
。 它的子元素可以是
project
queue
cb:define
cb:scope
。这些元素的出现次数可以从“0”到“无界”

但是,当我从中查看ccnet.config的示例时

例如:

<cb:scope ProjectName="ProjectX">
  <cb:define ProjectType="_CI" />
  <project name="$(ProjectName)$(ProjectType)" queue="Q1" queuePriority="901">
     .....
  </project>
</cb:scope>

.....
让我困惑的是:


为什么
cb:scope
可以是
项目的父节点?因为我没有看到cc.net xsd中定义了此父子关系。(如果我错了,请更正。)

问题是有两个XSD文档。配置生成器使用cb命名空间,它是CruiseControl.NET配置文件的预处理器。项目元素是CruiseControl.NET元素,该元素在CruiseControl.NET架构CCNet.xsd中描述,该架构用于默认命名空间

<cruisecontrol 
    xmlns:cb="urn:ccnet.config.builder" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="file://...path to file on disk..//ccnet.xsd"
    xsi:schemaLocation="http://www.w3.org/2001/XMLSchema file://...path to file on disk..//ccnet-config-builder.xsd"
    xmlns="http://thoughtworks.org/ccnet/1/8">

</cruisecontrol>