前页 | 后页 |
架构组成
模式组合是指从模型中抽取的一组受限制的元素,这些元素一起描述了模型中没有等效实体的唯一实体。通常,模式组合用于生成模式文件,例如XSD文件。相反,例如,当创建NIEM模型子集时,模型组成用于将材料配置为子集“变换”的基础。
定义架构内容
这些步骤将引导您完成在Schema配置文件中构成类型的基本过程,并说明如何限制元素的内容以满足消息要求。
添加课程
将所需的Class元素从“浏览器”窗口拖到“ Classes”面板中。添加类时:
- 其祖先列在中间面板的“继承”部分中
- 它的属性在“继承”部分下列出,每个属性旁边都有一个空白复选框。根据连接器上的角色名称来命名关联和聚合条目
- 其模型结构路径显示在“类”面板下方
选择属性
每当您在“类别”列表中选择一个类别时,其属性和模型血统都会列在“属性”列表中。选中每个属性的复选框以定义此类型的元素。选择该属性后,该属性的类型将自动添加到架构中,出现在“类”列表和右侧的“架构”面板中。
取消选中属性后,不会自动删除类型。可以使用“类别”上下文菜单删除类型。值得注意的是,每次选择一个类时,所有对该类的引用都会显示在状态面板中,使您可以快速查看任何类的用法。
遗产
如果您赞成或预见正在准备的架构中需要继承,则首先从祖先开始进行合成,然后在添加子类时重新使用它们是有意义的。该方法并非一成不变。您可以随时从继承模型切换到聚合构成,反之亦然。这是Schema Composer中继承提供的简要说明。
Schema Composer提供了处理继承的灵活性。例如,您可以选择从类及其父级中聚合选定的属性,同时选择继承祖父母。但是,当您选择使用继承时,也选择继承该类型的受限形式。在此列表中选择一个祖先时,生成的XML模式将显示一个标识该祖先的扩展元素。只能选择一个祖先。
单击更新按钮以验证并保存您的架构配置文件。
如果配置文件有任何问题,则会在屏幕右上方的状态面板中将其识别出来。
重新定义的类型
模式组合的常见问题之一是要求能够更改类型描述,以满足模式描述的实例的各种要求。例如,一辆汽车可能用卡车类型的元素描述其品牌,型号和价格 ,而用轿车类型的元素描述其年份,型号和颜色 。问题是我们可能只拥有一种实际的车辆等级。为了解决这个问题,Schema Composer允许您克隆Vehicle Class并为其命名。然后,您可以将此版本的Vehicle分配给以 Vehicle为类型的任何属性。创建的类型仅在架构的范围内可用-模型未更改。
要创建类型的新定义,请首先在“类”列表中选择“类”,然后右键单击它并选择“重新定义类型”选项。输入此类型的唯一名称,然后按Enter键。然后,您可以像定义任何Class一样独立定义或限制此类型。
根元素
生成架构时,将生成表示消息的单个顶级元素。此顶级元素的主体或元素是标记为根元素的类。这些根元素的基数可以调整。要将类标记为根元素或限制其基数,请右键单击列表中的类,然后使用以下上下文菜单选项:
- 将元素设置为根-根元素构成表示消息/配置文件的顶级元素的主体
- 编辑根元素基数-设置最小和最大实例数
- 从元素删除根属性-从类中删除根标记
- 删除选定的元素-从架构中删除选定的元素
- 在项目浏览器中查找-在“浏览器”窗口中找到并突出显示元素
财产限制
在“属性”列表中,右键单击选定的属性,然后使用上下文菜单添加,编辑或删除属性限制。使用此功能可以:
- 修改属性基数
- 重新定义属性的类型
- 启用和限制此属性可用的选择
- 将属性标记为内联元素定义
- 将一个属性标记为“按引用”
基数
可以从模型的对应对象中进一步限制属性的基数,但是它的约束性不能那么宽松。可以为任何根元素Class和任何Class属性更改基数。
类型重新定义
在Schema Composer中重新定义类时,它将创建一个新类型。新类型是原始类型的克隆,但是具有唯一的名称。例如,可能将Payment枚举类型重新定义为CardPayment,以更好地适应模式目的。新类型是原始类型的限制,因为不能向其添加任何新属性。共享该类型并通过在其限制对话框中指定新类型而受到类似限制的其他属性。在其他属性的限制下,可以将重新定义的类型(例如子类型)作为附加选择元素提供。
专长
如果存在属性类型的特殊化,则这些子类型将在“限制”对话框中可用。选择多个专业化时,这些专业化将在架构中显示为选择元素。如果只选择一个,则该属性将在模式中显示此子类型。
内联元素
选中此框时,将以内联定义的形式发送属性类型。
引用
在架构中发出属性时,属性将采用“按引用”形式。 “按引用”形式发出一个内联complexType,它定义一个名为“ ref”且类型为“ string”的单个属性。
属性约束-构面
Schema Composer通用概要文件支持构面。构面的来源是属性上的标记值。如果标记值从XML Schema规范中命名为约束性构面,则将其识别为构面。 JSON验证关键字也可以识别。
从XML架构约束方面:
- 长度
- minLength
- 最长长度
- 模式
- 枚举
- 空白
- maxInclusive
- maxExclusive
- minExclusive
- minInclusive
- totalDigits
- 分数数字
JSON中的验证关键字:
- 数字和整数
-的倍数
-最低
- 最大值
-独家最低
-独家最大 - 弦
-minLength
- 最长长度
-模式 - 数组
-minItems
-maxItems
-uniqueItems