如何从单个XML文件引用两个模式

时间:2014-09-29 08:38:27

标签: xml xsd

我从XML和XSD开始,我想构建一个XML文件,它必须匹配我在硬盘中的两个不同模式。

我应该在targetNamespace键入什么来引用文件schema1.xsd和schema2.xsd?

1 个答案:

答案 0 :(得分:1)

在XSD中,xs:schema/@targetNamespace定义了XSD管理的单个命名空间:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ns1="http://example.com/1" 
           targetNamespace="http://example.com/1">
     ...

在XML文档中,可以提示多个XSD,一个用于XML文档实例中通过`xs:schemaLocation'使用的每个命名空间:

<ns1:root xmlns:ns1="http://example.com/1"
          xmlns:ns2="http://example.com/2"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://example.com/1 ns1.xsd
                              http://example.com/2 ns2.xsd">
    <ns2:a/>
</ns1:root>

在XML文档中,不能提示单个XML文档实例必须同时遵循多个XSD(不同于单独的命名空间)。但是,您可以按照希望应用于XML的XSD顺序验证一次。