MetaMorphosis

MetaMorphosis – Leistungsfähiges XML Content Processing

Mit MetaMorphosis bietet Ovidius eine der leistungsfähigsten XML Content Processing Engines auf dem Markt. Die flexible, modulare Architektur von MetaMorphosis ist Grundlage für eine Vielzahl von Anwendungen.

MetaMorphosis erlaubt die Transformation baumartiger SGML- und XML- Strukturen. Auch beliebige andere Strukturen, die als Bäume darstellbar sind, können mit MetaMorphosisverarbeitet werden, z. B. FrameMaker Maker Interchange Format (MIF), Datenbanktabellen, oder Microsoft Rich Text Format (RTF).

Eigenschaften von MetaMorphosis

MetaMorphosis ist modular. Kernkomponenten sind MMDB zur binären Repräsentation von Bäumen, sowie MMX, ein Interpreter für die MetaMorphosis Transformationssprache, mit dem MetaMorphosis-Skripte auf MMDB-Objekte angewendet werden.

Ferner besitzt es eine Plug-In-Architektur für beliebige Input- und Outputmedien. Plug-Ins können wahlweise als MetaMorphosis-Module oder in anderen Programmiersprachen erstellt werden.

Ein SDK mit leistungsfähigen APIs (.NET, C++, Java) ermöglicht die Integration von MetaMorphosis in beliebige Prozesse und Systeme.

Die Ovidius Produkte TreeVision, XWord, XHelp und TCToolbox nutzen das MetaMorphosis SDK.

  • MetaMorphosis weist sowohl Ähnlichkeiten mit, als auch signifikante Unterschiede zu XSLT auf. Sowohl MetaMorphosis als auch XSLT transformieren Bäume (und nicht Datenströme wie frühe SGML Prozessoren).
  • Zentrale Komponente von XSLT und der MetaMorphosis-Sprache ist eine leistungsfähige Abfragesprache für Baumstrukturen.
  • Anders als XSLT operiert MetaMorphosis in der Regel explizit auf zwei Bäumen: dem Quellbaum und dem Zielbaum. Dabei wird der Zielbaum durch regelbasierte Queries auf den Quellbaum aufgebaut.
  • Anders als in XSLT können einmal aufgebaute Binärrepräsentationen der Bäume auch gespeichert und wieder geöffnet werden.
  • Durch die modulare Plug-in-Struktur kann MetaMorphosis nicht nur XML sondern auch SGML nativ transformieren.
  • MetaMorphosis arbeitet mit einem disk-based tree, dessen Teile nach Bedarf in und aus dem Memory geswapt werden. Dadurch können auch sehr große Dokumente effizient prozessiert werden.
  • MetaMorphosis kann durch Plug-ins einfach erweitert werden. Plug-ins können entweder in MetaMorphosis selbst geschrieben werden oder z.B. in C++, C# usw. Mitgelieferte Plug-ins sind z.B. MMado und MModbc zum direkten Zugriff auf Datenbanken, MMpinsler zur Erstellung von Baumgrafiken, MMsgml und MMxml, die jeweils für den SGML/XML Im- und Export zuständig sind, MMsort implementiert einen schnellen Sortieralgorithmus, MMsystem erlaubt umfassenden Zugriff auf das Dateisystem und weitere Systemfunktionen, MMwindows erlaubt Zugriff auf Windows-spezifische Funktionen MMrtf unterstützt die RTF-Generierung usw.