自定义 HyperMarkup 生成的 XML 片段

本节将介绍使用 HyperMarkup 生成自定义 XML 片段的功能。你几乎可以通过 HyperMarkup 定制完全满足自己 XML 文档结构的文档。

在下文,我假定你拥有 HTML 语言的知识,起码你知道什么是标题1元素(H1)、什么是着重元素(STRONG)、什么是链接(A)等等。如果这些标记对于你而言比较陌生,可能需要先学习 HTML,“充一下电”了。对于具有 XML 知识的读者而言,相信这不是困难的事情。

自定义 XML 元素映射表

HyperMarkup 中的 XML 元素映射表将编辑器中的 HTML 元素映射为输出时的 XML 元素。

要自定义 XML 元素映射表,方法如下:

  1. 执行“选项”菜单中的“文本设置选项”命令。
  2. 在弹出的对话框左边栏选择“XML 映射器”,界面如下:
    markup_xml_mapper
  3. “映射元素”下面列出的是 HTML 元素,右边的就是 HTML 元素对应的输出配置。如上图,表示“H1”HTML元素在输出时将被映射成名称为“标题”的 XML 元素。在“元素映射”栏内,可以配置多种输出时的文本校正行为:
  4. “输出校正”表示是否在输出 XML 片段时对源文本的空格和标点进行中文版式处理。各选项含义如下:
    1. “修正多余空格”表示在输出时删除段落头尾的空格(含全角空格)、以及文本中的多个连续空格,两个汉字中间的空格。
    2. “仅删除头尾空格”表示在输出时仅删除段落头尾的空格(含全角空格)。
    3. “不修正空格”表示不会在输出时将连续的空格或段落首尾空格删除。
    4. “修正标点”表示在输出时尝试将英文标点适当地转换成中文标点。
    5. “不修正标点”表示将源文本的标点按原样输出。
    6. “遵循全局设置”表示使用全局的空格、标点处理设置(这两项全局设置在“选项”菜单的“输出校正”栏目下)。
  5. “XML 属性映射”将 HTML 元素的属性映射为相应名称的 XML 属性。例如,可以将“title” HTML 属性映射为输出 XML 的“提示”属性。
  6. 要添加左边列表中不存在的 HTML 映射元素,只需要在右边的“元素映射”栏的“HTML 标记”所对应的文本框中填入所需的 HTML 元素名称,以及下面的“XML 标记”中填入所对应的 XML 元素名称即可。
  7. 要删除 XML 元素映射,可选中左边的 HTML 元素名称,然后点击列表下面的“删除”按钮。
  8. 完成配置后,可点击“关闭”按钮关闭对话框。

你可能会有这样的疑问,上面的配置只能将 HTML 元素统一地映射成对应名称的 XML 元素了(例如,所有的“H1”元素都被映射成“标题”元素,所有的“P”元素都被映射成“段落”元素),这样岂不是很不灵活而过于死板?请接着阅读下文。

自定义某一个 HTML 元素的 XML 名称

在下图的编辑器界面中,我们可以看到有 3 个 H1 标题。按照上面的配置,它们在 XML 输出转换时,都将被映射成“标题”元素。有时候,我们不需要将所有 HTML 的“H1”元素都映射成输出 XML 片段的“标题”元素,这时,可以在编辑器中指定其中某个具体的 H1 标题元素的 XML 输出元素名称。

markup_xml_specific_tag_name

例如,我们希望上图内容为“目录”的 H1 元素的 XML 输出元素名称为“目录”,而保持下面两个内容为“第1章”和“第2章”的 H1 元素的 XML 输出元素名称为预先配置的“标题”。操作步骤如下:

  1. 将光标移动到内容为“目录”的元素中。
  2. 在编辑器右边“元素属性”的“名称”处,我们可以看到 H1 对应的 XML 输出元素名称“标题”。如下图所示:
    markup_xml_specific_tag_name2
  3. 将该处的文本改成“目录”。
  4. 在输出 XML 片段时,可以看到该元素的输出标记已成为“目录”,而其他标记依然为“标题”。输出代码可能如下(输出结果还受到所采用的 XSL 文件影响):

你可能会觉得使用这种方法不太直观,例如,上图三个标题元素的外观几乎完全一样,在编辑过程中无法一眼就看出哪个标题元素的输出标记名称被定制过。HyperMarkup 还提供下面定制输出元素名称的方式。

使用命令控制器控制输出元素的名称

继续采用上面的例子,希望第一个 H1 元素的输出元素名称为“目录”,而其他 H1 元素的输出元素名称依然为默认配置的“标题”,方法如下。