标识的唯一性约束

XML 模式使用 id 属性来区分各个元素。 标识还可用于对表示模型对象的数据库对象生成唯一的有效名称,比如用来存储监控上下文实例的表的名称。每个 ID 必须是 XML 无冒号名称 (NCName),即意味着必须以字母或下划线开头并只能包含字母、数字、下划线、连字符和句点。

对于监控模型中的每个监控上下文,将在“监控”数据库中创建一个表。每个度量值在表中表示为一个列。为获取最佳性能,您可以为监控模型启用数据移动服务。数据移动服务将表数据复制到针对仪表板查询优化过的重复表。

生成代码后将除去数据库表和列名称中不支持的字符。不受支持的字符包括:反斜杠 (\)、正斜杠 (/)、冒号 (:)、星号 (*)、问号 (?)、单引号 (')、左尖括号(<)、右尖括号 (>) 以及竖线 (|)。

监控上下文标识在监控模型中必须唯一。监控上下文标识可根据字符(包括双字节字符)区分。 标识不区分大小写。

相反,所指定元素的 id 属性则无需在整个 XML 实例文档中都是完全唯一的。特定元素上的 ID 属性必须仅在同代元素(不考虑类型)上的 ID 属性集合中唯一。父元素不能具有两个或以上具有相同 id 属性值的子元素。

例如,以下片段无效,因为 myId 的 ID 值在 <monitoringContext> 元素中使用了多次:
<monitoringContext id='myId'>
		<trigger id='myId'/>
		<inboundEvent id='myId'/>
</monitoringContext>
以下片段有效:
<monitoringContext id='myId'>
		<trigger id='myId'/>
		<monitoringContext id='myId2'>
			<inboundEvent id='myId'/>
			<inboundEvent id='myId2'/>
		</monitoringContext>
</monitoringContext>