Ansicht
Dokumentation

ABENABAP_SXML_LIB_RENDER_OO - ABAP SXML LIB RENDER OO

ABENABAP_SXML_LIB_RENDER_OO - ABAP SXML LIB RENDER OO

General Material Data   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Objektorientiertes Rendern

Beim objektorientierten Rendern wird genau wie beim Token-basierten Rendern ein XML-Writer erzeugt. Für das Schreiben von Knoten gibt es aber für jede Knotenart eine eigene Methode, sondern für alle Knotenarten eine einzige Methode WRITE_NODE. Diese Methode ist über ihren Eingabeparameter mit einem Knotenobjekt des gewünschten Knotentyps verknüpft und es wird ein entsprechender Knoten an der aktuellen Schreibposition angehängt.

Grundvorgehensweise

Zum Anlegen des XML-Writers verwendet man wie beim Token-basierten Rendern die Factory-Methode CREATE der gewünschten Klasse, z.B.:

DATA(writer) = CAST if_sxml_writer( cl_sxml_string_writer=>create( ... ) ).

Vor dem Schreiben eines Knotenobjekts kann man sich dieses mit einer der dafür vorgesehenen Methoden des Interface IF_SXML_READER wie NEW_OPEN_ELEMENT, NEW_CLOSE_ELEMENT und NEW_VALUE erzeugen oder aus einer anderen Quelle, wie z.B. einem objektorientierten Reader übernehmen, z.B.:

DATA(open_element) = writer->new_open_element( ... ).
writer->write_node( open_element ).
DATA(value) = writer->new_value( ).
value->set_value( ... ).
writer->write_node( value ).
DATA(close_element) = writer->new_close_element( ... ).
writer->write_node( close_element ).

Das Knotenobjekt einer Elementöffnung hat Methoden, mit denen XML-Attribute eingefügt werden können.

objektorientiertes Rendern

Methoden für das objektorientierte Rendern

Die folgenden Methoden des Interface IF_SXML_WRITER sind speziell für das objektorientierte Rendern vorgesehen:

  • NEW_OPEN_ELEMENT - Erzeugt ein Knotenobjekt für eine Elementöffnung.
  • NEW_VALUE - Erzeugt ein Knotenobjekt für einen zeichenartigen Wert
  • NEW_VALUE_RAW - Erzeugt ein Knotenobjekt für einen byteartige Rohdaten.
  • NEW_CLOSE_ELEMENT - Erzeugt ein Knotenobjekt für einen Elementabschluss.
  • WRITE_NODE - Schreibt einen Knoten gemäß dem übergebenen Knotenobjekt.

Das Schreiben der Werte geschieht wie beim Token-basierte Rendern.

Hinweise

  • Das Token-basierte Rendern und das objektorientierte Rendern sind nicht strikt getrennt. Die entsprechenden Methoden zum Schreiben von Knoten können auch abwechselnd in einem Programm aufgerufen werden. Dies wird aber aus Gründen der Lesbarkeit nicht empfohlen.
  • Beim objektorientierten Rendern können direkt Knotenobjekte geschrieben werden, die von einem objektorientierten Parser zurück gegeben und eventuell modifiziert wurden.
  • Das objektorientiert Rendern kann wegen der zusätzlichen Objekterzeugungen weniger performant als das Token-basierte Rendern sein.






Addresses (Business Address Services)   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4133 Date: 20240523 Time: 153327     sap01-206 ( 54 ms )