当前位置:首页>网络学院>程序开发>XML教程>文章内容

XML在.net平台下的自定义控件的应用

[ 来源:www.it55.com | 作者: | 时间:2007-07-14 | 收藏 | 推荐 ] 【

  Xml全称可扩展标记语言(extensible marked language),这套语言系统由于在数据处理,跨平台等方面的独特优势,在近几年风靡全球。Xml语言系统把任何数据都作为“键”和“值”来进行处理,这一点类似于很多数据库管理系统(DBMS),而且它与具体的机器指令无关,其存储方式是纯文本文件,因此具有出色的跨平台性。另外它允许用户创建自己的数据指令系统,在这套指令系统的框架下,用户可以把所有信息转换成易于存取的数据,大大加快了开发的周期和代码的可移植性。 www.it55.com在线教程

  既然XML这么好,那它到底是什么样子的呢?最近笔者因为课题的需要,开发了一个基于.net平台下的menu控件,并且加入了xml特性。制作的步骤如下:

  第一步:制作一个.net平台下的menu控件

  .net平台下面的自定义控件的工作原理如下:控件对应于一个类(class),控件的所有属性通过类的成员变量来暴露,而控件的方法对应于class的成员函数。在控件被加载的手,系统会调用class的render方法,制作控件的时候,应该重载(override)这个render方法,使得在控件被加载的那 一刻,控件可以自己“绘制”自己,一般来说,在render方法里面要将关于控件界面绘制的那些javascript文件放入到输出流中。

  由于这里重要是讲解后面XML的应用,所以这里只是把自定义控件的原来简要说明一下,下面罗列出相关对象,属性,方法。

  整个menu控件分为Topmenu,Submenu,Childrenmenu,MenuItem四个对象,其相应的信息为:

  控件属性:

   ID:标识控件名字

   MenubarHeight:菜单拦的高度

   MenubarWidth::菜单拦的宽度

   BorderWidth::边框宽

http://www.it55.com/


   AutoDropdown:true表示自动下拉,false表是单击鼠标下拉

   DropdownDelay:下拉时间

   Menufont:字体

   LocationX:菜单的x位置

   LocationY:菜单的y位置

   XmlFile:xml文件

   XmlStream:xml流

   topmenu对象属性:

   ID:同上

   Text:顶层菜单的文本

   Isparent:true表示有下一级菜单,否则为false(false默认)

   Islink:需要用事件处理用true,否则false(false默认);

   Bgcolor:背景色

   Forecolor:前景色

   HoveredBackcolor:鼠标放在上面的颜色

   Topmenufont:字体

   Linkurl:当isparent为false才有效,表示连接的url

   Borderwidth:topmenu的边框宽

   Itemheight:下一级菜单的高度(必须isparent为true才有效)

   Itemwidth: 下一级菜单的宽度(必须isparent为true才有效)

   Submenus:含有下一级菜单的数组列表

   Submenu,Childrenmenu 和MenuItem的所有属性跟上面Topmenu一样,这里就不赘述了。
www.it55.com

  第二步,就是加入XML特性

  注意,任何xml文档在其被处理之前最好先进行有效性验证,提供验证一般有两种重要的途径。其一就是提供DTD(文档类型定义),实际上就是让用户提供指令集,然后在xml文档加载的时候对其进行有效性分析,看是否有无效指令,简单说就是创建一个编译环境;另外一个就是提供一个所谓的schema。.其作用跟DTD完全一样,只是在表现形式上好于DTD,因为它本身也是一个XML文档。这里我采用了schema的形式,当然了,读者用兴趣也可以将其替换问相应的DTD版本。下面列出该schema的关于控件和topmenu对象的代码,如果要看该文档的详细代码,请看 “代码.doc”。

  menu.xdr:

it55.com

<?xml version="1.0" encoding="UTF-8"?>

<Schema name="menus" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">

<description>

menus schema used to validate menu.xml

</description>

<ElementType name="menu" model="closed" content="empty">

<AttributeType name="id" dt:type="string" required="yes"/>

<atttibute type="id"/>

<element name="topmenu" model="closed" minOccurs="0" maxOccurs="*" content="empty"/>

</ElementType>



<ElementType name="topmenu" model="closed" content="empty">

<AttributeType name="id" dt:type="string" required="yes"/>

<AttributeType name="text" dt:type="string" required="yes"/>

<AttributeType name="linkurl" dt:type="string" required="yes"/>

<AttributeType name="isparent" dt:type="string" required="yes"/>

<atttibute type="id"/>

<atttibute type="text"/>

<atttibute type="linkurl"/>

<atttibute type="isparent"/> 45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

<element name="submenu" model="closed" minOccurs="0" maxOccurs="*" content="empty"/>

</ElementType>



<ElementType name="submenu" model="closed" content="empty">

<AttributeType name="id" dt:type="string" required="yes"/>

<AttributeType name="text" dt:type="string" required="yes"/>

<AttributeType name="linkurl" dt:type="string" required="yes"/>

<AttributeType name="isparent" dt:type="string" required="yes"/>

<atttibute type="id"/>

<atttibute type="text"/>

<atttibute type="linkurl"/>

<atttibute type="isparent"/>

<element name="childrenmenu" model="closed" minOccurs="0" maxOccurs="*" content="empty"/>

</ElementType>



<ElementType name="childrenmenu" model="closed" content="empty">

<AttributeType name="id" dt:type="string" required="yes"/>

<AttributeType name="text" dt:type="string" required="yes"/>

<AttributeType name="linkurl" dt:type="string" required="yes"/>
http://www.it55.com/


<AttributeType name="isparent" dt:type="string" required="yes"/>

(编辑:IT资讯之家 www.it55.com

返回顶部
共2页: 上一页 1 [2] 下一页  

网友评论

[以下评论为网友观点,不代表本站。请自觉遵守互联网相关政策法规,所有连带责任均有评论者自负。]
[不超过250字]

图片文章