drawstatexml.pl - turns a simple xml description into a state diagram
drawstatexml.pl diagram.xml > diagram.svg java -jar batik-rasterizer.jar diagram.svg
The xml format is described by the (unenforced) dtd in the samples directory included with the distribution. The advantage of the xml format is that it lets you name the states and specify edges in terms of the names. The samples directory also includes examples in the files ending in xml. See the samples/README.
If you don't like xml, feel free to use the text format supported by drawstate.pl. You could also use UML::State directly to support a format of your choice.
The state.dtd description is not enforced. This can lead to hard to diagnose errors in the input file.
All edges using the same label must be in the same transition_set tag. If a transition_set tag repeats a label used by an earlier transition_set tag, it overwrites that transition_set. (Think of the labels as hash keys, I do.)
The bugs in UML::State apply here as well, since this script uses it to make the pictures. See perldoc UML::State for those bugs.
Phil Crow <email@example.com<gt>
Copyright 2003 by Phil Crow. All rights reserved. This is free software. You may modify and/or redistribute it under the same terms as Perl 5.8.0.