如何正确引用本地XML Schema文件?

2024-02-08

我在 XML 文件中引用 XML 架构时遇到此问题。

我的 XSD 位于此路径中:

C:\environment\workspace\maven-ws\ProjectXmlSchema\email.xsd

但是,当我在 XML 文件中尝试像这样查找架构时,找不到 XSD:

<?xml version="1.0" encoding="UTF-8" ?>
    <email xmlns="http://www.w3schools.com"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.w3schools.com
                 file://C://environment//workspace//maven-ws//ProjextXmlSchema//email.xsd">

找到 XSD 的唯一方法是当它位于同一文件夹中时:

           xsi:schemaLocation="http://www.w3schools.com email.xsd"

所以问题是这样的:如果 XML 文件与 XSD 文件不在同一文件夹中,该路径必须如何查看才能找到 XSD?

顺便说一下,我使用的示例来自MSDN http://msdn.microsoft.com/en-us/library/ms757863(v=vs.85).aspx:他们声称它应该按照我尝试的方式工作。但事实并非如此。


之后再添加一个斜杠file://的价值xsi:schemaLocation。 (你有两个;你需要三个。想想protocol://host/path where protocol is 'file' and host此处为空,会产生连续的三个斜杠。)您还可以消除沿path。我相信双斜杠有助于文件系统在文件和目录名中允许空格,但您明智地避免了路径命名中的这种复杂性。

xsi:schemaLocation="http://www.w3schools.com file:///C:/environment/workspace/maven-ws/ProjextXmlSchema/email.xsd"

还是行不通?我建议你仔细将 XSD 的完整文件规范复制到 Chrome 或 Firefox 的地址栏中:

file:///C:/environment/workspace/maven-ws/ProjextXmlSchema/email.xsd

如果 XSDdoes not显示在浏览器中,删除路径中除最后一个组成部分(email.xsd)之外的所有内容,看看是否无法显示父目录。继续以这种方式,遍历目录结构,直到发现路径与本地文件系统的实际情况不同的地方。

如果 XSDdoes显示在浏览器中,说明您正在使用什么 XML 处理器,并准备好听到它已损坏或您必须解决某些限制。我可以告诉您,上述修复适用于我的基于 Xerces-J 的验证器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何正确引用本地XML Schema文件? 的相关文章

随机推荐