如何按命名空间定位 XML 架构 (XSD)?

yig*_*gal 2 xml xsd

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

<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
Run Code Online (Sandbox Code Playgroud)

kjh*_*hes 5

在给定 XML 命名空间的情况下,在哪里查找 XSD:

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

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

  2. 通过在浏览器中键入名称来检查名称空间值(如果是 URI 形式)。

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

    您要查找的资源已被删除、更名或暂时不可用。

  3. 检查任何正在运行的XML 目录URI 解析条目。

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

  4. 检查XML 标准库

    在这种情况下,所寻求的命名空间没有条目。

  5. 检查维基百科的XML标记语言的名单XML模式的列表

    在这种情况下,所寻求的命名空间没有条目。

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

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

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

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