我在XML文件中引用我的XML Schema时遇到了这个问题.
我在这条道路上有我的XSD:
C:\environment\workspace\maven-ws\ProjectXmlSchema\email.xsd
Run Code Online (Sandbox Code Playgroud)
但是当我在我的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">
Run Code Online (Sandbox Code Playgroud)
找到XSD的唯一方法是它在同一个文件夹中:
xsi:schemaLocation="http://www.w3schools.com email.xsd"
Run Code Online (Sandbox Code Playgroud)
所以问题是:如果XML文件与XSD文件不在同一个文件夹中,那么路径必须如何才能找到XSD?
顺便说一句,我一直在使用的例子来自MSDN:他们声称它应该按照我试图的方式工作.但事实并非如此.
kjh*_*hes 43
file://在值之后再添加一个斜杠xsi:schemaLocation.(你有两个,你需要三个想法.protocol://host/path这里protocol是'file'和host空在这里,在连续产生三个斜杠.)您也可以消除沿着双斜杠path.我相信双斜线有助于文件系统允许文件和目录名称中的空格,但您明智地避免了路径命名中的复杂性.
xsi:schemaLocation="http://www.w3schools.com file:///C:/environment/workspace/maven-ws/ProjextXmlSchema/email.xsd"
Run Code Online (Sandbox Code Playgroud)
还是行不通? 我建议您仔细将XSD的完整文件规范复制到Chrome或Firefox的地址栏中:
file:///C:/environment/workspace/maven-ws/ProjextXmlSchema/email.xsd
如果XSD 未显示在浏览器中,请删除路径的最后一个组件(email.xsd)以外的所有组件,并查看是否无法显示父目录.以这种方式继续,沿着目录结构向上走,直到找到路径偏离本地文件系统的实际情况.
如果XSD 确实显示在浏览器中,请说明您正在使用的XML处理器,并准备好听到它已损坏或者您必须解决某些限制.我可以告诉你,上面的修复程序将适用于我的基于Xerces-J的验证器.
也许可以帮助检查 xsd 文件的路径是否有“奇怪”的字符,如“\xc3\xa9”或类似的字符:我遇到了同样的问题,但是当我更改为没有“\xc3\xa9”的路径时错误消失了。
\n| 归档时间: |
|
| 查看次数: |
97129 次 |
| 最近记录: |