Ansicht
Dokumentation

ABENABAP_IXML_LIB - ABAP IXML LIB

ABENABAP_IXML_LIB - ABAP IXML LIB

CPI1466 during Backup   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

iXML-Bibliothek

API der iXML-Bibliothek

Die iXML-Bibliothek stellt eine API zum Umgang mit XML-Dokumenten im DOM-Format zur Verfügung. Die API ermöglicht es,

  • XML-Daten in das DOM-Format zu parsen,
  • auf XML-Dokumente im DOM-Format lesend und schreibend zuzugreifen, was die Erstellung neuer Dokumente umfasst,
  • XML-Dokumente im DOM-Format in XML-Daten zu rendern.

Die API wird in ABAP-Programmen über Interfaces der Klassenbibliothek mit der Namenskonvention IF_IXML_... verwendet. Eine Zugangsklasse CL_IXML enthält Factory-Methoden um die grundlegenden Objekte wie Ströme, Parser, Dokumente, Renderer zu erzeugen, auf die dann über Interfacereferenzvariablen zugegriffen wird. Die zur Verwendung notwendigen Klassen und Interfaces sind im Class Builder dokumentiert.

Hinweise

  • Die Klassen und Interfaces der iXML-Bibliothek aus dem Paket SIXML verschalen in C++ implementierte Klassen und Interfaces, die als Teil des ABAP-Kernels ausgeliefert werden.
  • Eigenständige Versionen für C++ und C werden ebenfalls ausgeliefert, wobei die Version für C eine Verschalung der in C++ implementierten Bibliothek ist.
  • Die iXML-Bibliothek unterstützt die Unicode-Zeichendarstellung UCS-2. Zeichen aus dem Surrogat-Bereich werden nicht unterstützt und können als ungültig zurückgewiesen werden.
  • Das DOM der iXML-Bibliothek und zugehörige Methoden werden auch intern beim Aufruf von XSL-Transformationen mit der Anweisung CALL TRANSFORMATION verwendet.

Zugang zur iXML-Bibliothek

Für den Zugang zur iXML-Bibliothek in einem ABAP-Programm wird genau ein Factory-Objekt der Zugangsklasse CL_IXML benötigt, das wie folgt erzeugt wird:

DATA(ixml) = cl_ixml=>create( ).

Der statische Typ der Referenzvariable ixml ist dann das Interface IF_IXML, das alle Factory-Methoden enthält, die benötigt werden, um weitere Objekte wie Ströme, XML-Dokumente, Parser oder Renderer anzulegen. Das Factory-Objekt ist ein Singleton und kann nur einmal in einer internen Sitzung instanziiert werden.

Services der iXML-Bibliothek

Die Klassen und Interfaces der iXML-Bibliothek bieten im Wesentlichen folgende Services:

Der XML-Parser analysiert eine XML-Datei, das in einem Eingabestrom zur Verfügung gestellt wird, auf syntaktische Korrektheit und erzeugt daraus ein XML-Dokument in einer DOM-Darstellung, auf die über Interfaces zugegriffen werden kann. Das DOM kann wie folgt erstellt werden:

Der Parser erzeugt das XML-Dokument in DOM-Repräsentation für die vollständigen XML-Daten in einem Durchgang und stellt es in den Speicher.

Der Parser verarbeitet den Eingabestrom in sequenziellen Durchgängen, wobei jede Sequenz durch so genannte Ereignisse bestimmt wird, auf die über das Interface IF_IXML_EVENT zugegriffen werden kann. Die Anwendung kann jede Sequenz bereits während des Parsens bearbeiten. Es kann eingestellt werden, ob dabei ein vollständiges XML-Dokument in DOM-Repräsentation abgespeichert wird oder nicht.

Beim Parsen in Datenobjekte werden die Token der geparsten XML-Daten direkt in ABAP-Datenobjekte (Strukturen, interne Tabellen) geschrieben. Ein XML-Dokument in DOM-Repräsentation kann zusätzlich abgespeichert werden.
Ein als DOM repräsentiertes XML-Dokument ist eine standardisierte Baumdarstellung halten. Für jede logische Einheit des XML-Dokuments gibt es ein Knotenobjekt einer zugehörigen Klasse, die entsprechend spezialisierte Interfaces implementiert. Ein ABAP-Programm kann über die Interfaces lesend und ändernd auf das XML-Dokument zugreifen. Die Klassen der Knotenobjekte werden im Programm in der Regel nicht direkt verwendet.
Der XML-Renderer erzeugt XML-Daten aus einem als DOM abgespeicherten XML-Dokument, das durch Parsen mit und ohne nachfolgender Modifikation entstanden ist oder mit den Methoden der DOM-Interfaces völlig neu erzeugt wurde, und gibt sie in einen Ausgabestrom aus.

Hinweise

  • Ein Vorteil des DOM ist ein sehr einfacher direkter Zugriff auf die einzelnen Bestandteile eines XML-Dokuments. Ein Nachteil ist aber der erhöhte Speicherverbrauch, der das Zehnfache der eigentlichen Größe des Dokuments betragen kann. Dabei ist zu beachten, dass das Dokument selbst bereits mehr Speicher für Markup als für die eigentlichen Daten verbrauchen kann. Der Speicherverbrauch kann eingeschränkt werden, indem beim sequenziellen Parsen oder beim Parsen in Datenobjekte kein komplettes DOM erzeugt wird.
  • Das DOM der iXML-Bibliothek umfasst auch DTDs (Document Type Definitions).
  • Falls es nur um das Parsen und Rendern von XML-Daten geht und kein XML-Dokument in DOM-Darstellung und keine DTD benötigt wird, stellt die sXML-Bibliothek eine performantere Alternative zur iXML-Bibliothek dar.
  • Die iXML-Bibliothek unterstützt ausschließlich das Format XML 1.0, bei dem XML-Daten durch eine Zeichenkette in einer bestimmten Zeichendarstellung dargestellt werden. Die sXML-Bibliothek unterstützt weitere Formate.
  • Beim Rendern in zeichenartige XML-Daten, wird diesen die vom XML-Standard geforderte Byte-Order Mark (BOM) vorangestellt.





Addresses (Business Address Services)   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8673 Date: 20240523 Time: 173059     sap01-206 ( 122 ms )