I appreciate you response.
The definition in the Schema Primer (October 2000) states that
"Elements in a substitution group must have the same type as the head
element,
or they can have a type that has been derived from the head element's type"
Now I understand that the simpleTypes I define OrderState and
NewOrderState (in the example in my document) are two separate types.
But they are two simpleTypes both based on strings. The fact that they are
both
based on strings, can this be a loose example of the definition above.
On a minor note, my schemas do validate using XML SPY 3.5, but then
that could be an oversight by XMLSpy. Bottom line if it violates the
Specification,
then it should be correct. Based on my above statements, does it violate
the
Specification.
If it violates the Specification, then I could also do something like this:
<element name="BaseState" type="string"/>
<element name="State" type="sa:OrderState"
substitutionGroup="sa:BaseState"/>
<element name="NewState" type="sa:NewOrderState"
substitutionGroup="sa:BaseState"/>
<simpleType name="OrderState">
<restriction base="string">
<enumeration value="open"/>
</restriction>
</simpleType>
<simpleType name="NewOrderState">
<restriction base="string">
<enumeration value="open"/>
<enumeration value="closed"/>
</restriction>
</simpleType>
Thanks again for your response
Mike Zoratti
Software Architect
Nortel Networks