2011-11-15 44 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不会给你这种自由。