FAQs
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+XBRL 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.10.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())