Оказывается, вы можете сделать это (вроде), но метод полностью отстой.
Пришлось создать два сложных типа (один с тегом Approved, а другой без), изменить корневой элемент и разрешить переключение между двумя типами следующим образом:
<xs:element name="ArchivedFormulation">
<xs:complexType>
<xs:choice>
<xs:element name="ApprovedFormulation" type="ApprovedFormulation" />
<xs:element name="NonApprovedFormulation" type="NonApprovedFormulation" />
</xs:choice>
</xs:complexType>
Может добавить сложные типы, используя наследование XSD.
<xs:complexType name="ApprovedFormulation">
<xs:complexContent>
<xs:extension base="NonApprovedFormulation">
<xs:sequence>
<xs:element name="Approved" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="ApprovedBy" type="xs:string" />
<xs:element name="ApprovedOn" type="xs:date" />
</xs:sequence>
<xs:attribute name="IsApproved" type="xs:boolean" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
Это дало мне то, что я хотел.