Интуитивно, «расширение» означает добавить что-либо к базовому типу, а не изменять базовый тип. Следующие XSD
<complexType name="B">
<attribute name="A1" type="int" use="required" />
<anyAttribute namespace="##other" processContents="strict" />
</complexType>
<complexType name="D">
<complexContent >
<extension base="tns:B">
<!--???-->
<attribute name="A1" type="int" use="optional" />
<anyAttribute namespace="##other" processContents="lax" />
</extension>
</complexContent>
</complexType>
не должен компилироваться. Но компилятор XML-схемы (System.Xml.Schema.XmlSchema) не выдает ошибок. Что такое рациональный дизайн против интуиции?