📄 中文 xml faq - fanqiang_com.htm
字号:
<BR>--------------------------------------------------------------------------------
<BR><BR>6. 可以直接使用中文的元素名称 (Chinese element names) 吗 ?
<BR>可以的. 所有符合 XML 规格的软体工具一定都可以直接使用 中文的元素名称 (Han ideographs for element names).
<BR><BR>但是请注意上述所提的字集是指 ISO 10646 中的 "统一汉字字集" (unified Han characters)。
<BR>例如: 某些字在 GB2312 与 Big5 码中 有不同的字形 (glyph, form or picture)。 但在
<BR>ISO 10646 中却将 这些字的繁体字及简体字统一 (unified) 为同一个字形。 : 正确的 XML 软
<BR>体工具应确保将 Big5 或 GB2312 码的资料转换为 ISO 10646 时,其中的元素型别名称
<BR>(element type names) 及属性 (attributes) 等等的 XML 名称 (names) 是 "正规化"
<BR>(normalized) 为 "统一形式" (unified form) 而不是 "相容形式" (compatability form)。
<BR><BR>对於 Big5 码还有一个特殊的问题要考虑。 请参阅问题 18.
<BR>--------------------------------------------------------------------------------
<BR><BR>7. XML 中可以处理 Big5 码的中文资讯吗 ?
<BR>可能可以. 一个符合 XML 规格的软体工具一定都支援 UTF-8 及 UTF-16 码 (Unicode). 但是任
<BR>何的字码集 (character set) 都有可能用来编写 XML 资料。 撰写剖析器 (parser) 的设计决
<BR>定其 XML 软体工具支援那些字码集。
<BR><BR>在 XML 系统的处理围之外,文件内容是使用 Big5 码。
<BR>在 XML 的系统中, 文件是以 ISO 10646 字码. : 在 Java 环境中也是使用 ISO 10646 字码。
<BR>这个字码也 就是 Unicode。
<BR>您必须在每一个使用 Big5 码的 XML 文件 (parseable entity) 档中 一开始的部份加上下列的
<BR>档头 (header):
<BR> <?xml version="1.0" encoding="Big5"?>
<BR>为何一定要在 XML 文件中加上正确的字码设定呢 ? 假如您的 XML 文件中没有标明正确的字码,
<BR>XML 系统会拒绝处理这份 文件。 XML 的系统不再使用 HTML 系统的字码猜测 (guessing) 的处
<BR> 理方式,而采用明确标示 (explicit markup) 的方式。
<BR><BR>对於 Big5 码还有一个特殊的问题要考虑。 请参阅问题 18.
<BR>--------------------------------------------------------------------------------
<BR><BR>8. XML 中可以处理 GB2312 码的中文资讯吗 ?
<BR>可能可以. 一个符合 XML 规格的软体工具一定都支援 UTF-8 及 UTF-16 码 (Unicode). 但是任
<BR>何的字码集 (character set) 都有可能用来编写 XML 资料。 撰写剖析器 (parser) 的设计决
<BR>定其 XML 软体工具支援那些字码集。
<BR><BR>在 XML 系统的处理围之外,文件内容是使用 GB2312 码。 或是以 EUC 编码 (EUC encoding)
<BR>的 GB2312 及 ASCII 码, 也称为 cn-euc 码。
<BR>在 XML 的系统中, 文件是以 ISO 10646 字码. : 在 Java 环境中也是使用 ISO 10646 字码。
<BR>这个字码也 就是 Unicode。
<BR>您必须在每一个使用 GB2312 码的 XML 文件 (parseable entity) 档中 一开始的部份加上下列
<BR>的档头 (header):
<BR> <?xml version="1.0" encoding="gb2312"?>
<BR>--------------------------------------------------------------------------------
<BR><BR>9. 如何知道某个 XML 软体工具支援那些字码 ?
<BR>在台湾中央研究院的 "Chinese XML Now!" 计划提供了一些 相关资讯。此外厂商 也可以使用
<BR>中文处理能力标 (Chinese Numberplate logo) 来标示. 无论其工具 处理的能力如何,您都可以
<BR>先将 XML 文件转码为 UTF-8 码,则任何一个 XML 软体工具就都可以使用了。
<BR>
<BR>--------------------------------------------------------------------------------
<BR><BR>10. 当我使用 Big5 码,但是我要使用的字并不在标准字集中时,该如何解决呢 ?
<BR>可以使用 ISO 10646 统一字集 (universal character set) 中的任何的字。 假如是 Big5 或
<BR>GB2312 码中的缺字,您就可以用 "数字字元参引" (numeric character reference) 的方式表示。
<BR>例如: <BR> 媼
<BR>中的 "5ABC" 是 ISO 10646 字集的顺序,并以十六进位的方式表示。 您可以用 Windows NT 系统
<BR>中的 "Character Map" 工具看到 ISO 10646 字集中的所有字形,也可以选用不同的字型。
<BR><BR>假如您使用 ISO 10646 字集中的变体 (variant),您可以定义一个 元素型别 (element type) 及
<BR>属性 (attribute),就可以达到正确 显示的目的了。例如您可以借用 HTML 中的 SPAN 元素型别
<BR>(element type), 然後使用样式表 (stylesheet),也就是层级式样式表 (Cascading Stylesheets: CSS)
<BR>就可以依照您的需求来切换字型了。
<BR><BR>假如这个字不在 ISO 10646 的字集中,您就需要用造字区 (private-use character area) 了.
<BR>这与过去的做法并没有任何改进 ! 希望将来有更好的系统可以引进到 XML 及 ISO 10646 中。
<BR>--------------------------------------------------------------------------------
<BR><BR>11. 目前免费又好用的 XML 软体工具中, 那些可以处理中文资料呢 ?
<BR>XML 中文软体工具中,目前 (1998/12) 最好的可能是 Internet Explorer 5.0 beta 版。 最好
<BR>的 XML 剖析器 (parser) 可能是 IBM 公司的 XML Parser for Java。 最好的 XML/SGML 剖析器
<BR> (parser) 可能是 James Clark 的 SP software (C++)。 还有个使用 perl 语言撰写的 XML 剖
<BR> 析器正在进行中。
<BR>--------------------------------------------------------------------------------
<BR><BR>12. 请谈谈关於 Web 伺服器 (server) 的转码 (Transcode) 问题 ?
<BR>有一些日本的 Web 伺服器 (server), 代理服务 (proxy) 或浏览器 (browser) 可以自动进行日
<BR>文的Shift-JIS 及 EUC-J 码之间的转换。同样也有其他语言 也有自动转换,例如俄文。但目前
<BR>我们还不知道有任何 Web 伺服器可自动进行 Big5 及 GB2312 码之间的繁体简体转换。
<BR><BR>但问题是无法完整的将 Big5 码完整的转换为 GB2312 码,有些字 因为在 GB2312 码中不存在,
<BR>所以转码後这些字就会产生错误。 所以新一代的浏览器应该要使用 可认知 XML 的不掉字转码器
<BR> (XML-aware lossless transcoders) - 这个转码器会将 GB2312 码中没有的 字以数字字元参引
<BR> (Numeric Character Reference, NCR) 的方式表示。 但因为 XML 规格太新了,目前尚未有浏
<BR> 览器支援此项功能。
<BR><BR>要避免转码 (transcoding),您可以将文件的 MIME 类别设定为 application/xml。这样可能可
<BR>以避免文件被转码了。 假如您使用 Apache Web 伺服器,您可以做如下的设定:
<BR> AddType application/xml XML xml <BR>或
<BR> ForceType application/xml <BR>或
<BR> DefaultType application/xml
<BR><BR>但是对於 HTML 资料,那些常用的浏览器 (Web browser) 使用了各种 的技巧来推测网页是使用
<BR>那一种字集编码 (character set encoding)。 这种情形可能会一直持续存在,甚至采用
<BR>HTML-in-XML (也称为 "Voyager") 技术时 也会发生。 所以使用 application/xml 可以避免代理
<BR>服务 (proxy) 进行 转码,但是接受资料的这一端还是可能会随意 (lossy) 使用内建的转码 机制。
<BR>(请参阅问题 19)
<BR>--------------------------------------------------------------------------------
<BR><BR>13. 万一我的 Web 伺服器送出错误的字集资讯,怎麽办呢 ?
<BR>大多数的 Web 伺服器并没有在 HTTP/MIME 标头 (header) 中 送出正确的字集资讯。实际状况是
<BR>有许多的 Web 伺服器并无法设定字集。 <BR><BR>下列是一些原则:
<BR><BR>将来 Web 伺服器会从 XML 文件中检视其中的字集标头 (encoding header)。:但是目前还不是如此,
<BR>因为 XML 太新了,
<BR>假如您的网站只提供一种字集的文件,请将您的 Web 伺服器 设定为内定 (default) 送出这种字集资讯。
<BR>假如您的 Web 伺服器支援 HTTP 1.1 协定中的内容沟通 (content negotiation),例如: Apache。
<BR>而且您的文件有不同 语言的版本,伺服器端可以根据语言来选择适当语言版本的文件送出, 例如:
<BR>使用 file.xml.en 及 file.xml.cn) 等等的 档名,或是
<BR>每个档案使用不同的目录,并使用 .htaccess 控制档来 进行语言的设定。 (对於 Apache 伺服器,
<BR>系统中要设定允许 "AllowOverride FileInfo" 的权限。请继续参考下一个问题。
<BR>--------------------------------------------------------------------------------
<BR><BR>14. 如何针对使用 Apache 伺服器者,使用 .htaccess 设定送出 正确的 HTTP/MIME 标头 (header) ?
<BR>(未写完)
<BR>对於 Apache 伺服器,系统中要设定允许 "AllowOverride FileInfo" 的权限。在任何的资料目录,可
<BR>以使用名为 .htaccess 的档案来控制。 [:在 MIME 的名词中, "encoding" 代表 "资料压缩"
<BR> (compression);在 XML 的编码标头 (encoding header) 中, "encoding" 代表 "采用的字集"。]
<BR> 可参考下列设定:
<BR><BR> DefaultLanguage zh
<BR> AddType application/xml XML xml
<BR>为何一定要有正确的语言设定呢 ? 因为如此可以帮助全文检索系统。
<BR><BR>为何要将 XML 文件以 MIME 类别设定为 application/xml 送出, 而不以 text/xml 送出呢 ? 因为
<BR>如此之下,文件就不会被转码。 Big5 到 GB2312 的转码会导致 有些字会不见。(请参考问题 12)
<BR>--------------------------------------------------------------------------------
<BR><BR><BR>15. 什麽是 xml:lang 这个标准属性的用途呢 ?
<BR>每个 XML 元素 (element) 都可以有个 xml:lang 属性, 来设定您的文件使用何种语言。这个属性可
<BR>以协助全文检索系统及排版系统。 请将这个属性加在您的中文 XML 文件的最前头。 可以针对中文的
<BR>设定值如下: <BR><BR>xml:lang="zh" 表示中文资料;
<BR>xml:lang="zh-TW" 表示台湾使用的中文 (繁体字);
<BR>xml:lang="zh-HK" 表示香港使用的中文 (可能是繁体字);
<BR>xml:lang="zh-CN" 表示中国大陆使用的中文 (简体字);
<BR>xml:lang="zh-SG" 表示新加坡使用的中文 (简体字);
<BR>这个属性看似简单无奇,但是在您的文件中正确的标示使用何种语言 却会影响深远。如此这般,一个
<BR>中文 Web 搜寻系统 (Web-Robot) 就可以 正确无误的将您的文件加入其系统中,而西方语言的 Web 搜
<BR>寻系统就可 以得知这些文件可能不该加入其系统中,或是可以启动自动的翻译系统。 因为在不同的地
<BR>区所使用的中文词有一部份不一样,所以语言属性 也可以协助自动翻译及搜寻系统。
<BR>--------------------------------------------------------------------------------
<BR><BR>15a. 在一个文件内可以混合使用不同的中文字集吗 ?
<BR>(1998-12-15)
<BR><BR>可以的。文件内的每一个 XML 元素 (element) 都可以使用 "xml:lang" 属性来设定这一个元素是使用
<BR>何种语言。此处不是指字集编码 (Big5 或 GB2312), 而是何种语言。例如:
<BR><BR> <p xml:lang="zh-TW">...</p>
<BR><BR>表示这个元素 (element) 是使用台湾的中文。
<BR> <p xml:lang="zh-HK">...</p>
<BR><BR>表示这个元素 (element) 是使用香港的中文。
<BR> <p xml:lang="en-SG">...</p>
<BR><BR>表示这个元素 (element) 是使用新加坡的英文。
<BR> <p xml:lang="zh-CN-YUH">...<z xml:lang="en">blah;</z>...</p>
<BR><BR>表示这个元素 (element) p 是使用中国大陆的广东话中文。 ("YUH" 是在 SIL Enthnologue 中代表
<BR>广东话的代码,请参考下列网页: http://www.sil.org/ethnologue/countries/Chin.html) 但是子
<BR>元素 (subelement) z 是英文。(某些文字是使用拼音的方式表达; 这些部份是用於方言,不懂得这
<BR>种方言就无法理解其意义。)? <BR>当然,您也可以自订属性来达到您的需求:
<BR><BR> <p xml:lang="zh-HK-simplified" traditional="OK">...</p>
<BR><BR>表示这个元素内的资料是使用简体字的香港中文。 但是也可以使用 traditional="OK" 属性来表示可
<BR>以使用 繁体字字形。
<BR>使用 XML,您可以用标示 (markup) 来描述文件中所有的资讯。 接着根据标示,您可以写个程式,或
<BR>是样示表 (stylesheet), 或是报表产生程式来完成您的需求。。
<BR>--------------------------------------------------------------------------------
<BR><BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -