Information models based on extensible markup language (XML) may be complex and difficult to implement. This may be particularly evident in industry standard information models (e.g., healthcare) that possess one or more of the following characteristics:                1. Large number of complex types (elements and attributes)        2. Generic/abstract (high-level domain concepts)        3. High degree of extensibility/customization is possible        4. Recursive—leads to instances with arbitrarily deep nesting        5. Instances contain a high ratio of fixed to variable data        
To build applications that produce, consume and validate such XML-based information models, additional constraints are often placed on the base standard to define use-case specific structure and content. Software code created to implement these capabilities and validate these constraints may be very specific to a particular application, and can be difficult to maintain and reuse across multiple applications. It is possible to create abstractions on top of these data models and write transformations between the abstractions and the complex schema, but the process is typically manual and labor intensive.