Well, I've taken it as far as I can and I'm stumped now. I copied the file default-uml14.xmi to my server, and changed the file test.xmi with this perl one-liner: perl -i~ -pe "s[http://argouml.org/profiles/uml14][http://www.jhuccp.org/temp/KZ]g" test.xmi
I've attached the changed test.xmi and t.txt from: xsltproc xmi-to-ClassDictionary.xsl test.xmi >t.txt I've also attached my xmi-to-ClassDictionary.xsl. Any suggestions or advice on tools to troubleshoot this problem would be gratefully appreciated. I've tried running xsltproc with --dumpextensions, --verbose and --debug, but wasn't helped by the output. -Kevin -----Original Message----- From: Zembower, Kevin [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 21, 2008 12:33 PM To: '[email protected]' Subject: RE: [argouml-users] Newbie: Generating a class dictionary from a class diagram? Leif, thanks for your continued advice. At least one problem with the link you pointed out is that I get this response if I just try to bring in up in a browser: Access is denied. Error processing resource 'http://argouml.org/profiles/uml14/default-uml14.xmi'. Can anyone fix this? In case anyone is playing along at home, I've attached my crude hack of just cutting out the parts I don't need from xmi-to-html.xsl, called xmi-to-ClassDictionary.xsl. I use it with: xsltproc xmi-to-ClassDictionary.xsl test.xmi >test.txt using the same text.xmi from my previous post and examine test.txt with less. This is a much smaller file that xmi-to-html.xmi, and may be easier to work with. It's working, but the definitions don't show up. This is what I'm working on now. Thanks, again. If I get this working, I'll post it in the file download section of ArgoUML. -Kevin -----Original Message----- From: Leif Holmgren [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 21, 2008 12:16 PM To: [email protected] Subject: Re: [argouml-users] Newbie: Generating a class dictionary from a class diagram? Zembower, Kevin wrote: >I down loaded the documents from the link you provided, Leif, and got some >preliminary results. Before I go crazy changing things, I tried to use these >files without modification to generate output. I used this command to generate >an html file: > xsltproc xmi-to-html.xsl test.xmi > test.html >When I examine test.html with lynx, a text-only browser, I see my two classes, >Test and NotTest. However, I don't see the documentation notes in each of >these classes. Should I? > Well, there seem to be a problem somewhere. This is a bit over my head as I am primarily a modeller but: Documentation is placed in the XMI-file as a tagged value on the modelling element it belongs to. Tagged values have their tag name placed in a tag definition. It seems as if these are no longer output to the XMI files from ArgoUML. Instead it refers to a profile-file. <UML:TagDefinition href = 'http://argouml.org/profiles/uml14/default-uml14.xmi#.:000000000000087C'/> I don't know how to fix this. Probably you could find the profile file somewhere in the project CM system. Perhaps even at the specified path, but that is really only an id so don't expect to find it there. When you find it you could probably somehow merge the XMI files but remember that XML only supports one root elemet per file so the profile should have to go into the other file. > Note that I had to manually insert this second line: > <!DOCTYPE XMI SYSTEM "UML14.dtd"> > UML14.dtd from this page: > Must be something specific to xsltproc. Never had to do that but I use saxon. >I'm hoping someone has the patience to give me some suggestions on modifying >xmi-to-html.xsl to just produce plain text output of class names and >documentation. > > It's not that difficult. Generating plain text instead of XML (or HTML for that matter) is fully possible. I use XSLT to generate Delphi code from my models. Just find the tags that look like HTML and eliminate these, or replace them with plain text headers, linebreaks or whatever you want. Leave anything starting with <xsl: as that is what defines your template structure and queries on the XMI file. I'm sure you will find it easy when you start poking around in it. (By the way, ) /Leif --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
<!--
Title: xmi-to-ClassDictionary.xsl
Purpose: An XSL stylesheet for converting ArgoUML 0.26 XMI to a plain
text file of Class name and documentation.
Modified from xmi-to-html.xsl.
Version: 21 October 2008
Author: Kevin Zembower, [EMAIL PROTECTED]
For HISTORY and CREDITS, please see the README file.
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:UML="org.omg.xmi.namespace.UML"
version="1.0"
exclude-result-prefixes="#default">
<xsl:key
name="classifier"
match="//UML:Class|//UML:Interface|
//UML:DataType"
use="@xmi.id"/>
<xsl:key
name="tagdefinition"
match="//UML:TagDefinition"
use="@name"/>
<!-- Document Root -->
<xsl:template match="/">
<xsl:apply-templates select="//UML:[EMAIL PROTECTED]" mode="body"/>
<!-- Classes -->
<xsl:apply-templates select="//UML:[EMAIL PROTECTED]">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</xsl:template>
<!-- Document Heading -->
<xsl:template match="UML:Model" mode="body">
<!-- Name of the model -->
<xsl:value-of select="@name"/>
</xsl:template>
<!-- Class -->
<xsl:template match="UML:Class">
<xsl:variable name="element_name"
select="@name"/>
<xsl:variable name="xmi_id" select="@xmi.id" />
Class: <xsl:value-of select="$element_name"/>
<xsl:call-template name="documentation"/>
</xsl:template>
<!-- Documentation (Working Definition) -->
<xsl:template name="documentation">
<xsl:variable name="doctag"
select="key('tagdefinition', 'documentation')/@xmi.id" />
<xsl:variable name="documentation"
select="UML:ModelElement.taggedValue/UML:TaggedValue
[UML:TaggedValue.type/UML:TagDefinition/@xmi.idref=$doctag]/
UML:TaggedValue.dataValue"/>
<xsl:if test="string-length($documentation)>0">
Working Definition (Documentation): <xsl:value-of select="$documentation"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0"?>
untitledModel
Class: NotTest
Class: Test
test.xmi
Description: test.xmi
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
