I'm continuing my work with FSM (finite state machines) and REST. I'm now doing a more complete job of generating an FSM/REST applications that runs on top of the Quixote Web application framework. I've implemented a harness (fsmGenerate.py) that reads an XML FSM document and, from it, generates the following: - State definition modules -- These are Python modules that implement a Quixote application. One module is generated for each state in the FSM. Each generated module contains a class that implements the state. - An __init__.py file -- This file implements the dispatcher for the application. It takes the current state name and calls the implementation of that state. - A states.py file -- This file contains a super class for the classes that implement the states in the FSM. - XML Schema files -- One file is generated for each state in the FSM. And, these XML Schema files are used to generate a python parser for each XML interchange document and Python classes that represent the XML elements in each document. - A GUI definition file -- An XML definition file for a graphical user interface. The interface definition can be edited with wxGlade graphical GUI editor. wxGlade can also generate Python code that implements the user interface. This code can be used in the implementation of client applications. wxGlade generates Python code for wxPython. I've picked FSM to work with because I feel that we need a systematic way to work with and implement complex processes in a REST-ful way. This is not finished code or a shrink-wrap, use-it-right-out-of-the-box product. I view it more as code to build upon. And, the code that it generates requires editing: for example, you will want to add application specific functionality. However, my tests show that it generates a reasonable skeleton of an application. A document describing this is available at: http://www.rexx.com/~dkuhlman/fsmGenerate_howto.html And, a file containing support code and examples is at: http://www.rexx.com/~dkuhlman/fsmGenerate_examples.zip. As usual, I am interested in comments and suggestions. And, if you would like help using this, please let me know. - Dave -- Dave Kuhlman dkuhlman@rexx.com http://www.rexx.com/~dkuhlman