EMF 和 UML 数据集的其他 XPath 函数

除了 XPath 1.0 核心函数库和 JET 指定的 XPath 函数之外,下列函数也可用于 EMF 和 UML 数据集的表和列映射。
注: 在 XPath 语句中使用返回集合的函数时,请将集合该视为基于 1 的带索引集合。

Collection<Diagram> getDiagrams (xpath)

此函数采用一个或多个 UML 元素的 XPath 表达式,并返回这些元素所包含的 UML 图的集合。

自变量:
xpath:一个或多个 UML 元素的 XPath 表达式
结果:
指定的 UML 元素包含的 UML 图集合
应用:
在“行映射”页面上,使用此函数来生成 UML 图的集合。
在“列映射”页面上,使用此函数来进一步查询该集合(例如,为了获取该集合的 count 值)。
此函数可用于 UML 驱动程序。
示例:
以下示例将返回模型中的所有图:

     getDiagrams( //*)

返回顶部

Blob getDiagramImage (xpath, [resWidth], [resHeight])

此函数采用图元素的 XPath 表达式,并返回图像数据的 BLOB,如果指定了最大分辨率,那么该 BLOB 受限于最大分辨率。

自变量:
xpath:图元素的 XPath 表达式
resWidth (optional):表示最大分辨率宽度(以像素计)的 int
resHeight (optional):表示最大分辨率高度(以像素计)的 int
结果:
图像数据的 BLOB
应用:
在“列映射”页面上使用此函数来设置图像列。可以将该列用作动态图像元素的输入。使用可选的最大分辨率参数来控制呈现图像时所需的内存。分辨率越低,那么所需的内存就越少;但是,图像质量也会较差。
可以省略这两个可选自变量,也可以对它们指定值 -1,以指示未对维度指定最大分辨率。要使报告更灵活,请将分辨率值以报告参数的形式展现给用户,而不是将这些值进行硬编码。
如果安装了 oda-diagrams 插件,那么此函数可用于 UML 驱动程序和 EMF 驱动程序。
示例:
以下示例将返回没有限制的图像:

     getDiagramImage(.)

以下示例将返回与上一示例相同的结果:

     getDiagramImage(., -1, -1)

以下示例将返回最大分辨率为 800 x 600 像素的图像:

     getDiagramImage(., 800, 600)

以下示例将使用报告用户指定的最大分辨率返回图像:

     getDiagramImage(., $resWidth, $resHeight)

返回顶部

String getDiagramHtmlImage (xpath, genPath, [tileWidth], [tileHeight])

此函数采用图元素的 XPath 表达式,并返回一个表示 HTML 代码片段的字符串,该片段用于呈现平铺方式的图像。

自变量:
xpath:图元素的 XPath 表达式
genPath:用于平铺生成的文件系统上临时目录的路径
tileWidth (optional):图像平铺的最大宽度(以像素计)
tileHeight (optional):图像平铺的最大高度(以像素计)
应用:
在“列映射”页面上使用此函数来设置图像列。可以将该列用作动态文本 (HTML) 元素的输入。此函数通过将图像分割成多个平铺部分来呈现图像,平铺部分的大小由可选参数 tileWidth 和 tileHeight 指定。
可以省略这些可选参数,也可以对它们指定值 -1,以指示缺省平铺大小。将在指定的 genPath 文件夹中生成平铺图像。调用此函数后,不会清除此文件夹,重复调用会覆盖先前图像而不发出警告。使用平铺大小来控制呈现图时所需的最大内存。平铺大小越小,那么所需的内存就越少;但是,平铺数目会较大。
仅将此函数与不限制页大小的报告输出格式(例如,HTML)配合使用。
要使报告更灵活,请将 genPath 和 tile-size 值以报告参数的形式展现给用户,而不是将这些值进行硬编码。
如果安装了 oda-diagrams 插件,那么此函数可用于 UML 驱动程序和 EMF 驱动程序。
示例:
以下示例将使用缺省平铺大小来分割图像:

     getDiagramHtmlImage(., "c:/temp")

以下示例将返回与上一示例相同的结果:

     getDiagramHtmlImage(., "c:/temp", -1, -1)

以下示例将使用平铺大小 1000 x 1000 像素来分割图像:

     getDiagramHtmlImage(., “c:/temp”, 1000, 1000)

返回顶部

String getXMIID (xpath)

此函数采用元素的 XPath 表达式,并返回元素的 XMI 标识值。

自变量
xpath:元素的 XPath 表达式
结果:
元素的 XMI 标识值
应用:
在“列映射”页面上使用此函数。
此函数可用于 UML 驱动程序和 EMF 驱动程序。
示例
getXMIID(.)
返回顶部

String getXMIType (xpath)

此函数采用元素的 XPath 表达式,并返回元素的 XMI 类型值。

自变量:
xpath:元素的 XPath 表达式
结果:
元素的 XMI 类型
应用:
在“列映射”页面上使用此函数。
此函数可用于 UML 驱动程序和 EMF 驱动程序。
示例:
以下示例将返回当前元素的 XMI 类型。
getXMItype(.)
返回顶部

String getURI (xpath)

此函数采用一个解析为单个元素的 XPath 表达式,并返回该元素的 URI 的字符串表示。URI 在资源之间唯一,这使它成为要用于连接数据集的相应列。

自变量:
xpath:单个元素的 XPath 表达式
结果:
元素的 URI 字符串
应用:
在“列映射”页面上使用此函数。
此函数可用于 UML 驱动程序和 EMF 驱动程序。
示例:
以下示例将返回一个表示当前元素的 URI 的字符串:

     getURI(.)

返回顶部

EObject resolveURI (uri)

此函数解析指定的 URI 并返回对应的元素。

自变量:
uri:元素的 URI
结果:
具有指定 URI 的元素
应用:
在“列映射”页面或“行映射”页面上使用此函数。
此函数可用于 UML 驱动程序和 EMF 驱动程序。
示例:
以下示例将解析作为数据集参数传递的元素的 URI:

     resolveURI($element)

注:

使用 resolveURI 函数时,请考虑清除“行映射”页面中的评估每个数据源实例模型复选框。该决策依赖于表达式中的导航:

  • 如果表达式包括从模型根开始的导航,请不要清除该复选框。如果在此实例中清除该复选框,那么从根开始的导航将失败,并且会发生异常。
  • 在其他情况下,请清除该复选框。

    通常情况下,将以循环方式对实例模型执行数据集中的行映射查询,这些模型在绑定至该数据集的数据源中定义。换句话说,将对实例模型循环执行查询,对每个模型执行查询时,会将查询上下文更改为该模型并收集所产生的行对象。但是,借助 resolveURI 函数,行映射查询可以改为使用对象参数作为查询的上下文,如示例 resolveURI($class)/ownedAttribute 中所示。在这种查询中,不会存在像在典型查询中一样从模型的根开始的导航。这意味着,无论上下文模型是什么,执行这种查询所产生结果都相同。这可能导致性能问题,因为将对每个实例模型反复执行查询,而结果集不会更改。

返回顶部

Collection<EObject> instanceOf (xpath, type)

此函数采用 XPath 表达式和类型字符串,并返回找到的该类型所有元素的集合。

自变量:
xpath:一个或多个元素的 XPath 表达式
type:格式为 (packagePrefix:typeName) 的字符串,表示限定的元类型
结果:
符合指定类型的元素的子集合
应用:
在“列映射”页面或“行映射”页面上使用此函数。
在“列映射”页面上,使用此函数来返回元素集合,然后使用其他 XPath 表达式(例如,count)来查询简单值。
此函数可用于 UML 驱动程序和 EMF 驱动程序。
示例:
以下示例将返回类型为 uml:Class 的所有元素:

     instanceOf(//*, "uml:Class")

返回顶部

Collection<EObject> oclQuery (xpath, boolean_ocl_expression)

此函数采用 XPath 表达式和布尔值 OCL 查询表达式,并返回 XPath 表达式中 OCL 查询对其返回了 true 的元素的子集。

自变量:
xpath:XPath 表达式
boolean_ocl_expression:布尔值 OCL 查询字符串
结果:
符合指定类型的元素的子集合
应用:
在“列映射”页面或“行映射”页面上使用此函数。
在“列映射”页面上,使用此函数来返回元素集合,然后使用其他 XPath 表达式(例如,count)来查询简单值。
此函数可用于 UML 驱动程序和 EMF 驱动程序。
示例:
以下示例将返回类型为 uml::Dependency 的所有元素:

     oclQuery(//*, "self.oclIsKindOf(uml::Dependency)")

返回顶部

Object oclEvaluate (xpath , ocl_expression)

此函数采用单个元素的 XPath 表达式和 OCL 查询字符串,并在评估对该元素的查询后返回结果。

自变量:
xpath:单个元素的 XPath 表达式
ocl_expression:OCL 查询字符串
结果:
对指定的元素计算 OCL 表达式的结果
应用:
在“列映射”页面或“行映射”页面上使用此函数来对元素计算 OCL 表达式。
此函数可用于 UML 驱动程序和 EMF 驱动程序。
示例:
以下示例将返回模型中的所有嵌套包(“行映射”页面):

     oclEvaluate(Model, ”self.nestedPackages”)

以下示例将返回元素名称(“列映射”页面):

     oclEvaluate(., "name")

返回顶部

Collection<Element> getElementsWithStereotype (xpath, stereotype)

此函数采用一个或多个 UML 元素的 XPath 表达式和一种构造型,并返回具有给定构造型的元素的集合。

自变量:
xpath:一个或多个 UML 元素的 XPath 表达式
stereotype:构造型的标准名称,格式为 (profileName::stereotypeName)
结果:
应用了指定构造型的元素的子集合
应用:
在“列映射”页面或“行映射”页面上使用此函数。
在“列映射”页面上,使用此函数来获取元素集合,然后使用其他 XPath 表达式(例如,count)来查询简单值。
此函数仅可用于 UML 驱动程序。
示例:
以下示例将返回类型模型中作为业务目标的构造型的所有元素:

          getElementsWithSterotype(//*, "Business Modeling::BusinessGoal")

返回顶部

Object getStereotypePropertyValue (xpath, property)

此函数采用单个 UML 元素的 XPath 表达式和一个构造型属性,并返回给定构造型属性的值。

自变量:
xpath:单个 UML 元素的 XPath 表达式
property:构造型属性的标准名称,格式为 (profileName::stereotypeName::propertyName)
应用:
在“列映射”页面或“行映射”页面上使用此函数。
此函数仅可用于 UML 驱动程序。
示例:
以下示例将返回表示业务规则种类的枚举文字,句点表示该业务规则:

     getStereotypePropertyValue( . , "Business Modeling::BusinessRule::Kind")

返回顶部
注: 某些信息(例如与 Eclipse 文档或开发者指南的链接)只能从随产品安装的帮助主题中获取。

反馈