This example uses substitution groups to allow different kinds of fruit: fruit-basket.xsd
The citrus fruit are defined in a separate schema: citrus-fruits.xsd
Here's a "master schema" that imports both: rotten-fruit.xsd
These should validate:
fruit-order-1.xml : Validates in XMLMind, XSV, and Xerces (using a catalog).
fruit-order-2.xml : Validates in XMLMind and XSV, but not in Xerces (a "feature"?)
fruit-order-3.xml : Validates in XSV and Xerces but not XMLMind (a bug?)