There is a Choice Indicator in XML Schema, which allows to take 1 of the elements, but not two or more. If you want any 2 of 3, I suggest doing something like that:
<xs:choice>
<xs:element name="fieldname" type="xs:string" minOccurs="0" maxOccures="1" />
<xs:element name="freetext" type="xs:string" minOccurs="0" maxOccures="1" />
<xs:element name="dbtablename" type="xs:string" minOccurs="0" maxOccures="1" />
</xs:choice>
<xs:choice>
<xs:element name="fieldname" type="xs:string" minOccurs="0" maxOccures="1" />
<xs:element name="freetext" type="xs:string" minOccurs="0" maxOccures="1" />
<xs:element name="dbtablename" type="xs:string" minOccurs="0" maxOccures="1" />
</xs:choice>
(Maybe maxOccures will prevent of choosing one and the same element twice.)
If that does not work, nothing will I think.
Edited: I didn't understand right the question the first time. If you want to dbtablename always present with any of 2 fieldname or freetext, then this is the answer.
<xs:complexType name="tSome">
<xs:sequence>
<xs:choice>
<xs:element name="fieldname" type="xs:string" />
<xs:element name="freetext" type="xs:string" />
</xs:choice>
<xs:element name="dbtablename" type="xs:string" />
</xs:sequence>
</xs:complexType>