【问题标题】:File URI for www.w3.org/2001/XMLSchemawww.w3.org/2001/XMLSchema 的文件 URI
【发布时间】:2015-01-07 22:21:46
【问题描述】:

即使没有 Internet 连接,我也需要能够针对 XSD 验证 XML 文件。当我通过以下常用 URL 访问 XS 命名空间时,我的 XML 文件正确访问 XSD 并根据 XSD 的内容验证(或不验证):

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">  

但是,当我尝试访问 XMLSchema 的本地版本时,我收到错误消息(架构中根元素的定义不正确)。我按照通常的说明从网站下载了文件并将其保存为 schema2。 xsd。我通过将 URI 粘贴到我的浏览器中并按预期加载文件的内容来验证以下代码中的文件 URI 是否正常工作。无论我是否尝试使用 URL 访问 XMLSchema 或文件 URI(当然除了有问题的一行代码)。

<xs:schema xmlns:xs="file:///C:/delphi studies/schema/schema2.xsd" elementFormDefault="qualified">

我确信一定有一种简单的方法可以做到这一点,但尽管进行了大量的谷歌搜索和实验,但我还是无法做到这一点。

【问题讨论】:

    标签: xml xsd


    【解决方案1】:

    您无需在线即可使用 XSD 验证 XML 文档。一般来说,an XML namespace URI does not have to be retrievable。这包括http://www.w3.org/2001/XMLSchema,XSD 词汇表中用来命名架构组件本身的命名空间名称。与其将其视为可检索的 URI,不如将其视为组件名称的词法扩展。通过将xmlns:xs 更改为file:///C:/delphi studies/schema/schema2.xsd,您可以有效地重命名每个使用xs 前缀的组件。你既不需要也不想这样做。

    【讨论】:

    • 我在别处读过这一点,但我错误地认为它适用于“用户”模式——我认为我缺少的部分是(显然)词汇表内置在 XMNL 引擎中(可能不是正确的术语)并且 URL 样式的 URI 仅引用内置的内容。
    • 它适用于一般意义上的 XML 命名空间。听起来你现在走在了正确的轨道上。
    猜你喜欢
    • 1970-01-01
    • 2013-06-10
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多