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.
