Opis parsera modeli usługi Digital Twins

Język DTDL (Digital Twins Definition Language) został opisany w specyfikacji DTDL. Użytkownicy mogą używać analizatora modeli usługi Digital Twins NuGet do weryfikowania i wykonywania zapytań względem modelu zdefiniowanego w wielu plikach.

Instalowanie analizatora modelu DTDL

Analizator jest dostępny w witrynie NuGet.org o identyfikatorze Microsoft.Azure.DigitalTwins.Parser. Aby zainstalować analizator, użyj dowolnego zgodnego menedżera pakietów NuGet, takiego jak ten w Visual Studio lub w interfejsie dotnet wiersza polecenia.

dotnet add package Microsoft.Azure.DigitalTwins.Parser

Uwaga

W momencie zapisywania wersja analizatora to 3.12.7.

Używanie analizatora do weryfikowania modelu

Model może składać się z co najmniej jednego interfejsu opisanego w plikach JSON. Za pomocą analizatora można załadować wszystkie pliki w danym folderze i użyć analizatora do zweryfikowania wszystkich plików jako całości, w tym wszystkich odwołań między plikami:

  1. Utwórz obiekt IEnumerable<string> z listą wszystkich zawartości modelu:

    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. Utwórz wystąpienie elementu i wywołaj metodę ModelParserParseAsync:

    using Microsoft.Azure.DigitalTwins.Parser;
    
    ModelParser modelParser = new ModelParser();
    IReadOnlyDictionary<Dtmi, DTEntityInfo> parseResult = await modelParser.ParseAsync(modelJson);
    
  3. Sprawdź, czy występują błędy walidacji. Jeśli analizator znajdzie jakiekolwiek błędy, zgłasza ParsingException błąd z listą błędów:

    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. Sprawdź element Model. Jeśli walidacja zakończy się pomyślnie, możesz użyć interfejsu API analizatora modelu do sprawdzenia modelu. Poniższy fragment kodu pokazuje, jak iterować wszystkie przeanalizowane modele i wyświetlać istniejące właściwości:

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

Następne kroki

Interfejs API analizatora modeli omówiony w tym artykule umożliwia wielu scenariuszom automatyzowanie lub weryfikowanie zadań zależnych od modeli DTDL. Na przykład możesz dynamicznie tworzyć interfejs użytkownika na podstawie informacji w modelu.