Unique Particle Attribution constraint and XML schema extensions

I am a member of this mailing list, but somehow this mail is not being accepted
by the xmlschema-dev mailing list.
 
Re-sending....
===========================================================
Hi,
 
 
I have a  (SOAP) (Doc/Literal) message payload that is defined as an extended type (ExtendedType) based on an abstract data type.

<xs:schema targetNamespace="urn:a:bs:e" xmlns:abc="urn:a:b:c" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns="urn:a:bs:e" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import namespace="urn:a:b:c" schemaLocation="../../a/b/c.xsd"/><xs:element name="ExtendedElement" type="ns:ExtendedType"/><xs:complexType name="ExtendedType"><xs:complexContent><xs:extension base="abc:AbstractType"><xs:sequence><xs:element ref="abc:Xyz"/></xs:sequence></xs:extension></xs:complexContent></xs:complexType></xs:schema>

<xs:schema targetNamespace="urn:a:b:c" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns="urn:a:b:c" elementFormDefault="qualified" attributeFormDefault="unqualified"><xs:complexType name="AbstractDocType" abstract="true"> <xs:element name="ElementA" type="xs:string"/> <xs:element name="ElementB" type="xs:string"/> <xs:any processContents="lax" minOccurs="0"/> </xs:sequence> </xs:complexType>


W.r.t. any wild card particle in the AbstractType, would the namespace="##any" (which is the default value) and namespace="##other" NOT work because the extended type (i.e., ExtendedType) that extend AbstractType by adding elements right after the any wildcard that are in a different namespace than the targetnamespace of AbstractType? Keep in mind that extended type is in different target namespace but it may re-use other global elements and types from the same namespace as the abstract type.

Will adding elements right after the:

<xs:any namespace="##other" processContents="lax" minOccurs="0"/>, or

<xs:any namespace="##any" processContents="lax" minOccurs="0"/>

violate unique particle attribute rule, i.e., we have a case of non-deterministic content model? if they do not violate what is the reason that they don't?

In this case should we attempt make processContent=lax or skip? 

Also when we extend the abstract type by defining another complexType "ConcreteType" we should still be creating 
***deterministic content model***? Right? Since:
 
1) the required A and required B sub-elements (defined in the abstract type) 
    will precede wild particle always
2) the wild card particle basically could possibly carry an element of type 
    ConcreteType (that extends the abstract type)
 
Now, w.r.t. namespace="##other":
 
(i)  will that not work if the extended type "ConcreteType" is defined in 
     same namespace as the abstract type since elements in same
     namespace can not fit the any wild card with namespace=##other
     declared?
(ii) will that not work if the extended type "ConcreteType" is defined
     in different namespace than that of the abstract type (possibly
     with same base/root urn value though)?




		
---------------------------------
Do you Yahoo!?
Win a $20,000 Career Makeover at Yahoo! HotJobs 

Received on Thursday, 29 April 2004 20:29:45 UTC