ArchGenXML - generate Plone/Archetypes apps
out of XMI and XSD files

Authors: 
    Philipp Auersperg phil@bluedynamics.com

    Jens Klein (jensquadrat.de) made a great documentation
       and buzzes me to bring in new features

    Fabiano Weimar dos Santos (xiru) brings in some 
      good ideas from his project (UML2AT).


Sponsors: 
    PilotSystems, Paris, France (David Sapiro)
    OpenSource.ag, Innsbruck, Austria (Georg Pleger)



==========
What is it
==========

ArchGenXML is a commandline utility that
generates Plone applications based 
on the Archetypes framework from XMI(UML) and XSD(XMLSchema) files.

It is tested with the XMI output from the following 
tools:

ObjectDomain (commercial, free demo for <= 30 classes)
    www.objectdomain.com
    provides the possibility to export the model to XMI

ArgoUML   (free)
    argouml.tigris.org
    stores the model native as xmi + diagram information
    in .zargo files (zip files) (xmi version 1.0)

Poseidon  (commercial, based on ArgoUML)
    www.gentleware.com
    stores the model native as xmi + diagram information
    in .zargo files (zip files) (xmi version 1.2)

Sybase Powerdesigner (commercial, demo download)
    www.sybase.com
    supports model export as XMI (XMI version 1.1)

KDE's Umbrello (not complete yet)
    umbrello saves the models native in XMI (not fully standard compliant)


===============
How to build it
===============

First, install PyXML.  You can find it at:

    http://pyxml.sourceforge.net/

Then, unpack the PyXML archive and enter the directory,   
 the regular Distutils commands should work:

    python setup.py build
    python setup.py install



Next, de-compress the ArchGenXML distribution file.  Use something
like the following:
 
    tar xzvf ArchGenXML*.tgz

  


=============
How to use it
=============

You can test by entering ArchGenXML/samples
this directory contains XMI files generated by
ArgoUML,Poseidon and ObjectDomain

plus a XMLSchema called 'outline.xsd'

there you type :
    $ cd ArchGenXML/samples
    $ ./mkdemo

it automatically generates applications out of the 
different xmi files. they are then ready to go for
using inside Plone

you can generate code with the following command:

pythonArchGenXML.py model.xmi model

this takes model.xmi and generates the ready-to-go app into the folder 'model'


================
More information
================

There is more information on PyXML at:

    http://pyxml.sourceforge.net/
    http://www.python.org/sigs/xml-sig/

================
More Documention
================

see http://plone.org/documentation/archetypes/ArchetypesDeveloperGuide#archgenxml-generating-archetypes-using-uml
or at http://sf.net/projects/plone-docs 
in cvs at Developers/Archetypes/ArchGenXML.rst

===========
features
===========

the XMI parser/generator supports the following UML
entities:

Classes
Attributes
Methods

Associations (Aggregation and Composite)
generation of associations using ArcheType's 
ReferenceEngine
Generalization

===========
Planned/ToDo
===========

code cleaning, documentation


Support for Umbrello the KDE UML tool,
currently generation of classes/attributes/methods is supported, but not yet
the handling of associations


creating interface classes
============
Limitations
============

the XSDParser will be fully overhauled. the current impl. is
 just a design study



=======
License
=======
(c) Philipp Auersperg, phil at bluedynamics.com
GPL

=======
Credits
=======

This tool was inspired by David Kuhlman's GenerateDS
