这些日子,几乎每个人都在谈论XML (Extensible Markup Language),但是很少有人真正理解其含义。XML的推崇者认为它能够解决所有HTML不能解决的问题,让数据在不同的操作系统或应用之间进行灵活交换。确实,所有的观察家们都同意XML将引发一场内容发布和知识交换的革命。谁先进入这个领域,谁就能够大获其利。
这里的20个有关XML的热门问题能够让你成为一XML“专家”,或至少让你能够在今后看准XML的发展方向。
1 什么是XML? 11 OSD和CDF与XML的关系如何?
2 XML何以重要? 12 电子商务(e-commerce)和XML?
3 SGML、HTML和XML有什么联系? 13 XML中的层叠样式?
4 如何实现XML? 14 XML如何改进超链接?
5 什么是文件类型定义(DTD)? 15 服务器上支持XML吗?
6 什么是格式完整和有效的文件? 16 谁应该学习XML?
7 如何在浏览器中阅读XML? 17 有哪些编写XML的工具可供我使用?
8 RDF和XML有何联系? 18 XML的国际化?
9 Netscape浏览器中如何实现XML? 19 XML的未来在哪里?
10 Microsoft浏览器中如何实现XML? 20 哪里能学到更多的XML知识?
1.什么是XML?
XML代表扩展标识语言(Extensible Markup Language). 由 World Wide Web Consortium (W3C)带头, XML在二月中期成为一个正式的规范.
XML开发者会告诉你XML不是一种语言,而是一个定义其他语言的系统. 你可能已经听说过, 或使用过这些语言中的一种,--如Microsoft支持"推技术"的 Channel Definition Format (CDF).
正从事于XML相关建议工作的W3C, 称XML为"表达数据中结构 的共同语法". 结构化的数据指的是其内容,意义或应用被标记的数据. 例如, HTML中<H1>标记指定文本为某一字体和大小, XML的标记将明确确定信息的种类: <BYLINE>标记可以识别文档的作者, <PRICE>标记可以在一个存货清单中包含某一项目的成本 .
通过将结构,内容和表现分离, 同一个XML源文档只写一次, 可以用不同的方法表现出来: 在计算机屏幕上, 在手提电话显示屏上, 在为盲人服务的设备上翻译成语音, 等等. 它可以在可能开发的任何通讯产品上工作. 一个XML文档因此可以比其书写时的作者和显示技术生存得更久.
所以, XML将不仅限于Internet, 例如, 可以服务于整个出版业, 特别是对于想制作可出现在多种媒体上的文档的人. 一些使用Standard Generalized Markup Language (SGML)多年的大型文档出版商将转向XML. 还有, 独立于平台的XML是为Web开发的, 这是它将最具影响的地方.
DOM
XML在Web的真正实力在于它是如何与Document Object Model (DOM)交互的. DOM是定义访问文档中数据的机制的界面.
使用DOM, 程序员可以用一个标准的方法写动态的内容. 换句话说, 他们可以使用它来使浏览器文档树中的一部分特定内容按照一定的方式表现, 例如, 产生一个小效果, 当用户将鼠标移至文字上时, 这些文字变成蓝色. Netscape Navigator 和 Microsoft Internet Explorer 都有他们各自的DOM, 但是他们都称将在其下一版本的浏览器中支持W3C 的标准DOM.
2.XML何以重要?
Web领袖之间的说法是内容至上. 不幸地, 内容经常和其表现紧密结合. 请问你多少次在一个网站上遇到一个小小的提示, "最好在800x600像素的分辨率上显示"?
XML将帮助解决以上问题, 因为网站建造者不用再指明在哪里显示什么, 而是指明文档 的结构. 例如, 你可以说明文档的标题, 作者, 关联文档的清单, 等等. 然后, 任何一个有XML浏览器的设备都可以给出最适合它的文档版本, 这样的设备可以是一个掌上型计算机, 置顶盒, 或高速的工作站.
但是, 也许XML的最佳特性是其内在的可扩展性. 公司和组织能够扩展XML来满足新的挑战和应用. 一个基于XML的语言已经在使用--微软的Channel Definition Format (CDF)-- 还有更多将出现, 包括 Resource Definition Format (RDF) 和 Open Software Description (OSD).
XML 也允诺成为交换数据 和文档的标准机制. 例如, XML可能成为不同厂商的数据库在Internet上交换信息的一种方法.现在准确地决定XML的方向还有一些早. 但是, 其各种可能性是令人敬畏的,这就是为什么围绕着XML有如此多的激动的一个重要原因.
<<返回标题
3.SGML、HTML和XML有什么联系?
Standard Generalized Markup Language (SGML) 是在文字处理应用中表达数据的一个方法. 它已经出现十多年了, XML 和 HTML 都是从SGML 发展而来的文档形式. 因此, 它们都有一些共同点, 如相似的语法和带括弧的标记符的使用. 但是 HTML 是SGML的一个应用, 而 XML是SGML的一个子集.
区别是重要的. 基本上HTML不能用来定义新的应用, 而XML可以. 例如, Resource Description Format (RDF) 和 Channel Description Format (CDF)都是使用XML定义的应用. XML和HTML更象表兄弟, 而不是亲兄弟.
事实上, XML和SGML是兼容的 -- XML文档可以通过任何SGML制作或浏览工具阅读. 但是, XML没有SGML那么复杂, 它是设计用于有限带宽的网络的, 如Internet. XML规范的合作者Tim Bray说, XML的设计出发点是取SGML的优点, 去除复杂的部分, 使其保持轻巧, 可以在Web上工作.
HTML,SGML和XML将继续用于其合适的地方, 它们中的任何一个不会使其他一个废弃. HTML仍是在Web上快速出版数据的最简单的方法, 大部分短期的数据, 如会议议程或广告宣传册. 如果数据会长期使用, 并且需要更多的一些结构, Web建造者将愿意使用XML. 不同于HTML和XML, SGML可能永远不会在Internet上被广泛接受, 因为它从来没有为某个网络协议的需求而设计或优化过. 对于高端的, 复杂结构的出版应用, SGML将继续适用.
4.如何实现XML?
XML将以几个不同的方式应用. 一个是在人机之间交换数据, 如从Web服务器至用户的浏览器. 另外一个是在不同的应用之间交换数据, 或者是机器之间交换数据.
在这些情况下, 你都可能需要三层架构: 后端数据库, 针对数据的处理逻辑的中间层服务器, 以及数据进一步显示和处理的客户端. 数据库可以从多个数据来源接收信息, 可能已经是XML格式的数据. 中间层然后聚拢数据并在最终的表现层上公布.
现在, 网页有时候以这种方法传送 --CNET的NEWS.COM 从一个数据库中发表数据. 但是要获得一页的新的视图, 如NEWS.COM的新的“打印机友好”选项, 服务器必须产生一个新的页面. 一份适当格式化的XML文档将允许客户端的应用为不同的媒体修改文档的表现形式, 比如为打印机.
<<返回标题
5.什么是DTD?
文档类型定义 (DTD) 是一套关于标记符的语法规则. 它告诉你可以在文档中使用哪些标记符, 它们应该按什么次序出现, 哪些标记符可以出现于其它标记符中, 哪些标记符有属性, 等等. DTD原来是为使用SGML开发的, 它可以是XML文档的一部分, 但是它通常是一份单独的文档或者一系列文档
因为XML本身 不是一种语言, 而是定义语言的一个系统, 它没有象HTML一样拥有一个通用的DTD. 相反, 想使用XML进行数据交换的工业或组织可以定义它们自己的DTD.
如果一个组织想用XML来标识仅在内部使用的文档, 它可以创造自己私有的DTD. 比如 Wall Street Journal Interactive Edition 拥有一个 DTD 来详细说明每一版, 其中有关于页, 文章, 概要, 标题下署名等等的信息. 刊物目前使用SGML DTD (称作Dow Jones Markup Language), 但是它也正在开发一个XML版本.
关于DTD并不是没有争议的. 一些人感到它给商业业务增加了实实在在的价值, 而一些人感觉它限制了创造性. 还有一些人认为DTD有用, 但是还做得不够. 微软正尝试用它的XML数据提议来解决上一个抱怨, 但是批评者说这些改进应该在DTD规范本身进行.
微软的schema
一些供应商, 包括微软, 已经提议了替代DTD的一个方法, 称为schema. 他们已经将其以XML数据提交给了W3C. 就象DTD, schema提供了文档的规则, 并指出用什么标记符, 标记符的属性, 之间的联系, 等等.
但是, 不同于DTD, schema可以定义数据类型. 例如, DTD可能有一个标记符 <PRICE>, 而标记符之间的内容可以是数字或字符串. Schema 可以规定只输入数字.
这个方法显然有其优点, 特别是用于应用,对象,或数据库之间的数据传输. 唯一的问题是它将成为DTD规范, 还是XML的一个扩展.
6.什么是格式完整和有效的文件?
基本上有两类相关的XML文档: 构造良好的和有效的. 构造良好的 XML文档遵守XML语法的一般规则, 这些规则比HTML和SGML的更为严格. XML的字符数据决不会吊在那里, 没有某种结束标识符, 或者是象<MYTAG></MYTAG> 成对出现的 结束标识符, 或者是一个特别的在右尖括弧前带有一个斜杠的 空元素 标记, 比如 <MYTAG/>; XML 标识总是以左尖括弧或 & 开始; 元素类型和属性名称是大小写区分的; 属性需要引号; 等等.
有效的 XML 文档遵守某个特定的 文档类型定义 (DTD). 确认XML文档正确性的工作主要由制作出版工具承担, 而XML浏览器为读取XML文档, 只需要检查其构造的良好性. 这样, 制作工具中的解析器得要检查构造良好性 和 有效性, 而浏览器仅要考虑寻找已经构造良好的XML.
<<返回标题
7 如何在浏览器中阅读XML?
阅读XML文档的工具一般称为XML解析器, 虽然其更正式的名称是XML处理器. XML处理器将数据传送到应用软件, 以做制作, 出版, 查询, 或显示. XML不给应用软件提供 应用程序接口 (API), 它只是把数据传给应用软件. XML处理器不解析非构造良好的数据. Netscape 和 Microsoft 都已经将XML解析器包含在其浏览器中, 或正计划将其包含到浏览器中.
XML开发者团体提供免费的XML阅读器和解析器, 来应用到应用软件或XML制作软件:
Textuality的 Lark, 来自XML规范的作者之一.
Microstar Software的 Ælfred, 一个基于Java的解析器.
DataChannel的 DXP, 前身为著名的NXP, 或已经增加了API的Norbert的 (Mikula) XML 解析器.
8 RDF和XML有何联系?
如果XML是说语言的能力, XML应用软件则是特定的语言. 资源描述格式(Resource Description Format RDF) 是这样的一个应用软件: 使用XML语法的数据建模语言.
RDF是描述和访问数据的一个方法. 这意味着RDF是关于数据的数据, 或者说元数据. 在Web中, 这些元数据将被用于建立标准的站点地图, 更精确的搜索结果, 和分层次的主题索引.
RDF也允许智能书签, 当被索引的网页变化时, 书签随之发生变化. 如果你跟踪内容定期更新的站点, 比如CNET的 NEWS.COM, 将很有用.
对于网站建造者, 建立可被搜索引擎引用的其网站内容的元数据并不困难. 我们很快就会有商业化的软件, 来自动产生给定站点的RDF文件.
XML元数据也将活跃描述和评估数据的市场. 有许多评级机构 在网上出现, 他们评估一切数据, 从保护孩子安全的站点到最佳电影或葡萄酒站点. RDF描述评级机构可以使用的等级的语法. 人们将选择有他们感觉最合适的词汇表的评级机构, 词汇表指的是评级机构给不同类型内容评级使用的特别的一套术语 -- 从性和暴力到葡萄酒酸度.
<<返回标题
9 Netscape浏览器中如何实现XML?
Netscape将在Communicator/Navigator 5.0中以一个代号为Aurora的交付部件来支持XML元数据. Aurora利用RDF 来获得Netscape所说的"桌面信息全面集成."
Aurora在网络, 桌面和数据库之间查找和管理信息. 它将在桌面上以"窗口"菜单的界面出现, 会聚集指向当前项目, 研究主题, 或日常活动等资源的指针. RDF使Aurora的导航条指向不同数据类型(文字处理文档, 表格数据, 电子邮件消息, 数据库内容)的本地文件, 也指向Internet 或 intranet 服务器上的资源(搜索和查询的结果, 书签链接, 等等).
一个读取RDF的XML解析器将是 Netscape 5.0 版浏览器的一部分, 并且在最终产品交付之前会出现在某个beta版本中. 除了这个初始的RDF实现, Netscape正计划将一个通用的XML解析器包含在浏览器中, 而其浏览器可以和其他的XML应用软件一起工作, 比如 Shakespeare markup (一个早期的 XML 应用软件), Chemical Markup Language (CML), 和 MathML, 一个正成为W3C推荐的数学标识语言.
"我们要使 Navigator 成为一个 XML 平台," Netscape 原理工程师R.V. Guha说. Guha 原来开发过 MCF (MetaContent Format), MCF 后来加入了RDF规范.
10 Microsoft浏览器中如何实现XML?
微软的 Internet Explorer 4.0 是第一个实现XML的 Web浏览器. 微软提供了一对XML处理器: 浏览器所携带的用C++写的解析器, 和一个Web建造者可以从中下载和加入他们自己的应用程序的Java解析器的源代码.
Java解析器是一个有效的 解析器, 就是说它根据一个文档类型定义 (DTD) 或 schema 来进行检查. 为了提高性能, 浏览器所带的C++ 版的解析器是一个非有效的解析器.
据微软的产品经理Steve Sklepowich称, 这两个解析器都是"通用的", 因为它们不依靠特定的XML应用, 如Channel Definition Format. 由于XML数据和其表现分离, 在一个Web浏览器本身实际显示XML的能力需要 style sheet, 例如 XSL (Extensible Style Language).
同时, 微软使用了它所称的XML Data Source Object, 或叫 XML DSO. 它应用了动态 HTML的数据捆绑能力, 将一端的XML数据和另一端的HTML数据相链接. (关于数据捆绑的例子, 可以查看 BUILDER.COM 的 Browser Playground.) IE 4.0 访问XML文档, 从中查询数据, 然后作为HTML显示出来.
微软也使用了 XML Object Model (XML OM)来让开发者与浏览器中的XML数据进行交互. 它的实现是通过将HTML作为基于Document Object Model (DOM)的对象显现, 尽管HTML 和 DOM 并非直接兼容. DOM 让脚本和程序访问结构化的XML数据.
Sklepowich说, 虽然目前在微软, XML的重心在浏览器, XML将最终出现在"任何HTML已经出现了的地方". CEO Bill Gates 已经公开宣布微软Office 未来的版本将支持 XML, 而且公司也计划支持电子邮件包和制作XML工具的标准.
<<返回标题
11 OSD和CDF与XML的关系如何?
Channel Definition Format (CDF) 和 Open Software Description (OSD) 是微软支持的两个XML应用. 通过其XML解析器, 微软的 Internet Explorer 4.0 读CDF文件来驱动和控制push 频道所带来的页. 根据用 Resource Definition Format (RDF)所做的工作, CDF提议最近又上交给了 W3C, 以利用RDF的能力来显示不同数据元素之间的联系.
Open Software Description 是用于描述软件部件的词汇表, 带有语法如从属, 版本和平台. OSD 描述如何表现一个部件的特性, 以及如何将该部件安装到计算机上. 它可以用于下载一个完整的软件包, 但是它主要设计用于不断增加的更新. OSD 单独工作或和CDF一起工作, 来定义应用频道.
OSD建议由微软和Marimba领导的一组销售商于1997年8月提供给W3C.
12 电子商务(e-commerce)和XML?
四年来, CommerceNet, 这个有500个成员的非盈利性的网上商务协会, 正努力帮助 e-commerce 产品和系统一起工作. 其概念是允许信息在不同目录之间, 从目录到付款系统, 在付款系统之间交换. 已经发现XML可以在两个重要方面帮助实现以上概念: 内容定义和信息交换.
内容定义: CommerceNet 正在定义通用于多种商业事务的数据元素. 这个称作 Commerce Core 的东西将定义如何给诸如公司名称, 地址, 价格, 条款和数量等事物作标识.
信息交换: 开放, 基于文本的XML用于服务器之间交换事务信息很理想. CommerceNet 提议用基于XML的 Common Business Language (CBL) 来描述产品和服务目录软件, 关于商业规则和系统的元数据, 以及表格和消息的软件. 许多CBL 取自已经存在的 Electronic Data Interchange (EDI) 辞典, EDI辞典识别公认的术语, 如发票和采购订单. 但是CBL超越EDI的商业-到-商业的重点, 包含了零售事务和横向的供应链 -- 从供应商到批发商到零售商.
一个这样的CBL应用是为使目录互用的 Product Information Exchange (PIX) 规范. CommerceNet设计PIX, 以帮助供应商和他们的分销商更容易地交换产品数据.
长远的目标是工业组织--而非 CommerceNet--来将CBL作为特定的DTD的一个共同基础使用. 一些着重于工业的初步尝试已经宣布了:
Open Buying on the Internet (OBI): 一个在Internet上进行国际性的商业间购物的标准. OBI 基于目前的Internet标准, 如HTML, SSL (为安全性), SET (为信用卡交易), 和X.509 (为数字认证). OBI的支持者有 Commerce One, Connect, Intelisys, InterWorld, Microsoft, Netscape, Open Market, 和 Oracle.
Open Trading Protocol (OTP): 一个在Web上向消费者售物的一致的, 可共同操作的环境. 规则将包括从如何降价促销, 付款选择, 到产品运输, 接收和问题解决. OTP由MasterCard International, DigiCash, CyberCash, Hewlett-Packard, IBM, AT&T Universal Card, Netscape, Royal Bank of Canada, 和一些 其他金融机构和技术公司支持.
Internet Content and Exchange (ICE): Vignette, Firefly Network, 和 一些其他公司--包括微软--正在开发一个叫作ICE的规范, 使能够在站点之间交换在线资产, 无论那是内容, 应用程序, 或是元数据. ICE将利用现有的标准, 包括 OPS/P3P (为使个人数据可靠交换), CDF, OSD, XML-Data , 和 RDF.
<<返回标题
13 XML中的层叠样式?
因为XML将内容和表现分离, Web建造者需要新的方法来控制设计, 显示和输出. Style sheet 是问题的答案. 目前, 有三种可用于XML的 style sheet:
Cascading Style Sheets (CSS)
Extensible Style Language (XSL)
Document Style Semantics and Specification Language (DSSSL).
如果5.0版的浏览器支持XML, XML对现有的CSS标准的支持将会处理大部分基本的风格和页面问题. 但是CSS对于专业出版商可能不够强大. 所以, 另一端存在着DSSSL, 一个在使用SGML的高端出版商中流行的ISO (国际标准组织)标准. 然而, DSSSL是复杂的, 它处理的打印文档管理在Web上很少有用.
现在剩下了 Extensible Style Language (XSL), 特别为XML而写的style-sheet. XSL目前上交给了W3C作为一个提议, 它给了Web开发者和用户较HTML更多的表现灵活性. 例如, HTML的 <H2> 标识符在所有浏览器上的表现是基本一样的, 但是XSL让开发者指定他们的页面元素如何表现 (尽管用户可以在个人设置中覆盖它).
XSL较CSS更强大, 因为它使Web建造者创建可以动态改变其表现的文档. 例如, 你可以包含这样的程序语句, "如果一个XML元素的属性为数值10, 显示为绿色, 否则为黑色." 或者你可以将"仅供内部使用"作为属性给一个段落标上, 这样它在某些情况下不会出现. XSL被设计用于脚本语言如JavaScript.
14 XML如何改进超链接?
XML超链接比基本的HTML风格的超链接多了一些新的特性, 包括无需手写许多JavaScript代码就能创建"聪明的"链接. 而且在XML, 链接本身成为了对象, 可以象其他对象一样被管理.原来的链接规范--XLL, 或XML链接语言--正被分为两个不同的规范: XPointer 和 XLink.
XPointer: 在HTML, 要链接到一个页面的中间, 页面作者必须在那儿加上定位标识符. 使用XPointer, 你可以"取址到" (不是"连接到")其他人的文本的任何部分. 显而易见, 这样将有助于工作于法律文件, 科学和学术论文, 甚至W3C规范!
XLink: 当用户点击一个HTML超链接时, 当前的网页被连接到的文件替代. XLink令Web建立者给链接增加行为. 例如, 现在, 你必须用一些JavaScript, 使在链接处弹出一个独立的窗口, 但是XLink让Web建立者对链接进行编码来执行一系列动作, 包括弹出一个链接选择的菜单.
另一个应用可以是弹出一个对话框, 可能是一个提醒用户它们正要更新数据库的警告. 链接弹出菜单可能需要用户点击一个框来表示在进一步处理前他们接受义务. 现在, 实现这样的功能要写许多的脚本代码.
XML也让Web建立者创建类似Web环工作的Extended Link, Web环是通过"下一个/前一个"行进来导航的自己选择出来的关于相同主题的网站组. 对于弹出菜单太长的相关链接站点表, Web建立者可以创建一个链接表, 这个表在不同的站点, 页面时会有变化. 用户可以点击一个图标来自动转移到环中的下一个成员. 现在这样的功能需要 CGI scripts, 而Extended Links 提供了一个标准的, 非私有的建立资源间联系的方法.
仍然有更多的问题需要解决, 特别是在行为政策方面. 必须由一种方法来协调以下三方面的关系: 文档作者对链接所建议的行为, 用户所喜好的显示链接信息的方式, 以及是否和何时忽视用户的意愿的政策.
<<返回标题
15 服务器上支持XML吗?
XML被设计成供长久使用的, 高价值的文档的储存格式. XML不是只让你定义标识符, 它也允许你定义文档的储存结构. 一篇HTML文档仅存在于一个文件中, 而一个XML文档可以由存放在不同地点的多个文件(称为实体)组成. 这提出了作为文档存储库的XML服务器的概念.
服务器软件供应商已正在支持XML:
Enigma, Insight 4.0
这是一个提供给出版商处理大型文档的专业电子出版软件解决方案. 目前和Insight捆绑在一起的Enigma SGML/XML Style Sheet Editor, 也可以作为一个独立产品提供.
Hynet Technologies, Digital Library System
Digital Library System (DLS) 将文档和文档部件作为标准软件对象进行管理, 允许引入在Adobe FrameMaker和Microsoft Word中创建的文档, 或者SGML/XML文件.
Inso, DynaText Professional Publishing System
这是一个进行索引, 搜索和制作脚本的软件, 它可以工作于运行在Windows NT 3.51 或 4.0, 或 Sun Solaris 2.5上的Microsoft Internet Information Server 和 Netscape Enterprise and FastTrack servers.
Open Market, Folio
Open Market的 Folio 4 信息管理和发送产品将XML文档引入带索引的数据库, 以在IP网络上传递内容, 或将内容送至CD-ROM. 在一月份, Open Market宣布增强对XML的支持, 允许文档以它们的本身格式进行索引和保证安全. 同时, Folio产品也将可以和其它基于标准的制作, 解析和生成XML文档的解决方案相互操作. 它的产品包括 Folio siteDirector (分发信息), Folio SecurePublish (事务管理软件), 和 Folio Publisher (电子出版).
WebMethods, Web Automation Server
Web Automation Server 帮助公司将基于浏览器的应用软件和其它应用软件的数据相结合. 它是基于XML的服务器, 使用 WebMethods自己的在机器间进行Web数据交换的WIDL (Web Interface Definition Language). (该公司已经将WIDL作为标准提议上交给 World Wide Web Consortium.)
16 谁应该学习XML?
所有的Web建立者需要足够了解XML, 以决定是否使用它. E-commerce 站点和管理数据库中大量文档的站点是显然的首选对象. 经理可能不需要学习XML语法或如何建立DTD, 他们仍要理解XML的潜力并加以利用.
如果最终的目的只是让人来读信息, HTML能足够满足标识信息的要求. 但是如果你想要为自动处理数据作准备, 你必须考虑将XML纳入你的出版系统.
并非每一个工作在Web站点的HTML制作者必须成为XML制作者, 但是某些员工应该精通于XML--特别当站点的工作对象是值得为将来使用而管理的数据和文档时.
当然, XML的功能也意味着复杂性--一些Web建立者已经发现他们可以在几天内掌握HTML的基础, 而他们可能需要花几个星期来适应XML. 只有你自己才能决定是否值得花这些时间.
<<返回标题
17 有哪些编写XML的工具可供我使用?
幸运的是, Web建立者不用完全靠他们自己从头开始创建XML了. 市场上已经有了创建, 管理和发送XML的工具, 并且一些公司也在进行开发.
Adobe: 在1998年中期, Adobe将介绍可以输出到XML的 FrameMaker 和 FrameMaker+SGML 的过渡版本. 这些产品的完整版本将能够输入XML. Adobe有 一名代表在 W3C的XML工作组, Adobe也参与了XLink, Cascading Style Sheets和 RDF的工作, 所以我们可以期待这些技术将在Adobe未来的产品中出现.
Allaire: HomeSite 4.0 和 Cold Fusion 4.0 都预计在今年夏天出品, 它们将支持XML, 包括style sheets. HomeSite 3.0中已经提供了一个CDF附加软件.
ArborText: 在SGML领域内长期工作的ArborText, 于一月份发布了XML Styler, 一个免费的基于Java的XSL编辑器. 它的图形用户界面可以让我们勿需知道XML语法就能进行编辑. 将来, ArborText 会把XML Styler集成到Adept中, Adept是公司给打印出版提供的XML制作工具.
DataChannel: 一个免费的, 基于Java的有效的解析器, 称为 DXP (DataChannel XML Parser; 基于 Norbert Mikula 著名的NXP). 可以从该公司的Web站点获得. 它新发布的是免费的XML工具包, XML 开发环境, 它包括了一套部件, 帮助人们开始学习和应用XML.
Inso: 该公司提供它称为的"首个集成的, 端对端的, 创建, 转换, 存储, 管理, 索引, 查询XML内容, 将其发布到Web, CD-ROM和打印机上的出版解决方案." 其产品包括 DynaTag 4.0, DynaBase 3.0, DynaText 3.1, 和所附的工具 DynaWeb.
IntraNet Solutions: Intra.doc Management System的下一版本, IntraNet Solution的基于Web的文档管理系统, 将会管理XML部件和文档之间的关系, 提供和第三方XML制作工具的集成链接管理, 完善在浏览器中XML对象的使用, 并在Intra.doc存储库和XML编辑器之间提供一个交互的元数据模型.
Microsoft: 微软希望在年底交付Office 9.0, 据报道, 它将有对XML的支持.
Microstar: ActiveSG/XML 是一套在Internet上设计和配置基于事务的XML/SGML系统的工具和技术. Microstar也提供了免费的Ælfred XML 解析器.
SoftQuad: HTML 编辑器 HotMetal Pro 将很快提供 Live Data Base Pages, 一个让开发者将HTML数据拉入数据库并以XML来返回的附加软件.
Vignette: StoryServer 3.2 在Web上交付能使用XML的应用和内容. 它结合了关系型数据库, 多媒体和XML内容创建的工具. StoryServer 是一个Web内容应用平台, 供建立, 管理, 和交付基于服务的Web应用之用, 比如在线出版, 知识管理, 和电子商务系统. (注: CNET对Vignette有财政上的兴趣.)
XPublish: XPublish是一个XML出版系统, 供Web站点开发和管理, 允许开发者以XML进行制作, 或用XML构件延展目前的HTML文档, 然后将站点以HTML来发布, 以让任何的标准Web浏览器可以访问. 它包含了一个Cascading Style Sheets编辑器.
WebMethods: 该公司制作基于XML的Web Automation 软件, 提供商业应用软件和Web数据的快速集成和直接访问. 它的 Web Interface Definition Language (WIDL) 将和HTML/XML和表格的所有交互自动化, 提供在标准Web协议上表现要求-回答交互方式的一个通用方法.
当然, 如果XML在Web上无处不在, 你可以看到几乎每一种基于Web的应用, 特别是HTML编辑器, 数据库软件, 和电子商务软件, 会迅速加入对XML的各个级别的支持.
<<返回标题
18 XML的国际化?
XML将使Web建立者创建真正的国际性站点变得比以前都容易. 因为, 比如 Java, 它由Unicode (ISO 10646)定义, Unicode是一个国际接受的标准, 用于描述世界上所有的字母, 字型, 字符和表意符, 它包括 ASCII ISO 拉丁字符, 日本, 韩国, 中国, 印度, 希腊, 阿拉伯和其它字符. 它甚至允许字符集的混合, 例如, 一篇以日文显示的XML文档可以通过一个元音变音参照到一个德文词汇.
开发者不需要学习任何脚本语言, 以使Unicode在XML文档中生效, 文档在用户的浏览器中用合适的字符集显示出来.
19 XML的未来在哪里?
就围绕着XML的所有活动, 很难预测六个月后它会是什么样. XML和XLL 规范的合作者Tim Bray说, "我们已经制作了一个设计用于通用目的的工具, 大范围的人们对它的关注和应用证明我们是成功的."
在短期内, XML将可能出现在元数据应用上, 如RDF. 下一个大的影响将随着Document Object Model 规范的批准而到来. Bray声称"XML和DOM的结合确实是给Web带来活力的神奇子弹."
XML也应该会帮助电子商务. XML将使电子商务供应商以共同的方法给产品和其相关信息(价格,尺寸,颜色,特性)进行标识, 使用户在Web上对不同的商店进行比较.
同时, Netscape和Microsoft会继续扩大对XML浏览器的支持, 包括有效的和构造良好的XML文档, 更多的XML应用, 为XML设计的style-sheet支持, 和XML超连接协议. 请关注这两个公司以及其它软件供应商在XML制作和出版工具上的进展.
<<返回标题
20 哪里能学到更多的XML知识?
XML是一个复杂的事物, 对于所有Web建立者都具有深刻的含意. 如果你想学习更多的东西, 这里是一些可以查看的好地址:
万维网联盟(W3C):
XML规范.
关于XML规范的讨论.
Extensible Style Language (XSL) W3C注释.
Extensible Linking Language (XLL) 规范.
Document Object Model 规范.
参与W3C规范开发的XML开发者的邮件地址清单.
XML常见问题解答:
ArborText的 XML链接和资源.
微软的XML 站点提供了XML如何在一个天气预报和拍卖中工作的演示.
Textuality收集了XML规范合作者Tim Bray的关于XML的FAQ和到其它资源的一些链接.
由爱尔兰Cork University College的Peter Flynn代表W3C的XML特别兴趣组维护的XML FAQ.
XML信息页面, 达拉斯Summer Institute of Linguistics 的Robin Cover创建的SGML/XML Web页面的一部分.
组织、持续教育:
中国XML联盟
图形通信协会的XML文件
SGML Open 是一个国际性的非盈利性协会, 它提倡基于SGML家族标准的结构化文档和数据交换. 它的InterX.org旨在成为"XML开发者和用户的论坛和资源中心".
SGML大学在美国各城市和主要会议上提供一到两天的课程.
这里的20个有关XML的热门问题能够让你成为一XML“专家”,或至少让你能够在今后看准XML的发展方向。
1 什么是XML? 11 OSD和CDF与XML的关系如何?
2 XML何以重要? 12 电子商务(e-commerce)和XML?
3 SGML、HTML和XML有什么联系? 13 XML中的层叠样式?
4 如何实现XML? 14 XML如何改进超链接?
5 什么是文件类型定义(DTD)? 15 服务器上支持XML吗?
6 什么是格式完整和有效的文件? 16 谁应该学习XML?
7 如何在浏览器中阅读XML? 17 有哪些编写XML的工具可供我使用?
8 RDF和XML有何联系? 18 XML的国际化?
9 Netscape浏览器中如何实现XML? 19 XML的未来在哪里?
10 Microsoft浏览器中如何实现XML? 20 哪里能学到更多的XML知识?
1.什么是XML?
XML代表扩展标识语言(Extensible Markup Language). 由 World Wide Web Consortium (W3C)带头, XML在二月中期成为一个正式的规范.
XML开发者会告诉你XML不是一种语言,而是一个定义其他语言的系统. 你可能已经听说过, 或使用过这些语言中的一种,--如Microsoft支持"推技术"的 Channel Definition Format (CDF).
正从事于XML相关建议工作的W3C, 称XML为"表达数据中结构 的共同语法". 结构化的数据指的是其内容,意义或应用被标记的数据. 例如, HTML中<H1>标记指定文本为某一字体和大小, XML的标记将明确确定信息的种类: <BYLINE>标记可以识别文档的作者, <PRICE>标记可以在一个存货清单中包含某一项目的成本 .
通过将结构,内容和表现分离, 同一个XML源文档只写一次, 可以用不同的方法表现出来: 在计算机屏幕上, 在手提电话显示屏上, 在为盲人服务的设备上翻译成语音, 等等. 它可以在可能开发的任何通讯产品上工作. 一个XML文档因此可以比其书写时的作者和显示技术生存得更久.
所以, XML将不仅限于Internet, 例如, 可以服务于整个出版业, 特别是对于想制作可出现在多种媒体上的文档的人. 一些使用Standard Generalized Markup Language (SGML)多年的大型文档出版商将转向XML. 还有, 独立于平台的XML是为Web开发的, 这是它将最具影响的地方.
DOM
XML在Web的真正实力在于它是如何与Document Object Model (DOM)交互的. DOM是定义访问文档中数据的机制的界面.
使用DOM, 程序员可以用一个标准的方法写动态的内容. 换句话说, 他们可以使用它来使浏览器文档树中的一部分特定内容按照一定的方式表现, 例如, 产生一个小效果, 当用户将鼠标移至文字上时, 这些文字变成蓝色. Netscape Navigator 和 Microsoft Internet Explorer 都有他们各自的DOM, 但是他们都称将在其下一版本的浏览器中支持W3C 的标准DOM.
2.XML何以重要?
Web领袖之间的说法是内容至上. 不幸地, 内容经常和其表现紧密结合. 请问你多少次在一个网站上遇到一个小小的提示, "最好在800x600像素的分辨率上显示"?
XML将帮助解决以上问题, 因为网站建造者不用再指明在哪里显示什么, 而是指明文档 的结构. 例如, 你可以说明文档的标题, 作者, 关联文档的清单, 等等. 然后, 任何一个有XML浏览器的设备都可以给出最适合它的文档版本, 这样的设备可以是一个掌上型计算机, 置顶盒, 或高速的工作站.
但是, 也许XML的最佳特性是其内在的可扩展性. 公司和组织能够扩展XML来满足新的挑战和应用. 一个基于XML的语言已经在使用--微软的Channel Definition Format (CDF)-- 还有更多将出现, 包括 Resource Definition Format (RDF) 和 Open Software Description (OSD).
XML 也允诺成为交换数据 和文档的标准机制. 例如, XML可能成为不同厂商的数据库在Internet上交换信息的一种方法.现在准确地决定XML的方向还有一些早. 但是, 其各种可能性是令人敬畏的,这就是为什么围绕着XML有如此多的激动的一个重要原因.
<<返回标题
3.SGML、HTML和XML有什么联系?
Standard Generalized Markup Language (SGML) 是在文字处理应用中表达数据的一个方法. 它已经出现十多年了, XML 和 HTML 都是从SGML 发展而来的文档形式. 因此, 它们都有一些共同点, 如相似的语法和带括弧的标记符的使用. 但是 HTML 是SGML的一个应用, 而 XML是SGML的一个子集.
区别是重要的. 基本上HTML不能用来定义新的应用, 而XML可以. 例如, Resource Description Format (RDF) 和 Channel Description Format (CDF)都是使用XML定义的应用. XML和HTML更象表兄弟, 而不是亲兄弟.
事实上, XML和SGML是兼容的 -- XML文档可以通过任何SGML制作或浏览工具阅读. 但是, XML没有SGML那么复杂, 它是设计用于有限带宽的网络的, 如Internet. XML规范的合作者Tim Bray说, XML的设计出发点是取SGML的优点, 去除复杂的部分, 使其保持轻巧, 可以在Web上工作.
HTML,SGML和XML将继续用于其合适的地方, 它们中的任何一个不会使其他一个废弃. HTML仍是在Web上快速出版数据的最简单的方法, 大部分短期的数据, 如会议议程或广告宣传册. 如果数据会长期使用, 并且需要更多的一些结构, Web建造者将愿意使用XML. 不同于HTML和XML, SGML可能永远不会在Internet上被广泛接受, 因为它从来没有为某个网络协议的需求而设计或优化过. 对于高端的, 复杂结构的出版应用, SGML将继续适用.
4.如何实现XML?
XML将以几个不同的方式应用. 一个是在人机之间交换数据, 如从Web服务器至用户的浏览器. 另外一个是在不同的应用之间交换数据, 或者是机器之间交换数据.
在这些情况下, 你都可能需要三层架构: 后端数据库, 针对数据的处理逻辑的中间层服务器, 以及数据进一步显示和处理的客户端. 数据库可以从多个数据来源接收信息, 可能已经是XML格式的数据. 中间层然后聚拢数据并在最终的表现层上公布.
现在, 网页有时候以这种方法传送 --CNET的NEWS.COM 从一个数据库中发表数据. 但是要获得一页的新的视图, 如NEWS.COM的新的“打印机友好”选项, 服务器必须产生一个新的页面. 一份适当格式化的XML文档将允许客户端的应用为不同的媒体修改文档的表现形式, 比如为打印机.
<<返回标题
5.什么是DTD?
文档类型定义 (DTD) 是一套关于标记符的语法规则. 它告诉你可以在文档中使用哪些标记符, 它们应该按什么次序出现, 哪些标记符可以出现于其它标记符中, 哪些标记符有属性, 等等. DTD原来是为使用SGML开发的, 它可以是XML文档的一部分, 但是它通常是一份单独的文档或者一系列文档
因为XML本身 不是一种语言, 而是定义语言的一个系统, 它没有象HTML一样拥有一个通用的DTD. 相反, 想使用XML进行数据交换的工业或组织可以定义它们自己的DTD.
如果一个组织想用XML来标识仅在内部使用的文档, 它可以创造自己私有的DTD. 比如 Wall Street Journal Interactive Edition 拥有一个 DTD 来详细说明每一版, 其中有关于页, 文章, 概要, 标题下署名等等的信息. 刊物目前使用SGML DTD (称作Dow Jones Markup Language), 但是它也正在开发一个XML版本.
关于DTD并不是没有争议的. 一些人感到它给商业业务增加了实实在在的价值, 而一些人感觉它限制了创造性. 还有一些人认为DTD有用, 但是还做得不够. 微软正尝试用它的XML数据提议来解决上一个抱怨, 但是批评者说这些改进应该在DTD规范本身进行.
微软的schema
一些供应商, 包括微软, 已经提议了替代DTD的一个方法, 称为schema. 他们已经将其以XML数据提交给了W3C. 就象DTD, schema提供了文档的规则, 并指出用什么标记符, 标记符的属性, 之间的联系, 等等.
但是, 不同于DTD, schema可以定义数据类型. 例如, DTD可能有一个标记符 <PRICE>, 而标记符之间的内容可以是数字或字符串. Schema 可以规定只输入数字.
这个方法显然有其优点, 特别是用于应用,对象,或数据库之间的数据传输. 唯一的问题是它将成为DTD规范, 还是XML的一个扩展.
6.什么是格式完整和有效的文件?
基本上有两类相关的XML文档: 构造良好的和有效的. 构造良好的 XML文档遵守XML语法的一般规则, 这些规则比HTML和SGML的更为严格. XML的字符数据决不会吊在那里, 没有某种结束标识符, 或者是象<MYTAG></MYTAG> 成对出现的 结束标识符, 或者是一个特别的在右尖括弧前带有一个斜杠的 空元素 标记, 比如 <MYTAG/>; XML 标识总是以左尖括弧或 & 开始; 元素类型和属性名称是大小写区分的; 属性需要引号; 等等.
有效的 XML 文档遵守某个特定的 文档类型定义 (DTD). 确认XML文档正确性的工作主要由制作出版工具承担, 而XML浏览器为读取XML文档, 只需要检查其构造的良好性. 这样, 制作工具中的解析器得要检查构造良好性 和 有效性, 而浏览器仅要考虑寻找已经构造良好的XML.
<<返回标题
7 如何在浏览器中阅读XML?
阅读XML文档的工具一般称为XML解析器, 虽然其更正式的名称是XML处理器. XML处理器将数据传送到应用软件, 以做制作, 出版, 查询, 或显示. XML不给应用软件提供 应用程序接口 (API), 它只是把数据传给应用软件. XML处理器不解析非构造良好的数据. Netscape 和 Microsoft 都已经将XML解析器包含在其浏览器中, 或正计划将其包含到浏览器中.
XML开发者团体提供免费的XML阅读器和解析器, 来应用到应用软件或XML制作软件:
Textuality的 Lark, 来自XML规范的作者之一.
Microstar Software的 Ælfred, 一个基于Java的解析器.
DataChannel的 DXP, 前身为著名的NXP, 或已经增加了API的Norbert的 (Mikula) XML 解析器.
8 RDF和XML有何联系?
如果XML是说语言的能力, XML应用软件则是特定的语言. 资源描述格式(Resource Description Format RDF) 是这样的一个应用软件: 使用XML语法的数据建模语言.
RDF是描述和访问数据的一个方法. 这意味着RDF是关于数据的数据, 或者说元数据. 在Web中, 这些元数据将被用于建立标准的站点地图, 更精确的搜索结果, 和分层次的主题索引.
RDF也允许智能书签, 当被索引的网页变化时, 书签随之发生变化. 如果你跟踪内容定期更新的站点, 比如CNET的 NEWS.COM, 将很有用.
对于网站建造者, 建立可被搜索引擎引用的其网站内容的元数据并不困难. 我们很快就会有商业化的软件, 来自动产生给定站点的RDF文件.
XML元数据也将活跃描述和评估数据的市场. 有许多评级机构 在网上出现, 他们评估一切数据, 从保护孩子安全的站点到最佳电影或葡萄酒站点. RDF描述评级机构可以使用的等级的语法. 人们将选择有他们感觉最合适的词汇表的评级机构, 词汇表指的是评级机构给不同类型内容评级使用的特别的一套术语 -- 从性和暴力到葡萄酒酸度.
<<返回标题
9 Netscape浏览器中如何实现XML?
Netscape将在Communicator/Navigator 5.0中以一个代号为Aurora的交付部件来支持XML元数据. Aurora利用RDF 来获得Netscape所说的"桌面信息全面集成."
Aurora在网络, 桌面和数据库之间查找和管理信息. 它将在桌面上以"窗口"菜单的界面出现, 会聚集指向当前项目, 研究主题, 或日常活动等资源的指针. RDF使Aurora的导航条指向不同数据类型(文字处理文档, 表格数据, 电子邮件消息, 数据库内容)的本地文件, 也指向Internet 或 intranet 服务器上的资源(搜索和查询的结果, 书签链接, 等等).
一个读取RDF的XML解析器将是 Netscape 5.0 版浏览器的一部分, 并且在最终产品交付之前会出现在某个beta版本中. 除了这个初始的RDF实现, Netscape正计划将一个通用的XML解析器包含在浏览器中, 而其浏览器可以和其他的XML应用软件一起工作, 比如 Shakespeare markup (一个早期的 XML 应用软件), Chemical Markup Language (CML), 和 MathML, 一个正成为W3C推荐的数学标识语言.
"我们要使 Navigator 成为一个 XML 平台," Netscape 原理工程师R.V. Guha说. Guha 原来开发过 MCF (MetaContent Format), MCF 后来加入了RDF规范.
10 Microsoft浏览器中如何实现XML?
微软的 Internet Explorer 4.0 是第一个实现XML的 Web浏览器. 微软提供了一对XML处理器: 浏览器所携带的用C++写的解析器, 和一个Web建造者可以从中下载和加入他们自己的应用程序的Java解析器的源代码.
Java解析器是一个有效的 解析器, 就是说它根据一个文档类型定义 (DTD) 或 schema 来进行检查. 为了提高性能, 浏览器所带的C++ 版的解析器是一个非有效的解析器.
据微软的产品经理Steve Sklepowich称, 这两个解析器都是"通用的", 因为它们不依靠特定的XML应用, 如Channel Definition Format. 由于XML数据和其表现分离, 在一个Web浏览器本身实际显示XML的能力需要 style sheet, 例如 XSL (Extensible Style Language).
同时, 微软使用了它所称的XML Data Source Object, 或叫 XML DSO. 它应用了动态 HTML的数据捆绑能力, 将一端的XML数据和另一端的HTML数据相链接. (关于数据捆绑的例子, 可以查看 BUILDER.COM 的 Browser Playground.) IE 4.0 访问XML文档, 从中查询数据, 然后作为HTML显示出来.
微软也使用了 XML Object Model (XML OM)来让开发者与浏览器中的XML数据进行交互. 它的实现是通过将HTML作为基于Document Object Model (DOM)的对象显现, 尽管HTML 和 DOM 并非直接兼容. DOM 让脚本和程序访问结构化的XML数据.
Sklepowich说, 虽然目前在微软, XML的重心在浏览器, XML将最终出现在"任何HTML已经出现了的地方". CEO Bill Gates 已经公开宣布微软Office 未来的版本将支持 XML, 而且公司也计划支持电子邮件包和制作XML工具的标准.
<<返回标题
11 OSD和CDF与XML的关系如何?
Channel Definition Format (CDF) 和 Open Software Description (OSD) 是微软支持的两个XML应用. 通过其XML解析器, 微软的 Internet Explorer 4.0 读CDF文件来驱动和控制push 频道所带来的页. 根据用 Resource Definition Format (RDF)所做的工作, CDF提议最近又上交给了 W3C, 以利用RDF的能力来显示不同数据元素之间的联系.
Open Software Description 是用于描述软件部件的词汇表, 带有语法如从属, 版本和平台. OSD 描述如何表现一个部件的特性, 以及如何将该部件安装到计算机上. 它可以用于下载一个完整的软件包, 但是它主要设计用于不断增加的更新. OSD 单独工作或和CDF一起工作, 来定义应用频道.
OSD建议由微软和Marimba领导的一组销售商于1997年8月提供给W3C.
12 电子商务(e-commerce)和XML?
四年来, CommerceNet, 这个有500个成员的非盈利性的网上商务协会, 正努力帮助 e-commerce 产品和系统一起工作. 其概念是允许信息在不同目录之间, 从目录到付款系统, 在付款系统之间交换. 已经发现XML可以在两个重要方面帮助实现以上概念: 内容定义和信息交换.
内容定义: CommerceNet 正在定义通用于多种商业事务的数据元素. 这个称作 Commerce Core 的东西将定义如何给诸如公司名称, 地址, 价格, 条款和数量等事物作标识.
信息交换: 开放, 基于文本的XML用于服务器之间交换事务信息很理想. CommerceNet 提议用基于XML的 Common Business Language (CBL) 来描述产品和服务目录软件, 关于商业规则和系统的元数据, 以及表格和消息的软件. 许多CBL 取自已经存在的 Electronic Data Interchange (EDI) 辞典, EDI辞典识别公认的术语, 如发票和采购订单. 但是CBL超越EDI的商业-到-商业的重点, 包含了零售事务和横向的供应链 -- 从供应商到批发商到零售商.
一个这样的CBL应用是为使目录互用的 Product Information Exchange (PIX) 规范. CommerceNet设计PIX, 以帮助供应商和他们的分销商更容易地交换产品数据.
长远的目标是工业组织--而非 CommerceNet--来将CBL作为特定的DTD的一个共同基础使用. 一些着重于工业的初步尝试已经宣布了:
Open Buying on the Internet (OBI): 一个在Internet上进行国际性的商业间购物的标准. OBI 基于目前的Internet标准, 如HTML, SSL (为安全性), SET (为信用卡交易), 和X.509 (为数字认证). OBI的支持者有 Commerce One, Connect, Intelisys, InterWorld, Microsoft, Netscape, Open Market, 和 Oracle.
Open Trading Protocol (OTP): 一个在Web上向消费者售物的一致的, 可共同操作的环境. 规则将包括从如何降价促销, 付款选择, 到产品运输, 接收和问题解决. OTP由MasterCard International, DigiCash, CyberCash, Hewlett-Packard, IBM, AT&T Universal Card, Netscape, Royal Bank of Canada, 和一些 其他金融机构和技术公司支持.
Internet Content and Exchange (ICE): Vignette, Firefly Network, 和 一些其他公司--包括微软--正在开发一个叫作ICE的规范, 使能够在站点之间交换在线资产, 无论那是内容, 应用程序, 或是元数据. ICE将利用现有的标准, 包括 OPS/P3P (为使个人数据可靠交换), CDF, OSD, XML-Data , 和 RDF.
<<返回标题
13 XML中的层叠样式?
因为XML将内容和表现分离, Web建造者需要新的方法来控制设计, 显示和输出. Style sheet 是问题的答案. 目前, 有三种可用于XML的 style sheet:
Cascading Style Sheets (CSS)
Extensible Style Language (XSL)
Document Style Semantics and Specification Language (DSSSL).
如果5.0版的浏览器支持XML, XML对现有的CSS标准的支持将会处理大部分基本的风格和页面问题. 但是CSS对于专业出版商可能不够强大. 所以, 另一端存在着DSSSL, 一个在使用SGML的高端出版商中流行的ISO (国际标准组织)标准. 然而, DSSSL是复杂的, 它处理的打印文档管理在Web上很少有用.
现在剩下了 Extensible Style Language (XSL), 特别为XML而写的style-sheet. XSL目前上交给了W3C作为一个提议, 它给了Web开发者和用户较HTML更多的表现灵活性. 例如, HTML的 <H2> 标识符在所有浏览器上的表现是基本一样的, 但是XSL让开发者指定他们的页面元素如何表现 (尽管用户可以在个人设置中覆盖它).
XSL较CSS更强大, 因为它使Web建造者创建可以动态改变其表现的文档. 例如, 你可以包含这样的程序语句, "如果一个XML元素的属性为数值10, 显示为绿色, 否则为黑色." 或者你可以将"仅供内部使用"作为属性给一个段落标上, 这样它在某些情况下不会出现. XSL被设计用于脚本语言如JavaScript.
14 XML如何改进超链接?
XML超链接比基本的HTML风格的超链接多了一些新的特性, 包括无需手写许多JavaScript代码就能创建"聪明的"链接. 而且在XML, 链接本身成为了对象, 可以象其他对象一样被管理.原来的链接规范--XLL, 或XML链接语言--正被分为两个不同的规范: XPointer 和 XLink.
XPointer: 在HTML, 要链接到一个页面的中间, 页面作者必须在那儿加上定位标识符. 使用XPointer, 你可以"取址到" (不是"连接到")其他人的文本的任何部分. 显而易见, 这样将有助于工作于法律文件, 科学和学术论文, 甚至W3C规范!
XLink: 当用户点击一个HTML超链接时, 当前的网页被连接到的文件替代. XLink令Web建立者给链接增加行为. 例如, 现在, 你必须用一些JavaScript, 使在链接处弹出一个独立的窗口, 但是XLink让Web建立者对链接进行编码来执行一系列动作, 包括弹出一个链接选择的菜单.
另一个应用可以是弹出一个对话框, 可能是一个提醒用户它们正要更新数据库的警告. 链接弹出菜单可能需要用户点击一个框来表示在进一步处理前他们接受义务. 现在, 实现这样的功能要写许多的脚本代码.
XML也让Web建立者创建类似Web环工作的Extended Link, Web环是通过"下一个/前一个"行进来导航的自己选择出来的关于相同主题的网站组. 对于弹出菜单太长的相关链接站点表, Web建立者可以创建一个链接表, 这个表在不同的站点, 页面时会有变化. 用户可以点击一个图标来自动转移到环中的下一个成员. 现在这样的功能需要 CGI scripts, 而Extended Links 提供了一个标准的, 非私有的建立资源间联系的方法.
仍然有更多的问题需要解决, 特别是在行为政策方面. 必须由一种方法来协调以下三方面的关系: 文档作者对链接所建议的行为, 用户所喜好的显示链接信息的方式, 以及是否和何时忽视用户的意愿的政策.
<<返回标题
15 服务器上支持XML吗?
XML被设计成供长久使用的, 高价值的文档的储存格式. XML不是只让你定义标识符, 它也允许你定义文档的储存结构. 一篇HTML文档仅存在于一个文件中, 而一个XML文档可以由存放在不同地点的多个文件(称为实体)组成. 这提出了作为文档存储库的XML服务器的概念.
服务器软件供应商已正在支持XML:
Enigma, Insight 4.0
这是一个提供给出版商处理大型文档的专业电子出版软件解决方案. 目前和Insight捆绑在一起的Enigma SGML/XML Style Sheet Editor, 也可以作为一个独立产品提供.
Hynet Technologies, Digital Library System
Digital Library System (DLS) 将文档和文档部件作为标准软件对象进行管理, 允许引入在Adobe FrameMaker和Microsoft Word中创建的文档, 或者SGML/XML文件.
Inso, DynaText Professional Publishing System
这是一个进行索引, 搜索和制作脚本的软件, 它可以工作于运行在Windows NT 3.51 或 4.0, 或 Sun Solaris 2.5上的Microsoft Internet Information Server 和 Netscape Enterprise and FastTrack servers.
Open Market, Folio
Open Market的 Folio 4 信息管理和发送产品将XML文档引入带索引的数据库, 以在IP网络上传递内容, 或将内容送至CD-ROM. 在一月份, Open Market宣布增强对XML的支持, 允许文档以它们的本身格式进行索引和保证安全. 同时, Folio产品也将可以和其它基于标准的制作, 解析和生成XML文档的解决方案相互操作. 它的产品包括 Folio siteDirector (分发信息), Folio SecurePublish (事务管理软件), 和 Folio Publisher (电子出版).
WebMethods, Web Automation Server
Web Automation Server 帮助公司将基于浏览器的应用软件和其它应用软件的数据相结合. 它是基于XML的服务器, 使用 WebMethods自己的在机器间进行Web数据交换的WIDL (Web Interface Definition Language). (该公司已经将WIDL作为标准提议上交给 World Wide Web Consortium.)
16 谁应该学习XML?
所有的Web建立者需要足够了解XML, 以决定是否使用它. E-commerce 站点和管理数据库中大量文档的站点是显然的首选对象. 经理可能不需要学习XML语法或如何建立DTD, 他们仍要理解XML的潜力并加以利用.
如果最终的目的只是让人来读信息, HTML能足够满足标识信息的要求. 但是如果你想要为自动处理数据作准备, 你必须考虑将XML纳入你的出版系统.
并非每一个工作在Web站点的HTML制作者必须成为XML制作者, 但是某些员工应该精通于XML--特别当站点的工作对象是值得为将来使用而管理的数据和文档时.
当然, XML的功能也意味着复杂性--一些Web建立者已经发现他们可以在几天内掌握HTML的基础, 而他们可能需要花几个星期来适应XML. 只有你自己才能决定是否值得花这些时间.
<<返回标题
17 有哪些编写XML的工具可供我使用?
幸运的是, Web建立者不用完全靠他们自己从头开始创建XML了. 市场上已经有了创建, 管理和发送XML的工具, 并且一些公司也在进行开发.
Adobe: 在1998年中期, Adobe将介绍可以输出到XML的 FrameMaker 和 FrameMaker+SGML 的过渡版本. 这些产品的完整版本将能够输入XML. Adobe有 一名代表在 W3C的XML工作组, Adobe也参与了XLink, Cascading Style Sheets和 RDF的工作, 所以我们可以期待这些技术将在Adobe未来的产品中出现.
Allaire: HomeSite 4.0 和 Cold Fusion 4.0 都预计在今年夏天出品, 它们将支持XML, 包括style sheets. HomeSite 3.0中已经提供了一个CDF附加软件.
ArborText: 在SGML领域内长期工作的ArborText, 于一月份发布了XML Styler, 一个免费的基于Java的XSL编辑器. 它的图形用户界面可以让我们勿需知道XML语法就能进行编辑. 将来, ArborText 会把XML Styler集成到Adept中, Adept是公司给打印出版提供的XML制作工具.
DataChannel: 一个免费的, 基于Java的有效的解析器, 称为 DXP (DataChannel XML Parser; 基于 Norbert Mikula 著名的NXP). 可以从该公司的Web站点获得. 它新发布的是免费的XML工具包, XML 开发环境, 它包括了一套部件, 帮助人们开始学习和应用XML.
Inso: 该公司提供它称为的"首个集成的, 端对端的, 创建, 转换, 存储, 管理, 索引, 查询XML内容, 将其发布到Web, CD-ROM和打印机上的出版解决方案." 其产品包括 DynaTag 4.0, DynaBase 3.0, DynaText 3.1, 和所附的工具 DynaWeb.
IntraNet Solutions: Intra.doc Management System的下一版本, IntraNet Solution的基于Web的文档管理系统, 将会管理XML部件和文档之间的关系, 提供和第三方XML制作工具的集成链接管理, 完善在浏览器中XML对象的使用, 并在Intra.doc存储库和XML编辑器之间提供一个交互的元数据模型.
Microsoft: 微软希望在年底交付Office 9.0, 据报道, 它将有对XML的支持.
Microstar: ActiveSG/XML 是一套在Internet上设计和配置基于事务的XML/SGML系统的工具和技术. Microstar也提供了免费的Ælfred XML 解析器.
SoftQuad: HTML 编辑器 HotMetal Pro 将很快提供 Live Data Base Pages, 一个让开发者将HTML数据拉入数据库并以XML来返回的附加软件.
Vignette: StoryServer 3.2 在Web上交付能使用XML的应用和内容. 它结合了关系型数据库, 多媒体和XML内容创建的工具. StoryServer 是一个Web内容应用平台, 供建立, 管理, 和交付基于服务的Web应用之用, 比如在线出版, 知识管理, 和电子商务系统. (注: CNET对Vignette有财政上的兴趣.)
XPublish: XPublish是一个XML出版系统, 供Web站点开发和管理, 允许开发者以XML进行制作, 或用XML构件延展目前的HTML文档, 然后将站点以HTML来发布, 以让任何的标准Web浏览器可以访问. 它包含了一个Cascading Style Sheets编辑器.
WebMethods: 该公司制作基于XML的Web Automation 软件, 提供商业应用软件和Web数据的快速集成和直接访问. 它的 Web Interface Definition Language (WIDL) 将和HTML/XML和表格的所有交互自动化, 提供在标准Web协议上表现要求-回答交互方式的一个通用方法.
当然, 如果XML在Web上无处不在, 你可以看到几乎每一种基于Web的应用, 特别是HTML编辑器, 数据库软件, 和电子商务软件, 会迅速加入对XML的各个级别的支持.
<<返回标题
18 XML的国际化?
XML将使Web建立者创建真正的国际性站点变得比以前都容易. 因为, 比如 Java, 它由Unicode (ISO 10646)定义, Unicode是一个国际接受的标准, 用于描述世界上所有的字母, 字型, 字符和表意符, 它包括 ASCII ISO 拉丁字符, 日本, 韩国, 中国, 印度, 希腊, 阿拉伯和其它字符. 它甚至允许字符集的混合, 例如, 一篇以日文显示的XML文档可以通过一个元音变音参照到一个德文词汇.
开发者不需要学习任何脚本语言, 以使Unicode在XML文档中生效, 文档在用户的浏览器中用合适的字符集显示出来.
19 XML的未来在哪里?
就围绕着XML的所有活动, 很难预测六个月后它会是什么样. XML和XLL 规范的合作者Tim Bray说, "我们已经制作了一个设计用于通用目的的工具, 大范围的人们对它的关注和应用证明我们是成功的."
在短期内, XML将可能出现在元数据应用上, 如RDF. 下一个大的影响将随着Document Object Model 规范的批准而到来. Bray声称"XML和DOM的结合确实是给Web带来活力的神奇子弹."
XML也应该会帮助电子商务. XML将使电子商务供应商以共同的方法给产品和其相关信息(价格,尺寸,颜色,特性)进行标识, 使用户在Web上对不同的商店进行比较.
同时, Netscape和Microsoft会继续扩大对XML浏览器的支持, 包括有效的和构造良好的XML文档, 更多的XML应用, 为XML设计的style-sheet支持, 和XML超连接协议. 请关注这两个公司以及其它软件供应商在XML制作和出版工具上的进展.
<<返回标题
20 哪里能学到更多的XML知识?
XML是一个复杂的事物, 对于所有Web建立者都具有深刻的含意. 如果你想学习更多的东西, 这里是一些可以查看的好地址:
万维网联盟(W3C):
XML规范.
关于XML规范的讨论.
Extensible Style Language (XSL) W3C注释.
Extensible Linking Language (XLL) 规范.
Document Object Model 规范.
参与W3C规范开发的XML开发者的邮件地址清单.
XML常见问题解答:
ArborText的 XML链接和资源.
微软的XML 站点提供了XML如何在一个天气预报和拍卖中工作的演示.
Textuality收集了XML规范合作者Tim Bray的关于XML的FAQ和到其它资源的一些链接.
由爱尔兰Cork University College的Peter Flynn代表W3C的XML特别兴趣组维护的XML FAQ.
XML信息页面, 达拉斯Summer Institute of Linguistics 的Robin Cover创建的SGML/XML Web页面的一部分.
组织、持续教育:
中国XML联盟
图形通信协会的XML文件
SGML Open 是一个国际性的非盈利性协会, 它提倡基于SGML家族标准的结构化文档和数据交换. 它的InterX.org旨在成为"XML开发者和用户的论坛和资源中心".
SGML大学在美国各城市和主要会议上提供一到两天的课程.