Ich bin daran interessiert, SCXML, eine XML-Anwendung zur Beschreibung von Statecharts, in HTML einzubetten. Internet Explorer hat sogenannte "XML Data Islands", die eine elegante Lösung für dieses Problem bieten. Alternativ erlauben IE9 und die meisten modernen Nicht-IE-Browser die Bereitstellung von Inhalten als XHTML, wodurch verschiedene Dokumenttypen gemischt werden können, um zusammengesetzte Dokumente mithilfe von XML-Namespaces zu erstellen. Außerdem gibt es diesen Ratschlag , den ich im Mozilla-Wiki gefunden habe, das einen HTML5-Ansatz zu bieten scheint (ich benutze diesen Begriff extrem) lose hier) zu XML Data Islands.
Der Mozilla-Ansatz scheint die beste Technik zum Einbetten von XML-Inhalt in eine HTML-Seite zu bieten. Das Problem ist, dass es nicht funktioniert, wenn der eingebettete XML-Inhalt ein "& lt; / script & gt;" enthält. Tag, das ein Teil der SCXML-Grammatik ist.
Gibt es eine elegante, browserübergreifende Methode zum Einbetten beliebigen XML-Inhalts in eine HTML-Seite, einschließlich derjenigen, die Skript-Tags enthält?
Verarbeiten Sie SCXML und einen Rest von SCXML allein - fragen Sie ID / IDREF, so dass wir wissen, dass sich ein Teil von SCXML auf einen entfernten Block bezieht.
einige entscheidende Vorteile für XML für über XML Data Islands und MSXML.
1) XML für Verwendungen ECMA und W3C-Standards, XML-Dateninseln nicht.
2) XML for stellt keine Sicherheitsrisiken dar, XML Data Islands können.
Die Technologie von XML for funktioniert in der Sicherheits-Sandbox des Browsers und hat keines dieser Probleme.
3) XML for benötigt keine neue Software auf dem Client-Rechner, XML Data Islands und MSXML tun dies oft.
XML for wirkt sich nicht auf andere Teile des Systems des Benutzers aus und benötigt keine Installation. Da XML for nicht in Binärform (im Gegensatz zu MSXML) verteilt wird, müssen Fixes für Ihre Anwendung nur an einen Ort (den Server) und nicht an jeden Client weitergegeben werden.
4) XML für Open Source und Freie Software, XML Data Islands und MSXML sind nicht.
Wenn Sie XML für Sie herunterladen, erhalten Sie vollen Zugriff auf den Quellcode, um zu sehen, wie die Dinge implementiert werden. Sie sind auch frei, die Software zu modifizieren, zu reparieren und zu ändern, wie Sie es für richtig halten, wie es in der LGPL-Lizenz beschrieben ist. XML Data Islands geben Ihnen diese Freiheit nicht.
Die Einbettung in ein Skriptelement ist immer noch die beliebteste Wahl, denke ich.
Wenn Sie ein Element in Ihrem XML erwarten, möchten Sie vielleicht:
a) Benutze Objektelement als Wrapper anstelle von
b) benutze Namespaces in deinem XML, also ist es scxml: script
c) Verwenden Sie einen anderen Ansatz, wie etwa das Vorbeigeben von Charts als Bilder
Ein weiterer Ansatz besteht darin, SVG zu verwenden, das nativ von den Browsern unterstützt wird, so dass die Manipulation je nach den Anforderungen etwas einfacher sein kann.
d) Entfernen Sie das eingebettete Skriptelement, bevor Sie es in die Seite einfügen? SCXML erlaubt ECMAScript, aber ich frage mich, ob Sie sie als Teil des Parsens ausführen wollen?
e) Prozess und der Rest von SCXML separat - wenden Sie ID / IDREF an, damit Sie wissen, auf welchen Teil der SCXML-Datei zugegriffen wird, und fügen Sie sie in einen separaten Block ein.
Tags und Links html internet-explorer xml cross-browser