首页 > 解决方案 > 将 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>

标签: xmlxqueryexist-db

解决方案


可以通过 XML 解析器或专业的模式验证器对模式进行验证,在这两种情况下,模式位置都可以从xsi:schemaLocation属性或其他地方获得。除了一两个可能的例外,大多数读取 XML 的软件不会仅仅因为看到一个xsi:schemaLocation属性就触发验证。有许多模式验证器和许多不同的启用模式验证的方法,但通常不会发生,除非您明确请求它。


推荐阅读