是否有办法根据为另一个元素输入的枚举值来要求一个元素?
基本上,我要做的是拥有一个由枚举定义的用户界面类型。根据接口类型,可能需要或可能不需要某些字段。
我理解这可以通过使元素可选,处理代码中的条件逻辑,或者为每种可能的接口类型制作不同的复杂类型来实现。但是,我希望规则对于阅读模式的人来说是显而易见的,因此Code解决方案并不理想,并且添加大量复杂类型,即使它们共享大部分必需字段,也会增加更多到xml解析逻辑。
是否可以在架构中包含所有这些逻辑以简化验证和解析?
答案 0 :(得分:1)
XSD无法包含这种条件强制/可选元素。
答案 1 :(得分:0)
您可以使用RelaxNG
执行此操作。
您将拥有一个良好的技术数据接口与这种模式(使用Jing
之类的工具进行验证,准确描述您想要的结构。
然后,如果你想使用对象映射,你可以使用Trang
将RelaxNG模式转换为XML模式(XML模式将更加松散,是RelaxNG中描述的真正的数据接口)