因此,我必须在xml文档中定义一个“数据库”,该文档必须具有学校,年级,房间,课程和学生,然后我必须用C#编写一些类,该类必须获取并将数据保存到xml文件中在反序列化和序列化的帮助下。但是问题是我不知道如何构造XML文件,现在我的文件看起来像这样:
<?xml version="1.0" encoding="utf-8" ?>
<School>
<Grades>
</Grades>
<Rooms>
</Rooms>
<Courses>
</Courses>
<Students>
</Students>
</School>
但是我一直想知道这是否是更好的方法:
<?xml version="1.0" encoding="utf-8" ?>
<School>
<Grades>
<Rooms>
<Courses>
<Students>
</Students>
</Courses>
</Rooms>
</Grades>
</School>
或者也许我有第三种方法可以忽略,任何帮助将不胜感激
此问题基于观点。所以,这只是我的意见:
选择第一个布局,并使用属性@ID
进行链接。例如:
<?xml version="1.0" encoding="utf-8" ?>
<School>
<Grades>
<Grade id="gr1">...</Grade>
</Grades>
<Rooms>
<Room id="rm1">...</Room>
</Rooms>
<Courses>
<Course id="crs1">
<RoomNr>rm1</RoomNr> <!-- Referring to the Rooms/Room/@id rm1 -->
...
</Course>
</Courses>
<Students>
<Student id="1">
<Course>crs1</Course> <!-- Referring to the Courses/Course/@id crs1 -->
<Course>...</Course>
</Student>
</Students>
</School>
此布局易于查询,并且更改链接不会显着更改布局。
例如(因为您用xslt标记了问题:
可以使用XPath-1.0表达式检索所有<Student>
/School/Students/Student
检索访问了某门课程的所有<Student>
(例如crs1)
/School/Students/Student[Course='crs1']
...依此类推。