i have xml
<order> <details type = "edit" header = "ok" value ="1"> <details type = "edit" header = "nok" value ="1"> <details type = "edit" header = "reject" value ="1"> <details type = "edit" header = "accept" value ="1"> </order>
is possible conditional validation using xsd ?. example.
*if header = "ok" , value= "1" header = "nok" , value= "0" xml valid *if header = "ok" , value= "1" header = "nok" , value= "1" xml valid *if header = "ok" , value= "0" header = "nok" , value= "1" xml valid
if header = "ok" , value= "0"
header = "nok" , value= "0" then xml invalid
is kind of validation possible using xml schema ?
you can use xs:assert
node in complextype
can xpath 2.0 query inside xsd file. works xsd 1.1
example first test :
<xs:element name="order"> <xs:complextype> <xs:sequence> <xs:element ref="details" minoccurs="1" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="details"> <xs:complextype> <xs:attribute name="type" type="xs:string" use="required"/> <xs:attribute name="header" type="xs:string" use="required"/> <xs:attribute name="value" type="xs:integer" use="required"/> <xs:assert test="((@header = 'ok') , (@value = 1)) , (./following-sibling::details/@header = 'nok' , ./following-sibling::details/@value eq 0 )/> <xs:assert test="...."/> <xs:assert test="..."/> </xs:complextype> </xs:element>
i'm not sure following-sibling though
Comments
Post a Comment