3

我有一个xsd。当我尝试在 BizTalk 中验证它时,会出现以下错误:

error BEC2009: Node "<Schema>" - Schema reference "http://www.w3.org/2001/xml.xsd" is not a valid reference or does not exist in the current project.

error BEC2009: Node "<Schema>" - Schema reference "http://www.w3.org/2001/xml.xsd" is not a valid reference or does not exist in the current project.

warning BEC999: Cannot resolve the 'schemaLocation' attribute.

error BEC3001: The 'http://www.w3.org/XML/1998/namespace:space' attribute is not declared.

warning BEC999: Cannot resolve the 'schemaLocation' attribute.

warning BEC1007: Node "<Schema>" - Target namespace is empty.

我认为它指的是看起来像这样的命名空间:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>

不确定这是否有足够的信息继续......

编辑:
我发现根据我用来验证 xml 的程序有时会起作用。例如。如果我创建一些 .net 代码来针对架构验证 xml,它似乎可以读取 xsd 并验证 xml。如果我在 notepad++ 中使用 xml 验证,它会说它无法读取架构。在另一个映射器(WTX)中,他们说它也不起作用。

我是否可以尝试缩小可能的问题范围?

编辑 2:
感谢 xcut。发现如果我在本地下载架构并将其放入 BizTalk 项目中,架构验证正常,但有 1 个警告:警告 BEC1007:节点“”-目标命名空间为空。

4

1 回答 1

2

除了导入命名空间架构有点奇怪之外,BizTalk 可能根本无法通过 URL 导入架构(而您的 .net 代码可以)。

要排除此问题,请从 w3.org 下载架构,将其放入您的项目中,然后从那里导入,而不是通过 http。

于 2010-01-26T08:58:20.607 回答