XRX/背景技术
XRX 架构并非一蹴而就。它得益于许多标准化组织多年来的辛勤工作。显然,XML 标准是支持大多数关键技术的一项。但 HTML、HTTP、CSS、XPath、XML Schema、XSLT、XForms、REST、Schematron 和 XQuery 等 W3C 制定的标准的作用也必须得到重视,才能真正了解标准化工作的范围。以下是这些技术的简要概述,以及它们创建和学习的粗略顺序。
在文本文档中使用“小于”和“大于”字符来括号嵌入的数据元素的语法可以追溯到早期的标记语言,例如 SGML。SGML 是 HTML 标准的模型语言。SGML 是一项复杂的标准,要求用户熟悉许多技术,因此在 1997 年,人们努力简化这项标准,而 XML 标准首次由 W3C 发布。
XPath 语言是一种较小的数据选择语言,广泛用于其他 XML 标准中。我们的客户端技术(XForms)和我们的服务器技术(XQuery)都高度依赖于使用 XPath 从更大的 XML 树结构中精细地去除我们想要的内容。如果您熟悉 UNIX 或 Web 文件系统路径,您可能已经对 XPath 表达式的工作原理有了很好的概念模型。在本手册中,我们将主要使用非常简单的 XPath 表达式,这些表达式只是使用“子”路径和称为谓词的“where”路径来缩小 XML 数据集。
尽管本维基教科书并非关于 XForms 的手册,但使用 XForms 使客户端应用程序开发与本书中其余部分的内容非常一致。我们将涵盖足够的背景知识,以帮助您了解 XForms 的关键架构特性,以及它如何利用 REST 接口获取数据并将其提交到服务器。从技术上讲,您仍然可以从 XRX 架构中受益,而无需在客户端使用任何 XForms 应用程序,但您可能会发现,在这样做时,您会复制 XForms 中已经存在的大多数组件。XForms 中的核心概念是 MVC 架构、绑定、依赖关系图和声明式提交元素。如果您是 JavaScript 和 AJAX 的粉丝,您可以使用这些工具实现 XForms 的许多功能。但本维基教科书不涵盖此主题。事实上,许多人专门使用 XRX 架构来避免学习 JavaScript 和如今流行的各种 JavaScript 框架。
任何熟悉 SQL 语言的人都知道 SELECT 语句在从关系数据库中选择适当的表、列和行中的作用。表面上,XQuery 可能仅仅看起来像是针对 XML 数据库的 SQL 版本。但是,由于 XQuery 可以很容易地扩展,因此它扮演了比 XML 数据库的报告语言更大的角色。XQuery 可能是开发人员唯一需要的服务器语言。由于它可以很容易地扩展,因此它已经被扩展了数百种有用的方式。
第一个主要扩展是 XQuery 能够更新 XML 数据。这被认为对最初的 XQuery 作者很重要,但他们决定首先专注于数据选择,其次是数据更新。
XForms 模型最优雅的方面之一是,它从一开始就被设计为与 W3C 的层叠样式表 (CSS) 标准一起使用。因此,Web 应用程序控件在屏幕上排列的几乎所有方面都可以由单个站点范围的 CSS 文件管理。结果是,如果您决定进行站点范围的更改,则只需要更改一个文件。缺点是,许多浏览器中对 CSS 的支持程度差异很大。由于 XForms 是作为单独的命名空间实现的,而 CSS 被设计为命名空间感知的,因此大多数现代 XForms 样式表都利用了这一基本功能。挑战在于,并非所有浏览器都实现了 CSS 命名空间功能。这个问题很复杂,任何构建应用程序以支持旧版浏览器的 XRX 架构都必须考虑这些注意事项。