前页 后页

NIEM模式示例

该页面从头到尾概述了定义新的NIEM兼容模式的过程。

导入NIEM框架包

如本文所述,在Enterprise Architect使用NIEM建模始于NIEM技术架构委员会和对象管理组NIEM-UML规范定义的标准类型。这些可从我们的可重用资产服务器和模型模式向导中获得。

要将它们导入模型:

  • 打开“模型向导”,进入“模型模式”页面
  • 找到视角“ NIEM 3和4”
  • 选择您的模型所需的软件包
  • 单击“创建图案”以将选定的图案导入模型。
注意:
  • 所有NIEM 3或4模型都需要NIEM MPD Types软件包以及NIEM Reference Model软件包之一
  • 所有NIEM 2.1模型都需要NIEM 2.1参考模型包,但不需要MPD类型包,因为NIEM 2.1 MPD图工具箱中提供了NIEM 2.1 MPD元素。

零件

细节

NIEM框架

NIEM的功能主要来自广泛的类型库,您可以使用它们来构建自己的模式。 Enterprise Architect为NIEM 4提供了完整的NIEM框架,以及所有版本的NIEM3。这些框架都可以从“模型向导”的“模型模式”页面获得。

本教程使用的是NIEM 4.0框架,因此请选择该导入模式。

NIEM-UML的型号包装说明类型

用户定义的NIEM架构围绕模型包描述(MPD)构建,MPD为架构的使用者定义如何使用所包含的各种XSD文件以及定义什么消息类型。

在UML中UML ,将使用UML概要文件中定义的多个类的实例创建MPD。 Enterprise Architect在“模型向导”的“模型模式”页面上提供的包中提供了这些类。

所有NIEM 3和NIEM 4型号都将需要这些MPD类型,因此请选择NIEM MPD Types模式进行导入。

创建模型包描述

以前,已经描述了NIEM建模所需的框架软件包。模型向导还提供了一个程序包,可作为定义MPD的便捷起点。将其导入模型后,您将找到一个包含MPD类型实例的图,其运行状态设置为显示您最可能需要设置的核心属性。

本部分描述了从模式中获取示例MPD并创建“ Hello World”样式消息的过程,在此过程中,将基于面部图像请求个性化消息。响应将是被拍照者的身份和针对他们的个性化消息。

零件

描述

模型包描述元数据

Pattern中的顶级对象是ModelPackageDescription类的实例。 MPD的名称是对象本身的名称。所有其他属性都在对象的运行状态中。

此图显示了MPD在提供真实信息后的外观。

NIEM-UML建议mpdBaseURI的最后一部分与MPD的名称匹配,并指定将mpdVersionID附加到mpdBaseURI上以生成生成的mpdURI。本示例遵循该约定。

模式将mpdClassCode的值默认为'iepd'。这意味着MPD旨在代表信息交换包文档(IEPD)。这是最常见的MPD类型,也是我们要创建的类型,因此保留了默认值。

定义的文件类型

IEPD有望定义一种或多种文档类型。每个实例将是一个名为“ IEPConformance Target”的IEPConformanceTargetType实例。提供的模型模式已经包括其中之一,但是我们需要第二个模型,如下所示:

请注意QualifiedNamesType的实例,其与PropertyHolder具有qualifiedName关系。这指定正在描述的文档的顶层将是所包含属性之一的元素。 “ 创建NIEM数据模型 ”主题中的“ 创建扩展包 ”部分介绍了如何定义它。现在,空类型就足够了。

包装使用

将模型包描述与信息模型联系起来的关系指定了要使用此MPD生成哪些模式文件。在此示例中,我们将使用来自两个不同NIEM名称空间的类型。为此,我们首先为每个名称创建一个InformationModel包,其中“名称空间标记值”与原始名称匹配,并且将目的设置为“子集”。我们还需要一个扩展包,在其中可以定义自己的类型以及如何使用NIEM类型。

此图显示了外观:

所使用的关系还指定了如何使用Package以及该Package定义的架构的相对路径。

其他档案

NIEM希望所有IEPD软件包都至少包含一个变更日志和一个自述文件,但是还支持其他几种工件。在Enterprise Architect ,每一个都是使用与工件的Enterprise Architect型关系定义的。与打包使用一样,该关系指定了文件的位置。

在此图像中,为每种文档类型描述了ReadMe,ChangeLog和示例文档。这会将有关这些文件的信息添加到目标目录文件中。这些文件不会由Enterprise Architect创建,其内容超出了本教程的范围。

子集NIEM命名空间

现在已经完成了“模型包描述”,但是我们有三个空的“信息模型包”。前两个应通过从NIEM框架包中的名称空间中选择类型和属性来填充。

Starter Model模式包括一个Schema Composer Artifact,用于指定子集。双击它以打开Schema Composer并开始子设置过程。

我们的请求消息指定它将发送用于面部识别的面部图像。为此,我们需要从Biometrics Package中将适当的类型子集化。首先在NIEM 4.0参考模型内的Domains \ Biom包中找到FaceImageType类型。将此类型拖到Schema Composer中。继承自该类型的超类型将自动添加到Schema Composer。

我们的回复消息需要“ niem-core”包中的PersonType。也将此类型拖到Schema Composer上。

该图像显示了在NIEM 4.0参考模型中跨多个名称空间选择的类型和属性的子集:

选择所需的类型后,即可生成子集。出现提示时,选择将在其中生成子集名称空间Packages的 Package。生成后,子程序包中的类应类似于以下内容:

现在,我们可以创建一个NIEM PIM图,并将所有子集类放在该图上,以产生类似于以下内容的内容:

创建扩展类型

在前面描述MPD时,我们引用了一个PropertyHolder,其中包含我们两条消息的可能文档根。既然我们已经定义了子包,我们就可以定义这些文档的根了。因为我们仅创建两种简单的文档类型,所以只需为每个消息设置一个PropertyHolder和ObjectType。 ObjectTypes链接到我们从NIEM框架中选择的类型,以描述每条消息的内容,如下所示:

产生IEPD

右键单击ModelPackageDescription的实例。

选择“专业化| NIEM |生成NIEM模式”。

该对话框显示了标准NIEM工件以及可以作为模式生成的链接名称空间的列表。设置目标目录,然后单击“生成”按钮以创建建模的MPD。

学到更多