如何指定具有特定名称的强制性元素

时间:2011-08-04 09:17:52

标签: xml xsd

假设有以下XML结构

<Autos> <Auto>A</Auto> <Auto>B</Auto> <Auto>C</Auto> </Autos>

如何制作符合以下规则的XSD:
Autos可以包含任意数量的元素Auto Autos必须有一个元素Auto,其值为A.

元素Auto必须位于无序列表中。

尝试的解决方案: 我尝试过使用xsd元素选择,全部和序列,但是无法创建有效的解决方案

1 个答案:

答案 0 :(得分:0)

在XML树结构中,元素中的文本是元素节点的子元素。 XML Schema仅通过查看其直接子项而非子项的子项来验证元素。因此,在验证<Autos>时,它只会看到<Auto> <Auto> <Auto>而不是文本子节点。

要使<Autos>的验证强制执行您的规则,您必须使用不同的名称来区分每个自动,例如<AutoA>,...

或者如果XML被修复,“验证”必须在XML Schema之外发生,例如在样式表或程序逻辑中。