I found versions of this in the archives, but not enough to solve my problem.
I've included the (simplified) schema and instance xml below. As far as I can
tell, this is a valid schema, and it works with XMLSpy. But with Xerces
(version 2.6.1), I get:
[Error] a.xml:9:9: cvc-complex-type.2.4.a: Invalid content starting with element
'Z'. One of '{"http://www.somewhere.com":Y}' is expected.
It appears that xerces matches the first element to the first group, then stops
trying to figure out which group it belongs to. If I reverse the order the
groups are defined, it expects "Z" instead. If I have completely different
element names, it works fine as well, but I need to contain the same element in
different groups, so that's not an option.
Any ideas? Is this a bug? Am I just doing something wrong? Any help would be
greatly appreciated.
Thanks,
-Sean
==================== Schema ====================
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.somewhere.com"
xmlns="http://www.w3.org/2001/XMLSchema" xmlns:vsi="http://www.somewhere.com"
elementFormDefault="qualified">
<element name="A">
<complexType>
<sequence maxOccurs="unbounded">
<element name="N">
<complexType>
<choice>
<group ref="vsi:AGroup"/>
<group ref="vsi:BGroup"/>
</choice>
</complexType>
</element>
</sequence>
</complexType>
</element>
<group name="AGroup">
<sequence>
<element name="X" type="string"/>
<element name="Y" type="string"/>
</sequence>
</group>
<group name="BGroup">
<sequence>
<element name="X" type="string"/>
<element name="Z" type="string"/>
</sequence>
</group>
</schema>
==================== Sample XML File ====================
<?xml version="1.0" encoding="UTF-8"?>
<A xsi:schemaLocation="http://www.somewhere.com a.xsd"
xmlns="http://www.somewhere.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<N>
<X/>
<Y/>
</N>
<N>
<X/>
<Z/>
</N>
</A>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]