1. A system for data binding, comprising: a microprocessor; a schema object model, wherein the schema object model is an object oriented programming language object model that directly models a schema that includes one or more schema definition language types based on a schema definition language, and wherein the schema object model allows manipulation of schema documents in the schema definition language, wherein the schema object model programmatically creates at least one new schema definition language type in the schema based on the one or more schema definition language types pre-defined in the schema definition language, wherein the at least one new schema definition language type is not pre-defined in the schema definition language, and wherein the schema object model supports a pool of empty object trees that are ready to be filled with one or more object oriented programming language objects based on the schema; a schema compiler adapted to accept the schema associated with an Extensible Markup Language (XML) document and generate a set of interfaces that map the one or more schema definition language types of the schema into object-oriented programming language classes using the schema object model with the pool of empty object trees; and an Application Programming Interface (API) to map between the XML document and the object-oriented programming language classes based on at least one empty object tree from the pool of empty object trees.