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 de jumeaux numériques, utilisez les spécifications de validation de schéma JSON pour ajouter des propriétés de validation aux données incluses de validation. Pour savoir comment utiliser l'extension DTMI dans votre modèle de jumeau numérique, reportez-vous à Scénario : ajout d'une validation de schéma JSON à un modèle de jumeau numérique.

  • Pour les propriétés primitives telles que des chaînes ou des entiers, les contraintes de validation sont ajoutées en tant que propriétés apparentées en regard du champ de schéma dans la définition de propriété ou de télémétrie.
  • Pour les tableaux, les validations s'appliquent au tableau lui-même, telles que minItems ou uniqueItems, sont définies en tant que semblables du schéma du tableau, tandis que les contraintes qui s'appliquent à chaque élément, telles que les plages de valeurs ou les modèles de chaîne placés dans le schéma du tableau, en tant que propriétés semblables à 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
Remarque

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 la plage d'un type long standard. Cette conversion peut entraîner une perte de précision. Par conséquent, les valeurs proches de exclusiveMinimum ou exclusiveMaximum peuvent ne pas réussir la validation, même si elles semblent valides.
ValidationType de donnéesValide sur ces types @typesS'applique aux types de schémaExemples

exclusiveMinimum

exclusiveMaximum

Nombre

Tableau

CommandRequest

CommandResponse

Enumération

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ération

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ération

Champ

MapKey

MapValue

Propriété

Télémétrie

  • Schémas primitifs (chaîne)
  • 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ération

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ération

Champ

MapKey

MapValue

Propriété

Télémétrie

  • Schémas primitifs (chaîne)
  • 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
}
uniqueItemsBooléen

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
}