【发布时间】:2018-08-09 20:15:01
【问题描述】:
这里的问题是——是否可以从 xsd 导入类型的子集?
考虑以下示例: A.xsd 包含三种类型 a,b,c 而 B.xsd 包含两种类型 d,e.
当我在 B.xsd 中导入 A.xsd 时,如下所示:
<xs:import namespace="http://www.abc.com/schema/aaa" schemaLocation="A.xsd"/>
我得到了所有三种类型——a、b 和 c。我只想在 B.xsd 中输入 a 。我想在 xsd 中排除类型 b 和 c。有可能这样做吗?如果是,有哪些选择?
谢谢 电脑
【问题讨论】:
-
我从未见过这种情况,我问自己这有什么好处。某种类型的替换而不是覆盖?
-
如果你只想要类型 A,你可以将类型 ns1:a 扩展为本地类型。
-
感谢 Petru 和 Micheal 的投入。我正在处理的场景是使用 spring-ws 的基于肥皂的 Web 服务。它正在导入另一个定义了某些类型的 xsd。好的部分是,我可以重用 A.xsd 中定义的复杂类型。不好的部分是..我在最终的 wsdl 中得到了不需要的额外类型。所以这就是我寻找是否可以只导入模式子集的原因。