Effect of the block attribute

Hi,

I have a problem understanding the effect of the block attribute.



Assume the following complex type hierarchy.

           B
         /   \
        /r    \e
       /       \
     Dr         De
    /  \
   /r   \e
  /      \
Drr      Dre


Dr is derived from B by restriction, De is from B by extension,
Drr is from Dr by restriction, and Dre is from Dr by extension.

Assume an element declaration E, which designates B as the type
definition.


Now say E has block="extension" (or D has block="extension"). It seems
to me that the spec prohibits

<E xsi:type="Dre"> ... </E>

Because the chain from B to Dre contains "extension" and therefore
Dre is rejected by "Type Derivation OK (Complex)" check.

It depends on the meaning of the sentence of term 2.3.2.1 of that check: "If
D's {base type definition} is complex, then it must be validly derived
from B given the subset as defined by this constraint."

But honestly I don't understand what "as defined by this constraint"
means.


Is my understanding correct? Any comment would be greatly appreciated.



regards,
----------------------
K.Kawaguchi
E-Mail: kohsukekawaguchi@yahoo.com

Received on Tuesday, 31 July 2001 23:03:47 UTC