

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 数据模型架构
<a name="data-model-schemas"></a>

托管集成支持两种架构类型：*功能*和*类型定义*。如果要创建自定义数据模型，则使用 JSON 架构文档来定义任一类型的架构。每个架构文档的长度限制为 50,000 个字符。

## 能力架构
<a name="data-model-schemas-capability"></a>

*功能*是代表端点内特定功能的基本构建块。借助功能，您可以使用属性、操作和事件对设备状态和行为进行建模。*属性*使您可以灵活地使用任何声明性数据类型对设备的状态属性进行建模。*操作*和*事件*对设备的行为进行建模，包括设备可以执行的命令和可以报告的信号。

下面显示了能力架构的高级结构。

```
Capability
  |
  |-- Action
  |-- Event      
  |-- Property
```

处理建议  
表示与设备功能的交互的实体。例如，按铃或查看谁在门口。

事件  
代表来自设备功能的事件的实体。设备可以发送事件以报告事件、警报或来自传感器（例如敲门声）的活动。

属性  
代表设备状态下特定属性的实体。例如，钟声响起或门廊灯亮起

每项功能都包括一个唯一的命名空间标识符、版本信息以及对其用途的描述。架构文档使用语义版本控制来保持向后兼容性，同时启用新功能。

有关更多信息，请参阅 [能力定义架构](schema-for-capability-definitions.md)。

## 类型定义架构
<a name="data-model-schemas-type-definition"></a>

类型定义是一种声明性的结构化数据类型，可实现可重用性和可组合性。它定义了应如何格式化和限制信息。使用类型定义在 IoT 解决方案中创建标准化数据格式。

每个类型定义包括：
+ 唯一的命名空间标识符
+ 标题
+ 说明
+ 定义数据格式和约束条件的属性

类型可以是简单的基元，例如具有定义限制的整数或字符串，也可以是复杂的结构，例如枚举或具有多个字段的自定义对象。类型定义使用 JSON 架构语法来指定约束，包括最小值和最大值、字符串长度以及允许的模式。

有关更多信息，请参阅 [类型定义架构](schema-for-type-definitions.md)。