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]

Reply via email to