需要的XML Schema元素取决于枚举值

时间:2011-11-23 03:16:55

标签: xsd

是否有办法根据为另一个元素输入的枚举值来要求一个元素?

基本上,我要做的是拥有一个由枚举定义的用户界面类型。根据接口类型,可能需要或可能不需要某些字段。

我理解这可以通过使元素可选,处理代码中的条件逻辑,或者为每种可能的接口类型制作不同的复杂类型来实现。但是,我希望规则对于阅读模式的人来说是显而易见的,因此Code解决方案并不理想,并且添加大量复杂类型,即使它们共享大部分必需字段,也会增加更多到xml解析逻辑。

是否可以在架构中包含所有这些逻辑以简化验证和解析?

2 个答案:

答案 0 :(得分:1)

XSD无法包含这种条件强制/可选元素。

答案 1 :(得分:0)

您可以使用RelaxNG执行此操作。

您将拥有一个良好的技术数据接口与这种模式(使用Jing之类的工具进行验证,准确描述您想要的结构。

然后,如果你想使用对象映射,你可以使用Trang将RelaxNG模式转换为XML模式(XML模式将更加松散,是RelaxNG中描述的真正的数据接口)