framework中XML可插接式结构

.NET Framework 中的 XML 具有可插接式结构。在此基于流的结构中,可插接式意味着可以很容易替代 .NET Framework 中基于这些抽象类的组件。可插接式结构还意味着数据可以在组件之间以流的形式传送,以及插入到此流中的新组件可以改变处理。例如,来自 XML Web services 的流可用 XmlTextReader 分析。可以使用 XmlTextReader 创建 XmlDocument,然后可以使用 XmlDocument 创建 XmlNodeReader

另一个示例是从 XmlReader 加载 DOM(XmlDocument 类)并使用 XmlWriter 保存输出。通过扩展现有类来创建自己的这些类的实现,可以影响 XmlDocument 类的行为。例如,如果创建了一个称为 MyXmlFileReaderXmlReader 实现,并且它可以将文件系统公开为 XML,则可以从此读取器加载 XmlDocument。或者可以从 XmlTextReader 继承,创建一个新的自定义读取器将以属性为中心的文档转换为以元素为中心的文档,它可以用于加载 XmlDocument。这为基于现有类的新类提供了可插接式结构。

将组件插接在一起的另一个示例是在转换过程中使用不同的数据存储区(如 XPathDocumentXmlDocument)。这些数据存储区可用 XslTransform 类转换,输出然后可以流入另一个存储区或以流的形式从 XML Web services 返回。下图说明了这一点。

使用 XslTransform 类对数据进行流处理

通过使用 IXPathNavigable 接口,实现 XPathNavigator 的任何存储区都可以插入到 XslTransform 类中以允许对该存储区进行 XSLT 转换。XmlDocumentXPathDocumentXmlDataDocument 类具有此能力。然后,来自 XslTransform 的流式输出可以发送到可插接式结构样式的 XmlReaderXmlWriter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值