基于其他属性的属性条件存在值
问题描述:
我有一个需要使用模式,通过一个漂亮的刚性验证去的XML。 问题在于某些元素的某些属性只有在“type”属性具有某个值时才需要。基于其他属性的属性条件存在值
例如:
<someElement type="foo" att1="bla" />
<someElement type="bar" att1="blu" />
在我的情况下,type="foo"
应该验证罚款,但对于type="bar"
它不应该,因为“栏中的”其他属性att2
必须存在。
这种事情甚至可以使用模式,或者我需要声明一个新的complexType而不是<someElement>
,它只会允许我需要的东西?
我尝试了“类似的问题”一节,但无法找到的东西,专门解决这个问题。
答
你所描述什么是非常精确匹配的XSD 1.1“条件类型分配”机制(其中一个属性的值是用来决定对其验证这几种类型的)。
有没有在XSD 1.0这样的方式。
有如何被实现的地方的例子?我尝试阅读XSD规范,这让我哭了起来。 –
有一些介绍性的教程,例如http://www.ibm.com/developerworks/xml/library/x-xml11pt2/。对不起,我误导你的搜索引擎错误:它是“条件类型分配”。 (编辑来纠正它)。 –
如果有任何安慰,我认为XSD规范是自Algol 68报告以来我读到的最困难的事情;显着差异在于Algol 68中的形式主义确实有效,而即使您掌握了XSD规范,您也会发现很多问题没有得到答案。 –