“ XML文件中的“数据库”结构

问题描述 投票:0回答:1

因此,我必须在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>

或者也许我有第三种方法可以忽略,任何帮助将不胜感激

xml xslt xsd xml-serialization xml-deserialization
1个回答
0
投票

此问题基于观点。所以,这只是我的意见:

选择第一个布局,并使用属性@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>

此布局易于查询,并且更改链接不会显着更改布局。

例如(因为您用标记了问题:

  • 可以使用XPath-1.0表达式检索所有<Student>

    /School/Students/Student
    
  • 检索访问了某门课程的所有<Student>(例如crs1)

    /School/Students/Student[Course='crs1']
    

...依此类推。

© www.soinside.com 2019 - 2024. All rights reserved.