Things that need to be included in the software design of the PyWrapper: * Support for several DBMS with different SQL Syntax * develop abstraction layer: database modules * Dynamic SQL needed. * Graph representation of the database tables. * Output +/- directly to stream in contrast to keep all output in memory first. This is needed for good perfomance for larger results. * This disqualifies the creation of a single DOM object as the result * Validation of resulting XML according to custom XML Schemas on the fly. * This requires the usage of DOM objects as the result. To still allow streaming of the result, a DOM object could be created per "record" which could be validated +/- properly and then streamed. * XML Schema parsing to create "Response Structure" objects. * objects representing xml schemas. PyWrapper CMF objects are reused for this. The response structure objects represent the entire potential space of valid xml documents based on a schema. There are classes representing XML Attributes, Elements and Choices which can be serialized to enhance performance.