我在 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(使用前将#替换为@)