Oxygen XML Editor
 
[XML-DEV Mailing List Archive Home] [By Thread] [By Date]

RE: [xml-dev] Elements declaration with same name in same complexType and name qualification


  • From: "Shlomo Yona" <S.Yona@...>
  • To: "Michael Kay" <mike@...>,<xml-dev@...>
  • Date: Tue, 29 May 2007 07:38:02 -0700

Thanks a lot.

This does indeed help.

 

Shlomo.

 


From: Michael Kay [mailto:mike@...]
Sent:
â 29 îàé 2007 16:55
To: Shlomo Yona; xml-dev@...
Subject: RE: [xml-dev] Elements declaration with same name in same complexType and name qualification

 

Yes, it's valid. It would be valid even if you changed the third particle to

 

<xsd:element name="b" form="unqualified" type="xsd:int"/>

 

because although the two "b" elements now have different types, they also have different names - one is qualified and the other isn't.

 

The clause that I think you are worried about is:

 

Schema Component Constraint: Element Declarations Consistent

If the {particles} contains, either directly, indirectly (that is, within the {particles} of a contained model group, recursively) or ·implicitly· two or more element declaration particles with the same {name} and {target namespace}, then all their type definitions must be the same top-level definition,

 

and in this case, your two element declaration particles have a different {target namespace}, so the rule doesn't apply.

 

If you change the content model to

 

                     <xsd:sequence>

                                <xsd:element name="b"/>

                                <xsd:element name="c"/>

                                <xsd:element name="b"/>

                        </xsd:sequence>

 

Then it's still valid because the two "b" elements both have the same type. (It's not 100% clear that xs:anyType is a "top-level" type definition - the term "top-level" doesn't seem to be defined anywhere - but the rule as quoted above is followed by further explanation which makes it clear). 

 

Michael Kay

http://www.saxonica.com/

 


From: Shlomo Yona [mailto:S.Yona@...]
Sent: 29 May 2007 14:13
To: xml-dev@...
Subject: [xml-dev] Elements declaration with same name in same complexType and name qualification

Hello,

 

Is the following considered valid or not?

 

Schema:

 

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="foo" xmlns="foo">

        <xsd:element name="a">

                <xsd:complexType>

                        <xsd:sequence>

                                <xsd:element name="b"/>

                                <xsd:element name="c"/>

                                <xsd:element name="b" form="unqualified"/>

                        </xsd:sequence>

                </xsd:complexType>

        </xsd:element>

</xsd:schema>

 

 

Instance:

 

<bar:a xmlns:bar="foo">

      <bar:b/>

      <bar:c/>

      <b/>

</bar:a>

 

I think it should be valid because the two local declarations of the element b have the same data type, anyType, in this case. I could not feel confident with my understanding, though, as I did not read that this is OK in the standard.

 

Thanks.

 

Shlomo.



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
 
© 2002-2008 SyncRO Soft Ltd. All rights reserved. | Sitemap | Privacy Policy
This website was created & generated with <oXygen/> XML Editor