Meine ASN.1-Bibliothek [1] [2] unterstützt in Java und Squeak/Pharo Sequenzen, Sequenz- und Mapped-Sequenzen sowie Set-, Set-Of- und Mapped-Sets. Der fehlende Sammlungstyp, den ich zuordnen möchte, ist das Wörterbuch oder die Karte.Wie kann ASN.1 eine Karte/ein Wörterbuch codieren?
Gibt es eine Standardmethode für die Zuordnung eines Wörterbuchs von Schlüssel/Wert-Paaren zu einer robusten ASN.1-Codierung? Gibt es Links zu diesem allgemeinen Standard und/oder Beispiele für die Zuordnung einer Karte/eines Wörterbuchs von Schlüssel/Wert-Paaren? Vielleicht könnte auf eine unentdeckte SO-Diskussion hingewiesen werden.
Ich glaube, ich möchte eine Schlüssel/Wert-Darstellung des Typs ANY, nicht die Verwendung einer MappedSequence. Das Problem ist eine Selbstbeschreibung, die MappedSequence hat einen vordefinierten Satz von Strukturelementen, daher ist die Reihenfolge wichtig, da die Schlüssel implizit verwendet werden. Ich möchte mehr von einem selbstbeschreibenden ANY-Typ, der ungeordnete Schlüssel/Wert-Paare enthält. Macht das irgendeinen Sinn? ;)
Ich versuche ein generisches Objekt-Mapping zu erstellen, eine Sorte eines ANY-Typs, aber es würde die Schlüssel/Wert-Paare der Instanzvariablen des besagten generischen Objekts benötigen. Ich möchte Sprachreflexion verwenden, basierend auf einem codierten Klassennamen, der einer Sprachklasse entspricht, und dann einen ASN.1 "ANY" -Typ mit der gleichen Struktur erzeugen, und dann diesen Typ, um das codierte Objekt zu dekodieren. Ich habe keinen robusten ANY-Typ implementiert, in beiden Sprachimplementierungen.
Vielen Dank.
[1] - https://github.com/CallistoHouseLtd/ASN1
[2] - http://www.squeaksource.com/Cryptography/Cryptography-HenryHouse.113.mcz
Ich sehe Ihren Punkt über Duplikate aber das entspricht meiner Ansicht, dass die Encodierung die Einschränkungen nicht angeben muss, kann ich lassen Das System erzwingt dies außerhalb der Strukturdefinitionen. Ich weiß, dass dies zusätzliche Regeln außerhalb der Spezifikation bedeutet, aber hier sind wir nicht in der Lage, ein beliebiges Objekt in ASN.1, Jahrzehnte nach dem Erscheinen von OO, auszudrücken. Ich mag ASN.1 sehr, aber es gibt Schwächen, die dem Encapsulating-Programm mit dieser Codierung überlassen werden. Mein Gefühl. Funktioniert das dann wie funktioniert? Das Kapselungsprogramm spezifiziert zur Laufzeit. Als die Antwort, die ich gepostet habe, wird ANY eine ObjectStructure sein. –
Das Problem hier ist, dass ANY ist Teil der 1988 ASN.1, die im Jahr 1994 zurückgezogen wurde. Wenn Sie eine Version von ASN.1 von 1994 oder später anstelle der veralteten Version 1988 verwendet, würden Sie einen offenen Typ verwenden (die Ersatz für ANY), mit dem Sie explizit eine Tabelle von Objekten definieren können, durch die Sie den offenen Typ einschränken können. –
@PaulThorpe Ist es nicht ASN.1 'INFORMATION OBJECT CLASS', dass 'ANY' rückwärtskompatibel ist? –