可扩展体系结构的研究(四)--使用xml来定义插件体系结构

博客介绍了XML是描述层次的好方式且可扩展,定制XML文件可被其他项目使用。阐述定义XML的目标及插件对其格式的扩展需求,给出XML文件示例,并对各节点进行解析,如根节点、Requires节点和Runtime节点等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  介绍<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    Xml是一种描述层次的很好的方式,而且xml定义通常是可被扩展的。

这就是我们定制xml文件的一个很重要的因素,可以被其他项目使用,可以用来扩展原来的xml格式。

定义xml的很重要目标就是所有的插件和核心组件可以共享相同的格式。但是与目标相反,插件应该能够应它们的需求而扩展格式;插件可能会需要在它们的xml文件中扩展接口。这种对接口的扩展必须在该插件的文档中有所描述。

一个xml文件的例子

我们从一个小的xml文件开始。我们可以从这样的小例子开始设计结构。

<AddIn  name            = "NCvs Core"

author               = "Author"

copyright    = "GPL"

url                    = "http://www.icsharpcode.net"

description   = "NCvs core codon"

version              = "1.0.0">

<Requires>

<codon path="/NCvs/Workspace"/>

</Requires>

<Runtime>

<Import assembly="NCvs.RepositoryView.dll"/>

</Runtime>

<Extension path = "/NCvs/Workspace/MainMenu">

<MenuItem id = "File" label = "&amp;File">

<MenuItem id = "Separator1" label = "-"/>

<MenuItem     id         = "Exit"

label = "E&amp;xit"

class = "NCvs.Gui.Commands.ExitCommand"/>

</MenuItem>

</Extension>

</AddIn>

       现在开始考察给的这个xml,我们发现这个每个不同的块表达了一组概念。

       第一块是根节点,它有一些属性可以被插件管理器使用(比如安装,移除,或者更新插件)。

    “Requires”节点被用作一个特别的目的,它告诉插件加载器其子节点标明的路径必须是在树上存在的,从而可以确保这个codon(被插入树节点的元素,它不仅可以是扩展的程序,也可以是嵌入的资源文件,如图像、文本文件)被正确地加载。树可以用路径来遍历,它有一个根节点(对应‘/’),之后的目录构成树枝。不同于文件系统的路径,这里的codons(对应着文件系统中的file)还可以包含子目录。一个树节点不必包含一个(codon),它可以为空而仅仅是个目录。

    下一个xml节点是Runtime。它存在的原因是可执行的代码需要存在在某个位置。Xml文件不应该实际包含可执行的程序,它只需定位到这个二进制的文件。尽可能多需要的程序集会被加载,通过列出超过一个的倒入节点。

    下一个xml节点非常特别。它定义了树上的一个入口点而它的子项是在程序中使用的实际的codons。这些codons是特别的程序,组成了xml定义的核心。

转载于:https://www.cnblogs.com/ipointer/archive/2005/08/27/224099.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值