我有一些使用the Schema Instance Namespace (xsi)作为模式定义的XML文件。我希望我可以在几乎公共的机器上,通过一个在线模式(一个公共ISO20022 Standard)和一个驻留在DMZ上的本地服务器上的该模式的副本来验证它们。
如何为同一命名空间指定另一个位置源?
这是一次正确的尝试吗?
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.003.001.02"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pacs.003.001.02 file:///dir/on/local/server/in/DMZ/pacs.003.001.02.xsd
urn:iso:std:iso:20022:tech:xsd:pacs.003.001.02 https://cdn.rawgit.com/deeppay/deeppay-sepa/master/xsd/pacs.003.001.02.xsd">发布于 2021-07-26 23:07:31
您会问“这是一次正确的尝试吗”,这表明您准备更改xsi:schemaLocation属性以指向不同的位置。这当然是一种可行且简单的方法,尽管如果您要验证许多文档,这可能会很不方便。
大多数模式验证器都有某种机制来重定向到模式的本地副本,例如,JAXP validators允许您指定一个SchemaResolver,您可以将此机制与定义本地位置的目录一起使用。
或者,该应用编程接口通常允许您指定要显式验证的模式,而完全忽略xsi:schemaLocation。(毕竟,如果您不相信文档是有效的,为什么要相信它会告诉您在哪里可以找到正确的验证模式呢?)
请指明您是如何调用验证的。
https://stackoverflow.com/questions/68528553
复制相似问题