微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有这个问题,在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:他们声称它应该工作的方式,我试图。但它不。

在xsi:schemaLocation的值中的file://后添加一个斜杠。 (你有两个;你需要三个。认为protocol:// host / path其中协议是’file’,主机在这里是空的,在一行中产生三个斜杠。)你也可以消除沿路径的双斜线。我相信双斜线帮助文件系统允许文件和目录名称中的空格,但你明智地避免了你的路径命名的复杂性。
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

如果XSD不显示在浏览器中,请删除路径(email.xsd)的最后一个组件之外的所有组件,并查看是否无法显示父目录。继续以这种方式,走上目录结构,直到你发现路径与本地文件系统的现实之处。

如果XSD在浏览器中显示,说明您正在使用什么XML处理器,并准备好听到它损坏或者您必须解决一些限制。我可以告诉你,上面的修复将与我的基于Xerces-J的验证工作。

原文地址:https://www.jb51.cc/xml/293540.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。