前页 | 后页 |
架构组成
模式组合是指从模型中提取的A组受限制的元素,它们共同描述了模型中没有等效的唯一实体。通常,模式组合用于生成模式文件,例如 XSD 文件。相反,模型组合用于将材料配置为子集“转换”的基础 - 例如在创建NIEM模型子集时。
定义架构内容
这些步骤将引导您完成在架构配置文件中编写类型的基本过程,并展示如何限制元素的内容以满足消息要求。
添加类
将所需的类元素从浏览器窗口拖到“类”面板中。当你添加一个类时:
- 它的祖先列在中间面板的“继承”部分
- 其属性列在“继承”部分下,每个属性对应一个空白复选框;关联和聚合条目根据连接器上的角色名称命名
- 它的模型结构路径显示在“类”面板下方
选择属性
每当您在“类”列表中选择一个类时,其属性和模型祖先都会列在“属性”列表中。选中每个属性对应的复选框以定义此类型的元素。选择后,属性的类型会自动添加到架构中,出现在“类”列表和右侧的“架构”面板中。
取消选中某个属性时,不会自动删除该类型。可以使用类上下文菜单删除类型。值得注意的是,每次选择一个类时,所有对该类的引用都会显示在状态面板中,让您可以快速审阅任何类的使用情况。
继承
如果您喜欢或预见到在您准备的模式中需要继承,那么首先从祖先开始组合是有意义的,然后在添加子类时重新使用它们。该方法不是一成不变的。您可以随时从继承模型切换到聚合组合,反之亦然。这里简单介绍一下Schema 编辑器中提供的继承。
Schema 编辑器在处理继承方面提供了灵活性。例如,您可以选择从类及其父级中聚合选定的属性,同时选择继承祖父级。但是,当您选择使用继承时,您也选择继承该类型的受限形式。在此列表中选择祖先时,生成的 XML 模式将显示标识此祖先的扩展元素。只能选择一个祖先。
单击更新按钮以验证并保存您的架构配置文件。
如果配置文件有任何问题,它们会在屏幕右上角的状态面板中进行标识。
重新定义的类型
模式组合的常见问题之一是需要能够改变类型描述以满足模式描述的实例的各种需求。例如,车辆可以A其品牌、模型和价格通过卡车类型的元素来描述,但通过年份、模型和颜色可以通过轿车类型的元素来描述。问题是我们可能只有一个实际的Vehicle类可供我们使用。为了解决这个问题, Schema 编辑器允许您克隆Vehicle类并为其命名。然后,您可以将此版本的Vehicle分配属性Vehicle作为其类型的任何属性。创建的类型仅在模式域内可用 -模型未受影响。
要创建类型的新定义,首先在“类”列表中选择类,然后右键单击它并选择“重新定义类型”选项。输入此类型的唯一名称,然后按 Enter 键。然后,您可以像对任何类一样独立定义或限制此类型。
根元素
生成模式时,会生成表示消息的单个顶级元素。这个顶层元素的主体或元素是标记为根元素的类。这些根元素的基数可以调整。要将类标记为根元素或限制其基数,请右键单击列表中的类并使用以下上下文菜单选项:
- 将元素设置为根-根元素构成表示消息/配置文件的顶级元素的主体
- 编辑元素根- 设置最小和最大实例数
- 从元素中删除根属性-从类中删除根标记
- 删除选定的元素- 从架构中删除选定的元素
- 在项目中查找浏览器- 在浏览器窗口中定位并突出显示元素
属性限制
在“属性”列表中,右键单击选定的属性并使用上下文菜单添加、编辑或属性限制。使用特征用于:
- 修改属性基数
- 重新定义属性的类型
- 启用和限制可用于此属性的选项
- 标记要作为内联元素定义发出的属性
- 将要发出的属性标记为“通过参考”
基数
属性的基数可以从其对应的模型进一步限制,但不能减少限制。任何根元素类和任何类属性都可以更改基数。
类型重新定义
当类在Schema 编辑器中重新定义时,它会创建一个新类型。新类型是原始类型的克隆,但具有模式唯一的名称。 A ,Payment 枚举类型可能被重新定义为 CardPayment 以更好地适应模式目的。新类型是对原始类型的限制,因为不能向其添加新属性。其它属性共享此类型并通过在其限制对话框中指定新类型来类似地受到限制。在其他属性的限制下,可以提供重新定义的类型(例如子类型)作为附加的选择元素。
专长
如果存在属性类型的特化,则这些子类型将在“限制”对话框中可用。 When more than one specialization is selected, these will appear as choice elements in the schema.当仅选择一个时,该属性将在模式中显示此子类型。
内联元素
选中A框时,属性类型将作为内联定义发出。
通过参考
属性在模式中A时将采用“按引用”形式。 'By reference' 表单发出一个内联 complexType,它定义了一个名为 'ref' 的类型为 ' string ' 的单个属性。
属性约束- Facets
Schema 编辑器通用配置文件支持构面。分面的来源是属性上的标记值。如果从XML Schema规范中命名了一个约束分面,则该标记值被识别为分面; JSON 验证关键字也被识别。
从XML Schema约束方面:
- 长度
- 最小长度
- 最长长度
- 图案
- 枚举
- 空白
- 最大包容性
- 最大独家
- 分钟独家
- 最少包含
- 总数
- 分数位数
JSON中的验证关键字:
- 数字和整数
- 倍数
- 最低限度
- 最大
- 独家最低
- 独家最大 - 字符串
- 最小长度
- 最长长度
- 图案 - 数组
- minItems
- 最大物品
- 独特的物品