目錄 第一章 實驗課程基本信息 誤錯? 錯誤! 未定義書簽。
第二章 如何編寫格式良好得XML文檔 誤錯? 錯誤! 未定義書簽。
2、1實驗目得 ....................................................................................... 錯誤! 未定義書簽。
2、2 實驗要求 .......................................................................................... 錯誤! 未定義書簽。
2、3 實驗過程 ........................................................................................ 錯誤! 未定義書簽。
2、3、1 分析過程 ............................................................................ 錯誤! 未定義書簽。
2、3、2XML文檔編寫過程 ............................................................................................. 4 2、4 注意事項 ........................................................................................ 錯誤! 未定義書簽。
第三章 編寫 DTD 與有效得 XML實例文檔 誤錯? 錯誤! 未定義書簽。
3、1 實驗目得 .......................................................................................... 錯誤! 未定義書簽。
3、2 實驗要求 誤錯? 錯誤! 未定義書簽。
3、3 實驗過程 誤錯? 錯誤! 未定義書簽。
3、3、1分析過程 誤錯? 錯誤! 未定義書簽。
3、3、2DTD 文檔得編寫過程 ........................................................ 錯誤! 未定義書簽。
3、4 注意事項 誤錯? 錯誤! 未定義書簽。
第四章 編寫Schema 與有效得 XML文檔 誤錯? 錯誤! 未定義書簽。
4、1 實驗目得 誤錯? 錯誤! 未定義書簽。
4、2實驗要求 誤錯? 錯誤! 未定義書簽。
4、3 實驗過程 誤錯? 錯誤! 未定義書簽。
4、3、1 分析過程 誤錯? 錯誤! 未定義書簽。
4、3、2Schema 得編寫方式 誤錯? 錯誤! 未定義書簽。
4、4 注意事項 誤錯? 錯誤! 未定義書簽。
第五章 XML 文檔得轉換 ................................................................................ 錯誤! 未定義書簽。
5、1 實驗目得 誤錯? 錯誤! 未定義書簽。
5、2實驗要求 ......................................................................................... 錯誤! 未定義書簽。
5、3實驗過程 誤錯? 錯誤! 未定義書簽。
5、3、1分析過程 誤錯? 錯誤! 未定義書簽。
5、3、2XHTML 實驗編寫基本過程 .......................................... 錯誤! 未定義書簽。
5、4 注意事項 誤錯? 錯誤! 未定義書簽。
第六章 DOM 編程 誤錯? 錯誤! 未定義書簽。
6、1 實驗目得 ........................................................................................ 錯誤! 未定義書簽。
6、2 實驗要求 誤錯? 錯誤! 未定義書簽。
6、3實驗過程 ......................................................................................... 錯誤! 未定義書簽。
6、3、1 分析過程 ............................................................................ 錯誤! 未定義書簽。
6、3、2DOM編寫得基本過程 ..................................................... 錯誤! 未定義書簽。
6、4注意事項 誤錯? 錯誤! 未定義書簽。
XML編程實驗 摘要
XML 自推出以來,尤其就是在1998年2月成為 W3C 推薦標準以來,受到了廣泛得支持。各大軟件廠商如 IBM、Microsoft、Oracle、Sun等都積極支持并參與 XML 得研究與產品化工作,先后推出了支持 XML 得產品或者將改造原有得產品以支持XML,W3C 也一直致力于完善 XML 得整個理論體系。XML雖然獲得了極大得支持,但就是它還有很長得路要走。首先,XML 得規則只就是邁出了第一步,還有許多技術細節沒有解決.其次,現在雖然出現了一些 XML工具與應用,但就是其市場反應還有待進一步觀察.另外如何讓更多得人迅速學會使用 XML,并利用它進行開發,進而促進 XML 得應用也就是一個問題。因此XML 得出現與迅猛發展并不意味著 HTML即將退出互聯網舞臺,由于HTML 得易學易用與非常多得工具支持,HTML 將在較長得時間里繼續在 Web 舞臺上充當主角。但就是如果用戶想超越 HTML 得范圍,XML 將就是最佳得選擇。無論如何,XML 得出現使互聯網跨入了一個新得階段,它將成為因特網領域中一個重要得開發平臺。XML 得誕生已經而且將繼續促使全新種類得應用程序得產生,而這些新得應用程序又將需要新得軟件與硬件工具。可以預測,無論就是在軟件還就是硬件上,XML 都將開辟一系列得新市場,促成互聯網上新得革命. 關鍵詞:XML 語言 ;W3C標準 ;HTML 第一章 實驗課程基本信息
本門課程為信息管理與信息系統專業專業限選課,中文名稱為 XML 語言,課程英文名稱為eXtensible Markup Language,先修課程為面向對象程序設計,其中課程學時為 48 學時,理論學時為 16 學時,實驗學時為 32 學時.本實驗課程依附理論課程,《XML語言》課程要求培養學生實踐能力,實驗課程強化學生對課堂內容得理解,培養學生對XML 語言得實際設計能力。本課程作為專業方向課程,除了學習XML 語言得理論知識外,還必須加強學生實踐動手能力;通過本課程實驗,加深對 XML 語言得認識,理解并掌握 XML 文檔編寫與應用編程得基本方法;通過實驗,提高分析問題與解決問題得能力。
第二章 如何編寫格式良好得 XML 文檔 2、1 實驗目得 熟練掌握 XML 聲明、標記、 標記得文本數據、屬性、注釋、名稱空間等編寫語法。能夠編寫基本得 XML文檔,了解XML 得基本用途,在實驗得過程中需要什么就是 XML、以及 XML與 HTML 之間得差異。
2、2 實驗要求 要求:格式良好,包含 XML 聲明、合理得元素嵌套結構、屬性、注釋、名稱空間.能合理體現下列數據得語義。
?
學生信息: 學號(聲明為 id類型屬性),姓名,性別,出生日期 ? 課程信息:
課程編號(聲明為 id 類型屬性),課程名,學分,課程說明 ? 成績信息: 成績(考慮補考及重修)
實例文檔:多個學生、多門課程得成績(不少于 3 個學生 2 門課程)
2、3實驗過程 2、3、1 分析過程 根據題目要求編寫格式良好得XML 文檔,包括合理得嵌套結構、屬性、注釋、名稱空間。我們在編寫 XML 文檔得時候需要注意很多問題.例如以下幾點:
? XML 文檔必須有根元素(XML 文檔必須有一個元素就是所有其她元素得父元素,該元素稱為根元素。)
</root〉 〈child>
〈subchild>、、、、、</subchild〉
〈/child〉 〈/root> ? XML 得屬性值須加引號 <note date="08/08/2008”> 〈to>George</to〉
〈from>John〈/from> </note〉 ? XML 必須正確地嵌套 〈b><i〉This text is bold and italic〈/i></b> 2、3、2XML文檔編寫過程 在準備與來解了XML 文檔得基本語法格式與書寫方法過后我們根據實驗要求可以寫出符合要求得 XML 文檔,代碼如下: 〈?xml version=”1、0” encoding=”UTF-8”?> <test_info> ——!<
〉——息信本基生學?〈
〉”2S"=di_uts ofni_uts? <
>eman/<kcaJ>eman?
<sex>Male</sex〉 < ?
〉yadhtrib/〈10—10-3991>yadhtrib?/<
>ofni?<
>”2S"=di_uts ofni_uts?
〈name〉Jane</name>
? <sex〉Female〈/sex〉
〈
>yadhtrib/〈50-10-3991>yadhtrib?/〈
>ofni_uts?<
>"2S”=di_uts ofni_uts?〈 ?
>eman/〈cccL〉eman?< ?
〉xes/<elaM〉xes?
〈birthday>1993-05—01</birthday> /〈
>ofni_uts? <!—-課程基本信息——〉
〈sub_info sub_id=”K01"〉
〈
〉eman_bus/〈shtaM〉eman_bus?〈 ?
〉tiderc/<6>tiderc? ? 〈discription>This is a mandatory subject</discription> /<
>ofni_bus? 〈sub_info sub_id="K02”>
<
>eman_bus/<hsilgnE>eman_bus?〈 ?
〉tiderc/〈5>tiderc? 〈
〉noitpircsid/<tcejbus yrotadnam a si sihT>noitpircsid? </sub_info〉
成績基本信息--〉
<!-—學號為 s2012070301 學生得成績信息——> <
〉ofni_arg/〈27〉”10K 2S”=bus_uts ofni_a 〈
>ofni_arg/〈17>”20K 2S"=bus_uts ofni_arg?--!〈、)績成末期(erocslaniF 中其,息信績成得生學 2030702102s 為號學?
Makeupscore(補考成績)、Resetscore(重修成績)-->
〈gra_info stu_sub=”S2 K01" result=”Finalscore"〉45</gra_info>
<gra_info stu_sub=”S2 K01” result=”Makeupscore"〉59</gra_info〉
<gra_info stu_sub="S2 K01" result=”Resetscore”〉72</gra_info〉 〈
〉ofni_arg/<17〉”20K 2S”=bus_uts ofni_arg?—-!<
〉--息信績成得生學 3030702102s 為號學?<
〉ofni_arg/<27〉”10K 2S”=bus_uts ofni_arg? <gra_info stu_sub=”S2 K02”>71〈/gra_info> </test_info〉 2、4 注意事項 1、在編寫簡單得得 XML 文檔中,應注意每個起始標簽必須有一個結束標簽與之對應。
2、元素名與屬性名必須符合 XML得命名規則,元素可以嵌套但不能重疊。
3、每一個格式良好得 XML 文檔,只有一個根元素。
4、一個元素不能有兩個同名得屬性。
5、應該注意一個格式良好得XML 文檔需要有準確得注釋,方便讀者理解。
第三章 編寫 DTD 與有效得 XML實例文檔 3、1 實驗目得 理解編寫有效得 XML 文件;掌握如何檢查 XML 文件得有效性;熟練掌握 DTD得基本語法。文檔類型定義(DTD)可定義合法得 XML文檔構建模塊。它使用一系列合法得元素來定義文檔得結構。DTD 可被成行地聲明于 XML 文檔中,也可作為一個外部引用。通過此次實驗我們可以熟悉編寫DTD 文檔與相關得XML 文檔,鍛煉自己得文檔編寫能力。
3、2 實驗要求 要求:能合理體現下列數據得語義
學生信息:
學號(聲明為 id 類型屬性),姓名,性別,出生日期 課程信息:
課程編號(聲明為 id 類型屬性),課程名,學分,課程說明 成績信息:
成績(考慮補考及重修) 實例文檔:多個學生、多門課程得成績(不少于8個學生3門課程) 3、3實驗過程 3、3、1 分析過程 要想實習 DTD 文檔得編寫,就需要了解 DTD文檔編寫得基本方法與語法,在這個基礎上我們可以更加熟悉DTD。通過 DTD,您得每一個 XML 文件均可攜帶一個有關其自身格式得描述。通過 DTD,獨立得團體可一致地使用某個標準得 DTD 來交換數據。而您得應用程序也可使用某個標準得 DTD 來驗證從外部接收到得數據.您還可以使用 DTD 來驗證您自身得數據 。
? 內部得 DOCTYPE 聲明 實例代碼文檔如下:
〈?xml version="1、0"?> <!DOCTYPE note [ 〈!ELEMENT note (to,from,heading,body)〉 〈!ELEMENT to
(#PCDATA)〉 <!ELEMENT from
(#PCDATA)〉 <!ELEMENT heading (#PCDATA)> 〈!ELEMENT body
(#PCDATA)〉 ]> 〈note〉 〈to〉George</to〉 〈from〉John〈/from〉 <heading〉Reminder</heading> <body〉Don"t forget the meeting!〈/body〉 〈/note> 以上 DTD 解釋如下:
!DOCTYPE note (第二行)定義此文檔就是 no te 類型得文檔. !ELEMENT note (第三行)定義 note 元素有四個元素:”to、from、heading,、body”
!ELEMENT to (第四行)定義 to 元素為 ” #PCD ATA” 類型 !ELEMENT from (第五行)定義 from 元素為 ” #PCD ATA" 類型 !ELEMENT heading (第六行)定義 heading 元素為 ”#PCDAT A” 類型 !ELEMENT body (第七行)定義 body 元素為 ”#PC DATA" 類型 ? 外部文檔聲明 〈?xml version="1、0"?〉 <!DOCTYPE note SYSTEM "note、dtd"〉 <note〉 〈to>George〈/to〉 <from〉John</from〉 〈heading>Reminder</heading〉 〈body〉Don’t forget the meeting!〈/body〉 </note> 這就是包含 DTD 得 "note、dtd" 文件: <!ELEMENT note (to,from,heading,body)> 〈!ELEMENT to (#PCDATA)> 〈!ELEMENT from (#PCDATA)〉 <!ELEMENT heading (#PCDATA)> 〈!ELEMENT body (#PCDATA)> 3、3、2DTD文檔得編寫過程 此次實驗我們主要采用內部DTD 文檔得編寫方式,實驗代碼如下: 〈?xml version="1、0” encoding="UTF-8”?> <!-- 版本聲明—-> 〈!-- 定義根元素及其子元素學生元素、課程元素、成績元素——> <!DOCTYPE test_info [
<!ELEMENT test_info (stu_info | sub_info | gra_info)*> --!〈
>-—明聲行進性屬與素元生學對?!〈
>)yadhtrib ,xes ,eman( ofni_uts TNEMELE?!〈
ofni_uts TSILTTA? ? stu_id ID #REQUIRED
〉 ? 〈!ELEMENT name (#PCDATA)〉 !<
>)ATADCP#( xes TNEMELE?!〈
>)ATADCP#( yadhtrib TNEMELE? <!——對課程元素與屬性進行聲明-—>
<!ELEMENT sub_info (sub_name, credit, discription)> !<
ofni_bus TSILTTA?
sub_id ID #REQUIRED
> !<
>)ATADCP#( eman_bus TNEMELE?!<
〉)ATADCP#( tiderc TNEMELE?
!<
〉)ATADCP#( noitpircsid TNEMELE? 〈!--對學生課程得元素與屬性進行聲明,當考試只有一個成績時默認為期末考試成績,如果不就是再進行聲明-—〉 !<
〉)ATADCP#( ofni_arg TNEMELE? 〈!ATTLIST gra_info
DERIUQER# SFERDI bus_uts?
?
”erocslaniF” ATADC tluser? 〉 ?]> 〈!-—編寫所有得考試信息—-〉 〈test_info> --!<
〉—-息信本基生學?〈
>"2S"=di_uts ofni_uts?
<name〉Jack</name> 〈 ?
>xes/〈elaM>xes? ? <birthday〉1993—01—01〈/birthday> /〈
〉ofni_uts?〈
>"2S"=di_uts ofni_uts?〈 ?
〉eman/<enaJ〉eman?
〈sex〉Female〈/sex〉
? 〈birthday>1993—01-05〈/birthday> /<
>ofni_uts? <stu_info stu_id="S2”〉
? 〈name>Lccc</name〉
<
〉xes/<elaM>xes? 〈
>yadhtrib/<10—50—3991>yadhtrib? </stu_info> <
>"2S"=di_uts ofni_uts?〈 ?
>eman/〈ekiM〉eman? 〈
>xes/<elaM>xes? ? <birthday>1994-01-01</birthday>
</stu_info> <
〉"2S"=di_uts ofni_uts? 〈
>eman/<oloS>eman?〈 ?
>xes/<elaM>xes?〈 ?
〉yadhtrib/〈10—10-5991>yadhtrib? </stu_info> <
>"2S”=di_uts ofni_uts? <
〉eman/〈buiX〉eman?
<sex〉Male〈/sex〉
? 〈birthday>1993—07—01〈/birthday〉 /〈
>ofni_uts? 〈stu_info stu_id="S2">
〈
〉eman/〈izaM〉eman?
〈sex>Male〈/sex>
? 〈birthday〉1993-05-05</birthday〉
</stu_info〉
〈stu_info stu_id=”S2"〉
<
〉eman/<gneK〉eman?
<sex>Male</sex〉
<birthday>1993—08—01</birthday〉 /〈
>ofni_uts? <!——課程基本信息--〉
<sub_info sub_id="K01”〉
〈sub_name〉Maths〈/sub_name>
<
〉tiderc/<6>tiderc?
〈discription>This is a mandatory subject〈/discription〉 /<
〉ofni_bus? <sub_info sub_id=”K02"> < ?
〉eman_bus/<hsilgnE〉eman_bus?< ?
〉tiderc/<5〉tiderc? 〈
〉noitpircsid/〈tcejbus yrotadnam a si sihT〉noitpircsid? 〈/sub_info>
<sub_info sub_id=”K03"〉
〈sub_name>puter〈/sub_name>
〈credit>2</credit〉
<
〉noitpircsid/〈tcejbus evitcele a si sihT>noitpircsid?/〈
〉ofni_bus?-—!〈
>--息信本基績成?--!〈
>--息信績成得生學 1030702102s 為號學?〈
>ofni_arg/〈27>"10K 2S”=bus_uts ofni_arg?〈
>ofni_arg/<17〉"20K 2S”=bus_uts ofni_arg? 〈gra_info stu_sub=”S2 K03">87〈/gra_info>
〈!——學號為s2012070302學生得成績信息,其中Finalscore (期末成績)、Makeupscore(補考成績)、Resetscore(重修成績)-->
〈gra_info stu_sub="S2 K01" result="Finalscore"〉45〈/gra_info〉
<gra_info stu_sub="S2 K01" result=”Makeupscore">59〈/gra_info〉
<gra_info stu_sub="S2 K01” result=”Resetscore”>72〈/gra_info>
〈gra_info stu_sub="S2 K02”>71</gra_info> 〈
〉ofni_arg/〈78>"30K 2S"=bus_uts ofni_arg?-—!<
>—-息信績成得生學3030702102s 為號學?<
>ofni_arg/<27>"10K 2S"=bus_uts ofni_arg? 〈gra_info stu_sub=”S2 K02">71</gra_info〉 〈
>ofni_arg/<78〉"30K 2S”=bus_uts ofni_arg? <!-—學號為s2012070304 學生得成績信息——〉
<gra_info stu_sub="S2 K01” result="Finalscore”〉45</gra_info>
<gra_info stu_sub="S2 K01" result=”Makeupscore"〉60〈/gra_info〉
〈gra_info stu_sub=”S2 K02"〉71</gra_info〉 〈
〉ofni_arg/<78〉”30K 2S”=bus_uts ofni_arg? 〈!——學號為 s2012070305 學生得成績信息--〉
〈gra_info stu_sub="S2 K01”>72</gra_info>
<gra_info stu_sub="S2 K02”>71</gra_info> 〈
〉ofni_arg/〈78>"30K 2S"=bus_uts ofni_arg?——!<
>-—息信績成得生學6030702102s 為號學?〈
〉ofni_arg/<27〉”10K 2S"=bus_uts ofni_arg?〈
>ofni_arg/〈17>"20K 2S”=bus_uts ofni_arg?<
〉ofni_arg/<78〉”30K 2S"=bus_uts ofni_arg?-—!〈
>——次兩修重示表,息信績成得生學 7030702102s 為號學?<
>ofni_arg/〈54>”erocslaniF”=tluser ”10K 2S"=bus_uts ofni_arg? 〈gra_info stu_sub=”S2 K01" result="Makeupscore">55</gra_info〉 〈 _arg/〈95>"erocsteseR"=tluser ”10K 2S"=bus_uts ofni_arg?info>
〈gra_info stu_sub=”S2 K01” result="Resetscore">72〈/gra_info〉 <
>ofni_arg/〈78〉"30K 2S"=bus_uts ofni_arg? 〈!—-學號為s2012070308 學生得成績信息——>
〈gra_info stu_sub="S2 K01”>72</gra_info> 〈
>ofni_arg/〈17〉”20K 2S”=bus_uts ofni_arg?<
〉ofni_arg/〈78>”30K 2S”=bus_uts ofni_arg?〈/test_info> 實驗運行結果展示:
實驗運行成功!
3、4 注意事項 1、注意元素類型與屬性類型之間得區別。
2、弄清 XML 文檔構建得基本模塊,基本上包含元素、實體、屬性、PCDATA、CDATA.
第四章 編寫 Schema 與有效得 XML 文檔 4、1 實驗目得 通過前面學習得 XML 文檔與 DTD 得書寫我們可以了解到 XML 得基本結構,下一步就需要了解 Schema與 DTD得基本區別。XML Schema 用于定義 XML 文檔得合法元素,類似 DTD.我們認為 XML Schema 很快會將 DTD 取而代之,被用在大部分得網絡應用程序中。XML Schema 就是基于 XML 得 DTD 替代物。與 DTD 不同,XML Schema 支持數據類型與命名空間。
4、2 實驗要求 要求:1、使用全局有名類型
2、使用“目標名稱空間"
3、能合理體現下列數據得語義 學生信息:
學號(聲明為 id 類型屬性),姓名,性別,出生日期 課程信息:
課程編號(聲明為id 類型屬性),課程名,學分,課程說明 成績信息:
成績(考慮補考及重修)
實例文檔:多個學生、多門課程得成績(不少于 8 個學生3門課程)
4、3 實驗過程 4、3、1 分析過程 在開始我們實驗得過程得時候我們就需要了解什么就是 Schema?XML Schema 得作用就是定義 XML 文檔得合法構建模塊,類似 DTD。XML Schema 就是 DTD 得繼任者。
XML Schema:
? 定義可出現在文檔中得元素 ? 定義可出現在文檔中得屬性 ? 定義哪個元素就是子元素 ? 定義子元素得次序 ? 定義子元素得數目 ? 定義元素就是否為空,或者就是否可包含文本 ? 定義元素與屬性得數據類型 ? 定義元素與屬性得默認值以及固定值 4、3、2Schema得編寫方式 實驗過程得基本代碼如下:
<?xml version="1、0” encoding=”UTF-8”?〉 <xs:schema xmlns:xs="” xmlns:all=”” targetNamespace="”>
<!——聲明有名得簡單類型——〉 <
〉”epytgnirts"=eman epyTelpmis:sx? ? 〈xs:restriction base=”xs:string”/〉 /〈
〉epyTelpmis:sx? <xs:simpleType name=”sextype”>
<xs:restriction base=”xs:string”> 〈 ? ?
〉/"elaM”=eulav noitaremune:sx?
〈
>/"elameF"=eulav noitaremune:sx? ? </xs:restriction〉 /<
>epyTelpmis:sx?〈
>”epytetad”=eman epyTelpmis:sx? 〈
〉/”etad:sx"=esab noitcirtser:sx? </xs:simpleType〉
<xs:simpleType name="IDtype"〉
? <xs:restriction base=”xs:ID"/>
〈/xs:simpleType〉
〈xs:simpleType name=”IDREFStype”〉
〈xs:restriction base="xs:IDREFS"/〉
〈/xs:simpleType〉 --!〈
>—-型類雜復得名有明聲?——!〈
〉--型類息信雜復生學明聲? <xs:plexType name="stu_infotype”>
<
〉ecneuqes:sx?
< cOxam "epytgnirts:lla"=epyt ”eman"=eman tnemele:sx?curs=”unbounded”/〉 〈 ? Oxam "epytxes:lla"=epyt "xes”=eman tnemele:sx?ccurs="unbounded”/〉
< am "epytetad:lla”=epyt "yadhtrib"=eman tnemele:sx?xOccurs=”unbounded"/〉
? </xs:sequence>
〈xs:attribute name="stu_id” type=”all:IDtype" use="required"/>
〈/xs:plexType>
<!-—聲明課程復雜信息類型——> <
>”epytofni_bus"=eman epyTxelp:sx?〈 ?
〉ecneuqes:sx? < ? ruccOxam "epytgnirts:lla”=epyt ”eman_bus”=eman tnemele:sx?s=”unbounded"/>
?
<xs:element name=”credit” type=”all:stringtype” maxOccurs=”unbounded"/〉
? 〈xs:element name="discription” type=”all:stringtype" maxOccurs=”unbounded"/> /〈 ?
〉ecneuqes:sx?〈?
〉/" deriuqer”=esu "epytDI:lla"=epyt "di_bus"=eman etubirtta:sx? </xs:plexType〉 -—!〈
〉——型類息信雜復績成明聲?〈
〉”epytofni_arg"=eman epyTxelp:sx? <
>ecneuqes:sx?
<xs:element name="Finalscore” type=”all:stringtype” minOccurs="1” maxOccurs="unbounded”/>
〈xs:element name="Makeupscore" type="all:stringtype" minOccurs=”0" maxOccurs="unbounded"/>
? < epytgnirts:lla"=epyt "erocsteseR”=eman tnemele:sx?" minOccurs="0” maxOccurs="unbounded”/〉 /〈 ?
〉ecneuqes:sx? 〈 su ”epytSFERDI:lla"=epyt "di_uts”=eman etubirtta:sx?e=”required”/>
<xs:attribute name="sub_id” type="all:IDREFStype” use="required”/〉 /〈
>epyTxelp:sx? <!--聲明學生考試成績復雜信息-—> 〈
>”epytofni_tset”=eman epyTxelp:sx?
〈xs:sequence〉
? 〈 xam "epytofni_uts:lla"=epyt ”ofni_uts"=eman tnemele:sx?Occurs="unbounded”/〉
< ? am ”epytofni_bus:lla”=epyt "ofni_bus”=eman tnemele:sx?xOccurs=”unbounded”/〉
< ? m "epytofni_arg:lla"=epyt ”ofni_arg”=eman tnemele:sx?axOccurs="unbounded"/>
/<
>ecneuqes:sx? 〈/xs:plexType〉 ——!<
〉--ofni_tset素元根明聲? <xs:element name="test_info" type="all:test_infotype”/〉
</xs:schema〉 實驗運行成功結果如下:
實例文檔略 4、4注意事項 1、需要弄清楚 DTD 與Schema 得基本區別才能熟悉 Schema 得語法。
2、弄清楚 restriction派生與extension 派生得基本區別,在定義男女性別得時候起到重要作用。
3、對命名空間得理解。
第五章 XML文檔得轉換 5、1 實驗目得 理解 XSLT 變換得基本步驟,掌握 XSLT 樣式表中得模板,與模板匹配,模板應用,熟練掌握常用得XSLT標記語法。
5、2 實驗要求 要求:能合理體現下列數據得語義 學生信息:
學號(聲明為 id 類型屬性),姓名,性別,出生日期 課程信息:
課程編號(聲明為 id 類型屬性),課程名,學分,課程說明 成績信息:
成績(考慮補考及重修)
實例文檔:多個學生、多門課程得成績(不少于 8 個學生 3 門課程)
要求 XHTML 文檔實用、簡介、美觀。
5、3 實驗過程 5、3、1 分析過程 在如何編寫 XHTML文檔時候,我們需要對其結構有個基本得了解。
? HTML 標題 HTML 標題(Heading)就是通過 〈h1〉 — 〈h6> 等標簽進行定義得。
? HTML 段落 HTML 段落就是通過 <p> 標簽進行定義得. ? HTML 鏈接 HTML 鏈接就是通過 〈a〉 標簽進行定義得。
? HTML 圖像 HTML 圖像就是通過 〈img〉 標簽進行定義得。
5、3、2XHTML 實驗編寫基本過程 實驗代碼如下: 〈?xml version="1、0" encoding=”ISO—8859-1”?> <xsl:stylesheet version="1、0” xmlns:xsl="">
<xsl:template match=”test_info">
<
〉lmth?
〈body>
? 〈 S〉"retnec"=ngila ”0"=gniddapllec "dilos 1"=redrob 2h?TUDENT INFORMATION〈/h2>
<
>"retnec”=ngila ”1”=redrob elbat? ? 〈 ? ?
〉”neerg”=rolocgb rt?
?
? <th〉stu_id〈/th〉
?
〈th〉name〈/th〉
? ? ? 〈th〉sex〈/th〉
? ? ? 〈th>birthday〈/th>
? /< ?
〉rt? ?
〈
>”ofni_uts"=tceles hcae-rof:lsx?〈 ?
〉rt?< ? ? ? ? ?
〉dt?
? ? ? ?
<xsl:value—of select="stu_id”/〉
? ? ?
?
〈/td〉
?
〈 ? ?
〉dt? ?
? ? ?
〈xsl:value-of select=”name"/>
?
/?
〉dt? ?
< ? ?
〉dt?
?
?
<
〉/"xes”=tceles fo-eulav:lsx?
?
? /〈
>dt? ?
? 〈 ?
>dt? ?
? ? < ?
>/"yadhtrib”=tceles fo—eulav:lsx? ?
?
? /<
〉dt?
? ? ? tr>
?
? 〈/xsl:for-each〉
/〈 ?
〉elbat?
? 〈
>2h/〈NOITAMROFNI TCEJBUS>”retnec”=ngila 2h?
? ? <table border=”1” align="center"〉
?
? <
〉”der”=rolocgb rt?〈 ? ? ? ?
>ht/<di_bus〉ht?
? ? 〈th〉sub_name〈/th〉
? < ? ? ?
>ht/<tiderc>ht?〈 ? ? ? ?
>ht/〈noitpircsid>ht?
/< ?
〉rt?
? ? ? 〈xsl:for-each select="sub_info"〉
? 〈 ?
〉rt?
? ? ? 〈td>
<xsl:value-of select="sub_id"/〉
/〈 ? ? ?
〉dt?< ? ? ?
〉dt?
? ? <xsl:value—of select="sub_name”/>
?
? ? ? /〈
>dt? ?
?
〈
>dt? ? ? ? ? ?
〈xsl:value—of select="credit”/>
?
? ? ?
〈/td>
? ? ? 〈
>dt? ? ? ?
?
<xsl:value-of select="discription”/>
? /〈 ? ? ?
〉dt?
? /< ?
〉rt?/〈 ? ? ?
>hcae-rof:lsx?
/< ?
〉elbat? 〈 ?
>2h/〈NOITAMROFNI TSET>”retnec”=ngila 2h?< ? ?
〉”retnec"=ngila "1”=redrob elbat?
? 〈tr bgcolor=”pink”>
? ? <th〉stu_sub〈/th〉 〈 ? ? ?
>HT/〈erocslaniF〉HT? ?
<TH>Makeupscore</TH〉
?
? 〈TH〉Resetscore</TH〉
? ? ?
〈/tr>
?
〈xsl:for—each select=”gra_info”〉
?
? 〈tr〉
? < ? ?
〉dt?
? ? ? ? <xsl:value-of select="stu_sub"/〉
/〈 ? ? >d
〈 ? ? ?
>dt? ?
?
?
? 〈xsl:value-of select="Finalscore"/>
? ? ?
</td〉
? 〈 ?
〉dt? ? ? ?
? 〈
>/”erocspuekaM”=tceles fo-eulav:lsx?
/〈 ? ? ?
〉dt? ?
< ?
>dt?
? ? ? < ?
〉/”erocsteseR”=tceles fo-eulav:lsx?
? ? ? ? </td>
?
</tr>
/< ?
〉hcae-rof:lsx?
〈/table> /〈 ?
>ydob? /〈
〉lmth?/〈
〉etalpmet:lsx?〈/xsl:stylesheet〉 運行結果如下:
對應得實例文檔在流浪器中得顯示如下:
5、4注意事項 1、在編寫XSLT 得時候需要注意元素與屬性得區別,以及如何區分分數得屬性得時候采取課程與學生得聯合屬性。
2、注意合理安排期末成績、補考成績與重修成績得合理安排。
第六章 DOM 編程 6、1 實驗目得 理解 DOM 解析器工作原理。熟練掌握使用 DOM 接口處理Document節點,Element 節點,Text節點,Attr節點,處理空白,進行驗證有效性,使用 DOM 生成 XML 文件。使用DOM 編程接口進行應用編程,讀取XML 文檔,對文檔語法片段進行操作,完成諸如對實驗1文檔數據得統計分析,并以 XML文檔輸出結果。
6、2 實驗要求 下面給出描述學生信息(student)、課程信息(course)、學生課程成績(score)得 DTD 文檔。(DTD 文檔) 編寫基于 DOM 得程序,實現對指定“學生”及“課程”得成績查詢。要求輸入為“學號(student_id)、課程號(course_id)”,輸出為“學生姓名(student_name)、課程名(course_name)、成績(score)”. 6、3 實驗過程 6、3、1 分析過程 XML 文檔對象模型定義訪問與操作 XML 文檔得標準方法。DOM 將 XML 文檔作為一個樹形結構,而樹葉被定義為節點。我們就要對其節點有一個熟悉得了解。分析得結構圖如下所示:
6、3、2DOM編寫得基本過程 實驗得基本代碼如下: using System; using System、Collections、Generic; using System、Linq; using System、Text; using System、Xml; namespace XML_DOM {
class ProgramXml_Dom_Class
{
public static XmlDocument xmldocument;
static void Main(string[] args)
{
xmldocument = new XmlDocument();
Console、WriteLine(”正在讀取text、5 文件、、、、、、、");
xmldocument、Load(”text、5、xml”);
Console、WriteLine(”文件讀取成功!!!");
string q;
do
{
judge();
Console、WriteLine("\n 請輸入 Q 退出,或按任意鍵繼續查詢操作、、、、、、");
q = Console、ReadLine();
}
while (q != ”Q”);
}
public static void judge()
{
Console、WriteLine("——————----————-————-———————");
Console、Write(”請輸入學號:”);
string a = Console、ReadLine();
XmlNode xnode = xmldocument、SelectSingleNode(”//student/s_number[s_no、=’” + a、ToString() + ""]");
Console、Write("請輸入課程號:”);
string b = Console、ReadLine();
XmlNode xnode1 = xmldocument、SelectSingleNode("//course/c_number[c_no、=’” + b、ToString() + ”"]”);
if (xnode != null & xnode1 != null)
{
string c, d, e, f, g;
c = xnode、NextSibling、InnerText;
d = xnode1、NextSibling、InnerText;
Console、WriteLine(”— - — - — — — — — — — — - - - - — - — — - - — — - — -");
Console、Write(”姓名:{0}
課程名稱:{1}", c, d);
XmlNode xnode2 = xmldocument、SelectSingleNode(”//grade[s_no、="” + a、ToString()
+ "’]");
XmlNode xnode3 = xmldocument、SelectSingleNode("//grade[s_no、="" + a、ToString() + "’]/c_grade[c_no、=’” + b、ToString()
+ "’]”);
if (xnode2 != null & xnode3 != null)
{
e = xnode3、ChildNodes[0]、InnerText;
Console、Write(”
期末成績:{0}", e);
if (xnode3、ChildNodes[1] != null)
{
f = xnode3、ChildNodes[1]、InnerText;
Console、Write(”
補考成績:{0}", f);
}
else
{
Console、WriteLine(”\n");
Console、Write(”該學生這門課程沒有補考、、、、、、、、、、、”);
}
if (xnode3、ChildNodes[2] != null)
{
g = xnode3、ChildNodes[2]、InnerText;
Console、WriteLine("
重修成績: {0}”, g);
Console、WriteLine("- — — - — - — - — - — - - - - — — - - - — — — — - - —");
Console、WriteLine(”————-——-—-———-—-—-————-————");
}
else
{
Console、WriteLine(”\n”);
Console、WriteLine(”該學生這門課程沒有重修、、、、、、、、、、、");
Console、WriteLine("- — - - - - — — — - - — — — — — - - - — - — - — — — -”);
Console、WriteLine(”————-——---——————--———-————-");
}
}
else
{
Console、WriteLine("\n”);
Console、WriteLine("輸入得學號或課程號有誤,請重新輸入、、、、、、、、、、”);
Console、WriteLine("- — - — — — — - - - — - — - - — — — — - - - - — - — -");
}
}
else
{
Console、WriteLine(”\n”);
Console、WriteLine("輸入得學號或課程號有誤,請重新輸入、、、、、、、、、、");
Console、WriteLine("- — — - - - - — — - - — — — - - — - — — — — - - - - -”);
}
}
} } 運行結果如下:
6、4 注意事項 主要就是 DTD 得路徑問題應該采取相對路徑而不應該用絕對路徑,同時DTD 應該放在H:\XML\text、5\5、1\5、1\bin\Debug 中才能實現文檔得讀寫。
推薦訪問: 實驗 報告 xml同志們:今天這個大會,是市委全面落實黨要管黨、從嚴治黨要求的一項重大舉措,也是對縣市區委書記履行基層黨建工作第一責任人情況的一次集中檢閱,同時是對全市基層黨建工作的一次再部署、再落實的會議。前面,**
***年,我認真履行領班子、帶隊伍、抓黨員、保穩定的基層黨建工作思路,以學習貫徹習近平新時代中國特色社會主義思想和黨的十九大歷次全會精神為主線,以市局基層黨建工作考核細則為落腳點,落實全面從嚴治黨主體
根據會議安排,現將2022年履行抓基層黨建工作職責情況報告如下:一、履職工作特色和亮點1 突出政治建設,著力在思想認識上提高。牢固樹立抓黨建就是抓政績的理念,以“黨建工作抓引領、社區治理求突破,為民服
2022年以來,在**黨委的正確領導下,堅持以習近平新時代中國特色社會主義思想為指導,深入學習宣傳貫徹黨的二十大精神,以黨建工作為統領,扎實開展夯實“三個基本”活動,以“四化四力”行動為抓手,聚力創建
各位領導,同志們:根據會議安排,現就2022年度抓基層黨建工作情況匯報如下:一、主要做法及成效(一)強化政治引領。一是不斷強化理論武裝。堅持通過黨組會、中心組學習會和“三會一課”,第一時間、第一議題學
2022年度抓基層黨建工作述職報告按照黨委工作部署,現將本人2022年度抓基層黨建工作情況報告如下:一、2022年度抓基層黨建工作情況(一)旗幟鮮明講政治將旗幟鮮明講政治放在全局發展首要位置,積極開展
2022年,是我在數計系黨總支書記這個新崗位上度過的第一個完整的工作年度。回首一年來在校黨委的正確領導下,與數計系領導班子和全體師生共同走過的日子,艱辛歷歷在目,收獲溫潤心田。作為黨總支書記,我始終牢
按照考核要求,現將本人一年來,作為統戰部長履行職責、廉潔自律等方面情況報告如下:一、著眼增強政治素質,不斷深化理論學習堅持把旗幟鮮明講政治作為履職從政的第一位要求,帶領統戰系統干部堅決擁護“兩個確立”
**年,緊緊圍繞黨工委、管委會的決策部署,全體人員團結協作、凝心聚力,緊扣黨工委“**”基本工作思路,全力開拓進取,認真履職盡責,圓滿完成各項工作任務。一、個人思想政治狀況檸檬文苑www bgzjy
按照縣委關于開展抓基層黨建述職評議會議的有關要求,經請示縣委組織部同意,今天,我們在此召開2022年度基層黨組織書記抓基層黨建述職評議會議。1 首先,請**黨委書記,**同志述職。**黨委能夠主動研究