XML作业5

练习05 编写XML文档

 

请用XML语言编写描述下面的学生成绩单的XML文档, 并请编写该XML文档的文档类型定义DTD。


<?xml version="1.0" encoding="gb2312"?>

<students>

<student id="05001">

<name>张三</name>

<dept>计算机</dept>

<course id="001">

<title>编译方法</title>

<score>79</score>

</course>

<course id="002">

<title>C程序设计</title>

<score>85</score>

</course>

<course id="003">

<title>数据结构</title>

<score>93</score>

</course>

</student>

<student id="05002">

<name>李四</name>

<dept>数学</dept>

<course id="004">

<title>计算复杂性</title>

<score>72</score>

</course>

<course id="005">

<title>偏微分方程</title>

<score>86</score>

</course>

<course id="006">

<title>计算方法</title>

<score>95</score>

</course>

</student>

<student id="05003">

<name>王五</name>

<dept>化学</dept>

<course id="007">

<title>分子轨道理论</title>

<score>79</score>

</course>

<course id="008">

<title>有机化学</title>

<score>80</score>

</course>

<course id="009">

<title>分子生物学</title>

<score>88</score>

</course>

<course id="010">

<title>无机化学</title>

<score>98</score>

</course>

</student>

</students>

 


<?xml version = "1.0" encoding="GB2312"

standalone = "no"?>

  <!DOCTYPE students[

  <!ELEMENT students(student)*>

  <!ELEMENT student(name,dept,course*)>

  <!ELEMENT course(title*,score*)>

  <!ELEMENT student (#PCDATA)>

  <!ELEMENT name (#PCDATA)>

  <!ELEMENT dept (#PCDATA)>

  <!ELEMENT course(#PCDATA)>

  <!ELEMENT title (#PCDATA)>

  <!ELEMENT score (#PCDATA)>]>

 

某学校拟使用XML文件制定一个学生(含已毕业学生)信息文档,该文档描述其学校内学生的管理信息。 1、 选用合适的编辑器,编写一个XML文件,应至少包括下述信息内容: 学生目录下应该包括: (1) 所有学生的共有信息:班级的名字、专业、类别等 (2) 学生 学生1 学生基本信息(学生姓名、性别、学号、年龄) 入学信息(入学时间、辅导员名) 班级内学生生源信息( 生源1:(生源地名称、联系方式等信息) 生源2: 生源n: ) 毕业信息(毕业时间、毕业数量、辅导员名) 学生2 学生3 。。。。。 学生N (3)辅导员 辅导员1(辅导员姓名、联系方式、职位、管理的班级名) 辅导员2 2、针对该XML文件,画出其相应的树状结构图。 3、针对所编写的XML文件,编写其相应的DTD文件,并使用解析器验证其有效性,对验证结果抓图。 4、针对所编写的XML文件,编写合适的XSL文件,将学生基本信息打印成表格,并用ie浏览器进行浏览并截图。 5、使用JAVA编程语言,对XML文件进行解析: 显示该xml文件的所有节点、属性的名字; 同时显示该xml文件所有标记的文本数据; 计算学生的入学平均年龄并进行输出。 要求:1)xml文件中应该包括文本内容、标记、属性、命名空间,混合标记等的内容 2)dtd文件应该有相应的结果抓图 3)xsl文件应用到规范中的常用技巧,例如模板调用、for-each、value-of、xsl标记等。 4)解析器结果应该有抓图。 5)形成的代码交老师验证。
题目重述 1. 在XMLWriter中编写`person.xml`文件,要求包含五个人(Person)的信息,每人信息包括:性别(作为属性)、姓名、年龄、地址(含省市和邮编)、电话号码、e-mail地址。 2. 使用XMLWriter对`person.xml`进行良构性验证,若有错误需根据提示修改。 详解 要完成本题,首先需构造一个结构良好(well-formed)的XML文档。XML文档必须有唯一根元素,元素正确嵌套,属性使用引号包围,且所有标签闭合。 设计根元素为`<persons>`,每个人员信息用`<person>`表示,`gender`作为其属性。每个`<person>`包含以下子元素:`<name>`、`<age>`、`<address>`(内含`<province>`、`<city>`、`<zip>`)、`<phone>`、`<email>`。 给出答案(答案为带注释的代码块) ```xml <?xml version="1.0" encoding="UTF-8"?> <!-- 根元素persons包含五个person条目 --> <persons> <!-- 第一个人 --> <person gender="男"> <name>张三</name> <age>25</age> <address> <province>广东</province> <city>广州</city> <zip>510000</zip> </address> <phone>13812345678</phone> <email>zhangsan@email.com</email> </person> <!-- 第二个人 --> <person gender="女"> <name>李四</name> <age>30</age> <address> <province>江苏</province> <city>南京</city> <zip>210000</zip> </address> <phone>13912345678</phone> <email>lisi@email.com</email> </person> <!-- 第三个人 --> <person gender="男"> <name>王五</name> <age>22</age> <address> <province>浙江</province> <city>杭州</city> <zip>310000</zip> </address> <phone>13712345678</phone> <email>wangwu@email.com</email> </person> <!-- 第四个人 --> <person gender="女"> <name>赵六</name> <age>28</age> <address> <province>四川</province> <city>成都</city> <zip>610000</zip> </address> <phone>13612345678</phone> <email>zhaoliu@email.com</email> </person> <!-- 第五个人 --> <person gender="男"> <name>孙七</name> <age>35</age> <address> <province>北京</province> <city>北京</city> <zip>100000</zip> </address> <phone>13512345678</phone> <email>sunqi@email.com</email> </person> </persons> ``` 代码解析 - `<?xml version="1.0" encoding="UTF-8"?>`:声明XML版本和编码。 - 根元素`<persons>`包裹所有`<person>`元素,确保文档结构完整。 - 每个`<person>`以`gender`属性记录性别,体现属性用法。 - `<address>`包含三个子元素,展示层级结构。 - 所有标签均正确闭合,字符串值无需额外转义(无特殊字符如`<`或`&`)。 - 使用双引号包围属性值,符合XML规范。 知识点(列出解答该问题需要的知识点) 1. **XML基本语法规则**:标签必须闭合、区分大小写、属性值需引号包围,保证文档良构性。 2. **XML元素与属性设计**:合理分配数据为元素或属性,如性别作为属性,复杂信息作为子元素。 3. **XML文档结构**:必须有且仅有一个根元素,所有数据在其下组织,形成树形结构。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值