有xml求DTD
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 学生管理 [
<!ELEMENT 学生管理 (学生*)>
<!ELEMENT 学生 (学生基本信息*, 专业信息*, 住宿信息*, 学生成绩*)>
<!ELEMENT 学生基本信息 (学号*, 姓名*, 性别*, 出生年月*,通讯地址*)>
<!ELEMENT 学号 (#PCDATA)>
<!ELEMENT 姓名 (#PCDATA)>
<!ELEMENT 性别 (#PCDATA)>
<!ELEMENT 出生年月 (#PCDATA)>
<!ELEMENT 通讯地址 (#PCDATA)>
<!ELEMENT 专业信息 (专业*, 年级*, 学号*)>
<!ELEMENT 专业 (#PCDATA)>
<!ELEMENT 年级 (#PCDATA)>
<!ELEMENT 学号 (#PCDATA)>
<!ELEMENT 住宿信息 (楼号*, 楼层*,房间号*)>
<!ELEMENT 楼号 (#PCDATA)>
<!ELEMENT 楼层 (#PCDATA)>
<!ELEMENT 房间号 (#PCDATA)>
<!ELEMENT 学生成绩 (C*, C#*, VB*, XML*,JAVA*)>
<!ELEMENT C (#PCDATA)>
<!ELEMENT C# (#PCDATA)>
<!ELEMENT VB (#PCDATA)>
<!ELEMENT XML (#PCDATA)>
<!ELEMENT JAVA (#PCDATA)>
]>
<学生管理>
<学生>
<学生基本信息>
<学号></学号>
<姓名></姓名>
<性别></性别>
<出生年月></出生年月>
<通讯地址></通讯地址>
</学生基本信息>
<专业信息>
<专业></专业>
<年级></年级>
<学号></学号>
</专业信息>
<住宿信息>
<楼号></楼号>
<楼层></楼层>
<房间号></房间号>
</住宿信息>
<学生成绩>
<C></C>
<C#></C#>
<VB></VB>
<XML></XML>
<JAVA></JAVA>
</学生成绩>
</学生>
</学生管理>
首先,你是有DTD的,所以不用求DTD了。
你的XML文件本身是不具有良性结构的。XML规范中要求所有元素都只能用字母、数字、下划线、中线和点号组成,所以C#是不能作为元素的。
此外,还有一个不算错误的小问题,为什么你在内部DTD里定义字元素都要加上*,说明你对DTD的使用完全没有理解,有必须的加上,如像学号本来只能有一个的,就不要加了,画蛇添足,多此一举。
修改后程序如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 学生管理 [
<!ELEMENT 学生管理 (学生*)>
<!ELEMENT 学生 (学生基本信息, 专业信息, 住宿信息, 学生成绩)>
<!ELEMENT 学生基本信息 (学号, 姓名, 性别, 出生年月, 通讯地址*)>
<!ELEMENT 学号 (#PCDATA)>
<!ELEMENT 姓名 (#PCDATA)>
<!ELEMENT 性别 (#PCDATA)>
<!ELEMENT 出生年月 (#PCDATA)>
<!ELEMENT 通讯地址 (#PCDATA)>
<!ELEMENT 专业信息 (专业, 年级, 学号)>
<!ELEMENT 专业 (#PCDATA)>
<!ELEMENT 年级 (#PCDATA)>
<!ELEMENT 学号 (#PCDATA)>
<!ELEMENT 住宿信息 (楼号, 楼层, 房间号)>
<!ELEMENT 楼号 (#PCDATA)>
<!ELEMENT 楼层 (#PCDATA)>
<!ELEMENT 房间号 (#PCDATA)>
<!ELEMENT 学生成绩 (C, C_, VB, XML, JAVA)>
<!ELEMENT C (#PCDATA)>
<!ELEMENT C_ (#PCDATA)>
<!ELEMENT VB (#PCDATA)>
<!ELEMENT XML (#PCDATA)>
<!ELEMENT JAVA (#PCDATA)>
]>
<学生管理>
<学生>
<学生基本信息>
<学号></学号>
<姓名></姓名>
<性别></性别>
<出生年月></出生年月>
<通讯地址></通讯地址>
</学生基本信息>
<专业信息>
<专业></专业>
<年级></年级>
<学号></学号>
</专业信息>
<住宿信息>
<楼号></楼号>
<楼层></楼层>
<房间号></房间号>
</住宿信息>
<学生成绩>
<C></C>
<C_></C_>
<VB></VB>
<XML></XML>
<JAVA></JAVA>
</学生成绩>
</学生>
</学生管理>