I asked a question about deserializing based on an attribute with data contracts. Apparently this isnt possible so I have to convert my DataContract to use XmlElement's (see http://stackoverflow.com/questions/2177079/net-represent-xml-in-class-without-xsd)
I'm assuming datacontracts cannot intermingle with xmlelements. How can I define an optional XmlElement? With a DataContracts DataMember I would just set IsRequired = false, but no such option appears to exist.