| 热门文章 |
 |
|
| 编辑推荐 |
 |
|
|
|
|
|
作者:佚名
来源:不详 点击: 更新:2006-12-19
|
|
Chinese XML FAQ 这份 "常见问题及解答" 是提供使用 XML 来处理中文文件的相关资讯。 关於处理 XML 或 SGML 英文文件的 FAQ 请参考下列网页:
John Lamp and Dave Megginson's comp.text.sgml FAQ at http://lamp.man.deakin.edu.au/sgml/sgmlfaq.txt; Peter Flynn's XML FAQ at http://www.ucc.ie/xml/ (this is also available in Japanese, Korean and Spanish: does anyone want to translate it into Chinese?). --------------------------------------------------------------------------------
1. 什麽是 XML ? XML 「可扩展标示语言」(eXtensible Markup Language) 是用於标示具有结构性资讯的电子文件 的标示语言。 XML 是根据一个国际标准 -- Standard Generalized Markup Language (SGML) -- International Organization for Standardization (ISO) ISO 8879:1986 所定而成的. XML 的格式类似 HTML, 但是您可以使用自行定义 的标及文件结构. 也可以由资料库中取得资料, 再用 XML 进行 串列化 (serializing) 的工作。 --------------------------------------------------------------------------------
2. 谁在负责发展 XML ? ISO SGML 最初是由 IBM 公司所研发的, 但也接受了许多公司 的建议。 XML 是由 "全球资讯网发 展协会" (World Wide Web Consortium, W3C) 所发展的; WWW 的发明人 Tim Berners-Lee 先生是 W3C 的主持人。 阳公司 (Sun Microsystems) 的主资讯结构师 (chief Information Architect) Jon Bosak 先生是 XML 计划主持人。 XML 的规格是由网景公司 (Netscape), 微软公司 (Microsoft) 的代表及 一个称为 Text Encoding Initiative (TEI) 的大型学术 研究计划所共同起草定。 W3C Special Interest Group (W3C XML SIG) 的成员包含:超过一百个公司及受邀 的专家。 --------------------------------------------------------------------------------
3. 那些公司支持或使用 XML ? Microsoft, Netscape, Sun, IBM, Corel, Adobe, Oracle, RealAudio... 遍及各大电脑公司。 --------------------------------------------------------------------------------
4. 我是否已经在使用 XML 了 ? 大多数的 XML 的应用是隐含在系统内部的; 已有许多的应用使用 XML 技术来订定其专用的标 示语言 (specialist markup language). 例如:
RealAudio 公司新版的 RealPlayer G2 采用 W3C 定的 SMIL (Synchronized Media Interchange Language) 规格; Netscape 公司的 "What's Related" 功能采用 W3C 定的 RDF (Resource Description Framework) 规格来运作; Microsoft 公司 Internet Explorer 软体中的 "频道" (Channels) 功能中所使用 CDF (Channel Definition Format) 格式. --------------------------------------------------------------------------------
5. XML 中可以处理中文资讯吗 ? 可以的. 所有符合 XML 规格的软体工具一定都支援 ISO 10646 字集. ISO 10646 是一组庞大的字集, 而且是一项 ISO 标准。 其中包含了 Big5 中文码及 GB2312 中文码中所有的字.
但是 XML 的应用才刚起步, 所以目前大多数的 XML 软体工具都尚未针对中文 资料进行测试。 (1998 年 12 月) --------------------------------------------------------------------------------
6. 可以直接使用中文的元素名称 (Chinese element names) 吗 ? 可以的. 所有符合 XML 规格的软体工具一定都可以直接使用 中文的元素名称 (Han ideographs for element names).
但是请注意上述所提的字集是指 ISO 10646 中的 "统一汉字字集" (unified Han characters)。 例如: 某些字在 GB2312 与 Big5 码中 有不同的字形 (glyph, form or picture)。 但在 ISO 10646 中却将 这些字的繁体字及简体字统一 (unified) 为同一个字形。 : 正确的 XML 软 体工具应确保将 Big5 或 GB2312 码的资料转换为 ISO 10646 时,其中的元素型别名称 (element type names) 及属性 (attributes) 等等的 XML 名称 (names) 是 "正规化" (normalized) 为 "统一形式" (unified form) 而不是 "相容形式" (compatability form)。
对於 Big5 码还有一个特殊的问题要考虑。 请参阅问题 18. --------------------------------------------------------------------------------
7. XML 中可以处理 Big5 码的中文资讯吗 ? 可能可以. 一个符合 XML 规格的软体工具一定都支援 UTF-8 及 UTF-16 码 (Unicode). 但是任 何的字码集 (character set) 都有可能用来编写 XML 资料。 撰写剖析器 (parser) 的设计决 定其 XML 软体工具支援那些字码集。
在 XML 系统的处理围之外,文件内容是使用 Big5 码。 在 XML 的系统中, 文件是以 ISO 10646 字码. : 在 Java 环境中也是使用 ISO 10646 字码。 这个字码也 就是 Unicode。 您必须在每一个使用 Big5 码的 XML 文件 (parseable entity) 档中 一开始的部份加上下列的 档头 (header): <?xml version="1.0" encoding="Big5"?> 为何一定要在 XML 文件中加上正确的字码设定呢 ? 假如您的 XML 文件中没有标明正确的字码, XML 系统会拒绝处理这份 文件。 XML 的系统不再使用 HTML 系统的字码猜测 (guessing) 的处 理方式,而采用明确标示 (explicit markup) 的方式。
对於 Big5 码还有一个特殊的问题要考虑。 请参阅问题 18. --------------------------------------------------------------------------------
8. XML 中可以处理 GB2312 码的中文资讯吗 ? 可能可以. 一个符合 XML 规格的软体工具一定都支援 UTF-8 及 UTF-16 码 (Unicode). 但是任 何的字码集 (character set) 都有可能用来编写 XML 资料。 撰写剖析器 (parser) 的设计决 定其 XML 软体工具支援那些字码集。
在 XML 系统的处理围之外,文件内容是使用 GB2312 码。 或是以 EUC 编码 (EUC encoding) 的 GB2312 及 ASCII 码, 也称为 cn-euc 码。 在 XML 的系统中, 文件是以 ISO 10646 字码. : 在 Java 环境中也是使用 ISO 10646 字码。 这个字码也 就是 Unicode。 您必须在每一个使用 GB2312 码的 XML 文件 (parseable entity) 档中 一开始的部份加上下列 的档头 (header): <?xml version="1.0" encoding="gb2312"?> --------------------------------------------------------------------------------
9. 如何知道某个 XML 软体工具支援那些字码 ? 在台湾中央研究院的 "Chinese XML Now!" 计划提供了一些 相关资讯。此外厂商 也可以使用 中文处理能力标 (Chinese Numberplate logo) 来标示. 无论其工具 处理的能力如何,您都可以 先将 XML 文件转码为 UTF-8 码,则任何一个 XML 软体工具就都可以使用了。 --------------------------------------------------------------------------------
10. 当我使用 Big5 码,但是我要使用的字并不在标准字集中时,该如何解决呢 ? 可以使用 ISO 10646 统一字集 (universal character set) 中的任何的字。 假如是 Big5 或 GB2312 码中的缺字,您就可以用 "数字字元参引" (numeric character reference) 的方式表示。 例如: 媼 中的 "5ABC" 是 ISO 10646 字集的顺序,并以十六进位的方式表示。 您可以用 Windows NT 系统 中的 "Character Map" 工具看到 ISO 10646 字集中的所有字形,也可以选用不同的字型。
假如您使用 ISO 10646 字集中的变体 (variant),您可以定义一个 元素型别 (element type) 及 属性 (attribute),就可以达到正确 显示的目的了。例如您可以借用 HTML 中的 SPAN 元素型别 (element type), 然後使用样式表 (stylesheet),也就是层级式样式表 (Cascading Stylesheets: CSS) 就可以依照您的需求来切换字型了。
假如这个字不在 ISO 10646 的字集中,您就需要用造字区 (private-use character area) 了. 这与过去的做法并没有任何改进 ! 希望将来有更好的系统可以引进到 XML 及 ISO 10646 中。 --------------------------------------------------------------------------------
11. 目前免费又好用的 XML 软体工具中, 那些可以处理中文资料呢 ? XML 中文软体工具中,目前 (1998/12) 最好的可能是 Internet Explorer 5.0 beta 版。 最好 的 XML 剖析器 (parser) 可能是 IBM 公司的 XML Parser for Java。 最好的 XML/SGML 剖析器 (parser) 可能是 James Clark 的 SP software (C++)。 还有个使用 perl 语言撰写的 XML 剖 析器正在进行中。 --------------------------------------------------------------------------------
12. 请谈谈关於 Web 伺服器 (server) 的转码 (Transcode) 问题 ? 有一些日本的 Web 伺服器 (server), 代理服务 (proxy) 或浏览器 (browser) 可以自动进行日 文的Shift-JIS 及 EUC-J 码之间的转换。同样也有其他语言 也有自动转换,例如俄文。但目前 我们还不知道有任何 Web 伺服器可自动进行 Big5 及 GB2312 码之间的繁体简体转换。
但问题是无法完整的将 Big5 码完整的转换为 GB2312 码,有些字 因为在 GB2312 码中不存在, 所以转码後这些字就会产生错误。 所以新一代的浏览器应该要使用 可认知 XML 的不掉字转码器 (XML-aware lossless transcoders) - 这个转码器会将 GB2312 码中没有的 字以数字字元参引 (Numeric Character Reference, NCR) 的方式表示。 但因为 XML 规格太新了,目前尚未有浏 览器支援此项功能。
要避免转码 (transcoding),您可以将文件的 MIME 类别设定为 application/xml。这样可能可[1] [2] [3] 下一页
|
|
|