使用 xsl 转换将 UML 图转换为规范 Z
我正在尝试将一些 uml 图(singleton、AbstractFactory ...)转换为 Z 规范,首先我使用 starUML 将我的 uml 图转换为 xml 文件,然后 我使用 xsl 程序和 saxon 将我的 xml 文件转换为 .tex(代表 Z),但它不起作用。 如果有人知道如何编写 xsl 程序(也许只是步骤),那就太好了。
谢谢
I'm trying to transform some uml diagrams (of singleton , AbstractFactory ...) to Z specification , first i transformed my uml diagram to an xml file using starUML then
i used an xsl program and saxon to transform my xml file to .tex( for Z ) , but it didnt work .
if someone has an idea about how the xsl program should be written (just maybe the steps) that will be great.
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想说,这通常是一个非常糟糕的主意。有许多不同的格式用于存储 UML。 XMI 是一个标准,但是至少有三个不同的版本,而且它们相当复杂。使用 XSLT 将 XML 转换为 TeX 肯定也是一个很大的障碍,特别是当您试图获得 Z 规范时,这些规范是函数式和过程式的,而 UML 是基于面向对象编程的。
我认为它们可能是实现你想要的更好的方法。以 Maude for Eclipse 为例,它可以从基于 EMF(Eclipse 建模框架)的模型生成 Maude 规范(代数数据类型规范),该模型也可以是 Eclipse 工具中的 UML2。
I would say, this is a generally a very bad idea. There are many different formats for storing UML. XMI is a standard, however there are afaik at least three different versions and they are quite complex. Transforming XML to TeX using XSLT must be as well quite a big hurdle, especially when you are trying to get Z specifications, which are afaik functional and procedural and UML is based on object oriented programming.
I think they might be a better way to achieve what you want. Take for example Maude for Eclipse, which can generate Maude specifications (algebraic data type specifications) from EMF (Eclipse Modeling Framework) based models, which can be also UML2 as found in Eclipse tools.
与其尝试编写 XSLT 转换,不如编写模型到文本转换要好得多。给定表示为 UML 元模型(一种 AST)实例的 UML 模型,您可以编写一个模型到文本转换来遍历 UML 模型并生成相应的文本。有几个 Eclipse 项目用于此目的。
另一个解决方案(更简洁但也更复杂)是定义 Z 的元模型并编写一个模型到两个元模型之间的模型转换。
Instead of trying to write a XSLT transformation, it would be much better to write a model to text transformation. Given the UML model represented as an instance of the UML metamodel (kind of a AST) you could write an Model to text transformation that traverses the UML model and generates the corresponding text. There are several Eclipse projects for this.
Another solution (neater but also more complex) would be to define the metamodel of Z and write a model to model transformation between both metamodels.