xsd - XML validation for empty decimal element with precision attribute -
i have issue validating empty element against xsd contains definition below. if total_amt comes out empty, want empty element in xml document,
<total_amt/> so have created custom datatype in xsd shown below:
<xs:simpletype name="decimal-or-empty"> <xs:union membertypes="xs:decimal empty-string" /> </xs:simpletype> <xs:simpletype name="empty-string"> <xs:restriction base="xs:string"> <xs:enumeration value="" /> </xs:restriction> </xs:simpletype> and xsd definition of element shown below.
<xs:element name = "total_amt" nillable="false" minoccurs="0" type="decimal-or-empty"> <xs:complextype> <xs:simplecontent> <xs:extension base="xs:decimal"> <xs:attribute name="precision" type="xs:integer"/> </xs:extension> </xs:simplecontent> </xs:complextype> </xs:element> if remove precision attribute in above xsd, validates custom data type , works empty value
<xs:element name = "total_amt" nillable="false" minoccurs="0" type="decimal-or-empty"> </xs:element> but when define precision attribute, result xml instance invalid.
so, can please me in writing xsd can put precision attribute , still validate xml when value of total_amt empty?
your complex type adds precision attribute xs:decimal:
<xs:extension base="xs:decimal"> <xs:attribute name="precision" type="xs:integer"/> </xs:extension> why not add decimal-or-empty instead?
<xs:extension base="decimal-or-empty"> <xs:attribute name="precision" type="xs:integer"/> </xs:extension> that is, don't think it's presence of attribute declaration that's causing problem: it's union type no longer used.
you might consider using xsi:nil instead, though requires empty element
<total_amt xsi:nil="true"/> instead of just
<total_amt/>
Comments
Post a Comment