UML软件工程组织

理解和定制 IBM Rational Software Modeler/Architect 模型发布
Mike Boyersmith, 软件工程师, IBM Cheng-Yee Lin, 开发经理, IBM
 2005 年 6 月

 对快速、简单的交流模型设计的需求,对于一个组织的成功变得越来越重要。模型发布通过提供用HTML发布模型的方法解决了这个问题。另外,模型发布还提供了一种产生定制报告的工具。本文将近距离观察这种工具,并提供实例来展示如何定制符合业务需要的 HTML输出和报告。
  目的
  本文的目的是详细描述基于XSL的发布转换模板,你可以利用模板来增加或改变功能。本文假定你已经理解了XSL和相关技术,因此将不再介绍XSL。

 文章结构
  本文分成以下几部分:

 概述 IBM? Rational? Software Modeler (RSM)产品以及模型发布提供的特色
  一本“菜谱”——作为一份快速开始向导,展示常见的定制任务
  深入到设计细节、技巧,以及你可能使用到的技术
  关于本文使用期限的说明
  本文是专门论述RSM和 IBM? Rational? Software Architect (RSA) 产品中的模型发布功能。可能不适用于模型发布的更新版本

 什么是RSM和模型发布?
  RSM是一种利用UML(统一建模语言)来描述任何可以被建模的事物的可视化模型工具。注意到RSA产品位 于RSM产品的顶层,包含与RSM同样的基本功能集。因此当本文提到RSM时,也同样适用于RSA中的相同功能。

 RSM和RSA提供了一种软件开发平台,你可以在该平台用Model Development Architecture (MDA)开发软件应用程序。RSM支持的主要功能是在你的团队中,或者利用模型发布在团队间,分享交流复杂模型的能力。

 例如,你可能希望模拟一个薪金系统。你可以使用RSM可视化的模拟这个系统。一旦完成建模,你可能想和其他人交流这个模型。使用模型发布你可以用HTML形式 发布模型;另外,你可以从建立的模型中创建和生成你自己的报告。

 图1所示为用RSM打开一个UML模型项目的屏幕截图


  图1: 在RSM中的一个UML项目

 为了要公布图1中的模型,只要简单点击 Modeling > Publish > Web。另一方面,如果你希望生成一个报告,点击 Modeling > Publish > Report。下面的图2显示模型发布模型概览,图3显示一个简单的报告。


  图2: 模型概览

 本文已经指出你可以定制模型发布 XSL来得到自定义的模型发布,并且创建模型报告。下面将带领你漫游一些有用的定制场景。

 快速开始“菜谱”
  这部分将举一些你可能希望加到XSL中的简单的用例。首先,你将浏览定制报告模板的创建,还将涉及如何在一个PDF格式的报告中嵌入一种字体。然后,你将学习如何定制并发布起始页面(例如,增加一个公司标志)。最后,这个向导将带你通过定制一个XSL UML元件管理器来输出定制文档。

 注意:XSL可以用你喜爱的文本编辑器编辑。

 创建一个定制的PDF报告
  报告能完成许多有用的功能。例如,你可能在做模型统计,比如每个程序包中的模型有多少个类。如果你需要这类报告,这部分内容很适合你。

 需要寻找的关键点是插件的路径,取决于软件的安装,该路径可能不同,相对于INSTALLDIR的位置是:

[INSTALLDIR]/rsm/eclipse/plugins/com.ibm.xtools.publish.uml2_6.0.0

 一旦找到插件位置后,你将要进入报告路径。创建定制报告需要的所有工作都将在这个路径完成:

../com.ibm.xtools.publish.uml2_6.0.0/resources/reports

 在开始前,有一些步骤你需要做:

 增加入口到reports.manifest文件,以在RSM注册你的项目
  创建一个report.xsl文件并且执行XSL转换
  reports.manifest 文件包含用户接口(UI)使用的信息,移植一系列你可以创建的报告。reports.manifest文件 内部结构如下:

<reports>
<reportManifest>
...
</reportManifest>
<reportManifest>
...
</reportManifest>
...
</reports>

 要增加一个报告,增加一个 <reportManifest> 入口到这个文件。要这样做,拷贝一个现有的报告显示入口然后改变数值以符合你的需要。例如:

