为什么选择 XSL 转换?
对于当前项目,必须决定是使用 XML 和 XSL 转换来生成 HTML 还是直接使用 HTML 模板。
我对支持或反对XSL方法的论据很感兴趣。我知道,在必须支持许多不同布局的情况下,XSL解决方案有很多优点,但是为什么在那些只需要支持一个目标布局的情况下会选择它呢?
编辑:我们在这里谈论的是Java。
对于当前项目,必须决定是使用 XML 和 XSL 转换来生成 HTML 还是直接使用 HTML 模板。
我对支持或反对XSL方法的论据很感兴趣。我知道,在必须支持许多不同布局的情况下,XSL解决方案有很多优点,但是为什么在那些只需要支持一个目标布局的情况下会选择它呢?
编辑:我们在这里谈论的是Java。
XSLT 是一种函数式编程语言,您可以使用它来创建与任何模板系统一样丰富的前端。但是,你不应该 - 你和你的团队会发疯。
这两个选项都提供了以逻辑方式将对象转换为演示形式的机会。XSLT 最适合于创建更多的 XML,这可能会使您认为它是用于创建 XHTML 的完美候选者。但是,创建XHTML不应该是主要目标 - 创建用户体验才是。不要关心媒介。
XSLT 的两个重要缺点与语法有关:您的模板、它们包含的模板以及这些模板包含的模板都将是巨大而冗长的。其次,你必须做大量的函数式编程,经验不足的工程师在遇到一个递归模板时,可能会感到困惑和恐惧,这个模板带有一个累积函数参数,而不是一个简单的for循环。
如果您被转换逻辑构造的有效 XML 实体的美妙之处所吸引,请考虑使用类型安全的模板系统来转换 Bean。查看Google XML Pages,并创建逻辑组织,类型安全的模板,这些模板将很容易让未来的工程师学习和扩展。
大约5年前,我为一个企业产品创建了一个XML / XSLT驱动的UI。我们仍在使用它,我现在可以回顾我的经验,看到许多优点和缺点:
优点:
缺点:
我会在想到更多问题时尝试更新。我认为现在回想起来,我的决定是坚持使用通用的模板语言。当我选择 XML/XSLT 时,曾经的大问题现在已经通过主要模板引擎的更新和更成熟的修订版得到了解决。我们仍然从继承.xslt文件的能力中受益匪浅,这是大多数模板引擎都做得不好的。但最终,让大量开发人员提供示例的价值要大得多(例如,在StackOverflow上比较 ASP.NET 答案与XSLT答案。
希望有所帮助!