Inadvertently restricting mixed content

It appears that one cannot redefine a type and leave the mixed= nature of 
the original type untouched, which would be important if it were not known 
or, more important, arbitrary.

Looking at Part 1, Section 3.4.2, mixed= on <xsd:complexType> has a default 
value of false.

Consider I might have a type with mixed content:

    <xsd:complexType name="abcType" mixed="true">
      <xsd:attribute ...>
      ...

Now, I redefine that type in an importing schema fragment:

    <xsd:redefine ...>
      <xsd:complexType name="abcType">
         <xsd:complexContent>
            <xsd:extension base="abcType">
               ...

The standard states there is an implicit mixed="false" because of the 
default value.  This turns off my mixed content, when all I wanted to do 
was extend the existing type with some elements.

In this case I know I can just add mixed="true" in the redefinition to 
ensure the content is mixed ... but am I missing a way in which I can 
redefine a type while preserving its mixed= property?

My guess is no, because if I wanted to turn off the mixed content property 
I would intuitively say mixed="false" ... but my intuition to leave it 
unchanged is to leave the attribute absent ... but when absent the default 
value forces the redefinition to not be mixed.  So, it appears I have to 
know a priori that a given type I'm redefining is mixed or not and the 
burden is on me to preserve it.

Have I read anything incorrectly in this regard?

Thanks for any guidance.

............................... Ken

--
World-wide on-site corporate, govt. & user group XML/XSL training.
G. Ken Holman                 mailto:gkholman@CraneSoftwrights.com
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/x/
Box 266, Kars, Ontario CANADA K0A-2E0    +1(613)489-0999 (F:-0995)
Male Breast Cancer Awareness  http://www.CraneSoftwrights.com/x/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal

Received on Thursday, 3 February 2005 19:46:41 UTC