这个xsd可能有什么问题?

时间:2010-01-26 00:23:39

标签: xsd biztalk xml-validation

我有一个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 ok并验证xml。如果我在notepad ++中使用xml验证,它表示它无法读取架构。在另一个映射器(WTX)中,他们说它也不起作用。

还有其他事情我可以尝试缩小可能的问题吗?

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

1 个答案:

答案 0 :(得分:2)

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

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