Référence d'extension de validation DTMI

Ajoutez une extension de validation DTMI à votre modèle de jumeau numérique afin de pouvoir définir des règles de validation de données à l'aide des propriétés de validation de schéma JSON.

Dans les modèles jumeaux numériques, utilisez les spécifications de validation de schéma JSON pour ajouter des propriétés de validation aux données ingérées. Pour savoir comment utiliser l'extension DTMI dans votre modèle de jumeau numérique, voir Scénario : Ajouter une validation de schéma JSON à un modèle de jumeau numérique.

  • Pour les propriétés primitives telles que les chaînes ou les entiers, les contraintes de validation sont ajoutées en tant que propriétés apparentées à côté du champ de schéma dans la propriété ou la définition de télémétrie.
  • Pour les tableaux, les validations s'appliquent au tableau lui-même, par exemple minItems ou uniqueItems, sont définies comme des éléments apparentés du schéma de tableau, tandis que les contraintes qui s'appliquent à chaque élément, telles que les intervalles de valeurs ou les modèles de chaîne, qui sont placés dans le schéma de tableau, en tant que propriétés apparentées à elementSchema.

La plate-forme IoT prend en charge les mots clés de validation de schéma JSON suivants :

  • Instances numériques, notamment : number et integer
  • Chaînes : "schema": "string"
  • Tableaux minItem, maxItems et uniqueItems
Note

Pour la validation exclusiveMinimum et exclusiveMaximum, lorsque vous utilisez le type de schéma unsignedLong, les valeurs peuvent être converties en doubles si elles dépassent l'intervalle d'une longueur standard. Cette conversion peut entraîner une perte de précision, de sorte que les valeurs proches de exclusiveMinimum ou exclusiveMaximum risquent de ne pas réussir la validation même si elles semblent valides.
ValidationType de donnéesValide sur ces @typesS'applique aux types de schémaExemples

exclusiveMinimum

exclusiveMaximum

Nombre

Tableau

CommandRequest

CommandResponse

Enum

Champ

MapValue

Propriété

Télémétrie

  • Schémas primitifs (numériques)
  • Tableau de schémas primitifs (numériques)
{
   "@type": "Telemetry",
   "name": "minMaxProperty",
   "schema": "integer",
   "exclusiveMinimum": 0,
   "exclusiveMaximum": 100
}
{
   "@type": "Property",
   "name": "arrayDataProperty",
   "schema": {
      "@type": "Array",
      "elementSchema": "integer",
      "exclusiveMinimum": 1,
      "exclusiveMaximum": 10
}

minimum

maximum

Nombre

Tableau

CommandRequest

CommandResponse

Enum

Champ

MapValue

Propriété

Télémétrie

  • Schémas primitifs (numériques)
  • Tableau de schémas primitifs (numériques)
{
   "@type": "Telemetry",
   "name": "minMaxProperty",
   "schema": "integer",
   "minimum": 0,
   "maximum": 100
}
{
   "@type": "Property",
   "name": "arrayDataProperty",
   "schema": {
      "@type": "Array",
      "elementSchema": "integer",
      "minimum": 1,
      "maximum": 10
}

minLength

maxLength

Entier

Tableau

CommandRequest

CommandResponse

Enum

Champ

MapKey

MapValue

Propriété

Télémétrie

  • (Chaîne) Schémas primitifs
  • Tableau de schémas primitifs (chaîne)
{
   "@type": "Telemetry",
   "name": "minMaxLengthProperty",
   "schema": "string",
   "minLength": 0,
   "maxLength": 2048
}
{
   "@type": "Property",
   "name": "arrayDataProperty",
   "schema": {
      "@type": "Array",
      "elementSchema": "string",
      "minLength": 1,
      "maxLength": 2048
}
multipleOfNombre

Tableau

CommandRequest

CommandResponse

Enum

Champ

MapValue

Propriété

Télémétrie

  • Schémas primitifs (numériques)
  • Tableaux de schémas primitifs (numériques)
{
   "@type": "Telemetry",
   "name": "minMaxProperty",
   "schema": "integer",
   "multipleOf": 2
}
{
   "@type": "Property",
   "name": "arrayDataProperty",
   "schema": {
      "@type": "Array",
      "elementSchema": "integer",
      "multipleOf": 2
}
patternChaîne

Tableau

CommandRequest

CommandResponse

Enum

Champ

MapKey

MapValue

Propriété

Télémétrie

  • (Chaîne) Schémas primitifs
  • Tableau de schémas primitifs (chaîne)
{
   "@type": "Telemetry",
   "name": "patternProperty",
   "schema": "string",
   "pattern": "^[a-zA-Z]+$"
}
{
   "@type": "Property",
   "name": "arrayDataProperty",
   "schema": {
      "@type": "Array",
      "elementSchema": "string",
      "pattern": "^[a-zA-Z]+$"
}

minItems

maxItems

Entier

Tableau

CommandRequest

CommandResponse

Champ

MapValue

Propriété

Télémétrie

Schéma de tableau (tous les types primitifs)
{
   "@type": "Property",
   "name": "arrayDataProperty",
   "schema": {
      "@type": "Array",
      "elementSchema": "string"
   },
   "minItems": 1,
   "maxItems": 10
}
uniqueItemsBoolean

Tableau

CommandRequest

CommandResponse

Champ

MapValue

Propriété

Télémétrie

Schéma de tableau (tous les types primitifs)
{
   "@type": "Property",
   "name": "arrayDataProperty",
   "schema": {
      "@type": "Array",
      "elementSchema": "string"
   },
   "uniqueItems": true
}