我有这个问题,在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">
xsi:schemaLocation="http://www.w3schools.com email.xsd"
所以问题是这样的:如果XML文件不在与XSD文件相同的文件夹中,路径必须看起来如何找到XSD?
顺便说一下,我一直在使用的例子是从MSDN:他们声称它应该工作的方式,我试图。但它不。
在xsi:schemaLocation的值中的file://后添加一个斜杠。 (你有两个;你需要三个。认为protocol:// host / path其中协议是’file’,主机在这里是空的,在一行中产生三个斜杠。)你也可以消除沿路径的双斜线。我相信双斜线帮助文件系统允许文件和目录名称中的空格,但你明智地避免了你的路径命名的复杂性。
原文链接:https://www.f2er.com/xml/293540.htmlxsi: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
如果XSD不显示在浏览器中,请删除路径(email.xsd)的最后一个组件之外的所有组件,并查看是否无法显示父目录。继续以这种方式,走上目录结构,直到你发现路径与本地文件系统的现实之处。
如果XSD在浏览器中显示,说明您正在使用什么XML处理器,并准备好听到它损坏或者您必须解决一些限制。我可以告诉你,上面的修复将与我的基于Xerces-J的验证工作。