複雜的XML Schema一般會分割成多個文件編寫,然後通過引用再把彼此聯繫起來,邏輯上成爲一個完成的XML Schema。
通過xsd:include
和xsd:import
都能完成在一個xsd文件中引用其他xsd文件的功能,兩者具體的差別在於目標命名空間方面。
xsd:include
用於引用和當前xsd定義的target namespace一致的xsd文件。
<xsd:include schemaLocation="classpath://some.xsd"/>
xsd:import
用於引用和當前xsd定義的target namespace不一致的xsd文件。
<xsd:import schemaLocation="classpath://some.xsd"/>
由於xsd:import
可以引用其他target namespace下的xsd定義,所以在xml schema validator已經可以通過namespace引用到xsd文件時,可以這樣使用
<xsd:import namespace="some/name/space"/>
通過namespace來匹配引用的xsd文件。