通过xsd:include组合XSD时的名称冲突?

时间:2015-03-20 19:34:36

标签: xml xsd xml-namespaces

我目前正在阅读Bill Evjen,Kent Sharkey,Thiru Thangarathinam,Michael Kay,Alessandro Vernet,Sam Ferguson的 Professional XML

我是初学者并尝试获取XML Schema文档的基本结构。 作者提出了如何将XML Schema文档放在一起的概念。

进口

  

Imports允许您将另一个完整的XML Schema文档导入到您正在使用的文档中。如果两个不同的XML Schema文档使用不同的命名空间,通常会这样做。此导入使用<import>元素和两个attributes-namespace和schemaLocation完成。

包括

  

如果其他模式具有相同的命名空间或使用无命名空间,则使用<include>元素。它与<import>元素非常相似,是将两个模式组合在一起的好方法。

我发现自己真的很困惑, 如果其他架构具有 相同的命名空间 或使用无命名空间,则使用 include 元素。

如果他们拥有 相同的命名空间 ,则不会在同一 在冲突 中> 元素 两个架构中定义

1 个答案:

答案 0 :(得分:2)

如果您通过xsd:include组合来自同一命名空间或没有命名空间的XSD,是的,可能会有命名冲突,但是当您选择使用xsd:include时,通常可以控制两者XSD并且可以避免冲突。

当您从不同的来源(通常不在您的控制之下)组合XSD时,更需要具有单独的命名空间来避免组件名称冲突。

另见What's the difference between xsd:include and xsd:import?