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.