Informationen zum Modellparser „Digital Twins“

Die Digital Twins Definition Language (DTDL) wird unter Digital Twins Definition Language beschrieben. Benutzer können das Digital Twins Model Parser-NuGet-Paket verwenden, um ein Modell zu überprüfen und abzufragen, das in mehreren Dateien definiert ist.

Installieren des DTDL-Modellparsers

Der Parser steht unter NuGet.org mit folgender ID zur Verfügung: Microsoft.Azure.DigitalTwins.Parser. Verwenden Sie zur Installation des Parsers einen kompatiblen NuGet-Paket-Manager, z. B. den in Visual Studio oder in der dotnet-CLI.

dotnet add package Microsoft.Azure.DigitalTwins.Parser

Hinweis

Zum Zeitpunkt der Artikelerstellung lautet die Parser-Version 3.12.7.

Verwenden des Parsers zur Überprüfung eines Modells

Ein Modell kann aus mehreren in JSON-Dateien beschriebenen Schnittstellen bestehen. Sie können den Parser verwenden, um alle Dateien in einem bestimmten Ordner zu laden, und Sie können den Parser verwenden, um alle Dateien als Ganzes zu überprüfen, einschließlich zwischen den Dateien enthaltenen Verweisen:

  1. Erstellen Sie eine IEnumerable<string>-Schnittstelle mit einer Liste aller Modellinhalte:

    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. Instanziieren Sie ModelParser, und rufen Sie ParseAsync auf:

    using Microsoft.Azure.DigitalTwins.Parser;
    
    ModelParser modelParser = new ModelParser();
    IReadOnlyDictionary<Dtmi, DTEntityInfo> parseResult = await modelParser.ParseAsync(modelJson);
    
  3. Überprüfen Sie, ob Überprüfungsfehler auftreten. Wenn der Parser Fehler entdeckt, wird ParsingException mit einer Liste der Fehler zurückgegeben:

    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. Untersuchen Sie Model. Wenn die Überprüfung erfolgreich war, können Sie die Modellparser-API verwenden, um das Modell zu untersuchen. Der folgende Codeausschnitt zeigt, wie Sie alle geparsten Modelle durchlaufen, und die vorhandenen Eigenschaften anzeigen:

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

Nächste Schritte

Die in diesem Artikel erläuterte Modellparser-API ermöglicht es in vielen Szenarios, Aufgaben zu automatisieren oder zu überprüfen, die von DTDL-Modellen abhängig sind. Sie können beispielsweise dynamisch eine Benutzeroberfläche aus den Informationen im Modell erstellen.