【问题标题】:Why are XSLT documents considered 'stylesheets'?为什么 XSLT 文档被认为是“样式表”?
【发布时间】:2020-07-09 22:27:37
【问题描述】:

从使用过 HTML/CSS 的角度来看,我从概念上理解 HTML 是标记,并且 CSS 包含用于设置标记样式的规则 - 因此是“样式表”。

出于兴趣,我决定研究一下 XSLT 是什么,因为我开始越来越多地使用 XML。我了解 XML 文档中的 XLS 命名空间被定义为用于转换其他 XML 文档的编程语言。即 XSLT 是一种以 XML 格式编写的编程语言。 (如果情况不是,请告诉我!)

为什么这些“脚本”被视为样式表?即名称 - XSLT - Extensible stylesheet 语言转换从何而来?

从使用 CSS 样式表的人的角度来看,我发现 XSLT 文档的名称令人困惑,据我所知,XSLT 文档与视觉布局(样式)无关,而与转换信息表示有关的一切都被命名为以类似的方式。

【问题讨论】:

    标签: xml xslt


    【解决方案1】:

    XSL 项目最初的目标是开发一种语言,用于设计 XML 文档的样式,以便在屏幕上或打印中再现。随着设计的发展,人们发现它可以有效地分为两部分:首先是转换(变成 XSLT),然后是格式化(变成 XSL-FO)。转换部分演变成一种计算完整的编程语言,尽管具有专门用于处理 XML 的数据模型。

    XSLT 1.0 规范的摘要指出:

      "XSLT is also designed to be used independently of XSL. However, XSLT
      is not intended as a completely general-purpose XML
      transformation language. Rather it is designed primarily for the kinds
      of transformations that are needed when XSLT is used as part of XSL."
    

    您可以相当肯定,如果工作组内部没有一些争议,他们不会费心这么说:我猜有人说“这正在变成一种通用编程语言,这不是什么我们被授权生产”,而其他人则说“不,它只做格式化用例所需的那些事情;如果它对其他事情有用,那是一个意想不到的好处”。从名称中去掉“S”表示背离了该组织的章程。

    【讨论】:

    【解决方案2】:

    请参阅https://www.w3.org/TR/xsl11/,“可扩展样式表语言”之间的区别

    本规范定义了可扩展的特性和语法 样式表语言 (XSL),一种用于表达样式表的语言。它 由两部分组成:

    一种用于转换 XML 文档的语言 (XSLT),以及

    用于指定格式语义的 XML 词汇表。

    XSL 样式表指定 XML 类的表示 通过描述类的实例如何转换来记录 到使用格式化词汇表的 XML 文档中。

    因此,在 XSLT (1) 的开发过程中,重点是同时使用转换语言 (XSLT) 和“用于指定格式化语义的 XML 词汇表”。

    但后来,正如https://www.w3.org/Style/XSL/WhatIsXSL.html 所说:“XSLT。最初旨在执行复杂的样式操作,例如生成目录和索引,现在它被用作通用 XML 处理语言。因此 XSLT 被广泛使用用于 XSL 以外的其他用途,例如从 XML 数据生成 HTML 网页。”。

    【讨论】:

    • 谢谢 - 这是否意味着我看到的大多数示例更适合命名为xlt? (即样式方面不再使用太多)
    • 我不建议为成熟的语言使用新的或不同的名称。取决于你问谁,肯定会有用户使用 XSLT 进行 XML->XSL-FO 转换以最终获得 PDF,这部分在使用 DocBook 或 DITA 发布时非常活跃。
    • 谢谢 - 这很有帮助。没有体验过它的使用方式,很容易不明白它的用处和用途
    【解决方案3】:

    因为 XSLT styling 被认为是从 XML 文档中表示的语义内容到目标媒体中的表现元素。

    将 CSS 和 HTML 视为此类目标媒体之一。 PDF(通过 XSL-FO)将是 XML 可以转换为支持样式的介质的另一个示例。

    将 XSLT 视为一种强大的转换语言,最初是为了设计 XML 样式。

    因此,XSLT 样式表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-13
      • 1970-01-01
      • 2012-09-27
      • 2014-11-27
      • 2017-10-21
      • 2011-05-29
      • 1970-01-01
      • 2013-01-09
      相关资源
      最近更新 更多