一个三层菜单系统
除了学习如何使用XML创建一个菜单应用程序外我们还要介绍 Net框架的主要 XML 类它们位于 SystemXml 集合中
什么是Net集合(Assembly)
要在 C# 文件中使用XML就必须引用一个特定的名称空间 Net平台中的一个名称空间是作为一个程序组件的组织系统使用的它对于解决命名沖突很重要这一点很象 XML中的 名称空间这个基于 XML的菜单系统是用位于SystemXml集合中的SystemXml名称空间创建的Net SDK 是这样定义集合的一个集合就是一个类型和资源的汇集信息这些类和资源一起使用形成一个功能的逻辑单元即一个逻辑dll
一个集合需要许多物理文件如界面类资源文件等等并且创建了关于文件如何一起工作的元数据集合中还可能包含版本及安全信息集合有许多好处其中之一就是可以在ASPNET应用程序中使用而无须用regsvrexe向注册文件中增加一个类识别号(CLSID)这样以来集合的升级操作与将适当的集合复制到一个ASPNET 应用程序的bin 目录中一样简单现在我们就来仔细看一看那些建立在SystemXml名称空间和集合中的类
如果你以前使用过Microsoft的 MSXML分解器就会发现使用SystemXml 集合中的类相当简单这里的菜单应用程序只使用了这些主要集合类中的一部分XmlNode XmlDocument XmlNodeList XmlNamedNodeMap DocumentNavigator XmlTextReader和 XmlTextWriter
XmlDocument XmlNodeList和XmlNode类用来创建传递给客户端浏览器的菜单应用程序的结构用XmlDocument类以一种安全线程(threadsafe)的方式从服务器上装载和分解本地或远程XML 文档建立在一个字符串中的 XML标记也可以被装载或分解从而在一个文档中创建移动节点或取消节点的移动XmlNodeList 类可以使我们列举一个节点的集合来访问一个特定属性如名称值或名称空间最后XmlNode类可以用来在XML文档中向一个用于检验的XmlNode 对象分配一个特定节点
XmlNamedNodeMap类用来列举建立在一个元素类型选择中的属性集合 DocumentNavigator XmlTextReader和XmlTextWriter类提供与XML一起使用所需要的额外功能要特别说明的是DocumentNavigator可以用来执行XPath查询它被包含在XSLT转换中XmlTextReader类提供对XML节点的只向前(forwardonly)无缓存的访问从而使XML节点对大型XML文档也同样生效XmlTextWriter类提供一个快速只向前的指针模型实现将 XML 内容写到一个流或一个文件中的目的
在菜单应用程序中使用的XML 文档相对来说是较小的因此我们可以在服务器端使用文档对象模式(DOM)来存取XML文档中的不同节点当分解大型 XML文档时就需要使用XmlTextReader 类所含有的只向前模型