网站大量收购闲置独家精品文档,联系QQ:2885784924

xml保存二进制流..doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
xml保存二进制流.

XML 用于数据互操作性的主要优点是其可扩展性及其能够以文本格式表示所有形式的数据的能力。甚至当处理二进制数据时,XML 也证明了它的价值。本文集中讨论了在XML中表示二进制数据的三种方法。第一种方法以最适当的方式使用 XML 和 DTD 表示二进制文件或数据源。第二种方法使用一种简单格式,其中每个人都能定义自己的格式来表示二进制数据。在第三种方法中,所有二进制数据都包含在 XML 文件中。 XML 已经改变了完全不同的应用程序 — 这些应用程序使用不同的技术、操作平台和位置 — 之间交换、共享和传输数据的方式。对于所有这些数据的运动,为达到可伸缩性,必须记住的唯一一点是通过启用 HTTP 的标记来包装数据。通过 HTTP 发送数据的最佳途径是使用 XML,有许多原因可以说明它比 HTML 好。 最初,HTML 被认为只能处理文本,但是现在它还普遍用于引用和标记非文本数据。所以 XML 步 HTML 后尘是十分自然的。因为 XML 不必遵循特定的语法(象 HTML 那样)并且比 HTML 更具可扩展性,所以人们可以以他们想要标记各类数据的任意方式来使用它。尽管如此,HTTP 通常仍作为传输层使用;因此 XML 在处理二进制数据时必定受到许多约束。当二进制数据是用户或客户机应用程序请求的全部信息的一部分时,XML 只用于标记该二进制数据。而且,在 XML 中包含二进制数据的优点是便于在 HTTP 上传送数据。 演示应用程序:GODOWN 和 AGENT 在应用程序之间有时候会传输非文本数据。例如,设想有两个 B2B 应用程序:GODOWN 和 AGENT。GODOWN 维护公共库中的所有存货;AGENT 是销售界面。当用户在 AGENT 上选中一个产品名时,就向 GODOWN 提出有关该产品详细信息的请求。以下是操作技巧部分。例如,如果该产品是一块手表,那么应用程序可能显示诸如价格、制造商地址和手表图片等详细信息。如果该产品是一盒迈克杰克逊 CD,那么详细信息可能包括用户可以播放的样品媒体文件。本文将关注于通过 XML 进行数据(二进制数据)定义和描述,以及如何访问这个二进制数据。 正如您会发现的那样,在开发时不能决定数据的本质,并且可能需要经 HTTP 传送该数据来提供通用访问。XML 是描述和定义数据的一种非常便利的框架,所以我们使用它来定义库存中的产品 — 库存由 GODOWN 应用程序来维护。 让我们看一下这两个应用程序之间进行数据传输过程中的不同阶段。以下是一个数据请求进程的生命周期: 从 AGENT 向 GODOWN 发出带 ProductId 的 HTTP 请求。 GODOWN 获取标识并为所需的产品编制 XML 文档。 然后用 AGENT 应用程序理解的方式格式化这个 XML 文档,并以字节流的形式将它发送回 AGENT。有两种方法可以完成这个操作: 从 GODOWN 将 XML 文档传送到 AGENT,这样生成的文件格式为 agentproduct1.xml(请参阅下面显示的代码)。 解密 XML 数据并将二进制数据编码为字符串格式,然后将之转储到 CDATA 节中并发送到 AGENT。这使 AGENT 的作业稍微简单些。生成的文件格式将是 agentproduct2.xml(请参阅下面显示的代码)。 AGENT 接收来自 GODOWN 的字节流并对其进行相应处理。 三种方法 现在,我们需要将一个应用程序的二进制数据传送到另一个应用程序中。让我们看一下用 XML 文件表示二进制数据或将二进制数据嵌入到 XML 文件中的三种方法,这里简要地列出了这三种方法,下面还有更详细信息: 第一种:通过外部实体和标记法的方式来表示二进制数据 第二种:使用 MIME 数据类型来表示二进制数据 第三种:将二进制数据嵌入 CDATA 节中 虽然这三种方法都可以用来表示二进制数据,但不是每种方法都可以适用于任意给定的情况中,而且一种方法未必能很好地替代另一种方法。换句话说,可以同时应用这些方法使之相互协作相互补充。为了详细阐述这一点,让我们考虑示例应用程序。如果您必须维护库中所有产品的详细信息,(以便能对任何产品的请求提供服务),那么最佳方法是使用方法 1 以单一大型 XML 文件的形式来表示数据。甚至方法 2 也适用于这一目的,但是在数据的可扩展性上有某些限制(实体重用等)。当必须传送数据时,如果数据大小相对比较小,那么我们应该应用方法 3。另一种选择是首先高速缓存实体名称和 systemid,然后将详细信息发送到另一个应用程序或方法来处理(下载/显示)数据。在确定哪种方法最适合给定的情况时,尽管没有指导原则或标准,您还是可以识别哪种方法最适合于您的情况。现在应该更详尽地查看这些方法了。 第一种方法 — 通过外部实体和标

文档评论(0)

gangshou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档