ETD 指南/技术问题/SGML\XML 和其他标记语言
SGML(标准通用标记语言)和XML(可扩展标记语言)是标记语言,它们使用标签(“<” 和 “>”)以及标签名称,将文档的各个部分标记或括起来。文档类型定义(DTD)指定文档类型或类别的语法或结构。SGML 需要 DTD,而 XML 可选地使用 DTD。但是,考虑到目前的趋势,XML 最有可能被使用,原因如下。
- XML 是一种将结构化数据放入文本文件的方法,用于“结构化数据”,比如电子表格、通讯录、配置参数、金融交易、技术图纸等。生成此类数据的程序通常也会将其存储在磁盘上,为此,它们可以使用二进制格式或文本格式。后者允许您在必要时查看数据,而无需使用生成数据的程序。XML 是一套规则、指南、约定,无论您称其为什么,都是为设计此类数据的文本格式而设计的,这样可以生成易于生成和读取(由计算机读取)的文件,这些文件是明确的,并且避免了常见的陷阱,例如缺乏可扩展性、缺乏对国际化/本地化的支持以及平台依赖性。
- XML 看起来有点像 HTML,但不是 HTML
与 HTML 一样,XML 使用标签和属性(形式为 name="value"),但 HTML 指定每个标签和属性的含义(以及文本在浏览器中的显示方式),而 XML 仅使用标签来界定数据片段,并将数据的解释完全留给读取它的应用程序。换句话说,如果您在 XML 文件中看到“<p>”,不要认为它是一个段落。根据上下文,它可能是价格、参数、人。简而言之,它允许您开发特定于某个领域的自己的标记语言。 - XML 文档可以长时间保存。
XML 在基本层面上是一种非常简单的格式。它可以用 100% 纯 ASCII 文本以及其他几种定义明确的格式写入。ASCII 文本对损坏具有较强的抵抗力。此外,XML 文档非常完善。W3C 的 XML 1.0 规范详细说明了如何读取 XML 数据。 - XML 是免费、与平台无关且得到良好支持的。
通过选择 XML 作为某个项目的基石,您便加入了一个庞大且不断壮大的工具社区(其中一个可能已经满足您的需求!)以及经验丰富的工程师。选择 XML 有点像为数据库选择 SQL:您仍然需要构建自己的数据库以及操作它的程序/过程,但有许多工具可用,也有许多人可以为您提供帮助。由于 XML 作为一项 W3C 技术是免费的,您可以构建自己的软件,而无需向任何人付费。庞大和不断增长的支持意味着您也不会被绑定到单个供应商。XML 并非总是最佳解决方案,但它始终值得考虑。 - XML 是一个技术家族。
有 XML 1.0,它定义了“标签”和“属性”是什么的规范,但在 XML 1.0 周围,还有一套不断增长的可选模块,它们提供标签和属性集,或为特定任务提供指南。例如,Xlink 描述了向 XML 文件添加超链接的标准方法。XPointer 和 XFragments 是用于指向 XML 文档部分的语法。(Xpointer 有点像 URL,但它不是指向 Web 上的文档,而是指向 XML 文件中的数据片段。)CSS,样式表语言,适用于 XML 和 HTML。XSL 是用于表达样式表的先进语言。DOM 是一套用于从编程语言操作 XML(和 HTML)文件的标准函数调用。XML Namespaces 是一个规范,描述了如何将 URL 与 XML 文档中的每个标签和属性关联起来。不过,该 URL 的用途取决于读取该 URL 的应用程序。XML 模式帮助开发人员精确地定义他们自己的基于 XML 的格式。还有更多模块和工具可用或正在开发中。 - XML 提供结构化和集成数据 XML 非常适合大型和复杂的数据,例如 ETD,因为数据是结构化的。它不仅让您指定定义文档中元素的词汇表;它还允许您指定元素之间的关系。
- XML 可以编码有关 DTD 的元数据。
文档通常会辅以元数据(即关于数据的元数据)。如果将此类元数据包含在 ETD 中,则它将使 ETD 自描述。XML 可以编码此类元数据。但是,另一方面,XML 也带来了一些不便。
- 从文字处理表格到 XML 的转换需要更多提前规划、不同的工具以及更广泛的关于处理概念的学习,这比 PDF 更复杂。
- 了解这些事项的人员要少得多,支持这种转换的工具也更不成熟且更昂贵。此外,转换过程也可能很复杂、困难且耗时。
- 使用 XML 编辑工具直接在 XML 中编写需要一些 XML 的先验知识。
- 此外,XML 对标签的命名和排序非常严格。它也是区分大小写的,这说明了学生用这种形式准备 ETD 所需的相对工作量。
创建 XML 文档的过程
XML 文档具有四阶段生命周期。
XML 文档主要使用编辑器创建。它可能是像记事本这样的基本文本编辑器。或者。vi. 编辑器。我们甚至可以使用所见即所得编辑器。XML 解析器读取文档并将其转换为元素树。解析器将树传递给显示它的浏览器。重要的是要知道所有这些过程都是独立的,彼此解耦的。
让 XML 为 ETD 发挥作用 在深入探讨 ETD 的 XML 细节之前,我们应该澄清一些事情,因为我们现在以后会经常使用它们。
DTD(文档类型定义)
XML 文档主要由一个严格嵌套的元素层次结构组成,只有一个根元素。元素可以包含字符数据、子元素或两者的混合。XML 文档的结构在 DTD 中描述。有不同类型的文档,例如信件、诗歌、书籍、论文等。每个文档都有自己的结构。这种特定的结构在称为文档类型定义 (DTD) 的单独文档中定义。
使用的 DTD 基于 XML,它涵盖了大多数基本的 HTML 格式标签,以及一些来自都柏林核心元数据的特定标签。DTD 已经为 ETD 开发完成。开发的 DTD 太通用了。如果有人想使用数学公式或包含一些化学公式,它就不够用了。为此,我们可以加入MathML(数学标记语言)和/或CML(化学标记语言)。这些语言有定义的 DTD,我们也必须将其用于我们的文档。但是,将多个 DTD 整合到文档的不同部分的研究仍在进行中。
CSS(层叠样式表)
CSS 是一种灵活的、跨平台的、基于标准的语言,用于建议应用于整个网站或网页的样式或表现特征。在它们最优雅的形式中,CSS 在单独的文件中指定,并在文档加载到支持 CSS 的浏览器时从 XML 或 HTML 标头区域调用。用户始终可以关闭作者的样式并应用自己的样式,或者将他们重要的样式与作者的样式混合。这指出了 CSS 的“层叠”方面。
CSS 基于规则和样式表。规则是对一个或多个元素的一个样式方面的陈述。样式表是一个或多个应用于标记文档的规则。
一个简单的样式表示例是一个包含一个规则的样式表。在以下示例中,我们向所有一级标题(H1)添加颜色。以下是我们添加的代码行 - 规则。
H1 {color: red}
XSL(可扩展样式表语言)
XSL 是一种用于表达样式表的语言。它包括两个部分
- 一种用于转换 XML 文档的语言,以及
- 一种用于指定格式语义的 XML 词汇表。
如果您不明白这句话的意思,可以将 XSL 视为一种可以将 XML 转换为 HTML 的语言,一种可以过滤和排序 XML 数据的语言,一种可以寻址 XML 文档部分的语言,一种可以根据数据值格式化 XML 数据的语言,例如以红色显示负数,以及一种可以将 XML 数据输出到不同设备的语言,例如屏幕、纸张或语音。XSL 由 W3C XSL 工作组开发,该工作组的任务是开发 XSL 的下一个版本。
由于 XML 不使用预定义的标签(我们可以使用任何我们想要的标签),因此这些标签的含义无法理解:<table>
可以表示 HTML 表格,也可以表示家具。由于 XML 的性质,浏览器不知道如何显示 XML 文档。
为了显示 XML 文档,需要有一种机制来描述文档的显示方式。其中一种机制是如上所述的 CSS,但 XSL 是 XML 的首选样式表语言,XSL 比 HTML 使用的 CSS 复杂得多,也更强大。
XML Namespaces
XML Namespaces 的目的是区分重复的元素类型和属性名称。这种重复可能发生在以下情况下,例如,在 XSLT 样式表中或在包含来自两个不同 DTD 的元素类型和属性的文档中。
XML 命名空间是元素类型和属性名称的集合。命名空间由一个唯一的名称标识,该名称是一个 URI。因此,XML 命名空间中的任何元素类型或属性名称都可以通过一个两部分名称唯一标识:其 XML 命名空间的名称和其本地名称。这种两部分命名系统是 XML 命名空间的唯一功能。
- XML 命名空间使用 xmlns 属性声明,该属性可以将一个前缀与命名空间相关联。该声明对包含该属性的元素及其所有后代有效。例如,下面的代码声明了两个 XML 命名空间。它们的范围是 A 和 B 元素。
<A xmlns:foo="http://www.foo.org/" xmlns="http://www.bar.org/">abcd</A> - 如果 XML 命名空间声明包含一个前缀,则可以使用该前缀引用该命名空间中的元素类型和属性名称。例如,下面的代码在 http://www.foo.org 命名空间中声明了 A 和 B,该命名空间与前缀 foo 相关联。
<foo:A xmlns:foo="http://www.foo.org/"> <foo:B>abcd</foo:B> </foo:A> - 如果 XML 命名空间声明不包含前缀,则该命名空间是默认 XML 命名空间,并且可以使用不带前缀的元素类型名称引用该命名空间中的元素类型名称。例如,下面的代码与前面的代码相同,但使用默认命名空间而不是 foo 前缀。
<A xmlns="http://www.foo.org/"><B>abcd</B></A>
术语表
属性
XML 结构化构造。标记元素中的名称-值对,用于修改元素的某些特性。对于 XML,所有值都必须用引号括起来。
层叠样式表 (CSS)
格式描述,提供对 HTML 和 XML 元素的表示和布局的增强控制。CSS 可用于描述简单结构化 XML 文档的格式行为,但它不提供偏离源数据结构的显示结构。
CDATA 部分
XML 结构化构造。CDATA 部分可用于标记带引号的标签或保留字符,从而防止它们被解释。出于这个原因,CDATA 部分特别适用于转义标记和脚本。XML 中 CDATA 部分的语法为 <![CDATA[ ... ]]>。
字符数据
XML 结构化构造。元素或属性的文本内容。XML 区分这种纯文本和标记。
字符集
一组字符及其数值的映射。例如,Unicode 是一个 16 位字符集,能够编码所有已知字符;它用作全球字符编码标准。
组件
封装数据和代码的对象,并提供一组定义明确的公开可用服务。
数据类型
元素包含的内容类型:数字、日期等。在 XML 中,作者可以指定元素的数据类型,例如,使用标记化属性类型。Microsoft 正在与 W3C 合作定义一组标准类型,任何人都可以自由使用。
文档元素
XML 文档的顶层元素;只允许一个顶层元素。文档元素是文档根的子元素。
文档对象模型 (DOM)
W3C 维护的标准,指定了如何使用脚本或其他程序以编程方式更新 Web 文档的内容、结构和外观。建议的 XML 对象模型与 HTML 的文档对象模型匹配,以便脚本编写者可以轻松地学习 XML 编程。XML DOM 将提供一种简单的方法来读取和写入 XML 树结构中的数据。
文档根
XML 文档的顶层节点;其后代从它分支出来,形成该文档的 XML 树。文档根包含文档元素,还可以包含一组处理指令和注释。
文档类型声明
XML 结构化构造。XML 文档中的一个生成,它包含或指向提供文档类语法规则的标记声明。这种语法被称为文档类型定义。文档类型声明可以指向包含标记声明的外部子集(一种特殊的外部实体),也可以直接在内部子集中包含标记声明,也可以两者兼而有之。文档的 DTD 由这两个子集共同组成。文档类型声明的语法为 <!DOCTYPE content >。
文档类型定义 (DTD)
描述文档类语法的标记声明。DTD 在 XML 文件的文档类型声明生成中声明。标记声明可以位于外部子集(一种特殊的外部实体)中,可以位于 XML 文件中的内部子集中,也可以两者兼而有之。文档的 DTD 由这两个子集共同组成。
电子数据交换 (EDI)
一种用于交换数据和支持交易的现有格式。EDI 交易只能在已专门设置了兼容系统的站点之间进行。
元素
XML 结构化构造。XML 元素由开始标签、结束标签和标签之间的信息组成,这些信息通常被称为内容。XML 文件中使用的元素由 DTD 或模式描述,它们都可以提供对数据结构的描述。
实体
XML 结构化构造。与名称关联的字符序列或格式良好的 XML 层次结构。实体可以通过实体引用来引用,以将实体的内容插入树中的该点。XML 实体的功能类似于宏定义。实体声明发生在 DTD 中。
实体引用
XML 结构化构造。引用命名实体的内容。名称由与号和分号字符分隔;例如,&bookname; 和 <。它与宏的使用方式大致相同。
可扩展链接语言 (XLL)
一个 XML 词汇表,它提供 XML 中的链接,类似于 HTML 中的链接,但功能更多。链接可以是多方向的,链接可以在对象级别存在,而不仅仅是在页面级别存在。
可扩展标记语言 (XML)
SGML 的一个子集,它提供了一种统一的方法来描述和交换结构化数据,采用开放的文本格式,并通过使用标准 HTTP 协议来传递这些数据。截至本文撰写时,XML 1.0 是万维网联盟的推荐标准,这意味着它处于批准过程的最后阶段。
可扩展样式表语言 (XSL)
一种用于将基于 XML 的数据转换为 HTML 或其他表示格式的语言,以便在 Web 浏览器中显示。它与层叠样式表不同,因为它可以以不同于接收顺序的顺序呈现信息。XSL 还能够生成 CSS 和 HTML。XSL 包括两个部分,一个是用于转换的词汇表,另一个是 XSL 格式化对象。
ID
XML 语言中的一个特殊属性类型。XML 元素上的 ID 属性提供了一个唯一名称,使链接可以通过 IDREF 属性类型链接到该元素。与 ID 属性关联的值必须在该 XML 文档中是唯一的。ID 目前使用 DTD 或模式声明。
标记
XML 结构化构造。XML 文档中不表示字符数据的文本:开始标签、结束标签、空元素标签、实体引用、字符引用、注释、CDATA 部分定界符、DTD 和处理指令。
混合内容
XML 结构化构造。当元素类型可以包含字符数据时,该元素类型具有混合内容,可选地与子元素交织在一起。在这种情况下,子元素的类型可以被约束,但它们的顺序或出现的次数不能被约束。
命名空间
一种机制,用于在 XML 文档中来自不同词汇表的元素之间解决命名冲突;它允许来自不同命名空间的相同标签名称混合使用。命名空间标识在 URN 中定义的 XML 词汇表。元素、属性或实体引用的一个属性将一个短名称与定义命名空间的 URN 相关联;然后将该短名称用作元素、属性或实体引用名称的前缀,以唯一标识命名空间。命名空间引用具有作用域。指定命名空间的节点下的所有子节点继承该命名空间。这允许非限定名称使用默认命名空间。
NDATA
文字字符串“NDATA”用作符号声明的一部分。另请参见符号。
符号
通常指数据格式,例如 BMP。符号通过名称标识未解析实体的格式、带符号属性的元素的格式,或处理指令所针对的应用程序。
符号声明
符号声明为符号提供名称和外部标识符。该名称用于实体和属性列表声明以及属性规范中。外部标识符用于符号,它可以使 XML 处理器或其客户端应用程序定位能够处理给定符号中的数据的帮助应用程序。
处理指令 (PI)
XML 结构化构造。传递给应用程序的指令。目标作为 PI 的一部分指定。PI 的语法为 <?pi-name content?>。
资源定义框架 (RDF)
一个类似于应用程序编程接口 (API) 功能的对象模型,RDF 可以被开发人员用来访问 XML 文档中指定内容的逻辑含义。
根元素
有时该术语用于指代文档元素,但这具有误导性,因为顶层元素和文档根并不相同。由于这种歧义,不鼓励使用“根元素”一词。
模式
元素名称的正式规范,指示哪些元素允许出现在 XML 文档中,以及以哪些组合出现。模式在功能上等效于 DTD,但它使用 XML 编写;模式还提供扩展功能,例如数据类型、继承和表示规则。
标准通用标记语言 (SGML)
定义电子文档结构和内容描述的国际标准。XML 是 SGML 的一个子集,旨在通过 Web 传递 SGML 类型的信息。
目标
处理指令所针对的应用程序。以“XML”和“xml”开头的目标名称是保留的。目标出现在 PI 中的第一个标记中。例如,在 XML 声明 <?xml version="1.0"?> 中,目标为“xml”。
文本标记
将标签插入元素的文本流的中间,用额外的元信息标记元素的某些部分。
标记化属性类型
每个属性都有一个属性类型。七种属性类型被描述为标记化的:ID、IDREF、IDREFS、ENTITY、ENTITIES、NMTOKEN 和 NMTOKENS。
统一资源标识符 (URI)
所有引用资源的名称和地址的通用集合,包括 URL 和 URN。定义在伯纳斯-李,T.、R. 菲尔丁和 L. 马辛特,统一资源标识符 (URI):通用语法和语义。1997 年。参见 W3C 文档 RFC1738 的更新。Layman-Bray 对命名空间的建议使每个元素名称都从属于一个 URI,这将确保元素名称始终是明确的。
统一资源定位符 (URL)
一组具有明确说明如何访问 Internet 上资源的 URI 方案。
统一资源名称 (URN)
统一资源名称标识一个持久化的 Internet 资源。
有效的 XML
符合 DTD 或模式中指定的词汇表的 XML。
W3C
万维网联盟
格式良好的 XML
满足 W3C 对 XML 1.0 的推荐中列出的要求的 XML:它包含一个或多个元素;它有一个单独的文档元素,其他任何元素都正确嵌套在其下;文档中直接或间接引用的每个解析实体都是格式良好的。格式良好的 XML 文档不一定包含 DTD。
万维网联盟 (W3C)
1994 年成立的国际联盟,致力于为网络制定标准。参见
XLL
可扩展链接语言
XML
可扩展标记语言
XML 声明
XML 文件的第一行可以可选地包含“xml”处理指令,这被称为 XML 声明。XML 声明可以包含伪属性来指示 XML 语言版本、字符集以及文档是否可以作为独立实体使用。
XML 文档
一个数据对象,根据 XML 推荐,是格式良好的,并且可能(也可能不)是有效的。XML 文档具有逻辑结构(由声明、元素、注释、字符引用和处理指令组成)和物理结构(由实体组成,从根或文档实体开始)。
XML 解析器
一个通用的 XML 解析器读取 XML 文件并生成一个分层结构的树,然后将数据传递给查看器和其他应用程序进行处理。一个验证 XML 解析器还会检查 XML 语法并报告错误。
下一节:多媒体