Builds a field expression from a complex type.
Depending on a "kind" of complex type, the binding is
quite different. For example, how a complex type is bound
when it is extended from another complex type is very
different from how it's bound when it has, say, mixed content model.
Each different algorithm of binding a complex type is implemented
as an implementation of this interface.