AspectSchema

What Is It?
AspectSchema is a new open source project being hosted on SourceForge.net that is being run by Kimanzi Mati. AspectSchema is a C/C++ library that is intended to be cross-platform. AspectSchema has the following functions:

*
To create UIs based on XML Schema definitions.
The idea is to automate web forms generation (e.g. HTML and XForms) as well as the accompanying client-side code (e.g. JavaScript). After the UIs are generated the UI designer can modify them for presentation purposes without breaking the dependent code that makes the UI and client-side work.

*
To create client-side code for the generated UI elements based on XML Schema definitions and extra code.
The idea is to provide event handler code that gets executed on the UI elements that represent the XML Schema entities. Whereas the XML Schema provides the definition of the data, this code provides the behaviour. Hence, this is an Object-Oriented system.

However, because the behavioural code is associated with the XML Schema entities, any change on them changes the behaviour of all the UI elements that are associated with those elements. This is a simple system of Change Once, Effect Many Places and is a key element of Aspect Oriented Programming-- hence the name AspectSchema for this project.


*
To create server-side code for the generated UI elements based on XML Schema definitions and extra code.
The idea is to generate web services code or web pages that perform operations initiated by client requests. At the very least, this will be boiler plate code that can be customized by server-side developers.

Dependencies
Operating System

The AspectSchema library will be written in C/C++ so that the source code should compile under a variety of compilers and operating systems. However, the initial OS targeted will be Win32.

API

The AspectSchema APIs will be C/C++ APIs and also XML APIs that are accessible via HTTP. This will enable a wide variety of tools and systems to use AspectSchema programmatically to generate UIs and code. So this will make AspectSchema a valuable part of code generation in an XML context.

Benefits
*
Reduced UI/code development cost in time and money
Faster and easier generation of UIs that can then be customized by web designers with none or little coding by programmers

*
Reduced UI/code maintenance cost in time and money
Changing the bindings for an XML Schema entity automatically changes the UI, validation and other behaviour throughout all applications. One change for many areas-- the benefits of Aspect Oriented Programming!

*
Improved code quality
Fewer errors in code and faster development cycles

*
Standardization of software component generation
A standard means of generating UIs and the client-side event code and the server-side services has the effect of enabling users to re-use standard "best practices".

Updates to this Site
This project is at the conceptual phase so there is no source code yet for publication. It will be forthcoming soon. This site will be updated in the next few days with whatever code and documentation artefacts exist for this project.

Last Updated: 16-Feb-2004