XSD问题:如何仅限制在另一个模式下使用的元素/属性

时间:2010-08-02 20:04:48

标签: xsd restriction xsd-validation

我需要解决这个问题,看起来我需要帮助。

这是问题定义

我们有一个现有的架构X [X是一个行业标准架构]我们正在为新架构Y(具有不同的目标命名空间)构建一些扩展。

现在问题是我们想要将Schema Y的元素/属性的使用限制为仅作为X的已定义元素/类型的成员。[模式验证在使用无效的情况下应该失败 ]

我们如何实现这一目标?这样做的最佳方式是什么?

RM

1 个答案:

答案 0 :(得分:0)

我会说这取决于你修改了多少以及模式是什么样的。一方面是你的扩展靠近根或靠近叶子。

这是接近根的一般方法。

X.xsd
element name=foo type=fooType

complexType fooType
  sequence
     element name=bar type=BarType

Y.xsd
import X.xsd namespace=xns

element name=foo type=foo2Type

complexType foo2Type
  sequence
     element name=bar type=xns:BarType
     element name=baz type=BazType

这里你添加了一个你自己定义的新元素baz,但是bar将包含行业标准所要求的所有孩子。

将X导入Y(使用import元素)。