Вы можете определить
<xs:element name="block" abstract="true" type="ns:blockType"/>
и
<xs:complexType name="headingType">
<xs:sequence>
<xs:element ref="block" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
Это позволяет заголовку содержать любой элемент в группе подстановки "block", и элемент может быть в этой группе подстановки, только если он имеет тип ns: blockType.
Это не совсем то, что вы просили, но это самое близкое, что я могу получить.