Ansicht
Dokumentation

ABENABAP_XSLT_ID - ABAP XSLT ID

ABENABAP_XSLT_ID - ABAP XSLT ID

Vendor Master (General Section)   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Identitäts-Transformation

Unter der Bezeichnung ID wird von SAP die Identitäts-Transformation ausgeliefert, die je nach Quelle und Ziel vom Laufzeit-Framework speziell behandelt wird:

  • Bei einer Identitäts-Transformation von XML nach XML ist das Resultat eine normalisierte Kopie des Quelldokuments, in dem die Attribute eines Elements alphabetisch geordnet sind.
  • Bei einer Identitäts-Transformation von ABAP nach XML ist das Resultat die kanonische XML-Repräsentation (asXML) der ABAP-Daten (explizite Serialisierung).
  • Bei einer Identitäts-Transformation von XML nach ABAP wird eine kanonische XML-Repräsentation in ABAP-Daten transformiert (explizite Deserialisierung).
  • Bei einer Identitäts-Transformation mit JSON-Daten als XML-Quelle oder einem JSON-Writer als XML-Ziel erfolgt eine spezielle Behandlung für JSON.

Bei jeder Transformation von XML validiert die Identitäts-Transformation die Ausgangsdaten. Wenn ein XML-Element mehrere gleichnamige Attribute hat, wird nur eines dieser Attribute berücksichtigt, das dann den Wert des letzten gleichnamigen Attributs hat (siehe Beispielprogramm DEMO_XML_ATTRIBUTES). Bei allen Transformationen außer von XML nach XML verwendet sie implizit kanonische XML-Formate, um die nicht in XML vorliegenden Daten (ABAP, JSON) in XML darzustellen. Die Identitäts-Transformation wird zu diesem Zweck zum einen intern verwendet und kann zum anderen explizit aufgerufen werden, wenn die von ihr erzeugten Formate ausreichend sind oder analysiert werden sollen.

Hinweise

  • Die Identitäts-Transformation ID ist nicht vollständig symmetrisch. Bei der Serialisierung von Textstrings, die nur Leerzeichen erhalten wird ein Knoten mit ebenso viel Leerzeichen erzeugt. Bei der Deserialisierung eines Knotens, der nur Leerräume (Leerzeichen, Zeilenumbrüche) enthält wird aber ein leerer Textstring erzeugt.
  • Die Identitäts-Transformation ID ist zwar als XSLT-Programm im Repository vorhanden, dieses Programm wird aber nicht immer ausgeführt. Je nach Quelle und Ziel wird bei Aufruf der Identitäts-Transformation ID eine optimierte ID-Engine des Laufzeit-Frameworks aufgerufen, die das oben beschriebene Ergebnis erzeugt.
  • Wenn die vordefinierte Identitäts-Transformation ID in ein anderes XSLT-Programm kopiert wird, kann das Zielprogramm nicht in gleichem Umfang verwendet werden, da dann keine interne Spezialbehandlung stattfindet. Eine Kopie von ID wird ohne jede Optimierung gemäß ihres Quelltexts als XSL-Transformation auf einem DOM der iXML-Bibliothek ausgeführt. Insbesondere werden JSON-Daten nicht so behandelt wie mit ID und führen in aller Regel zu einer Ausnahme.
  • Bei Benutzung der Identitäts-Transformation ID hat man keinen Einfluss auf die Schreibweise von Elementnamen in XML oder von Objektnamen in JSON. Wenn XML- oder JSON-Daten in ABAP-Daten deserialisiert werden sollen, müssen die Namen der entsprechenden Elemente bzw. Objekte aber in aller Regel in Großbuchstaben vorliegen. Wenn dies in den Quelldaten nicht der Fall ist, müssen entweder eigene Transformationen erstellt oder die Daten vorher modifiziert werden. Das ausführbare Beispiel Umsetzung von XML-Elementnamen zeigt eine solche Modifikation von XML-Daten und JSON, Namen umsetzen zeigt dies für JSON-Daten.

Identitäts-Transformation in das asXML-Format






RFUMSV00 - Advance Return for Tax on Sales/Purchases   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4722 Date: 20240523 Time: 152530     sap01-206 ( 87 ms )