前页 | 后页 |
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。