即使没有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">
我确信必须有一个简单的方法来做到这一点,但尽管进行了大量的谷歌搜索和实验,我仍然无法做到正确。
答案 0 :(得分:2)
您不必在线即可使用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
前缀的每个组件。你既不需要也不想这样做。