Informazioni sul parser del modello Gemelli digitali

Il linguaggio DTDL (Digital Twins Definition Language) è descritto nella specifica DTDL. Gli utenti possono usare il parser del modello di Gemelli digitali NuGet pacchetto per convalidare ed eseguire query su un modello definito in più file.

Installare il parser del modello DTDL

Il parser è disponibile in NuGet.org con l'ID Microsoft.Azure.DigitalTwins.Parser. Per installare il parser, usare qualsiasi strumento di gestione pacchetti compatibile NuGet, ad esempio quello in Visual Studio o nell'interfaccia della dotnet riga di comando.

dotnet add package Microsoft.Azure.DigitalTwins.Parser

Nota

Al momento della scrittura, la versione del parser è 3.12.7.

Usare il parser per convalidare un modello

Un modello può essere composto da una o più interfacce descritte nei file JSON. È possibile usare il parser per caricare tutti i file in una determinata cartella e usare il parser per convalidare tutti i file nel suo complesso, inclusi eventuali riferimenti tra i file:

  1. Creare un IEnumerable<string> oggetto con un elenco di tutti i contenuti del modello:

    using System.IO;
    
    string folder = @"c:\myModels\";
    string filespec = "*.json";
    
    List<string> modelJson = new List<string>();
    foreach (string filename in Directory.GetFiles(folder, filespec))
    {
        using StreamReader modelReader = new StreamReader(filename);
        modelJson.Add(modelReader.ReadToEnd());
    }
    
  2. Creare un'istanza di ModelParser e chiamare ParseAsync:

    using Microsoft.Azure.DigitalTwins.Parser;
    
    ModelParser modelParser = new ModelParser();
    IReadOnlyDictionary<Dtmi, DTEntityInfo> parseResult = await modelParser.ParseAsync(modelJson);
    
  3. Verificare se sono presenti errori di convalida. Se il parser rileva eventuali errori, genera un'eccezione ParsingException con un elenco di errori:

    try
    {
        IReadOnlyDictionary<Dtmi, DTEntityInfo> parseResult = await modelParser.ParseAsync(modelJson);
    }
    catch (ParsingException pex)
    {
        Console.WriteLine(pex.Message);
        foreach (var err in pex.Errors)
        {
            Console.WriteLine(err.PrimaryID);
            Console.WriteLine(err.Message);
        }
    }
    
  4. Esaminare l'oggetto Model. Se la convalida ha esito positivo, è possibile usare l'API del parser del modello per esaminare il modello. Il frammento di codice seguente illustra come scorrere tutti i modelli analizzati e visualizzare le proprietà esistenti:

    foreach (var item in parseResult)
    {
        Console.WriteLine($"\t{item.Key}");
        Console.WriteLine($"\t{item.Value.DisplayName?.Values.FirstOrDefault()}");
    }
    

Passaggi successivi

L'API del parser del modello esaminata in questo articolo consente a molti scenari di automatizzare o convalidare le attività che dipendono dai modelli DTDL. Ad esempio, è possibile compilare dinamicamente un'interfaccia utente dalle informazioni nel modello.