代码之家  ›  专栏  ›  技术社区  ›  dtc

这个XSD可能有什么问题?

  •  3
  • dtc  · 技术社区  · 14 年前

    我有一个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。如果我在记事本++中使用XML验证,它会说它无法读取模式。在另一个映射器(WTX)中,他们说它也不起作用。

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

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

    1 回复  |  直到 14 年前
        1
  •  2
  •   xcut    14 年前

    除了导入命名空间架构有点奇怪之外,可能是因为Biztalk无法通过URL导入架构(而.NET代码可以)。

    要将此作为一个问题排除,请从w3.org下载模式,将其放入项目中,然后从中导入,而不是通过http。