- From: <gvt.junk@free.fr>
- Date: Tue, 21 Apr 2009 15:25:41 +0200
- To: xmlschema-dev@w3.org
Hi Experts,
I was facing a problem to write a XML schema to define a <LIST> element that
obeys multiple rules (see below).
I finally reached a fully functional solution, but would like to know of an
alternate XML schema producing "better-looking" documents (with reduced nesting
levels).
Here are the rules the schema shall enforce for the <LIST> element:
1. The list allows a limited set of items;
(say: <ITEM_A>, <ITEM_B> and <ITEM_C>)
2. The list does not allow duplicate items (same element name);
(items <ITEM_A>, <ITEM_B> and <ITEM_C> can only occur 0 or 1 time in the
list)
3. Order of items in the list does not matter;
4. The list must contain at least 1 item (among: <ITEM_A>, <ITEM_B> and
<ITEM_C>);
5. The content of item elements is typed and "data type" is psecific to each
item;
(e.g.: <ITEM_A> contains integer data, while <ITEM_B> contains string and
<ITEM_C> a complex type)
I succeed in writing an XML schema that enforce all these rules. A compliant
document look like this:
<LIST>
<ITEM>
<ITEM_B>100</ITEM_B>
</ITEM>
<ITEM>
<ITEM_A>0</ITEM_A>
</ITEM>
<ITEM>
<ITEM_C>aa-123</ITEM_C>
</ITEM>
</LIST>
My question:
Is there any chance to write an alternate XML schema that enforce all these
rules, but produce "better-looking" compliant document that would look like the
following one, with reduced nesting levels?
Really, I'm not convinced it is possible with XML schema...
<LIST>
<ITEM_B>100</ITEM_B>
<ITEM_A>0</ITEM_A>
<ITEM_C>aa-123</ITEM_C>
</LIST>
I can provide the XML schema I produced to anyone interrested in this
chalenge... Just let me know: gvt {dOt} junk {a}{t} fREe {DOt} fr
Thanks and regards,
Grégoire Vatry
Received on Thursday, 23 April 2009 05:35:34 UTC