链接类型元素参考
使用链接类型可定义链接标签、拓扑类型以及在工作项之间构建链接时使用的限制。 例如,父子链接类型定义两个标签(父和子),它支持分层拓扑或树拓扑,并阻止在工作项之间创建循环引用。
若要自定义或创建链接类型,需要向包含链接类型定义的团队项目集合导入一个 XML 文件。 链接类型会添加到为该集合定义的链接类型集中。 基于您指定的引用名称,相应现有链接类型会被新信息覆盖。
主题内容
语法结构
链接类型要求
系统定义的链接类型
MSF 过程模板定义的链接类型
链接限制和拓扑
链接类型架构定义
语法结构
您可以定义其他链接类型,只需向为团队项目集合定义的链接类型中添加他们即可。 您可以基于链接类型定义架构提供的结构来定义在您的过程中使用的有效链接类型。 链接类型是在链接类型 XML 文件中由以下 XML 语法定义的:
<LinkTypes>
<LinkType ReferenceName="LinkTypeName" ForwardName="ForwardName" ReverseName="ReverseName" Topology="TopologyType" />
</LinkTypes>
下表中的说明适用于上面的语法:
特性 |
说明 |
---|---|
ReferenceName |
链接类型的名称。 此名称在两个工作项之间创建链接时在内部使用。 |
ForwardName |
源工作项上的链接名称。 在将链接添加到源工作项时显示此名称。 |
ReverseName |
目标工作项上的链接名称。 显示目标工作项上的链接列表时显示此名称。 |
TopologyType |
指定 DirectedNetwork、Network、Tree 或 Dependency 拓扑。 前三个拓扑为定向拓扑,您可以使用它们定义下属关系或顺序关系。 使用 Network 可以定义对等关系或相互间不存在隐含下属的关系。 |
链接的方向性由 ForwardName 和 ReverseName 特性的赋值确定。 如果创建一个自定义链接,并且指定相同的正向名称和反向名称,则应将链接类型设置为 Network,因为它是唯一的非定向拓扑。
链接类型要求
LINKTYPES 是由团队项目集合存储和使用的 LINKTYPE 元素集。
每个链接类型都有一个引用名称和两个可选的友好名称或名称标签,它们在项目集合中必须是唯一的。 每个链接类型名称必须满足以下要求:
名称最多可以有 254 个 Unicode 字符。
名称不能是空的。
名称不能有前导空白或尾随空白。
名称不能包含反斜杠 (\) 字符。
名称不能包含两个连续空格。
系统定义的链接类型
下表汇总了系统定义的链接类型。 不得以任何方式覆盖或修改这些链接类型。
正向名称 |
反向名称 |
链接类型引用名称 |
拓扑 |
---|---|---|---|
后续 |
前置 |
System.LinkTypes.Dependency |
Dependency |
子级 |
父级 |
System.LinkTypes.Hierarchy |
树 |
相关 |
相关 |
System.LinkTypes.Related |
网络 |
此外, Storyboard将类型的链接工作项链接到演示图板或网络共享上的任何文件。 有关更多信息,请参见 LinksControlOptions 元素。
MSF 过程模板定义的链接类型
下表列出了使用 Microsoft Solutions Framework (MSF) 过程模板创建团队项目时创建的链接类型。 这些链接类型经过专门设计,用来支持与 Team Foundation 和 Microsoft 测试管理器中的跟踪工作项进行交互。
正向名称 |
反向名称 |
链接类型引用名称 |
拓扑 |
---|---|---|---|
测试方 |
测试 |
Microsoft.VSTS.Common.TestedBy |
Dependency |
测试用例 |
共享步骤 |
Microsoft.VSTS.TestCase.SharedStepReferencedBy |
Dependency |
使用 MSF 过程模板创建团队项目时,本主题前面列出的所有链接类型都会添加到团队项目集合中。 链接类型定义文件在 Template.zip 文件的 WorkItem Tracking\LinkTypes 文件夹中定义。 下面的 Microsoft.VSTS.Common.TestedBy 链接类型定义在 TestedBy.xml 文件中定义:
<?xml version="1.0" encoding="utf-8"?>
<LinkTypes>
<LinkType ReferenceName="Microsoft.VSTS.Common.TestedBy" ForwardName="Tested By" ReverseName="Tests" Topology="Dependency" />
</LinkTypes>
使用相应的过程模板创建团队项目时,会将链接类型定义导入到项目集合中。
链接限制和拓扑
指派给链接类型的拓扑确定其用法限制。 在下表中,您可以查看不同的拓扑类型:
拓扑类型 |
图示 |
---|---|
网络:您可以使用网络链接在工作项之间创建非限制性基本关系。 此链接在两个端点是相同的。 允许创建循环关系。 示例用法:使用网络链接(如“相关”)可以记录可能共享依赖项的两个功能之间的关系。 |
|
定向网络:您可以使用定向网络链接在指示方向性的工作项之间创建关系。 两个端点的链接名称不同。 允许创建循环关系。 示例用法:对于可能共享依赖项,且您希望以某种方式区分双方的两个功能,可以使用定向网络链接记录它们之间的关系。 |
|
依赖项:您可以使用依赖项链接在具有方向性的工作项之间创建关系,并限制循环关系。 两个端点的链接名称不同。 在图示中,创建指向某个工作项的依赖链接时,该工作项不能包含指向相同工作项的依赖链接关系。 示例用法:使用依赖项链接可以记录为满足用户要求而必须完成的功能。 |
|
树:您可以使用树链接在工作项之间创建多级分层关系。 树链接支持多级分层视图,具有方向性,并限制循环关系。 两个端点的链接名称不同。 树链接是“工作项树”查询唯一支持的链接类型。 在图示中,不能向一个子级指派两个父级。 示例用法:使用树链接可以记录为实现一个功能而必须完成的团队任务和子任务。 |
链接类型架构定义
下面的代码列出链接类型的架构定义:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
id="WorkItemLinkTypeDefinition"
elementFormDefault="unqualified"
attributeFormDefault="unqualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://schemas.microsoft.com/VisualStudio/2005/workitemtracking/WorkItemLinkTypeDefinition.xsd"
xmlns="https://schemas.microsoft.com/VisualStudio/2005/workitemtracking/WorkItemLinkTypeDefinition.xsd"
xmlns:mstns="https://schemas.microsoft.com/VisualStudio/2005/workitemtracking/WorkItemLinkTypeDefinition.xsd"
xmlns:typelib="https://schemas.microsoft.com/VisualStudio/2005/workitemtracking/typelib"
version="1.0">
<xs:import namespace="https://schemas.microsoft.com/VisualStudio/2005/workitemtracking/typelib"/>
<xs:simpleType name="TopologyTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="Network" />
<xs:enumeration value="DirectedNetwork" />
<xs:enumeration value="Dependency" />
<xs:enumeration value="Tree" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="LinkTypeType">
<xs:attribute name="ReferenceName" type="typelib:ReferenceName" use="required" />
<xs:attribute name="Topology" type="TopologyTypes" use="optional" />
<xs:attribute name="ForwardName" type="typelib:FriendlyName" use="optional" />
<xs:attribute name="ReverseName" type="typelib:FriendlyName" use="optional" />
</xs:complexType>
<xs:complexType name="LinkTypesType">
<xs:sequence>
<xs:element name="LinkType" type="LinkTypeType" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:element name="LinkTypes" type="LinkTypesType" />
</xs:schema>