Referência de Extensão de Validação DTMI

Adicione uma extensão de validação DTMI ao seu modelo de gêmeo digital para que você possa definir regras de validação de dados usando propriedades de validação do Esquema JSON.

Em modelos de gêmeos digitais, use Especificações de Validação do Esquema JSON para adicionar propriedades de validação aos dados ingeridos de validação. Para saber como usar a extensão DTMI em seu modelo de gêmeo digital, consulte Cenário: Adicionar Validação de Esquema JSON a um Modelo de Gêmeo Digital.

  • Para propriedades primitivas, como strings ou inteiros, as restrições de validação são adicionadas como propriedades irmãs ao lado do campo de esquema dentro da definição de propriedade ou telemetria.
  • Para matrizes, as validações se aplicam ao próprio array, como minItems ou uniqueItems, são definidas como irmãos do esquema de array, enquanto as restrições que se aplicam a cada elemento, como intervalos de valores ou padrões de string que são colocados dentro do esquema de array, como propriedades irmãs para elementSchema.

A plataforma IoT suporta as seguintes palavras-chave de validação do esquema JSON:

  • Instâncias Numéricas, incluindo: number e integer
  • Strings: "schema": "string"
  • Arrays minItem, maxItems e uniqueItems
Observação

Para a validação exclusiveMinimum e exclusiveMaximum, quando você usa o tipo de esquema unsignedLong, os valores podem ser convertidos em duplos se excederem a faixa de um comprimento padrão. Essa conversão pode resultar em uma perda de precisão, portanto, os valores próximos a exclusiveMinimum ou exclusiveMaximum podem não passar na validação, mesmo que pareçam ser válidos.
ValidaçãoTipo de dadosVálido nestes @typesAplica-se a tipos de esquemaExemplos

exclusiveMinimum

exclusiveMaximum

Número

Array

CommandRequest

CommandResponse

Enumeração

Campo

MapValue

Propriedade

Telemetria

  • 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

Array

CommandRequest

CommandResponse

Enumeração

Campo

MapValue

Propriedade

Telemetria

  • 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

Inteiro

Array

CommandRequest

CommandResponse

Enumeração

Campo

MapKey

MapValue

Propriedade

Telemetria

  • Esquemas Primitivos (String)
  • Matriz de Esquemas Primitivos (String)
{
   "@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

Array

CommandRequest

CommandResponse

Enumeração

Campo

MapValue

Propriedade

Telemetria

  • Esquemas Primitivos (Numéricos)
  • Matrizes de Esquemas Primitivos (Numéricos)
{
   "@type": "Telemetry",
   "name": "minMaxProperty",
   "schema": "integer",
   "multipleOf": 2
}
{
   "@type": "Property",
   "name": "arrayDataProperty",
   "schema": {
      "@type": "Array",
      "elementSchema": "integer",
      "multipleOf": 2
}
patternString

Array

CommandRequest

CommandResponse

Enumeração

Campo

MapKey

MapValue

Propriedade

Telemetria

  • Esquemas Primitivos (String)
  • Matriz de Esquemas Primitivos (String)
{
   "@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

Inteiro

Array

CommandRequest

CommandResponse

Campo

MapValue

Propriedade

Telemetria

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

Array

CommandRequest

CommandResponse

Campo

MapValue

Propriedade

Telemetria

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