◆ struktaris
Effiziente XML-Verarbeitung beim DIN
Verarbeitung von Normeninhalten neu gedacht - mit der integrativen SwiftXML-Technologie
Die Verarbeitung von Normeninhalten ist traditionell komplex und an XML-Transformationsprozesse gebunden, die vielen Entwicklern fremd sind.
Außerdem versuchen herkömmliche Transformationsskripte aus Effizienzgründen, vieles in wenigen Verarbeitungsschritten zu lösen, was die Skripte schwer überschaubar macht. Mit unserer SwiftXML-Bibliothek haben wir einen Ansatz entwickelt, der diese Abläufe vereinfacht, beschleunigt und für
Entwickler deutlich zugänglicher macht. Die Anwendung unserer Technologie beim DIN ist ein voller Erfolg.
Highlights
- XML-Verarbeitung direkt im herkömmlichen Programm-Code in gut verständlicher Formulierung – keine externen Transformationswerkzeuge nötig.
- Transformationen bleiben auch bei vielen Verarbeitungsschritten schnell.
- Kontrollierte und dennoch effiziente Abläufe durch unsere Pipeline-Architektur
mit flexiblen „Step“-Definitionen.
Die Aufgabe
XML-Transformationen sind ein zentrales Element in der
Normenverarbeitung – gleichzeitig aber oft umständlich und
schwer anpassbar.
Unsere Mission: XML-Verarbeitung so zu gestalten, dass sie
nahtlos, performant und intuitiv in eine moderne Software-Entwicklung integrierbar ist.
Lösung
Mit SwiftXML haben wir eine integrative XML-API geschaffen,
die direkt in der modernen Programmiersprache Swift nutzbar ist.
Transformationen werden in klaren, einfach formulierbaren
Regeln definiert – ohne externe Tools oder komplizierte Skripte.
Dank direkter Zugriffe auf XML-Elemente und der eleganten
Syntax von Swift können Strukturen ohne Performance-Verlust in vielen einfachen
Verarbeitungsschritten bearbeitet werden, die Regeln für einzelne Schritte lassen
sich einfach und klar formulieren.
Die Pipeline-Bibliothek steuert die Verarbeitung in klar definierten
„Steps“ und ermöglicht so volle Kontrolle, Nachvollziehbarkeit
und Effizienz – auch bei komplexen Prozessketten.
Eigenschaften
- Performante XML-Transformationen und Zugriffe auf XML-Bestandteile direkt im herkömmlichen Anwendungscode.
- Die XML-Verarbeitung kann alle Möglichkeiten einer modernen Programmiersprache nutzen.
- Einfache Formulierung und Anpassung von Verarbeitungsschritten, formulierte Transformationsregeln ähneln der Form nach traditionellen Verarbeitungssprachen.
- Komplexe Transformationen können praktisch ohne Performance-Verluste in viele Einzelschritte aufgeteilt werden.
- XML-Strukturen können während des Duchwanderns manipuliert werden.
- „Registrierung“ von Elementen, Processing Instructions und ausgewählter Attribute und ggf. auch ihrer Werte im Dokument für einen schnellen Zugriff, im Fall von Elementen über den Elementnamen.
- Eine Verarbeitungs-Pipeline besteht aus als „Step“ annotierte Funktionen, deren Ausführung kontrollierbar und verfolgbar ist. Steps rufen in flexibler Weise andere Steps auf, müssen nicht als Programmaufruf gestartet werden und sind dennoch flexibel in ihren Argumenten. Die Benutzung vieler Steps ist effizient.
- Vorbedingungen einzelner Steps werden einfach als Aufrufge von Steps formuliert und das System stellt sicher, dass Steps nicht erneut aufgerufen werden (wenn man nicht deren Aufruf erzwingt).
- Die Transformations- und Verarbeitungslogik läuft als kompilierter Code (praktisch nicht dekompilierar), man kann die betreffende Software folglich weitergeben, ohne dass damit der Transformations-Code offen gelegt wird.
Fazit
Der Zugrigff auf XML und die Entwicklung von XML-Transformationen lässt sich nun zugleich effizient realisieren und in verständlicher Weise in die normale Software-Entwicklung integrieren.