Metadaten verpacken

Package Metadata ist ein Wörterbuch mit Textwerten (Zeichenfolgen), die auf Paketebene definiert sind. Es ist in der SBSAR enthalten, wenn es veröffentlicht wird, und es ist ein Allzweck-Speicher, der von Python-Skripten verwendet werden soll.

Anzeigen und Bearbeiten von Metadaten über die Oberfläche von Designer

Wenn Sie ein Python-Plug-in entwickeln, sollten Sie Metadaten zum Testen und Debuggen manuell bearbeiten. Gehen Sie dazu folgendermaßen vor:

  1. Wenn Sie im Explorer auf ein Paket doppelklicken, wird das Eigenschaftenfenster für dieses Paket geöffnet.

    Paketmetadaten

  2. Hier haben Sie einen eigenen Abschnitt “Metadaten”. Es ist in Ihrem Fall wahrscheinlich leer, wie in der Aufnahme oben.

    Sie können neue Metadaten hinzufügen, indem Sie auf die Schaltfläche “Plus” klicken.

    Schaltfläche zum Hinzufügen von Metadaten

  3. Im folgenden Abschnitt wird ein neues Element angezeigt:

    Neue Metadaten

  4. Es gibt ein Feld “Schlüssel” und ein Feld “Wert”. Beide Optionen sind beliebig wählbar. Das Feld “Schlüssel” muss in der Liste einen eindeutigen Wert aufweisen.

    Neuer Metadatenwert

  5. Sie können auch den “Typ” des Elements auswählen. Im Moment kann es “String” oder “URL” sein:

    Metadatentyp ändern

  6. “URL” bedeutet hier einen Verweis auf eine Ressource, die im Paket enthalten ist. Wählen Sie dazu eine Datei auf Ihrer Festplatte aus und ziehen Sie sie per Drag & Drop in das Paket im Explorer. Dabei kann es sich um eine normale Ressource wie ein Bild oder eine beliebige andere Datei wie eine Textdatei handeln.

    Generische Ressource im Paket

  7. Die Datei wird als neue Ressource im Paket angezeigt.

    Kehren Sie nun zum Bedienfeld “Paketeigenschaften” zurück, erstellen Sie neue Metadaten, geben Sie einen passenden Schlüssel ein und wählen Sie “URL” als Typ. Wählen Sie dann “…” aus. im Feld “Wert” und wählen Sie “Von Ressource” aus. Wählen Sie die Datei aus, die Sie zuvor eingefügt haben, und überprüfen Sie:

    URL-Metadaten

  8. Jetzt können Sie die “URL” der Ressource wird im Feld “Wert” gespeichert.

    Sie können Metadaten auch über die Schaltfläche “X” rechts neben dem Element löschen:

    Metadaten löschen

NOTE
Das Verschieben oder Neuanordnen von Metadateneinträgen ist deaktiviert: die Reihenfolge ist nicht aussagekräftig und wird bei der Veröffentlichung des Pakets nicht beibehalten.

Metadaten in veröffentlichten SBSAR-Dateien

In einigen Fällen können Sie die Metadaten abrufen, die Sie für ein Paket in der entsprechenden veröffentlichten SBSAR definiert haben. Im Folgenden erfahren Sie, wie Metadaten transformiert und im Archiv gespeichert werden und wie Sie sie daraus richtig nutzen können.

Die Metadaten werden entsprechend dem JSON-Format in einer Datei mit dem Namen /assemblies/content/0000/metadata.json gespeichert (der Pfad ist relativ zum Stammordner des .sbsar-Archivs).

Reguläre (String-)Metadaten werden wie vorhanden gespeichert, z. B. “key”: “stringValue”, eine pro Zeile. Auch hier wird die ursprüngliche Reihenfolge der verschiedenen Schlüssel nicht beibehalten und die Implementierung ist definiert. Verlassen Sie sich bei Ihrem Prozess nie auf die Bestellung, wie bei regulären Python-Aufträgen!

Da das Ziel der URL-Metadaten darin besteht, Benutzern und Plug-ins die Aufnahme ausländischer Dateien in das .sbsar-Archiv zu ermöglichen, unterliegen sie einer bestimmten Transformation: Zunächst wird die Datei der Ressource, die mit der gespeicherten URL übereinstimmt, in das Archiv an einem implementierungsdefinierten Speicherort (normalerweise in einem nummerierten Unterordner, der nur diese Datei enthält) kopiert. Es geht darum, Namenskonflikte zu vermeiden.) Die Datei behält ihren ursprünglichen Namen bei (der Name der Ressource wird an dieser Stelle verworfen). Anstelle der ursprünglichen URL in der Datei “metadata.json” wird dann der Pfad zur kopierten Datei im Archiv relativ zur Datei “metadata.json” geschrieben.

Wenn wir das im vorherigen Abschnitt erstellte Beispielpaket exportieren (nachdem wir mindestens ein Diagramm mit einigen Ausgaben erstellt haben), erhalten wir diesen Archivinhalt:

myPackage.sbsar

|-- assemblies

        |-- content

            |-- 0000

                |-- New_Graph.sbsasm

                |-- New_Graph.xml

                |-- metadata.json

                |-- resources

                    |-- 0

                        |-- TEXT.txt

Der Inhalt metadata.json lautet:

{

    "myResource": "resources/0/TEXT.txt",

    "myText": "This is a text"

}

Derzeit wird kein spezielles Tool für den Zugriff auf die im Archiv gespeicherten Metadaten und Ressourcen bereitgestellt. Die empfohlene Methode ist, das Archiv mit dem LZMA-Decoder Ihrer Wahl zu öffnen und die Datei metadata.json mit einem regulären JSON-Parser zu analysieren (Wenn die Schlüssel oder Wertzeichenfolgen einige Sonderzeichen enthalten, werden sie auf die JSON-Art und Weise escaped).

NOTE
Es sind keine Informationen übrig geblieben, ob es sich bei den einzelnen Metadaten um eine einfache Zeichenfolge oder eine URL handelt. Daher müssen Sie wissen, was jeder Schlüssel, den Sie lesen möchten, bedeuten soll.
recommendation-more-help
substance-3d-designer-help-guide