XML综合案例(课程设计)
嘿嘿,代码文件被本人误删了,全是当时的截图,可能有点难受,综合使用XML内容的各类知识,仅供参考。
1. 课程设计
课程设计要求
- 1.选取某一场景,描述该场景下的实体、实体属性以及实体之间的关系;注意选取实体最好体现出分解层次,以便于呈现XML,XML本身遵循层次数据模型;该部分文本描述要详尽,并用表格呈现出来。
- 2.采用XML对上述实体、实体属性及关系进行描述,要求体现出系统预定义实体,保证XML语法正确。
- 3.依据实例化XML文档写出组织模板文件DTD和SCHEMA,要求DTD与SCHEMA要保持映射,同时证明XML文件为有效的文档,同时组织模板要具有较高的抽象层次和较宽泛的约束能力。
- 4.提出4个查询题设,要求至少两个要结合XPATH标准函数,写出XPATH求解路径。
- 5.利用XSLT显示模板将XML文件展示为表格,与1一致。
- 6.利用JAVA或PYTHON或者JavaScript等工具对XML文件节点进行属性值读写操作。
1. 场景选取
以华中师范大学南湖图书馆为例,一个图书馆拥有一个馆长和多个图书管理员,一个图书馆有多个借阅者,借阅者可以是学生和老师,一个借阅者可以借阅多本图书,一本图书在不同时间点也可以由多个借阅者进行借阅。
1.1. 图书馆层次数据结构模型
1.2. 使用Excel展示其结构
2.3.EXCEL展示最终xslt转换的结构
2.4.涉及实体相关分析
2.4.1.实体
该模型所涉及的实体主要有图书馆、图书、借阅者、管理员、借阅情况。
** 凑合看看,本人截图搞的**
3.XML文档编写
3.1.XML-Text视图
3.2.XML-Browser视图
表 10**** 顶层结构
表 11**** 二级结构
表 12**** 三层结构
表 13**** 四层结构
表 14**** Browser视图下的xml文件
3.3.XML-Grid视图
-
Grid视图下的xml文件
-
顶层grid视图
-
二级Grid视图
-
三级Grid视图
4.DTD文档编写
4.1.结构分析
【1】由2.3涉及实体相关分析可以知道元素之间的隶属关系和各个节点内容的数据类型,这里对数据类型为枚举类型的数据进行枚举值的列出:
4.2.DTD文档编写
5.Schema文档编写
5.1.SCHEMA 文件
5.2.使用 SCHEMA进行语法约束的XML文档通过有效性检验
6.XPATH
(1)找出所有借书的学生节点:
相对路径:/Liburary/Borrower/Student
绝对路径:/child::Liburary/child::Borrower/child::Student
(2)找出Borrower中的所有子节点:/Liburary/Borrower/node()
(3)找出admin的所有子节点:/Liburary/Admin/*
(4)找出借阅者的所有子孙节点:
(6)找出第一个借书的学生的姓名:
/child::Liburary/child::Borrower/child::Student[1]/sname/text()
(7)找出第一个学生借的名字中含有“Vue”的书本名称:/Liburary/Borrower/Student[1]/BookBorrowing/BorrowingBooks/Book/bname[contains(text(),"Vue")]
(8)找出所有书的价格:
(9)找出所有老师所借阅的价格大于100和老师所借阅的价格大于30的书籍:
/Liburary/Borrower//Teacher/BookBorrowing/BorrowingBooks/Book[price>100]/bname/text()|//Student/BookBorrowing/BorrowingBooks/Book[price>50]/bname/text()
(10)寻找倒数第一的老师节点
/Liburary/Borrower/Teacher[position()=last()]
(11)寻找倒数第二的学生节点:/Liburary/Borrower/Student[position()=last()-1]
(1)寻找学号中有1,2或者名字中有佳字的学生