[
Lists Home |
Date Index |
Thread Index
]
Hi Marc,
The behaviour you describe is correct. As you know,
<DESTINATION_SYSTEM_ID/> is equivalent to
<DESTINATION_SYSTEM_ID></DESTINATION_SYSTEM_ID> and none of the specified
enumerations match "".
I personally don't see how an "empty element" can be considered equivalent
to an "omitted element", (e.g. consider <br /> in (early) (X)HTML), so
changing the data source seems the correct thing. If reality does not allow
that, you could add an additional enumeration of the form:
<xs:enumeration value=""/>
But that would probably require additional application layer processing to
fix it up!
HTH,
Pete.
--
=============================================
Pete Cordell
for XML to C++ data binding visit
http://www.tech-know-ware.com/lmx
=============================================
----- Original Message -----
From: "Lawson, Marc" <mlawson@relico.com>
To: <xml-dev@lists.xml.org>
Sent: Thursday, November 10, 2005 5:47 PM
Subject: [xml-dev] Optional elements and restrictions
Hi,
In my schema, I have an "optional" element that looks like this:
<xs:element name="DESTINATION_SYSTEM_ID" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="TRUST_PROD"/>
<xs:enumeration value="TRUST_TEST"/>
<xs:enumeration value="PENSION_PROD"/>
<xs:enumeration value="PENSION_TEST"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
My instance document will fail validation if the element is provided
without any data, as in...
<DESTINATION_SYSTEM_ID/>
However, the instance document will pass validation if the element is
omitted altogether.
I am hearing that it is best practice to allow both scenarios - the
"empty element" and the "omitted element" - in documents that are
provided. Do I need to tell the company that is sending the file to
omit the element if it doesn't have data, or can I restructure the
schema to only validate elements that have data?
Any input is appreciated!
Marc Lawson
|