日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

XML在.net平臺(tái)下的自定義控件的應(yīng)用(2)_Xml教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:高效交換XML文檔
XML文檔因?yàn)槠涔逃械拿枋鲂蕴匦远呄蛴谧兊煤芰_嗦。其結(jié)果是文檔會(huì)由于被描述的數(shù)據(jù)增多而變得很長(zhǎng),而這種很大的文檔會(huì)在需要同其他實(shí)體進(jìn)行交換時(shí)出現(xiàn)問(wèn)題。和其他文檔(比如普通文本文件(f

第二步,就是加入XML特性

注意,任何xml文檔在其被處理之前最好先進(jìn)行有效性驗(yàn)證,提供驗(yàn)證一般有兩種重要的途徑。其一就是提供DTD(文檔類型定義),實(shí)際上就是讓用戶提供指令集,然后在xml文檔加載的時(shí)候?qū)ζ溥M(jìn)行有效性分析,看是否有無(wú)效指令,簡(jiǎn)單說(shuō)就是創(chuàng)建一個(gè)編譯環(huán)境;另外一個(gè)就是提供一個(gè)所謂的schema。.其作用跟DTD完全一樣,只是在表現(xiàn)形式上好于DTD,因?yàn)樗旧硪彩且粋(gè)XML文檔。這里我采用了schema的形式,當(dāng)然了,讀者用興趣也可以將其替換問(wèn)相應(yīng)的DTD版本。下面列出該schema的關(guān)于控件和topmenu對(duì)象的代碼,如果要看該文檔的詳細(xì)代碼,請(qǐng)看 “代碼.doc”。

以下為引用的內(nèi)容:
menu.xdr:

  <?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"/>

  <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"/>

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

  <atttibute type="id"/>

  <atttibute type="text"/>

  <atttibute type="linkurl"/>

  <atttibute type="isparent"/>

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

  </ElementType>

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

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

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

  <atttibute type="id"/>

  <atttibute type="text"/>

  </ElementType>

  </Schema>

如果您對(duì)html比較熟悉的話,相信上面的代碼即使是以前沒(méi)有接觸過(guò)也應(yīng)該清楚了,在.xdr中,有兩個(gè)對(duì)象,其一是元素,用前綴ElementType 來(lái)定義,另外一個(gè)是該元素所對(duì)應(yīng)的屬性,用前綴atttibuteTpye,定義完這兩個(gè)對(duì)象后,就是要將它們實(shí)例化,對(duì)應(yīng)的前綴分別是Element 和atttibute,然后您就可以使用這兩種已經(jīng)實(shí)例化了的對(duì)象,就象使用html中<a>,<l>,<body>,<head>等標(biāo)記一樣。

為了更加清晰的說(shuō)明上面的代碼,我們這里舉一個(gè)例子,相信讀者一目了然:

以下為引用的內(nèi)容:

  <menus XMLns='x-schema:Menu.xdr'>

  <menu id='menuBar1'>

  <topmenu id="xjtu" text="xjtu" isparent="true" linkurl="xjtu"></topmenu>

  <submenu id="sina" text="sina" isparent="false" linkurl="sina"></submenu>

  <topmenu id="sohu" text="sohu" isparent="false" linkurl="sohu"></topmenu>

  </menu></menus>

創(chuàng)建完xml文檔后,就要在程序里面讀取xml文檔,這里如果采用微軟的vs.net平臺(tái)開(kāi)發(fā)的話,建議可以使用XMLTextReader來(lái)讀取相關(guān)信息,具體細(xì)節(jié)可以查閱MSDN。

第三步:使用控件

創(chuàng)建完了menu控件,現(xiàn)在就是在.net平臺(tái)下面來(lái)使用它。首先要在vs.net平臺(tái)下面編譯該控件,如果編譯成功就可以使用它了。使用.net自定義控件和使用一般的ActiveX控件很相似,啟動(dòng)vs.net平臺(tái)下面的部件箱(可以直接在ToolBar上右擊鼠標(biāo)來(lái)得到),注意我們制作是不是基于COM組件,而是ASP.NET組件,所以從這點(diǎn)上它與COM組件有本質(zhì)的不同,通過(guò)Browse按鈕可以選擇該控件對(duì)應(yīng)的dll文件,將其添加進(jìn)你的工程。下面你還要在你的程序代碼中加入下面的代碼(其他代碼略)

using 你的名字空間;(A)

還應(yīng)該在behind code加入該控件的聲明(B)

事實(shí)上,無(wú)論是A處的代碼還是B處的說(shuō)明,都可以由VS.NET平臺(tái)自動(dòng)生成,如果使用其他平臺(tái)并且不支持這種代碼的自動(dòng)添加的話,就可以手動(dòng)添加。添加完之后,這樣就可以和其他控件來(lái)進(jìn)行使用了。而且在控件類代碼中的所有的公有的成員變量,函數(shù)分別對(duì)應(yīng)于控件的屬性和方法。

這里需要指明的就是控件必須提供兩個(gè)屬性,那就是XmlStream和XmlFile,如果用戶已經(jīng)制作好了控件的XML文件(該文件描述了控件的數(shù)據(jù)),或者是已經(jīng)寫好了一個(gè)xml代碼的話,可以把代碼和文件分別傳給XmlStream和XmlFile,后臺(tái)程序(就是dll文件)通過(guò)調(diào)用一些XML的閱讀器比如XmlTextReader來(lái)讀取xml數(shù)據(jù),這樣就達(dá)到了控件支持XML屬性了,進(jìn)而也增強(qiáng)了控件的移植性和通用性。

本文主要討論了xml在.net平臺(tái)下控件制作方面的應(yīng)用,從上面的例子可以看出,xml在數(shù)據(jù)的整合,處理方面確實(shí)有它獨(dú)特的優(yōu)勢(shì),如果你的項(xiàng)目中涉及到數(shù)據(jù)處理和跨平臺(tái)的問(wèn)題,可以考慮應(yīng)用XML。

分享:XSL簡(jiǎn)明教程(4)在服務(wù)器端的實(shí)現(xiàn)
原著:Jan Egil Refsnes 翻譯:阿捷 四: XSL --- 在服務(wù)器端的實(shí)現(xiàn) 1.兼容所有的瀏覽器 在上面一章我們介紹了可以通過(guò)JavaScript調(diào)用瀏覽器的XML parser(解析軟件)來(lái)轉(zhuǎn)換XML文檔。但是

來(lái)源:模板無(wú)憂//所屬分類:Xml教程/更新時(shí)間:2008-08-22
相關(guān)Xml教程