如何解决如何在 XSD xsi:schemaLocation 相对路径中指定空格?
我正在 Visual Studio 中编辑一个 XML 文件,该文件在相对路径中引用 XSD,其中一个文件夹名称中带有空格。 Visual Studio 似乎没有留下深刻印象。
如果我从文件夹中删除空间名称,它会起作用并且我可以导航。
<?xml version="1.0" encoding="UTF-8"?>
<SyncTests xmlns="http://www.mimosa.org/ccom4" releaseID="1.0" versionID="4.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mimosa.org/ccom4 ../../CCOM/BOD/Messages/OperationandCondition/synctests.xsd">
但是原来的文件夹名称在“操作和条件”中有空格。
<?xml version="1.0" encoding="UTF-8"?>
<SyncTests xmlns="http://www.mimosa.org/ccom4" releaseID="1.0" versionID="4.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.mimosa.org/ccom4 ../../CCOM/BOD/Messages/Operation and Condition/synctests.xsd">
我一直试图让它与 file:///
和 %20
的各种咒语一起用于空间,但还没有能够让它工作。
文件夹结构来自另一个存储库,我希望能够保持原样(带空格)。
解决方法
xsi:schemaLocation
的值是以空格分隔的 XML 命名空间值和 XSD 文件位置的序列对。由于空格用于分隔这些组件对和每对的部分,因此 XSD 文件规范中也不能出现明显未转义的空格。
解决方案是在 XSD 的文件路径中使用 %20
代替原始空格字符。您说您已经尝试过与其他实验的各种组合,但都没有成功。当您消除 XSD 目录路径中的空格时,回溯到您证明有效的情况。使用那个确切的情况,只做一个改变:在你希望有空格的地方替换 %20
,并对文件系统中的路径进行相应的更改(使用实际的、未转义的空格——不再使用或小于 xsi:schemaLocation
值中使用的值。
应该可以。如果它没有发布证明它没有的最小、完整、可验证的示例,以及您正在使用的 XSD 处理器。请务必根据关联的 XSD 实际验证文档实例,以将重要的 XML-XSD 问题与无关紧要的 Visual Studio IDE 解析限制区分开来。
另见
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。