xml - 将 xml 模式命名空间链接到实例 xml 实例
问题描述
我是 xml 新手,并使用 existsdb 创建一个基本数据库。我有一个定义了 targetNamespace 的模式 xml,并且我将该命名空间用作实例 xml 中的 schemaLocation。但是,我不明白实例文档何时根据模式进行评估。即使我在实例文档中放置了无效架构,所有查询都有效。我错过了什么吗?我们如何将模式和实例 xml 以及两者都与 xquery 链接?
instance document:
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://NamespaceTest.com/CommonTypes schema.xsd">
...
</entities>
schema document(document name is schema.xsd)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://NamespaceTest.com/CommonTypes">
...
</xs:schema>
解决方案
可以通过 XML 解析器或专业的模式验证器对模式进行验证,在这两种情况下,模式位置都可以从xsi:schemaLocation
属性或其他地方获得。除了一两个可能的例外,大多数读取 XML 的软件不会仅仅因为看到一个xsi:schemaLocation
属性就触发验证。有许多模式验证器和许多不同的启用模式验证的方法,但通常不会发生,除非您明确请求它。
推荐阅读
- java - String.format() 作为常量表达式
- java - 如何限制 Single.Zip 并行性?
- javascript - 通过改变其形式的一键对数组进行排序
- python - 如何打印多行并使每个输出行不同?
- ios - 我需要经常更新 TableView 但这样做会重复单元格
- javascript - 图像无法在 tls 服务器上正确显示
- c - 我可以用一个只交换其基地址的函数交换两个矩阵,而不用逐个元素交换吗?
- python - 删除类实例后,我的线程会自行杀死吗?
- java - 无法使用 Apache POI 读取 Excel
- java - 配置 maven 打包 fat jar 而无需在 vertx 项目中解包依赖项,就像 spring boot 一样