以前参与某标准工作组的工作时,XML标签使用中文还是英文是一个经常的话题和争论焦点。从实现角度来看待这个问题,会倾向于使用英文(我个人一直这样坚持)。虽然XML标准要求解析器实现必须支持Unicode,但是不能完全做到支持甚至完全不支持中文XML标签的实现到处都是。如果你的XML文档的目标用户是全球的,那么标签使用ASCII字符是最保险的方式。
强烈要求使用中文的理由一般来说有以下几个:
中文易读(针对国人来说,这是从国情出发:),具有中国特色;
与其他国家或组织交流时,能增加筹码(用中文制定,意味着自主产权的性质更甚一些);
能增强国内厂家竞争力(这点基于国内厂家应该更强于中文处理的假设,虽然该假设很难成立);
……
我认为这些林林总总的理由并不充分。考虑易读性时,标签使用中文还是英文影响并不是很大。只要XML内容(标签内容,属性内容,注释等等)为本地化语言(应该这样),就可以基本保证XML文档的可读性。以可读性的一点小折扣来换取实现上的保证,是完全可以接受的。使用中文标签,也并不意味着自主产权,因为市面上简单翻译一下国个现有成果便洋为中用的例子并不少。最后,我对国内厂家在中文处理上的竞争优势也表示怀疑(我们甚至没有能拿得出手的成熟的XML解析器;某新闻机构在内部使用XML作为稿件格式,因为该格式使用中文标签,在实施中遇到许多困难)。
从技术角度来讲,Effective XML: 50 Specific Ways to Improve Your XML一书的Item 2 Mark Up with ASCII if Possible和Item 38 Write in Unicode很好地讨论了这个问题。我深切地同意作者以下两种观点:
ASCII is still the best choice for markup (that is, element names, attribute names, and so on), especially markup that needs to be shared among many different developers with many cultures and languages. The simple fact is that English and ASCII are the lowest common denominator for technical communication around the world.