教你轻松掌握带批注的 XDR架构中的错误
带批注的 XDR 架构中的错误
XDR 架构错误可分为以下几类:
◆在架构处理过程中检测到的 XDR 架构错误
◆通过 XPath 检测到的 XDR 架构错误
在处理带批注的 XDR 架构过程中检测到的 XDR 架构错误
"架构:无法加载架构 %1。发生错误 (%2)"
带批注的架构无法加载。检查所示的架构文件位于预期的位置上并且您有访问它的权限。验证该架构正常且为有效的 XML。
"架构:重复的元素定义 (%1)"
"架构:在 %2 上重复的特性定义 (%1)"
"架构:在 %2 上重复的特性引用 (%1)"
"架构:重复的顶层特性定义 (%1)"
特性、元素定义或引用在架构中多次出现。删除有问题的重复。
"架构:在 %2 上丢失特性定义 (%1)"
"架构:丢失元素定义 (%1)"
所需的特性或元素从架构上丢失。添加所丢失的信息。
"架构:在 %2 上丢失 %1"
批注 (%1) 从架构中丢失。添加所丢失的批注。
(例如,
"架构:%2 上预期得到 %1 的值"
批注 (%1) 的值为空。(例如 sql:field="")。添加所丢失的值。
"架构:在 %2 上的 %1 值无效"
批注 (%1) 的值无效。(例如 sql:key-fields=" ")。更正该值。
"架构:不允许嵌套元素定义"
ElementType 中不能有 ElementType。
"架构:关系标记中不允许有内容"
关系标记只能含有特性 (
"架构:在关系标记上的未知特性 %1"
关系中的特性只能是:键、键关系、外键和外关系。XML 名称区分大小写。
"架构:在 %1 上的关系中的键/外键对所含的列数不同"
检查所示的关系标记上的键和外键特性的值。
(例如,
"架构:在 %2 上 %1 预期 '0' 或 '1'"
所示的特性为布尔型值。以"0"表示假,以"1"表示真。
"架构:在 %2 上的未知 XDR 类型 %1"
所示的类型不是有效的 XDR 类型。有关可用类型的完整列表,请参见 XML 数据降低规范。
"架构:在 %2 上的未知 SQL 类型 %1"
所示的数据类型不是有效的 SQL Server 数据类型。SQL Server 数据类型用以区别各种较大对象的二进制类型,所以必须是以下类型之一:binary、image、ntext 或 text
"架构:无效的名称/类型,预期字符串值"
名称或类型特性的值无效。
"架构:无效的架构 URL (%1)"
URL 无效。
"架构:未知的元素 %1"
可识别的架构元素只有:组、特性、元素、AttributeType 或 ElementType。
"架构:在元素/特性/AttributeType 中不允许有除关系之外的其它内容"
这些标记可以有特性或关系批注,但不能有其它内容。
"架构:无法推断 %1 的默认映射。它和它的任何祖先都未定义关系"
请参见文档中有关关系和默认映射的内容。元素或特性的关系映射无法确定。
"架构:不允许引用 %1。仅在 ElementType 之内允许架构元素/特性"
元素和特性标志仅可用在 ElementType 之内。
"架构:元素/特性名称 %1 无效"
该名称不是有效的 XML 元素或特性名称。
"架构:在元素/特性中预期 'type' 特性"
"架构:在 ElementType/AttributeType 中预期 'name' 特性"
某一架构项目丢失了类型或名称特性。(例如,
"架构:在元素/特性中的无效 'type'"
"架构:在 ElementType/AttributeType 中的无效的 'name'"
该名称不是有效的 XML 元素/特性名称。
"架构:元素 %1 上不允许有混合内容。属性元素不能有子元素"
不支持属性元素上的混合内容。有关这方面内容请参见 SQL Server 联机丛书中定义属性元素的部分。[属性元素是指在 SQL Server 中映射到列的元素。显式映射通过字段批注给定,默认的(隐式)映射将随着 content="textOnly" 批注而产生(在这种情况下,列名即为元素名)。]
"架构:未能解析命名空间前缀 (%1)"
所用命名空间前缀在当前上下文中从未定义过(使用 xmlns:prefix="uri")。
"架构:指定限制字段时 '%1' 上预期关系"
该限制字段批注用于限定联接。不能将它与关系一起使用,除非是在特性或元素上。
"架构:%1 不能用在 is-constant 元素 (%2) 上"
有关这方面内容请参见 SQL Server 联机丛书中解释 is-constant 批注的部分。Is-constant 元素中不能有字段或关系。
"架构:在 %1 中预期关系"
元素或特性需要一种关系。
"架构:在 %1 上的异常关系"
元素或特性中不能含有关系。
"架构:在 %1 上的无效关系"
有关这方面内容请参见 SQL Server 联机丛书中定义关系批注的部分。关系可因多种原因而无效。常见的原因有:
◆第一个键关系必须映射到祖先的表中
◆最后一个外关系必须是当前节点的表
◆表和列的名称始终区分大小写
"架构:在 %1 上不允许映射字段。该批注可能仅适用于特性和属性元素"
该映射字段批注仅适用于在 SQL Server 中映射到列的节点上。这些特性和元素是以字段批注的元素或特性,或是带有 textOnly 内容的元素。
"架构:在特性 %1 上不支持从同一表到其自身的关系(自联接)"
在 SQL Server 2000 中不支持该关系。请考虑使用 is-constant 或其它关系。
"架构:需要一个基路径来解析外部架构的引用"
在无基路径的情况下引用外部架构。
"架构:不支持元素上的特性 %1"
"架构:不支持特性上的特性 %1"
"架构:不支持 ElementType 上的特性 %1"
"架构:不支持 AttributeType 上的特性 %1"
使用了无法识别的特性。有关元素、特性、ElementType 和 AttributeType 的使用,请参见 XML 数据降低规范。
通过 XPath 检测到的 XDR 架构错误
"架构: url-encode 批注需要在祖先或自身中有一个或多个键(在联接关系或键字段批注中指定)"
url-encode 批注导致生成一个直接对象查询。直接对象查询必须从单行中选择单列,这样就需要键信息以便从表中选择一行。键通过键字段和关系描述。url-encoded 节点或其祖先之一无键。
"架构:在 %1 和 %2 之间需要一个联接关系"
当一个元素及其子代映射到不同的表时,需要有一个关系。有关这方面内容请参见 SQL Server 联机丛书中解释关系批注使用的部分。
"架构:%1 与 %2 之间的联接关系无效"
有关这方面内容请参见 SQL Server 联机丛书中解释关系批注使用的部分。
"架构:批注 url-encode 和 use-cdata 是互斥的,不能与下列任何类型一起使用:id/idref/idrefs/nmtoken/nmtokens"
并非所有的批注都能彼此一起使用。将互斥批注之一删除。
"架构:在根元素 %1 上不允许映射字段批注"
顶级元素必须是映射的,否则为 is-constant。
"架构:在元素 %1 上需要一个关系"
有关这方面内容请参见 SQL Server 联机丛书中解释关系和默认映射的部分。无法确定该元素的关系映射。
"架构:不支持包含递归元素"
在 SQL Server 2000 中不支持递归。
"架构:is-constant 元素 %1 不能有特性"
在 is-constant 元素上不允许有特性。特性只能用在带有关系的元素上。
(责任编辑:卢兆林)