Ich fange an, eine Anwendung zu entwerfen, die hauptsächlich XML-Transformation von einem Format zum anderen durchführt. Der Benutzer stellt die Eingabe-XML bereit und teilt der Anwendung mit, um welchen Typ es sich handelt und welche Art von Ausgabe-XML er wünscht und die Anwendung wandelt dann die Eingabe-XML in Ausgabe-XML um. Ich wollte fragen, ob es ein gutes Framework (vorzugsweise Java-basiert) gibt, das das tut. Ich denke daran, XSLT mit benutzerdefinierten Aktionen zu verwenden, aber wenn jemand ein bestehendes Framework vorschlagen kann, das bereits das ganze Gerüst bereitstellt, dann werde ich Zeit sparen. Ich bin gerade dabei, Smooks zu erkunden. Ein Problem mit XSLT, das jemand erwähnte, war, dass es möglicherweise nicht in der Lage ist, große Dateien> 50 MB oder so zu verarbeiten, ohne sie alle im Speicher zu laden. Ist das wahr? Auch das Eingabeformat könnte manchmal nicht XML sein ... könnte eine Textdatei sein, daher sollte ich andere Transformatoren hinzufügen können. Natürlich verstehe ich, dass der Rahmen nur so sein würde - ein Framework, in dem ich den eigentlichen Conversion-Code bereitstellen werde. Aber würde gerne von Experten da draußen hören :) -v-XML Transformation Framework Vorschläge?
0
A
Antwort
0
Wenn Sie XML in XML umwandeln, dann ist XSLT der Weg zu gehen. Die Größe des Dokuments, das Sie transformieren können, ist wirklich nur durch CPU und Speicher (wie alles andere) begrenzt. Sie werden keine elegantere Lösung für die Transformation von XML als XSLT finden. Was Ihren Scaffolding-Code betrifft, würde ich vorschlagen, die Transformationsobjekte modular zu machen (über ein Injection-Injection-Framework wie Spring), so dass Sie die Transformationslogik sehr einfach ändern können, wenn sich die Eingabeformate ändern.
0
Ich habe auf den folgenden Rahmenbedingungen auf Null gesetzt, um meine Anforderungen zu erfüllen, Apache Camel Smooks XSLT (als Camel Endpunkte) XMLDB in Oracle
Dank für die Antwort. Ich stimme zu, dass XSLT ideal ist, aber denken Sie daran, dass ich möglicherweise auch Nicht-XML (Text) -Dateien als Eingabe habe. Auch wenn die Eingabedatei Größe sagen 20GB ist und mein Server Speicher 16GB ist, wird XSLT dies würdevoll behandeln, da ich denke, dass es von einem DOM-Parser basiert, der alles im Speicher lädt. – Vishal