Referencia de extensión de validación de DTMI

Agregue una extensión de validación de DTMI a su modelo gemelo digital para que pueda definir reglas de validación de datos mediante las propiedades de validación del esquema JSON.

En los modelos gemelos digitales, utilice Especificaciones de validación de esquema JSON para agregar propiedades de validación a los datos de validación ingeridos. Para obtener información sobre cómo utilizar la extensión DTMI en su modelo gemelo digital, consulte Escenario: Agregar validación de esquema JSON a un modelo gemelo digital.

  • Para las propiedades primitivas, como cadenas o enteros, las restricciones de validación se agregan como propiedades hermanas junto al campo de esquema dentro de la propiedad o la definición de telemetría.
  • Para las arrays, las validaciones se aplican a la matriz en sí, como minItems o uniqueItems, se definen como hermanos del esquema de matriz, mientras que las restricciones que se aplican a cada elemento, como rangos de valores o patrones de cadena que se colocan dentro del esquema de matriz, como propiedades hermanas de elementSchema.

La plataforma IoT soporta las siguientes palabras clave de validación de esquema JSON:

  • Instancias numéricas, incluidas: number y integer
  • Cadenas: "schema": "string"
  • Matrices minItem, maxItems y uniqueItems
Nota

Para la validación exclusiveMinimum y exclusiveMaximum, al utilizar el tipo de esquema unsignedLong, los valores se pueden convertir en dobles si superan el rango de una longitud estándar. Esta conversión puede provocar una pérdida de precisión, por lo que es posible que los valores cercanos a exclusiveMinimum o exclusiveMaximum no superen la validación aunque parezcan válidos.
ValidaciónTipo de datosVálido en estos @typesSe aplica a los tipos de esquemaEjemplos

exclusiveMinimum

exclusiveMaximum

Número

Matriz

CommandRequest

CommandResponse

Enumeración

Campo

MapValue

Propiedad

Telemetría

  • Esquemas primitivos (numéricos)
  • Matriz de esquemas primitivos (numéricos)
{
   "@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

Número

Matriz

CommandRequest

CommandResponse

Enumeración

Campo

MapValue

Propiedad

Telemetría

  • Esquemas primitivos (numéricos)
  • Matriz de esquemas primitivos (numéricos)
{
   "@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

Entero

Matriz

CommandRequest

CommandResponse

Enumeración

Campo

MapKey

MapValue

Propiedad

Telemetría

  • Esquemas primitivos (cadena)
  • Matriz de esquemas primitivos (cadena)
{
   "@type": "Telemetry",
   "name": "minMaxLengthProperty",
   "schema": "string",
   "minLength": 0,
   "maxLength": 2048
}
{
   "@type": "Property",
   "name": "arrayDataProperty",
   "schema": {
      "@type": "Array",
      "elementSchema": "string",
      "minLength": 1,
      "maxLength": 2048
}
multipleOfNúmero

Matriz

CommandRequest

CommandResponse

Enumeración

Campo

MapValue

Propiedad

Telemetría

  • Esquemas primitivos (numéricos)
  • Matrices de esquemas primitivos (numéricos)
{
   "@type": "Telemetry",
   "name": "minMaxProperty",
   "schema": "integer",
   "multipleOf": 2
}
{
   "@type": "Property",
   "name": "arrayDataProperty",
   "schema": {
      "@type": "Array",
      "elementSchema": "integer",
      "multipleOf": 2
}
patternCadena

Matriz

CommandRequest

CommandResponse

Enumeración

Campo

MapKey

MapValue

Propiedad

Telemetría

  • Esquemas primitivos (cadena)
  • Matriz de esquemas primitivos (cadena)
{
   "@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

Entero

Matriz

CommandRequest

CommandResponse

Campo

MapValue

Propiedad

Telemetría

Esquema de matriz (todos los tipos primitivos)
{
   "@type": "Property",
   "name": "arrayDataProperty",
   "schema": {
      "@type": "Array",
      "elementSchema": "string"
   },
   "minItems": 1,
   "maxItems": 10
}
uniqueItemsBooleano

Matriz

CommandRequest

CommandResponse

Campo

MapValue

Propiedad

Telemetría

Esquema de matriz (todos los tipos primitivos)
{
   "@type": "Property",
   "name": "arrayDataProperty",
   "schema": {
      "@type": "Array",
      "elementSchema": "string"
   },
   "uniqueItems": true
}