in reply to Re: Re: Re: PHP UML Diagram Generator
in thread PHP UML Diagram Generator

Yes it is butt ugly although most of it can be safely ignored since it's designed to do everything under the sun (Typical XML) and PHP OO is a pretty narrow subset.

Added to the problem is that fact that they are using a rather old version of the standard (1.0 for UML 1.3).

UPDATE: One thing that I've noticed about the XMI doc that argo is generating is that it is haphazard in its form because it is automatically generated by the tool. This makes it look a lot uglier than it needs be. I'm able to make it alot simpler:

#!/usr/bin/perl use strict; use warnings; ############# # HERE DOCS # ############# my %type = ( boolean => 1, integer => 2, float => 3, string => 4, array => 5, object => 6, void => 7 ); sub xmi_type { unless (@_ >= 1) { die ("\nxmi_type requires type name parameter.\n"); } my $name = shift; my $id = shift; (my $t = <<" QUOTE") =~ s/^\t\t//gm; <Foundation.Core.DataType xmi.id="xmi.$id"> <Foundation.Core.ModelElement.name>$name</Foundation +.Core.ModelElement.name> <Foundation.Core.ModelElement.isSpecification xmi.va +lue="false"/> <Foundation.Core.GeneralizableElement.isRoot xmi.val +ue="false"/> <Foundation.Core.GeneralizableElement.isLeaf xmi.val +ue="false"/> <Foundation.Core.GeneralizableElement.isAbstract xmi +.value="false"/> <Foundation.Core.ModelElement.namespace> <Foundation.Core.Namespace xmi.idref="xmi.1"/> </Foundation.Core.ModelElement.namespace> </Foundation.Core.DataType> QUOTE return $t; } # type while ((my $key, my $value) = each (%type)) { print xmi_type($key, $value); }

This generates the XMI for all of the standard PHP datatypes.
()-()                                                      ()-()
 \"/    DON'T   BLAME   ME,   I  VOTED   FOR    PACO!       \"/
  `                                                          `