目錄
〇、XML課程設計要求... 3
1.課程設計說明:... 3
2.課程設計要求... 3
一、場景選取... 4
1.場景描述... 4
2.層次資料模型... 4
3.用表格表示... 5
二、XML檔案撰寫... 6
1. XML檔案代碼... 6
2. 格式良好驗證... 8
3. grid視圖... 8
三、DTD和SCHEMA.. 10
1.DTD檔案... 10
2.SCHEMA檔案... 11
四、XPATH.. 13
1.查看所有老師的姓名... 13
2.查看學時大于等于32課時的課程... 13
3.查看包含XML欄位的課程號... 14
4.統計學院老師人數... 14
5.統計姓陳的學生人數... 14
五、XSLT顯示模板... 15
1.XSLT檔案:... 15
2.轉換后的XML檔案... 17
3.在瀏覽器的顯示結果:... 20
六、JAVA工具... 21
1.加載包和其他... 21
2.讀取操作... 21
3.寫入操作... 22
4.main函式及運行結果... 23
〇、XML課程設計要求
1.課程設計說明:
1).選取某一場景,描述該場景下的物體、物體屬性以及物體之間的關系;注意選取物體最好體現出分解層次,以便于呈現XML,XML本身遵循層次資料模型;該部分文本描述要詳盡,并用表格呈現出來,(10分)
2).采用XML對上述物體、物體屬性及關系進行描述,要求體現出系統預定義物體,保證XML語法正確,(10分)
3).依據實體化XML檔案寫出組織模板檔案DTD和SCHEMA,要求DTD與SCHEMA要保持映射,同時證明XML檔案為有效的檔案,同時組織模板要具有較高的抽象層次和較寬泛的約束能力,(40分)
4).提出4個查詢題設,要求至少兩個要結合XPATH標準函式,寫出XPATH求解路徑,(20分)
5).利用XSLT顯示模板將XML檔案展示為表格,與1一致,(10分)
6).利用JAVA或PYTHON等工具對XML檔案節點進行屬性值讀寫操作,(10分)
2.課程設計要求
1).任務1-5為必做,任務6為選做;如果任務6不做,則相應分值分配給任務3和4各5分,如果做則任務6按照現有10分來評分,請在提交課程設計開始就說明是否完成任務6,
2).每個任務評分均分為四個等級,優良中差,各任務合計之后為最終課程設計分數,
3.課程設計格式和任務之間的銜接也作為課程設計考察的一部分,
一、場景選取
1.場景描述
以學院為例,一個學院擁有多個專業,一個專業擁有多個班級和多個教師,一個班級擁有多個學生和一個(唯一)班長,一個老師可以教授多個課程,
例如,資訊管理學院有三個專業,分別是資訊資源管理、電子商務和資訊管理與資訊系統,(假設)每一個專業都有兩個班級和兩個教師,每一個班級都有一名班長和一名學生,每一名教師教授兩門課程,
2.層次資料模型
3.用表格表示
二、XML檔案撰寫
1. XML檔案代碼
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2014 (http://www.altova.com) by () -->
<!-- 以下資料都是虛擬出來的資料,并不真實-->
<School ID="IOS001" name="資訊管理學院">
<Major ID="M001" name="資訊資源管理">
<Teacher TID="T001">
<pname>陳思考</pname>
<sex>男</sex>
<professionalpost>教授</professionalpost>
<Course CNO="C001">
<cname>文獻資訊資源檢索</cname>
<credit>2</credit>
<period>32</period>
</Course>
<Course CNO="C002">
<cname>管理資訊系統</cname>
<credit>4</credit>
<period>48</period>
</Course>
</Teacher>
<Teacher TID="T002">
<pname>張簡單</pname>
<sex>女</sex>
<professionalpost>副教授</professionalpost>
<Course CNO="C003">
<cname>高等數學B</cname>
<credit>2</credit>
<period>32</period>
</Course>
<Course CNO="C004">
<cname>管理統計學</cname>
<credit>2</credit>
<period>32</period>
</Course>
</Teacher>
<Class CID="1901" name="信資1班">
<Classpresident SID="S001">
<pname>戴二剛</pname>
<sex>男</sex>
</Classpresident>
<Student SID="S002">
<pname>江福</pname>
<sex>女</sex>
</Student>
</Class>
<Class CID="1902" name="信資2班">
<Classpresident SID="S003">
<pname>煉訓</pname>
<sex>女</sex>
</Classpresident>
<Student SID="S004">
<pname>嚴幾</pname>
<sex>男</sex>
</Student>
</Class>
</Major>
<Major ID="M002" name="電子商務">
<Teacher TID="T003">
<pname>王得</pname>
<sex>男</sex>
<professionalpost>教授</professionalpost>
<Course CNO="C005">
<cname>資料挖掘</cname>
<credit>3</credit>
<period>36</period>
</Course>
<Course CNO="C006">
<cname>經濟學基礎</cname>
<credit>2</credit>
<period>32</period>
</Course>
</Teacher>
<Teacher TID="T004">
<pname>王默默</pname>
<sex>男</sex>
<professionalpost>副教授</professionalpost>
<Course CNO="C007">
<cname>管理運籌學</cname>
<credit>2</credit>
<period>32</period>
</Course>
<Course CNO="C008">
<cname>管理統計學</cname>
<credit>2</credit>
<period>32</period>
</Course>
</Teacher>
<Class CID="1903" name="電商1班">
<Classpresident SID="S005">
<pname>陳凡</pname>
<sex>男</sex>
</Classpresident>
<Student SID="S006">
<pname>石發</pname>
<sex>男</sex>
</Student>
</Class>
<Class CID="1904" name="電商2班">
<Classpresident SID="S007">
<pname>吳宇</pname>
<sex>女</sex>
</Classpresident>
<Student SID="S008">
<pname>葛一薩</pname>
<sex>男</sex>
</Student>
</Class>
</Major>
<Major ID="M003" name="資訊管理與資訊系統">
<Teacher TID="T005">
<pname>劉玉</pname>
<sex>女</sex>
<professionalpost>教授</professionalpost>
<Course CNO="C009">
<cname>Java:面向物件程式設計</cname>
<credit>4</credit>
<period>48</period>
</Course>
<Course CNO="C010">
<cname>資料結構(C/C++)</cname>
<credit>3</credit>
<period>36</period>
</Course>
</Teacher>
<Teacher TID="T006">
<pname>史丹</pname>
<sex>女</sex>
<professionalpost>副教授</professionalpost>
<Course CNO="C011">
<cname>XML</cname>
<credit>2</credit>
<period>32</period>
</Course>
<Course CNO="C012">
<cname>UML</cname>
<credit>2</credit>
<period>32</period>
</Course>
</Teacher>
<Class CID="1905" name="信管1班">
<Classpresident SID="S009">
<pname>得得</pname>
<sex>男</sex>
</Classpresident>
<Student SID="S010">
<pname>陳生</pname>
<sex>女</sex>
</Student>
</Class>
<Class CID="1906" name="信管2班">
<Classpresident SID="S011">
<pname>儲夢</pname>
<sex>女</sex>
</Classpresident>
<Student SID="S012">
<pname>撒方法</pname>
<sex>男</sex>
</Student>
</Class>
</Major>
</School>
2. 格式良好驗證
3. grid視圖
部分資料的效果展示,
三、DTD和SCHEMA
1.DTD檔案
1)DTD代碼,
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT School (Major)+>
<!ELEMENT Major (Teacher+,Class+)>
<!ELEMENT Teacher (pname,sex,professionalpost,Course+)>
<!--引數內部決議物體-->
<!ENTITY % pd "(#PCDATA)">
<!ELEMENT pname %pd;>
<!ELEMENT sex %pd;>
<!ELEMENT professionalpost %pd;>
<!ELEMENT Course (cname,credit,period)>
<!ELEMENT cname %pd;>
<!ELEMENT credit %pd;>
<!ELEMENT period %pd;>
<!ELEMENT Class (Classpresident,Student*)>
<!ELEMENT Classpresident (pname,sex)>
<!ELEMENT Student (pname,sex)>
<!ATTLIST School ID ID #REQUIRED
name CDATA #REQUIRED>
<!ATTLIST Major ID ID #REQUIRED
name CDATA #REQUIRED>
<!ATTLIST Teacher TID ID #REQUIRED>
<!ATTLIST Class CID CDATA #REQUIRED
name CDATA #REQUIRED>
<!ATTLIST Course CNO ID #REQUIRED>
<!ATTLIST Classpresident SID ID #REQUIRED>
<!ATTLIST Student SID ID #REQUIRED>
2)使用DTD進行語法約束的XML檔案,通過了有效性檢驗,
2.SCHEMA檔案
1)SCHEMA代碼,
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2014 (http://www.altova.com) by () -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="School">
<xs:annotation>
<xs:documentation>該節點為根節點,表示學院</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<!--語法3,參考元素-->
<xs:element ref="Major" minOccurs="1" maxOccurs="unbounded"></xs:element>
</xs:sequence>
<xs:attributeGroup ref="idname"></xs:attributeGroup>
</xs:complexType>
</xs:element>
<xs:element name="Major">
<xs:complexType>
<xs:sequence>
<xs:element ref="Teacher" minOccurs="1" maxOccurs="unbounded"></xs:element>
<xs:element ref="Class" minOccurs="1" maxOccurs="unbounded"></xs:element>
</xs:sequence>
<xs:attributeGroup ref="idname"></xs:attributeGroup>
</xs:complexType>
</xs:element>
<xs:element name="Teacher">
<xs:complexType>
<xs:sequence>
<xs:element ref="pname" maxOccurs="1"></xs:element>
<xs:element ref="sex" maxOccurs="1"></xs:element>
<xs:element ref="professionalpost" maxOccurs="1"></xs:element>
<xs:element ref="Course" minOccurs="1" maxOccurs="unbounded"></xs:element>
</xs:sequence>
<xs:attribute name="TID" type="xs:ID"></xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Course">
<xs:complexType>
<xs:sequence>
<xs:element ref="cname" maxOccurs="1"></xs:element>
<xs:element ref="credit" maxOccurs="1"></xs:element>
<xs:element ref="period" maxOccurs="1"></xs:element>
</xs:sequence>
<xs:attribute name="CNO" type="xs:ID"></xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Class">
<xs:complexType>
<xs:sequence>
<xs:element ref="Classpresident" maxOccurs="1"></xs:element>
<xs:element ref="Student" maxOccurs="unbounded"></xs:element>
</xs:sequence>
<xs:attribute name="CID" type="xs:string"></xs:attribute>
<xs:attribute name="name" type="xsname"></xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Student">
<xs:complexType>
<xs:sequence>
<xs:element ref="pname" maxOccurs="1"></xs:element>
<xs:element ref="sex" maxOccurs="1"></xs:element>
</xs:sequence>
<xs:attribute name="SID" type="xs:ID"></xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Classpresident">
<xs:complexType>
<xs:sequence>
<xs:element ref="pname" maxOccurs="1"></xs:element>
<xs:element ref="sex" maxOccurs="1"></xs:element>
</xs:sequence>
<xs:attribute name="SID" type="xs:ID"></xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="pname" type="atrpname"></xs:element>
<xs:element name="sex" type="atrsex"></xs:element>
<xs:element name="professionalpost" type="atrpp"></xs:element>
<xs:element name="cname" type="atrcname"></xs:element>
<xs:element name="credit" type="atrcredit"></xs:element>
<xs:element name="period" type="atrperiod"></xs:element>
<!--用戶自定義全域簡單資料型別-->
<xs:simpleType name="xsname">
<xs:restriction base="xs:string">
<xs:minLength value="2"></xs:minLength>
<xs:maxLength value="10"></xs:maxLength>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="atrpname">
<xs:restriction base="xs:string">
<xs:minLength value="2"></xs:minLength>
<xs:maxLength value="20"></xs:maxLength>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="atrsex">
<xs:restriction base="xs:string">
<xs:enumeration value="男"></xs:enumeration>
<xs:enumeration value="女"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="atrpp">
<xs:restriction base="xs:string">
<xs:enumeration value="教授"></xs:enumeration>
<xs:enumeration value="副教授"></xs:enumeration>
<xs:enumeration value="講師"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="atrperiod">
<xs:restriction base="xs:int">
<xs:minExclusive value="24"></xs:minExclusive>
<xs:maxExclusive value="72"></xs:maxExclusive>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="atrcname">
<xs:restriction base="xs:string">
<xs:minLength value="3"></xs:minLength>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="atrcredit">
<xs:restriction base="xs:short">
<xs:minExclusive value="1"></xs:minExclusive>
<xs:maxExclusive value="6"></xs:maxExclusive>
</xs:restriction>
</xs:simpleType>
<!--定義屬性組,范圍全域-->
<xs:attributeGroup name="idname">
<xs:attribute name="ID" type="xs:ID"/>
<xs:attribute name="name" type="xsname"/>
</xs:attributeGroup>
</xs:schema>
2)使用SCHEMA進行語法約束的XML檔案,通過了有效性檢驗,
四、XPATH
1.查看所有老師的姓名
1)語法:
絕對路徑
相對路徑
2)結果:
2.查看學時大于等于32課時的課程
1)語法:
絕對路徑
相對路徑
2)結果:
3.查看包含XML欄位的課程號
1)語法:
2)結果:
4.統計學院老師人數
1)語法:
2)結果:
5.統計姓陳的學生人數
1)語法:
2)結果:
五、XSLT顯示模板
2.轉換后的XML檔案
3.在瀏覽器的顯示結果:
六、JAVA工具
1.加載包和其他
2.讀取操作
3.寫入操作
4.main函式及運行結果
1)Main函式,
2)運行結果,
3)新建的xml檔案,

想要檔案的可以留言喲~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/386572.html
標籤:java
上一篇:Java面對物件-介面【介面的使用、介面和抽象類區別、介面的默認方法、匿名內部類和介面抽象類】
下一篇:Java期末(一)
