将xml架构命名空间链接到实例xml实例
我不熟悉xml,并使用existdb创建基本数据库。我有一个定义了targetNamespace的模式xml,并将该名称空间用作实例xml中的schemaLocation。但是,我不理解实例文档何时根据模式进行计算。即使我在实例文档中放置了无效的模式,所有查询都可以工作。我错过什么了吗?我们如何将模式和实例XML以及两者与xquery链接起来将xml架构命名空间链接到实例xml实例,xml,xquery,exist-db,Xml,Xquery,Exist Db,我不熟悉xml,并使用existdb创建基本数据库。我有一个定义了targetNamespace的模式xml,并将该名称空间用作实例xml中的schemaLocation。但是,我不理解实例文档何时根据模式进行计算。即使我在实例文档中放置了无效的模式,所有查询都可以工作。我错过什么了吗?我们如何将模式和实例XML以及两者与xquery链接起来 instance document: <entities xmlns:xsi="http://www.w3.org/2001/XMLSch
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>
实例文档:
...
架构文档(文档名为schema.xsd)
...
针对模式的验证可以由XML解析器或专业模式验证器执行,在任何情况下,模式位置都可以从xsi:schemaLocation
属性或其他地方获得。除了一两个可能的例外,大多数读取XML的软件不会仅仅因为看到xsi:schemaLocation
属性而触发验证。有许多模式验证器和许多不同的启用模式验证的方法,但除非您明确请求,否则通常不会发生这种情况。请在此处查看:
或在此:
“…隐式验证。
将文档插入数据库时,会自动执行隐式验证。
要启用隐式验证,请通过编辑conf.xml更改eXist db配置。必须配置以下两项:
(1) 验证模式
(2) 目录实体解析器
……”