【问题标题】:Specify the sequence in a XML file在 XML 文件中指定序列
【发布时间】:2012-09-25 14:30:41
【问题描述】:

我有以下 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 中写一些东西来告诉上面事件的顺序,当被代码解析时,代码理解什么是序列并相应地在视图上呈现它。

让我知道它是否令人困惑,或者让我知道你在这里的方法,我尝试了其中的几个,但我认为它们不正确。如果有人能想到什么,请告诉我

【问题讨论】:

    标签: xml xml-parsing xsd


    【解决方案1】:

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

    因此,除非您正在为您的 XML 使用一个非常古怪的接口,否则您不需要向 XML 添加排序信息。您只需要确保您的模型具有所需的排序信息,并且您用于从 XML 填充模型的代码执行正确的操作。祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-12
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多