Problem validating choice containing groups 2004-02-10 - By Sean Connolly
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: xerces-j-user-unsubscribe@(protected) For additional commands, e-mail: xerces-j-user-help@(protected)
|
|