We can make the content work by asserting the type and changing the content to match that new type.
The type must be derived from the type of the element allowed in that position.
For the teacher.xsd schema, it looks something like this:
<t:district xmlns:t='...'> <t:person xsi:type='t:Student' id=''>...</t:person> <t:person xsi:type='t:Teacher'>...</t:person> </t:district>
The fully worked example is here.