Altova RaptorXML Server 2024

F: Ich möchte ein Python Script schreiben, das bei Ausführung in Raptor Server für jedes Element eine eine neue XML-Instanz erstellt. Diese müssen je nach Parameter mit unterschiedlicher Kodierung und Formatierung in die Ausgabe serialisiert werden. Ist das in RaptorXML Server möglich?

 

A: Nein, dies ist derzeit nicht möglich, da wir keine API zur Erstellung beliebiger XML-Instanzen haben. Für die Generierung von XBRL-Instanzen haben wir allerdings eine umfangreiche API, mit der zahlreiche technische Einzelheiten behandelt werden können (z.B. Vermeidung von doppelt vorhandenen contexts/units und vieles mehr). Nähere Informationen dazu finden Sie unter https://www.altova.com/manual/en/raptorapi/pyapiv2/2.9.0/html/xbrl.InstanceDocumentBuilder.html.

 

F: Ich würde gerne Ixml verwenden. Kann ich lxml-Bibliotheken unter "RaptorXMLXBRLServer2024/lib/" installieren?

 

A: Sie können die meisten Python-Module mit dem folgenden Befehl direkt auf einem Terminal mit Administrator-Rechten installieren:

 

"/path/to/RaptorXML/application-folder/bin/RaptorXMLXBRL-python.exe" -m pip install lxml

 

F: Wäre es in Ordnung, einen langen String zu erstellen, der die XML-Instanz enthält, das ganze Ding dann zu parsen und es erneut zu serialisieren?

 

A: Das ist eine (von mehreren) Möglichkeiten. Sie können XML- und XBRL-Instanzen anhand eines String-Puffers folgendermaßen über die Python API parsen und validieren:

 

from altova_api.v2 import xml

txt = '''<?xml version="1.0" encoding="utf-8"?>

<doc>

    <elem attr="foo">bar</elem>

</doc>'''

inst = xml.Instance.create_from_buffer(txt.encode('utf-8')).result

print(inst.serialize())

 

© 2018-2024 Altova GmbH