<reportManifest
name="My UML Metric Report"
description="My Metric report to test adding my own report "
author="Me"
XSLFile="resources/reports/MyReport.xsl"
outFileExt="pdf"
USING_ICONS="false"
EXTRACTING_DIAGRAMS="false"
DIAGRAM_FORMAT="JPG"
DETAIL_LEVEL="FULL">
</reportManifest>

 改变的关键域为: 姓名,描述,作者,和 XSLFile。还要注意 outFileExt 入口,它定义生成的输出文件类型。在这个例子中,将生成PDF格式的报告。

 reportManifest 的各个域如表1所示。可选域同样被标出。

name 在 UI 显示的报告名称
description 在 UI 显示的报告描述
author 报告的作者
XSLFile XSL模板的位置
outFileExt 创建文件的扩展名
oclSelfType
被选择的数据的 UML 类型。 这是一个可选择的域,但是如果被使用,必须有 oclQuery 。 UML 类型的例子是类或包。

oclQuery

物体限制语言 (OCL) 短语,用于在类型 oclSelfType的元件上的数据选择。 这是一个可选择的领域,但是如果这被用,必须有 oclSelfType 。 (见下面的例子)
USING_ICONS 逻辑属性,指出是否在图表中包含图标。
EXTRACTING_DIAGRAMS 逻辑属性,指出是否创建图表。 如果是 假,图表报告只有文本。
DIAGRAM_FORMAT 当 EXTRACTING_DIAGRAMS 是真的时候,为创建图表文件的格式。有效的GIF,BMP ,JPG 或JPEG。
DETAIL_LEVEL 包括的细节程度。 有效的值只为FULL(所有)或 MIMINUM(仅为文档所需要)。

 表1: 报告显示域

 下面是一个OCL查询的例子,使用可选择的OCL报告显示入口:

<reportManifest
name="Package Report"
description="Reports on packages"
author="John Doe"
xsltFile="resources/PackageReports.xsl"oclSelfType="Package"oclQuery="self.oclIsKindOf(Package) and not(self.oclIsKindOf(Model))"
outFileExt="pdf"
USING_ICONS="true"
EXTRACTING_DIAGRAMS="true"
DIAGRAM_FORMAT="GIF"
DETAIL_LEVEL="FULL">
</reportManifest>

 然后开始创建你的报告,获得现有的报告样本,复制然后重命名为 MyReport.xsl,与加到reports.manifest文件的信息相匹配。

 现在用文本编辑器打开文件然后寻找:

<xsl:text> Sample UML Metric Report for #topLevelName</xsl:text>

 将其改为:

