Friday, May 29, 2009

Just amazing

Today I watched the demo video of Google Waves.
It
's just amazing what these guys built. Especially the translation "robot" that they show at the end of the demo :-)

Here it is:

Saturday, May 23, 2009

XSD element order

Recently I faced the problem that I had to create an XSD file to validate an XML file. The problem was that a requirement was that the elements could be in any order.
First I had something like:

<xs:sequence>
<xs:element name="customer" />
<xs:element name="order" />
</xs:sequence>

which validates correctly:

<root>
<customer />
<customer />
<customer />
<order />
<order />
<order />
</root>

but I needed to validate something like:

<root>
<order />
<customer />
<customer />
<order />
<customer />
<order />
</root>

After some research I finally found the solution.
instead of sequence You have to use choice with the min and max occurs attribute set:

<xs:sequence>
</xs:sequence>

is replaced with

<xs:choice minOccurs="0" maxOccurs="unbounded">
</xs:choice>