示例 - XML-Letter 中使用的解析器规则

解析器规则可定义文件类型支持软件处理XML-letter文件类型的方式。

我们希望按如下方式处理 XML-letter 文件类型的元素:
XML 元素可翻译注释
<letter>

此为根元素且代表信件结构。

<title maxlength="50">

所插入的这些元素用于说明如何处理具有长度限制的文本部分。

<title maxlength="40">
<salutation>

“Dear Daniel”应翻译。

<text>

信件的正文应进行翻译。

<component translate="yes">

所插入的这些元素用于说明如何处理已标记为可翻译或不可译的文本部分。

<component translate="no">
<emphasis>

emphasis 标记会更改文本的格式,但文本仍应进行翻译。

<signature>

无需翻译人名或地址。

<address>
<weblink>

无需更改 Web 地址。

<logo alt>

logo alt 文本应为本地语言。

<logo address>

无需更改 Web 地址。

实现该结果的解析器规则如下所示:
Element @attribute=...XPath翻译设置标记类型
(any) @translatable="yes"//*[@translatable = 'yes']可翻译内嵌
(any) @translatable="no"//*[@translatable = 'no'] 非可译内嵌
salutation//salutation可翻译结构
text//text可翻译结构
emphasis//emphasis未指定内嵌
signature//signature 非可译结构
address//address 非可译结构
weblink//weblink非可译结构
logo @alt=...//logo/@alt可翻译内嵌
logo @address=...//logo/@address非可译结构
规则表中这一最后一个规则覆盖所有其他元素//*非可译

所有这些元素的非打印字符处理为沿用父项