Hi again,

seems there is no problem. Seems my constructs are not
legal. You cannot put several "bar" with different types
the one after the other.

So I guess I can't hardcore-validate my documents with
schemas. A big thanks to those who made XFDU and kids.
Space agencies of the world are, well, big like elephants.
A little bee like me has nothing to do but comply with
the rules of bureaucracy and XML stuff...

C.

----- Original Message -----
> From: "Cedric Roux" <s...@free.fr>
> To: c-users@xerces.apache.org
> Sent: Tuesday, May 29, 2012 6:19:55 PM
> Subject: problem with schema and complexType
> 
> Hi Xerces,
> 
> I have a problem.
> 
> The following schema (work.xsd) "works":
> 
> ---------
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
>            xmlns:ln="http://foo";
>            targetNamespace="http://foo";>
> 
> <xs:element name="foo">
>   <xs:complexType>
>     <xs:sequence>
>       <xs:element name="bar" form="qualified" type="ln:barType">
>       </xs:element>
>       <xs:element name="bar" form="qualified" type="ln:barType">
>       </xs:element>
>     </xs:sequence>
>   </xs:complexType>
> </xs:element>
> 
> <xs:complexType name="barType"/>
> 
> </xs:schema>
> ---------
> 
> Running "DOMPrint -n -s test-work.xml" with the following
> file (test-work.xml) produces good output.
> 
> ---------
> <?xml version="1.0" encoding="UTF-8"?>
> 
> <foo xmlns="http://foo";
>      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>      xsi:schemaLocation="http://foo work.xsd" >
>   <bar/>
>   <bar/>
> </foo>
> ---------
> 
> But the following schema (dont-work.xsd) does not "work".
> 
> ---------
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
>            xmlns:ln="http://foo";
>            targetNamespace="http://foo";>
> 
> <xs:element name="foo">
>   <xs:complexType>
>     <xs:sequence>
>       <xs:element name="bar" form="qualified">
>         <xs:complexType />
>       </xs:element>
>       <xs:element name="bar" form="qualified">
>         <xs:complexType />
>       </xs:element>
>     </xs:sequence>
>   </xs:complexType>
> </xs:element>
> 
> <xs:complexType name="barType"/>
> 
> </xs:schema>
> ---------
> 
> With the following file (test-dont-work.xml) it fails
> with the error:
> Error at file "[...]/dont-work.xsd", line 12, column 47
>    Message: element 'bar' declared more than once in the same scope
> 
> ---------
> <?xml version="1.0" encoding="UTF-8"?>
> 
> <foo xmlns="http://foo";
>      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>      xsi:schemaLocation="http://foo dont-work.xsd" >
>   <bar/>
>   <bar/>
> </foo>
> ---------
> 
> On the other hand, the xmllint program from libxml is happy with
> both.
> 
> The only difference between the two schemas is that the first one
> refers to a global empty complexType while the second schema embeds
> the complexType.
> 
> Sorry for the vocabulary, this is all new to me.
> 
> So what do I do wrong? Is xerces (3.1.1) correct here?
> (please, tell me it's a bug, my schemas are complex and
> I can't extract the complexType as I did for this tiny
> test case! I also need to put several elements the one
> after the other, in my real case attributes differ and
> many other little tiny details, I can't use minOccurs...).
> 
> Regards,
> Cédric.
> 

Reply via email to