在XML文件中指定序列

时间:2012-09-25 14:30:42

标签: xml xml-parsing xsd

我有以下xml文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<game>
  <a>
    <b>
      <test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="picture">
        <pic>sample.png</pic>
      </test>
      <c>
        <test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="content">
          <text> Something </text>
          <photo> p1.png </photo>
          <position> middle </position>
        </test>
        <test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="content">
          <text> Something else </text>
          <photo> p2.png </photo>
          <position> corner </position>
        </test>
        <test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="content">
          <text> some text here </text>
          <photo> p3.png </photo>
          <position> corner </position>
        </test>
      </c>
    </b>
  </a>
</game>

此xml正在遵循MVC架构的代码中进行解析。代码由模型解析并显示在视图上。视图应该知道视图上元素的顺序行为。例如,在上面的xml中,当它被解析并遇到标记中的第一个标记时,视图上应该有一个图片samle.png。当下面看到标签内的三个标签时,视图应该首先显示照片p1,过了一会儿,它应该擦除照片p1,然后在视图上显示照片p2和p3。

我们不必在这里打扰编码部分。任务是通过xml告诉代码'这是序列',这意味着我需要在xml中写一些东西来告诉上面事件的序列,当代码解析时,代码理解了什么是序列并相应地在视图上呈现它。

让我知道如果它令人困惑,或让我知道你的方法,我试了几个,但我不认为他们是正确的。让我知道是否有人能想到什么

1 个答案:

答案 0 :(得分:1)

XML应用程序中的通常惯例是XML文档中的元素序列可能传达信息,因此所有设计良好的通用XML API都可以通过API显示父级中的子级序列。例如,在SAX接口中,元素序列由SAX事件序列传达。在DOM接口中,序列信息记录在节点上的属性中,允许您查找子序列中的下一个节点等。

因此,除非您使用XML的单一偏心接口,否则无需向XML添加排序信息。您只需要确保您的模型具有所需的排序信息,并且您从XML中填充模型的代码是正确的。祝你好运。