架构 XSD:元素在节点内唯一,不重复值

发布于 2024-12-07 10:57:36 字数 516 浏览 0 评论 0原文

我想使用架构验证 XML 文件,以便同一节点中的值不能重复。签名的顺序很重要。我的无效 XML 是:

   <person>
      <name>Peter Petrelli</name>
      <subject1>Mathematics</subject1>
      <note1>8.5</note1>
      <subject2>Natural Science</subject2>
      <note2>4.5</note2>
      <subject3>Mathematics</subject3>
      <note3>7</note3>
   </person>
</school>

数学不可能不止一次。

我如何使用 XSD 模式验证这一点?

非常感谢

I would like to validate a XML file with a schema for that values in the same node can't be repeated. It's important the order of the signatures. My invalid XML is:

   <person>
      <name>Peter Petrelli</name>
      <subject1>Mathematics</subject1>
      <note1>8.5</note1>
      <subject2>Natural Science</subject2>
      <note2>4.5</note2>
      <subject3>Mathematics</subject3>
      <note3>7</note3>
   </person>
</school>

It's not possible Mathematics is more than once.

How can i validate this with a XSD schema?

Thank you very much

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

错々过的事 2024-12-14 10:57:36

有了更合理的设计就不会有问题了:

<person>
<name>Peter Petrelli</name>
<subject>
    <name>Mathematics</name>
    <note>2</note>
</subject>
<subject>
    <name>Natural Sciences</name>
    <note>2.5</note>
</subject>
<subject>
    <name>Mathematics</name>
    <note>4</note>
</subject>

然后<唯一>内的定义元素可以是:

    <unique name="su">
        <selector xpath="subject" />
        <field xpath="name"/>
    </unique>

With a more sensible design there would be no problem:

<person>
<name>Peter Petrelli</name>
<subject>
    <name>Mathematics</name>
    <note>2</note>
</subject>
<subject>
    <name>Natural Sciences</name>
    <note>2.5</note>
</subject>
<subject>
    <name>Mathematics</name>
    <note>4</note>
</subject>

then the <unique> definition inside the <person> element could be:

    <unique name="su">
        <selector xpath="subject" />
        <field xpath="name"/>
    </unique>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文