认识XML文档(二)XML的元素、标签、文本、属性和实体
通过前一篇文档,认识XML文档(一)什么是XML文档?,我们了解了什么是XML文档,也讲了标记语言,通标语言,HTML,以及XML。
但是如果你不是搞编程的或者不是工程师,你可能根本还是听不懂我在说什么。(说实话,我也是搞了好久才弄清楚这些语言)
但是!这也没关系,作为一名翻译,或者作为一名本地化项目经理,你只需要认识文档,知道哪些该翻译哪些不该翻译,也就是看懂文档的结构,会解析文档就可以了。
所以今天,我们先立个小目标,将XML的元素、标签、属性、条件和实体搞明白,让你更加清楚地认识一个xml文档,知道哪些该翻译,哪些不该翻译。
我们拿上文提到的这个xml,给大家举例。
这是怎么组成的呢?
声明语句
XML声明是XML文档的第一句,描述了版本号和编码,其格式如下:
<?xml version="1.0" encoding="utf-8"?>你可以理解为这是xml的自我介绍:
“Hi,我是一个xml文档的1.0版本,是utf-8编码格式。”
元素、标签和属性
元素
我们把代码片段中,从最左侧的尖括号到最右侧的尖括号之间的所有内容称为“元素”,英文名是Element,是XML文档中很重要的组成部分。
XML元素包括标签、文本、属性、注释等等,比如:<text>Introduction</text>
,这就是一个元素。
一个xml文档可能包含很多的元素。
我们先来看看标签。
标签
关于标签,你需要了解:
标签是什么?标签,或者标记,就是你看到的尖括号括起来的部分,一个标签=一个左尖括号+元素名+一个右尖括号。比如:
<text>
和</text>
,都是标签,标签名是text。标签名一般不翻译。标签有开始标签和结束标签之分,在这个例子中,
<text>
是开始标签,</text>
是结束标签。具有同一个标签名的“开始标签+结束标签”是一对标签对,比如:<text></text>
是一对。
标签对之间的文本,我们称为元素内容。
文本
关于文本,你需要了解:
元素内容一般是需要翻译的文本。比如,在这个例子中:Introduction才是要翻译的文本。
但是有时元素内容也可以不翻译,比如图中的“5-2b”就不需要翻译。
当然,有时候文本之间也有行内标签对的存在,比如图中的
<emphasis></emphasis>
标签对。
有时候因为元素内容为空,比如:
<text></text>
,有时把这样的标签也可写成<text/>
(斜杠在元素名称后面),这样的元素我们称为空标签,或者独立标记。你可能会问,空标签还需要翻译吗?——也要分析,我们往下看。
但是文本并不是你想写啥就写啥,有时候得换个写法才能呈现你想写的内容,也就是得改为实体。
实体
关于实体,你只需要了解:
XML规范规定,如果下列字符出现在要显示的文本中(在我们的例子中是要翻译的),它们应该写成实体。
如果你想要 | 你需要改为: |
<(小于号) | •< |
>(大于号) | > |
&(和) | •& |
'(英文单引号) | •' |
''(英文双引号) | •" |
如果你看不懂,我举个例子。
如果你想要这个文本:
那你的xml应该这样写:
看见了吗?大于号不是>,而是
>
,单引号不是',而是'
。这就是实体。
这告诉我们什么呢?——如果你在xml中遇到了实体,是不是要考虑在翻译的过程中把这些实体设置为标签呢?
如何设置标签,参见:正则篇(六):用正则将文本标记为标签
属性
关于属性,你需要了解:
属性是什么呢?有时我们会给标签加一些详细的描述,这些描述就是属性,你可以理解为标签的注释。
如果是成对标签,属性一般放在开始标签的标签名后面;当然如果是空标签的话,属性会跟在标签名后面。
属性由
属性名
+=(等号)
+英文单引号/双引号
+属性值
组成。比如这样一个标签:<button value="Cancel" />
,这个标签的意思是:这是一个空标签,标签名是button
有一个value的属性,属性值是cancel。
在遇到有属性值的标签时,要分析属性值是否要翻译。
比如,我们看到这样一个标签,其属性值需要翻译:
以及一个属性值不需要翻译的标签:
对这个标签而言:
标签名是image
有一个src属性
src属性值是sample.jpg,不需要翻译,保留原文
标签名是text
有一个info属性
info属性值是overview,需要翻译。
第一行,只有遇到translate标签是yes的时候,文本才需要翻译;
第二行,只有遇到translate的属性值是tes的时候,另一个value的属性值才需要翻译。
有时候属性可能代表某些条件,可以限定标签或行内标签之间的文本。比如下图中,
总结
我们回到再来看看这个最初的xml文本。
一起回顾一下,今天讲了什么?
什么是标签?什么是标签对?什么是独立标记?如,
<text>...</text>
什么是属性?什么是属性值?属性如果表示条件怎么做?如,
value="OK"
什么是实体?如,
•"
那,作为一名PM或者译员,了解XML的注意事项是什么呢?
标签名和属性名不能翻译。比如:
<button value="OK" />
中,button和value不能动。标签文本和属性值要译前分析:是否需要翻译?是否是条件?是否是注释?等。
每一个开始标签一定要有结束标签:
<text>...</text>
独立标记格式必须正确:
<image.../>
。实体不能翻译,所以为了防止实体出错,要提前译前处理成标签。
希望通过这两篇文档,让你全面了解XML文档。
偷偷告诉你,只要知道标签和属性,基本都OK了~
下一篇讲xml文档如何用CAT解析如何?
你还想学什么,欢迎来问~