2011-11-15 81 views
9

我有興趣將用於描述Statecharts的XML應用程序SCXML嵌入到HTML中。 Internet Explorer具有所謂的「XML數據島」,它爲這個問題提供了一個優雅的解決方案。或者,IE9和大多數現代非IE瀏覽器允許將內容作爲XHTML提供,這允許混合不同的文檔類型,以便通過使用XML命名空間創建複合文檔。此外,我在Mozilla的wiki上找到了this advice,它似乎提供了一種HTML5方法(我在這裏使用這個術語非常鬆散)到XML Data Islands。跨瀏覽器XML數據島可以包含腳本標記

Mozilla方法似乎提供了將XML內容嵌入HTML頁面的最佳整體技術。問題在於,如果嵌入式XML內容包含「</script >」標記(它是SCXML語法的一部分),則標記不起作用。

是否有一種優雅的跨瀏覽器方法可以將任意XML內容嵌入到HTML頁面中,包括包含腳本標籤的方法?

+0

什麼是您的標準的跨瀏覽器?你能舉個例子給我們一個確定的清單嗎?你有沒有嘗試過一些不起作用的東西?最後,一旦到達客戶端瀏覽器,運行XSL,運行Javascript,您打算如何處理該XML? –

+0

跨瀏覽器:IE 8+,最近的Firefox,Opera,Chrome和Safari。鏈接的mozilla文章中列出的示例在向嵌入式XML添加腳本標記時不起作用 - 頁面無法在Mozilla中解析(儘管在Chrome中可用)。最後,我計劃在JavaScript到達瀏覽器客戶端後使用JavaScript和DOM來操作嵌入式XML內容。 – jbeard4

回答

0

我認爲嵌入腳本元素仍然是最受歡迎的選擇。
如果您希望您的XML內部的元素,你可能想:
一)使用對象元素的包裝,而不是
B)使用命名空間中的XML所以它的SCXML:腳本
C)一起使用不同的方法例如將圖像預渲染爲圖像。
另一種方法是使用瀏覽器本地支持的SVG,因此根據具體要求,操作應該更容易一些。
d)在將其包含在頁面之前去除嵌入的腳本元素? SCXML允許使用ECMAScript,但我想知道是否要將它們作爲解析的一部分執行? e)過程和SCXML的其餘部分分開 - 應用ID/IDREF,以便知道SCXML的哪一部分適用並將其放入單獨的塊中。

1

進程和SCXML的其餘部分 - 詢問ID/IDREF,以便我們知道部分SCXML涉及並將其放入已刪除的塊中。

1

針對XML數據島和MSXML的XML的一些重要優勢。

1)用於使用ECMA和W3C標準的XML,XML Data Islands沒有。

2)XML for不會帶來安全風險,XML Data Islands可以。

XML的技術適用於瀏覽器的安全沙箱,並且沒有任何這些問題。

3)XML for不需要在客戶端機器上安裝新的軟件,XML Data Islands和MSXML經常這樣做。

XML for不會影響用戶系統的任何其他部分,也不需要安裝。由於XML for不是以二進制形式(而不是MSXML)分發的,因此對應用程序的修復只需傳播到一個位置(服務器),而不是傳輸到每個客戶端。

4)XML for是開源和免費軟件,XML Data Islands和MSXML都不是。

當您爲您下載XML時,您將獲得完整的源代碼訪問權限,以瞭解如何實施。您也可以按照您認爲合適的方式修改,修復和更改軟件,如LGPL許可證所述。 XML Data Islands不會給你這種自由。