Udostępnij za pośrednictwem


Dokumentacja języka DGML (Directed Graph Markup Language)

W języku DGML (Directed Graph Markup Language) opisano informacje używane do wizualizacji i przeprowadzania analizy złożoności oraz format używany do utrwalania map kodu w programie Visual Studio. Używa prostego kodu XML do opisywania cyklicznych i acyklicznych grafów skierowanych. Wykres kierowany jest zestawem węzłów połączonych przez łącza lub krawędzie. Węzły i łącza mogą być używane do reprezentacji struktur sieciowych, takich jak elementy projektu oprogramowania.

Należy pamiętać, że niektóre wersje programu Visual Studio obsługują tylko podzestaw funkcji DGML, zobacz Obsługa wersji dla narzędzi do architektury i modelowania.

Uwaga

Podczas edycji pliku .dgml technologia IntelliSense pomaga identyfikować atrybuty, które są dostępne dla każdego elementu i ich wartości. Aby określić kolor w atrybucie, użyj nazw dla pospolitych kolorów, takich jak „Niebieski” lub wartości szesnastkowych ARGB, takich jak „#ffa0b1c3”. DGML używa małego podzbioru formatów definicji koloru Windows Presentation Foundation (WPF). Aby uzyskać więcej informacji, zobacz Colors Class (Klasa kolorów).

Składnia DGML

