You can use a "all" group selector and use minOccurs to indicate mandatory-ness.
<xs:schema xmlns="http://Message1" targetNamespace="http://Message1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:all>
<xs:element name="TheValue" type="xs:string" />
<xs:element name="TheValue2" type="xs:string" minOccurs="0" />
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
This are correct:
<ns0:Root xmlns:ns0="http://BizTalk_Server_Project1.Message1">
<TheValue2>somevalue</TheValue2>
<TheValue>somevalue</TheValue>
</ns0:Root>
and so it this:
<ns0:Root xmlns:ns0="http://BizTalk_Server_Project1.Message1">
<!--<TheValue2>somevalue</TheValue2>-->
<TheValue>somevalue</TheValue>
</ns0:Root>
But not this:
<ns0:Root xmlns:ns0="http://BizTalk_Server_Project1.Message1">
<!--<TheValue2>somevalue</TheValue2>-->
<!--<TheValue>somevalue</TheValue>-->
</ns0:Root>