Ulfrinn schrieb:
Dann denk doch genau diese Idee weiter: Wenn man nun beispielsweise ein XWD-Format („eXchangable Word processing Document“) entwickelte, das mithilfe von DTDs spezifiziert werden kann, so könnten diese Dokumente problemlos unter verschiedenen Anwendungen ausgetauscht werden, ohne sie extra exportieren zu müssen: Unterstützt Anwendung A beispielsweise eingebettete Sprachaufnahmen, Anwendung B aber nicht, so ignoriert B diese einfach, beim erneuten Sichern bleiben diese Aufnahmen allerdings erhalten. Eine ähnliche Funktionsweise gibt es bereits: Word to Go aus dem Documents-to-Go-Paket von DataViz kann Worddokumente öffnen und auch bearbeiten. Die Merkmale, die nicht unterstützt werden, wie beispielsweise Clip-Art, usw. gehen dabei nicht verloren.
Ich glaube aber ehrlich gesagt nicht, dass dies so einfach funktioniert. Was ist wenn Anwendung C auch eingebettete Sprachaufnahmen unterstützt, diese aber anders implementieren möchte. Soll die Aufnahme aus A dann ersetzt werden oder nicht? Durch einen solchen Standard würde die Art und Weise wie eine Funktion implementiert werden soll ja explizit vorgeschrieben. Man könnte also kein neues Programm schreiben, dass eine bestehende Funktion etwas anders implementiert, weil es vielleicht aus irgendeinem Grund in dieser Anwendung praktischer wäre.
Eine Vorgehensweise wie Du sie beschreibst funktioniert bei Documents-to-Go sicher ganz gut. Aber so wie ich das verstehe geht es dabei ja darum ein Word Dokument in eine Art Word-light zu verwandeln, indem man bestimmte Funktionen weglässt. Aber ich glaube nicht, dass dieses Verfahren auch zwischen zwei Formaten funktioniert die möglicherweise vom Grundprinzip her vollkommen anders arbeiten.
Ich verstehe worauf Du hinaus willst. Aber jetzt nehmen wir mal an Nutzer A erstellt mit Programm A ein Dokument, dass eine Sprachaufnahme enthält. Programm B (von Nutzer B verwendet) unterstützt eine solche Funktion aber nicht. Nach der von Dir beschriebenen Methode könnte er aber dennoch den Text des Dokumentes ändern und das Dokument an Nutzer A zurückschicken, dieser würde die Änderung dann auch sehen und die Sprachaufnahme bliebe erhalten. So weit so gut…
Jetzt nehmen wir aber mal an Programm B unterstützt die Eingabe von mathematischen Formeln, was Programm A nicht unterstützt. Wenn B nun eine Formel in das Dokument einfügt, dann wird Programm A diese aber nicht darstellen. Welcher Nutzer hat nun das "richtige" Dokument? Beide Nutzer sehen den Text, aber der eine sieht die Sprachaufnahme, während der andere die Formel sieht. Es sieht also keiner das vollständige Dokument. Welches ist das "richtige"?
Damit das funktioniert müsste es ja so eine Art "Masterprogramm" geben, das alle Funktionen unterstützt. In Deinem Beispiel funktioniert es wenn Programm B eben nur ein "Subset" des Programms A ist.
Aber wenn wir nun beim Beispiel mathematische Formeln bleiben:
Was ist wenn Firma A ein Programm erstellt und dabei den Formelsyntax aus OpenOffice verwenden möchte, Firma B für ihr eigenes Programm aber lieber den LaTeX Syntax. Bei einem standardisierten Dateiformat hätten sie diese Wahl gar nicht, denn das würde durch die Spezifikation ja vorgeschrieben. Aber LaTeX hat möglicherweise deutlich mehr Formelzeichen implementiert als OpenOffice, was der Grund sein könnte warum Firma Y es verwenden möchte. Mit einem standardisierten Format wären sie in dieser Freiheit aber eingeschränkt. Deshalb wird Firma B auf das offene Format verzichten wollen und ein eigenes entwerfen.
Deine Methode funktioniert wenn es für jede Funktion nur EINE Art der Implementierung gibt. Aber sobald es mehrere (vielleicht grundsätzlich) unterschiedliche Methoden für etwas gibt funktioniert es nicht mehr, da man dann ja nicht mehr eindeutig festlegen kann welche Methode nun die "richtige" ist. Aber gerade bei solch komplexen Dingen wie Textverarbeitung gibt es immer unterschiedliche Möglichkeiten eine Funktion zu implementieren und auch mit anderen Funktionen zu koppeln. Und genau aus diesem Grund glaube ich nicht, dass man so etwas mit einem einzigen Format erschlagen kann.
Der kleinste gemeinsame Nenner ist einfach nur die Grundstruktur in XML. Dabei kann jede Funktion in beiden Format anders implementiert werden. Da aber beide Formate in XML verfasst sind, ist der Grundsyntax in der Datei selbst vom Prinzip her gleich. Das erleichtert dann die Implementierung, da Programm A vielleicht einen Export Filter erstellen kann der ein Dokument in das Format B übersetzt. Aber eben nicht 1:1.