如何通过命名空间定位架构?

时间:2014-09-15 23:18:26

标签: xml xsd

有没有简单而通用的方法来定位基于命名空间的模式?例如,在下面的XML中,我如何找到http://schemas.microsoft.com/developer/msbuild/2003的架构?

<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

2 个答案:

答案 0 :(得分:3)

在给定XML命名空间的情况下查找XSD的位置:

  1. 检查任何可用的xsi:schemaLocation提示给出的位置xsi:schemaLocation="namespace location"

    在这种情况下,我们没有架构位置提示。

  2. 通过在浏览器中键入命名空间值,如果是URI形式,则检查它。

    在这种情况下,http://schemas.microsoft.com/developer/msbuild/2003命名空间采用URI的形式,但端点上没有XSD:

      

    您要查找的资源已被删除,名称已有   已更改,或暂时无法使用。

  3. 检查正在播放的URI ResolutionXML Catalogs条目。

    在这种情况下,没有提到任何XML目录。

  4. 检查XML Standards Library

    在这种情况下,搜索到的命名空间没有条目。

  5. 检查维基百科的List of XML markup languagesList of XML schemas

    在这种情况下,搜索到的命名空间没有条目。

  6. 检查XML工具的架构关联机制。以下是一些:

    在这种情况下,没有提到任何工具,但它是Microsoft命名空间,因此如果安装了Visual Studio,请检查XML Schemas对话框和本地架构缓存中列出的关联。

    根据this source,给定命名空间的XSD是 msbuild.xsd ,可以位于Visual Studio架构缓存中。 这是MSBuild生成文件的架构

  7. 底线:通常,上述过程应该允许您将命名空间解析为XSD的物理位置,但要注意难度可以从简单到不可能变化。

答案 1 :(得分:1)

XML命名空间和资源URL之间没有映射,您可以在其中找到架构资源。命名空间就是 - 可以定义名称的空格,以免与其他名称冲突。