W poniższej tabeli opisano rodzaje elementów używanych w pliku DGML:

  • <DirectedGraph></DirectedGraph>

    Ten element jest elementem głównym dokumentu mapy kodu (dgml). Wszystkie inne elementy DGML pojawiają się w zakresie tego elementu.

    Na poniższej liście opisano opcjonalne atrybuty, które mogą obejmować:

    Background - Kolor tła mapy

    BackgroundImage - Lokalizacja pliku obrazu do użycia jako tło mapy.

    GraphDirection— Gdy mapa jest ustawiona na układ drzewa (Sugiyama), rozmieść węzły tak, aby większość łączy przepływła w określonym kierunku: TopToBottom, , BottomToTopLeftToRightlub RightToLeft. Zobacz Zmienianie układu mapy.

    Layout — Ustaw mapę na następujące układy: None, Sugiyama (układ drzewa), ForceDirected (szybkie klastry) lub DependencyMatrix. Zobacz Zmienianie układu mapy.

    NeighborhoodDistance — Gdy mapa jest ustawiona na układ drzewa lub szybki układ klastrów, pokaż tylko te węzły, które są określoną liczbą (1–7) łączy z wybranych węzłów. Zobacz Zmienianie układu mapy.

    Przykład:

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" Background="Blue" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          ...
       </Nodes>
       <Links>
          ...
       </Links>
       <Categories>
          ...
       </Categories>
       <Properties>
          ...
       </Properties>
    </DirectedGraph>
    
  • <Nodes></Nodes>

    Ten opcjonalny element zawiera listę <Node/> elementów, które definiują węzły na mapie. Aby uzyskać więcej informacji, zobacz <Node/> element .

    Uwaga

    Gdy odwołujesz się do niezdefiniowanego węzła w elemencie <Link/> , mapa automatycznie tworzy <Node/> element.

    Przykład:

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node ... />
       </Nodes>
       <Links>
          <Link ... />
       </Links>
    </DirectedGraph>
    
  • <Node/>

    Element ten określa pojedynczy węzeł. Zostanie ona wyświetlona na <Nodes><Nodes/> liście elementów.

    Element ten musi zawierać następujące atrybuty:

    Id - Unikatowa nazwa węzła i wartość domyślna atrybutu, jeśli nie określono żadnego oddzielnego LabelLabel atrybutu. Ta nazwa musi być zgodna z atrybutem Source lub Target linku, który odwołuje się do niego.

    Na poniższej liście opisano niektóre z opcjonalnych atrybutów, z których można skorzystać:

    Label — nazwa wyświetlana węzła.

    Atrybuty stylu. Zobacz Dostosowywanie map kodu przez edytowanie plików DGML.

    Category - Nazwa kategorii identyfikującej elementy współużytkujące ten atrybut. Aby uzyskać więcej informacji, zobacz <Category/> element .

    Property - Nazwa właściwości identyfikującej elementy, które mają tę samą wartość właściwości. Aby uzyskać więcej informacji, zobacz <Property/> element .

    Group — Jeśli węzeł zawiera inne węzły, ustaw ten atrybut na Expanded lub Collapsed , aby pokazać lub ukryć jego zawartość. Musi istnieć <Link/> element, który zawiera Category="Contains" atrybut i określa węzeł nadrzędny jako węzeł źródłowy i węzeł podrzędny jako węzeł docelowy. Zobacz Grupowanie elementów kodu.

    Visibility - Ustaw ten atrybut na Visible, Hiddenlub Collapsed. Używa metody System.Windows.Visibility. Zobacz Ukrywanie lub pokazywanie węzłów i łączy.

    Reference — Ustaw ten atrybut tak, aby łączył się z dokumentem lub adresem URL. Zobacz Łączenie dokumentów lub adresów URL z elementami kodu i linkami.

    Przykład:

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node Id="Driver" Label="Student" Category="Person" />
          <Node Id="Passenger" Label="Instructor" Category="Person" />
          <Node Id="Car" Label="Car" Category="Automobile" />
          <Node Id="Truck" Label="Truck" Category="Automobile" />
       </Nodes>
       <Links>
          <Link ... />
       </Links>
       <Categories>
          <Category Id="Person" Background="Orange" />
          <Category Id="Automobile" Background="Yellow"/>
       </Categories>
    </DirectedGraph>
    
  • <Links></Links>

    Ten element zawiera listę <Link> elementów, które definiują łącza między węzłami. Aby uzyskać więcej informacji, zobacz <Link/> element .

    Przykład:

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
       <Links>
          <Link ... />
       </Links>
    </DirectedGraph>
    
  • <Link/>

    Element ten określa pojedyncze łącze, które łączy węzeł źródłowy z węzłem docelowym. Zostanie ona wyświetlona na <Links></Links> liście elementów.

    Uwaga

    Jeśli ten element odwołuje się do niezdefiniowanego węzła, dokument mapy automatycznie tworzy węzeł, który ma określone atrybuty, jeśli istnieją.

    Element ten musi zawierać następujące atrybuty:

    Source - Węzeł źródłowy łącza

    Target - Węzeł docelowy łącza

    Na poniższej liście opisano niektóre z opcjonalnych atrybutów, z których można skorzystać:

    Label - Nazwa wyświetlana łącza

    Atrybuty stylu. Zobacz Dostosowywanie map kodu przez edytowanie plików DGML.

    Category - Nazwa kategorii identyfikującej elementy współużytkujące ten atrybut. Aby uzyskać więcej informacji, zobacz <Category/> element .

    Property - Nazwa właściwości identyfikującej elementy, które mają tę samą wartość właściwości. Aby uzyskać więcej informacji, zobacz <Property/> element .

    Przykład:

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node Id="Driver" Label="Student" Category="Person" />
          <Node Id="Passenger" Label="Instructor" Category="Person" />
          <Node Id="Car" Label="Car" Category="Automobile" />
          <Node Id="Truck" Label="Truck" Category="Automobile" />
       </Nodes>
       <Links>
          <Category Id="Person" Background="Orange" />
          <Category Id="Automobile" Background="Yellow"/>
          <Link Source="Driver" Target="Car" Label="Passed" Stroke="Black" Background="Green" Category="PassedTest" />
          <Link Source="Driver" Target="Truck" Label="Failed" Stroke="Black" Background="Red" Category="PassedTest" />
       </Links>
    </DirectedGraph>
    
  • <Categories></Categories>

    Ten element zawiera listę <Category/> elementów. Aby uzyskać więcej informacji, zobacz <Category/> element .

    Przykład:

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
       <Categories>
           <Category ... />
       </Categories>
    </DirectedGraph>
    
  • <Category/>

    Ten element definiuje Category atrybut, który służy do identyfikowania elementów współużytkujących ten atrybut. Atrybut Category może służyć do organizowania elementów mapy, udostępniania atrybutów udostępnionych za pośrednictwem dziedziczenia lub definiowania dodatkowych metadanych.

    Element ten musi zawierać następujące atrybuty:

    Id - Unikatowa nazwa kategorii i wartość domyślna atrybutu, jeśli nie określono żadnego oddzielnego LabelLabel atrybutu.

    Na poniższej liście opisano niektóre z opcjonalnych atrybutów, z których można skorzystać:

    Label — przyjazna dla czytelnika nazwa kategorii.

    BasedOn - Kategoria nadrzędna, z której <Category/> dziedziczy bieżący element.

    W przykładzie dla tego elementu FailedTest kategoria dziedziczy jego Stroke atrybut z PassedTest kategorii. Zobacz "Aby utworzyć kategorie hierarchiczne" w temacie Dostosowywanie map kodu, edytując pliki DGML.

    Kategorie zapewniają również pewne podstawowe zachowanie szablonu, które kontroluje wygląd węzłów i łączy, gdy są one wyświetlane na mapie. Zobacz Dostosowywanie map kodu przez edytowanie plików DGML.

    Przykład:

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node Id="Driver" Label="Driver" Category="Person" />
          <Node Id="Car" Label="Car" Category="Automobile" />
          <Node Id="Truck" Label="Truck" Category="Automobile" />
          <Node Id="Passenger" Category="Person" />
       </Nodes>
       <Links>
          <Link Source="Driver" Target="Car" Label="Passed" Category="PassedTest" />
          <Link Source="Driver" Target="Truck" Label="Failed" Category="FailedTest" />
       </Links>
       <Categories>
          <Category Id="Person" Background="Orange" />
          <Category Id="Automobile" Background="Yellow"/>
          <Category Id="PassedTest" Label="Passed" Stroke="Black" Background="Green" />
          <Category Id="FailedTest" Label="Failed" BasedOn="PassedTest" Background="Red" />
       </Categories>
    </DirectedGraph>
    
  • <Properties></Properties>

    Ten element zawiera listę <Property/> elementów. Aby uzyskać więcej informacji, zobacz <Property/> element .

    Przykład:

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
       <Properties>
           <Property ... />
       </Properties>
    </DirectedGraph>
    
  • <Property/>

    Ten element definiuje Property atrybut, którego można użyć do przypisania wartości do dowolnego elementu lub atrybutu DGML, w tym kategorii i innych właściwości.

    Element ten musi zawierać następujące atrybuty:

    • Id - Unikatowa nazwa właściwości i wartość domyślna atrybutu, jeśli nie określono żadnego oddzielnego LabelLabel atrybutu.

    • DataType - Typ danych przechowywanych przez właściwość

      Jeśli chcesz, aby właściwość pojawiła się w oknie Właściwości , użyj Label właściwości , aby określić nazwę wyświetlaną właściwości.

      Zobacz Przypisywanie kategorii do elementów kodu i linków.

      Przykład:

    <?xml version="1.0" encoding="utf-8"?>
    <DirectedGraph Title="DrivingTest" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
       <Nodes>
          <Node Id="Driver" Label="Driver" Category="Person" DrivingAge="18"/>
          <Node Id="Car" Label="Car" Category="Automobile" />
          <Node Id="Truck" Label="Truck" Category="Automobile" />
          <Node Id="Passenger" Category="Person" />
       </Nodes>
       <Links>
          <Link Source="Driver" Target="Car" Label="Passed" Category="PassedTest" />
          <Link Source="Driver" Target="Truck" Label="Failed" Category="FailedTest" />
       </Links>
       <Categories>
          <Category Id="Person" Background="Orange" />
          <Category Id="Automobile" Background="Yellow"/>
          <Category Id="PassedTest" Label="Passed" Stroke="Black" Background="Green" />
          <Category Id="FailedTest" Label="Failed" BasedOn="PassedTest" Background="Red" />
       </Categories>
       <Properties>
           <Property Id="DrivingAge" Label="Driving Age" DataType="System.Int32" />
       </Properties>
    </DirectedGraph>
    

Aliasy dla często używanych ścieżek

Zamienianie najczęściej używanych ścieżek na aliasy pomaga zredukować rozmiar pliku .dgml i czas wymagany do załadowania lub zapisania pliku. Aby utworzyć alias, dodaj sekcję <Paths></Paths> na końcu pliku .dgml. W tej sekcji dodaj <Path/> element w celu zdefiniowania aliasu dla ścieżki:

<Paths>
   <Path Id="MyPathAlias" Value="C:\...\..." />
</Paths>

Aby odwołać się do aliasu z elementu w pliku .dgml, należy ująć Id<element Path/> z znakiem dolara ($) i nawiasami (()):

<Nodes>
   <Node Id="MyNode" Reference="$(MyPathAlias)MyDocument.txt" />
</Nodes>
<Properties>
   <Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
</Properties>

Zobacz też