<xsl:text> My First Metric Report for #topLevelName</xsl:text>

 接着,保存文件并生成报告的UI。你应该看到列出的报告如图4 所示。


  图4: 报告列表

 选择并生成适合的报告。检查你在HTML浏览器中看到的 My First Metric Report 。也不过如此而已。

 使用符号字符集处理PDF报告
  如果你想产生一个有特殊符号或者扩展符号字符(例如中文字符集)的报告,那么你将需要在PDF文件中嵌入这种字体。这是PDF要求的。模型发布 feature有一个框架,允许你不仅可以使用UI生成自己的报告,还可以提供报告中需要的字体。要在报告中嵌入一种特殊的字体,你必须按照下面步骤做:

 找到你想要嵌入的字体
  从字体中利用Format Object Processing (FOP)工具生成一个metrics-file,它构成一个开源的Java API(应用程序接口)。
  配置userconfig.xml文件来描述:
  字体metrics-file的位置
  字体将要被嵌入的位置
  编辑 报告 XSL文件,并说明你想要使用的字体
  嵌入字体的详细资料

 本文下面的部分将带领你走过上面提到的每一步,在这个过程中描述如何设置你的字体使它与报告生成器一起工作。注意PDF要求记录在 http://xml.apache.org/fop/fonts.html。此外,你可以查看FAQ http://xml.apache.org/fop/faq.html。

 找到你想嵌入的字体

 首先,找到你想嵌入的字体。记住这个字体必须遵守PDF要求文档中规定的字体嵌入规则(http://xml.apache.org/fop/fonts.html)。另外,你必须考虑到所使用字体的合法性。你需要问,“这是一个合法的嵌入吗?”。尽管本文指出一个工具可以给你关于这个状态的提示,你仍有责任确定其合法性。

 生成一个metrics文件(Minor Minor)

 你生成统计文件是为了给定制字体提供支持。本文简单描述了字体文件的属性,它可以被嵌入到PDF中。

 此外,要得到关于如何去做的详细信息,查询Apache的技术页面http://xml.apache.org/fop/fonts.html#embedding。

 这个例子展示了如何嵌入一个TTF(True Type字体)。要得到统计数据,你需要能够获得这种信息的工具,这些工具可以从 http://xml.apache.org/fop/download.html。

 注意:如果你创建一个脚本文件(批处理或者命令行)并且从脚本执行命令来做这项工作,可能容易得多。

 得到统计文件的命令如下:

java -cp .\build\fop.jar;.\lib\avalon-framework.ja
r;.\lib\xml-apis.jar;.\lib\xercesImpl.jar;.\lib\xalan.jar org.apache.fop.fonts.
pps.TTFReader -ttcname "MS Mincho"
D:\fop-0.20.5\msmincho.ttc
D:\fop-0.20.5\ttfcm.xml


  将输出以下信息:

TTF Reader v1.1.1

Reading D:\fop-0.20.5\msmincho.ttc...

This is a TrueType collection file with 2 fonts
Containing the following fonts:
* MS Mincho
MS PMincho
Number of glyphs in font: 17807
Postscript format 3
Creating xml font file...

Creating CID encoded metrics
Writing xml font file D:\fop-0.20.5\ttfcm.xml...

This font contains no embedding license restrictions


  特别注意输出的最后一行,它告诉你关于你使用的字体嵌入是否合法的提示。

 配置一个userconfig.xml文件

 userconfig.xml文件用来告诉FOP(和我们最后的报告生成器)到哪里寻找你想嵌入的字体。这个文件可以放在插件程序路径下(com.ibm.xtools.publish.uml2_6.0.0)。这是查找时的关键点,因为——依赖于软件安装——这个路径可能不同:

[INSTALLDIR]/rsm/eclipse/plugins/com.ibm.xtools.publish.uml2_6.0.0

 找到插件程序后,你将要进入报告路径:

../com.ibm.xtools.publish.uml2_6.0.0/resources/reports

 在这个路径下,你将看到userconfig.xml文件。打开它,将会看到如下所示的字体部分:

<!--
*******************************************************
Add fonts here
*******************************************************
-->
<fonts>
<font>
</font>
...
<font>
</font>
</fonts>

 你应该给这部分增加一个入口。

 注意:这部分大多注释为默认值,所以确定你加入了你的字体数据,这样它就不会被注释了。注释部分以 <!- and end with >开头。

 一个userconfig.xml的入口(在Linux机器上)看起来可能是这样的:

<font metrics-file="/myfonts/ttfcm.xml" embed-file="/myfonts/msmincho.ttc" kerning="yes">
<font-triplet name="Mincho" style="normal" weight="normal"/>
<font-triplet name="Mincho" style="normal" weight="bold"/>
<font-triplet name="Mincho" style="italic" weight="normal"/>
<font-triplet name="Mincho" style="italic" weight="bold"/>
</font>
</fonts>

 增加字体入口后,保存并关闭它。

 编辑你的报告来使用这种字体

 最后一步就是告诉你的报告使用这种字体。例如,让你的样例报告(MetricsReport.xsl)使用Mincho字体,你需要找到所有与 <fo:block 相关的部分,并且编辑(或增加)一个字体——系列标签。 一个更新块可能如下所示:

<fo:block font-family="Mincho" text-align="center" font-weight="bold">
...
</fo:block>

 保存报告。

 现在你已经准备好运行生成一个包含特殊字体的PDF报告。为了验证你的PDF报告有这种字体,你可以用 Adobe? reader查看文件。

 选择性生成报告
  报告生成机制是灵活及可设计的,因此你可以增加你自己的报告(如前所述)。这种灵活性允许你编写XSL支持,以任何格式输出数据。一些简单的可能纯文本,HTML,DHTML和CDF。如果你在输出PDF格式时遇到任何问题,考虑编写XSL,这样就可以生成不同的输出。

 使用XSL定制模型发布
  这部分讨论直接修改模型发布模板来得到定制的模型HTML输出。在开始工作之前,你应该备份这些文件。

 注意:本文假定你已经理解XSL,XPATH,以及相关技术。

 修改已经发布的模型开始页面

 默认值,开始页面使用一个标准图形和布局,但是也许你希望显示自己公司的标志或其它信息。要定制该页,你需要编辑一个叫做ProjectPublish.xsl的文件,它可以在插件程序路径找到:

...\com.ibm.xtools.publish.core_6.0.0\resources

 要改变标题,打开ProjectPublish.xsl文件改变下面一行内容以放置你的图片:

<img src="overview_banner.jpg"/>

 注意:新图象需要放在旧图象的位置,或者路径必须被指定为图象信息票签的一部分。

 然后,让我们改变Published Models使用的字体。你可以利用CSS(Cascading Style Sheet)信息。看到下面代码一行描述这个串的CSS信息:

<p class="LargeTitle">

 这个声明本质上是说,“使用CSS信息在LargeTitle部分下描述”。

 因此CSS信息是如何包括的?如果你观察ProjectPublish.xsl的顶部,你将看到这个转换文件将生成如下HTML。

<link href="content\WebPublish.css" rel="stylesheet" type="text/css"/>

 要注意这个代码“content\Webpublish.css”。当生成输出时,这里是真正的CSS文件将存储的地方。因此,现在要问的问题是:“CSS信息最初存储在哪里呢?”CSS文件最初是另外一个转换文件叫做Css.xsl,它可以在下面地址找到:

plugins/com.ibm.xtools.publish.uml2_6.0.0/resources

 观察我们找到的LargeTitle文件:

.LargeTitle
{
font-size:large;
font-weight:600;
}

Change this to something like:

.LargeTitle
{
color: #ff0000;
font-family: Helvetica;
font-size: 18pt;
text-decoration : underline;
}

 保存文件并生成你的模型。现在你应该有一个新的首面显示你定制的图片,并且用一种大号红色带下划线的字体显示 published models 。

 修改元件报告
  现在你将看到如何定制一个模型元件的外形、感觉和内容(本例中,修改为UML Attribute元件生成的输出)。要做这些,创建一个模型,该模型有一个类包含至少一个属性(如图5所示)。


  图5: 包含一个属性的类的模型

 第一步是改变属性 A1的详细资料的默认输出。通常——如果HTML为模型而生成——将出现如图6所示的输出。


  图6: 属性的默认HTML输出

 让我们通过如下步骤把它变得时髦些:

 把元件标题从元件名改成元件的全名 (FQN)
  改变签名字体
  用浅蓝色勾勒表格边框
  要完成这些内容,XSL必须被修改。首先寻找NamedElementContent.xsl文件,该文件位于如下路径:

...\plugins\com.ibm.xtools.publish.uml2_6.0.0\resources\uml2content\

 这个文件负责大多数的元件转换详细资料,因为大多数模型元件有这类似的内部结构。一旦你打开这个文件,搜索OwnedAttribute,你应该可以找到六个入口。XSL文件的这些区域代表与属性元件相关的转换代码。

 注意:XSL称UML属性为OwnedAttribute, 因为属性的中间XML (可扩展标志性语言)文件节点被称为‘OwnedAttribute’。 这里是你的XSL为属性处理的中间XML的一个片段:

...
<ownedAttribute name="A1" publish:icon="593409.jpeg"
publish:qualifiedname="ClassModel::Package1::C1::A1"
...
</<ownedAttribute>
...

在此你感兴趣的是属性的详细资料,因此继续查找如下注释:

<!-- Attribute Details Table -->


现在看在 <!-- Attribute Details Table --> 之下的几行内容:
<a name="attribute{@xmi:id}">
<xsl:value-of select="@name"/>
</a>


将它改成:
<a name="attribute{@xmi:id}">
<xsl:value-of select="@publish:qualifiedname"/>
</a>

 它将使我们得到OwnedAttribute标签的FQN 属性。

 注意:了有效的调整 XSL,你需要理解它将处理的内容。要这样做,你可以查看中间形式。到你发布模型的地方并向内容目录下看,在那里你将发现一系列HTML和XML文件。XML文件代表由XSL处理的模型。你可以利用XML编辑器检查XML来寻找有关处理内容的信息。在这个例子中, 为属性查找中间数据的过程显示,全名是如何被记录的。标签属性 publish:qualifiedname包含了这些信息。要得到更多信息,查看后面的 深入观察模型发布的详细资料部分。

 接下来,往后看这段代码的下面几行,你将找到XSL代码部分,这些代码将生成属性签名。要改变属性签名的字体,编辑下面几行:


<pre>
<xsl:value-of select="publish:properties/publish:property[@name='Visibility']/@publish:value"/>
<xsl:text> </xsl:text>
<xsl:apply-templates select="./publish:properties/publish:property[@name='Type']"/>
<xsl:value-of select="@name"/>
</pre>

 特别地,你对 <pre> HTML标签感兴趣。既然我们的目的是增加一种字体和一种颜色,这看起来适合使用CSS信息的地方。此外,你希望编辑Css.xsl文件。在我们的源文件夹根部找到这个文件,编辑Css.xsl文件并增加:


.AttributeSig
{
font-weight:500;
font-size:larger;
color:#0099FF;
}

 现在保存Css.xsl文件。

 然后回到NamedElementContent.xsl文件并编辑 <pre>HTML标签,将它改为:

<pre class="AttributeSig">

 这将引入我们的样式信息,因此当HTML生成时,签名将显示为蓝色。

 最后,让我们改变表格的颜色。要改变表格颜色,在我们刚编辑过的代码下面几行的如下注释。

<!-- Output the properties table -->
<xsl:apply-templates select="publish:properties">
<xsl:with-param name="indentCount" select="1"/>
<xsl:with-param name="includeTitle" select="false()"/>
</xsl:apply-templates>

 注意:在文件中有两个注释叫 <!-- Output the properties table --> ,其中你想要的就在刚编辑过的代码下面几行。

 由代码向模板发出命令,模板与调用签名相匹配。在本列中,模板可以在resources\utility目录中的UML2Utility.xsl文件中找到。在UML2Utility.xsl中寻找下面的内容:

<xsl:template name="outputPropertyTable" match="publish:properties">

 一旦你找到模板,在主机中寻找如下信息:

<table class="PropertiesTable" cellpadding="4" cellspacing="0" border="1">

 在这个例子中,你需要增加另一个属性到标签,所以改变如下行:

<table class="PropertiesTable" cellpadding="4" cellspacing="0" border="1" BORDERCOLOR="#0099FF">


  注意,如果你想要改变表格中文本的颜色,可以简单的编辑PropertiesTable CSS入口。

 你的工作最终成果如下图7所示。


  图7: 定制的输出


  深入观察模型发布的详细资料
  本文的剩余部分介绍了结构和设计的详细资料,并提供更多关于在模型发布 XSl环境中工作的情况。这意味着作为定制和使用XSL框架的更深入的资源。

 模型是如何在一个nutshell里发布的呢?
  发布一个模型有一系列步骤,我们将简要的讨论。

 要发布一个模型你需要按照如下步骤:

 创建你的模型
  选择模型元件
  在菜单中点击 Modeling > Publish
  在这里模型已经发布了,程序建立了一个Document Object Model (DOM)并且将其写入中间的XML文件(数据)。这个中间的XML数据随后被XSL模板使用,XSL轮流生成HTML版本的模型,并展现在浏览器里。图8说明了这个过程。


  图8: 从模型到HTML页面

 注意到中间的XML文件是从模型的各个程序包中创建的。根XML文件按照这种习惯命名:

__u0xoBbwEdmVsY8gwr-g8A_root.xml

 每一系列字母被生成,如Globally Unique Identifier (GUID),以证明这个文件的名字是唯一的。

 可见的布局元件
  这部分简要的描述了可见元件是如何与物理文件系统布局相关联的。这将帮助你理解物理XSL文件布局和事物是如何正确工作,以建立一个发布的模型。

 让我们看看你的模型(如图9所示)。


  图9: 模型结构

 图10说明模型发布后的HTML开始页面。


  图10: HTML开始页面

 当你点击模型链接时,在本例中是jdk17rev,窗口显示模型的详细资料。详细资料由框架组成(如下图11所示),包含三个主要框架:

Package Navigation
All Elements
Element Context


  图11: 模型详细资料

 Element Context框架由一个HTML页面(见图12)组成,包含:

 一个导航条
  我们查看的元件的详细资料
  如果可能,还有包含子系统的元件书签,如一个类的属性和操作。


  图12: Element context


  物理文件系统布局
  XSL文件存储在产品安装路径下;在Linux (同样在 Microsoft? Windows?操作系统),可以在如下的插件程序路径找到:

[Product Install Directory]/rsm/eclipse/plugins/com.ibm.xtools.publish.uml2_6.0.0

 如前文所述,由于安装路径不同,com.ibm.xtools.publish.uml2_6.0.0可能存储在不同路径下。

 当你找到插件程序后,转到资源目录:

../com.ibm.xtools.publish.uml2_6.0.0/resources

 从这里你将看到如图13所示的结构:


  图13: 物理文件系统布局

 表2在一个非常高的层面描述各个文件夹的作用或内容。表3至7,详细展示这些文件夹。

 文件夹和文件布局的总体回顾

文件夹名字 描述
(现在的目录, 举例来说 /resources/) 包含顶层的XSL文件,完成以下事情:建立 html 文件结构,描述 HTML 元件样式布局,定义全局变量,而且包含顶层XSL进入点
l10n 为一种给定语言的字串表
Reports
产生报告的报告模板
Uml2content 模型元件类型- 特殊的XSL
Utility 普遍用于XSL转换的应用文件

 表2: 文件夹布局总体回顾

资源文件夹 顶层的文件夹包含其他的文件夹

WebPublish.xsl
XSL应用于模型的进入点。它包括大多数的其他文件(经由导入或包含的XSL命令);看将模板‘/’作为转换的开始点。
Css.xsl 包含样式单信息,它被XSL生成的HTML元件所使用
FileNameGeneration.xsl
用于产生相对路径文件名,使 HTML 连接元件知道从哪里找到物理文件并装载
GenerateAllElementsList.xsl 建立框架的左下帧,在模型中是一列元件
GenerateFrameSet.xsl 建立 HTML 框架的顶层 html 文件
GeneratePackageElementsList.xsl
有责任的为产生元素数据在一个包裹里面发现
GeneratePackageList.xsl
产生列出左上边的导航窗口的HTML文件的包,产生顶层模型或程序包的总体摘要内容页
GlobalVariables.xsl 包含被大多数XSL模板使用的全局变量
NavigationBar.xsl 包含建立顶部帧的模板,它包含基于元件选择上下文的导航信息

 表3: 资源文件详细资料

l10n 文件夹 l10n 目录包含用于生成HTML的语言的特征字串表
Localize.xsl
包含能够从messages.xml文件读取本土化字串的模板
messages.xml 本土化的字串文件

 表4: l10n文件详细资料

报告文件夹 这一个文件夹包含特别报告的实现并展示两份样品报告,MetricsReport.xsl 和ModelDiagramReport.xsl 。
MetricsReport.xsl 统计报告样例
ModelDiagramReport.xsl 图表报告样例
ReportUtility.xsl 例行测试报告工具
Userconfig.xml 用于在PDF文档中嵌入自定义字体(更多细节参见 嵌入字体细节 一节)
Reports.manifest 注册新自定义报告处

 表5: 报告文件详细资料

uml2content文件夹 这一个文件夹包含XSL模板集,用于处于 UML 模型元件的各种不同类型。它的名字通常跟随 UML 元件的名字。本节中最值得注意的文件在下面被列出。
NamedElementContent.xsl
由大多数模板调用以确实地完成关于元件细节的工作。(这像基本类模板,大多数的模板最终调用它)。 它是最大最复杂的模板。
NestedClassifierContent.xsl 直接地以筑巢的 classifiers 工作
OwnedMemberContext.xsl 中间的形式,拥有自身成员观念,而且当这些节点被处理时,这个文件将被调用。
DiagramContent.xsl 产生图表内容

 表6: uml2content文件详细资料

 应用文件夹 包含一些应用文件,包含众所周知的或时常使用的模板
 HTMLUtility.xsl 包含对格式及生成HTML元件,如表,链接和标签的常式
 StringUtility.xsl 为操作串的常式(举例来说,子串替换)
 UML2Utility.xsl
包含操作模型的中间XML的常式,所以你能访问不同的 UML 元件信息,例如方法参数,返回值和元素属性

 表7: 应用文件详细资料

 调试发布XSL,提示和资源的模型
  这部分是为了帮助你找到文件和工具,它们是调试发布XSL所需要的。而不是关于设置和调试的教程。 

 对于大多数简单的改动,你大概可以侥幸地使用文本编辑器编辑XSL,但是对于大型的工作,你大概就需要使用XSL调试器了。

 要调试XSL,你可以采用下面方法的一种:

 给XSL增加输出语句(XSL消息,或者类似的内置XSL常式)
  使用编辑器/调试器
  这两者有各自适用的时候,但如果你需要一个成熟的编辑器或者调试器,市场上有几个可供选择,它们有不同的功能等级,操作和价格范围。我们知道的一些是:

 编辑器/调试器

http://www.oxygenxml.com
http://www.xmlspy.com
http://xmlbuddy.com


  注意:我们留下这些由你决定它们是否有用

 要调试XSL你需要一些东西:

 当模型发布时生成的中间的XML
  XSL转换文件
  一个调试器
  中间的XML文件由模型中的每个程序包生成。根XML文件名依照下面的方式命合,可以通过最后的 _root.xml 来识别:

__u0xoBbwEdmVsY8gwr-g8A_root.xml

 我们前面已经讨论过XSL,你当然知道如何使用调试器。

 

 

版权所有:UML软件工程组织