微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有一个元素的 XSD 在另一个重复元素之间出现一次以任何顺序

如何解决具有一个元素的 XSD 在另一个重复元素之间出现一次以任何顺序

我的 XML-Schema 中有这个问题,我希望一个元素重复,而另一个元素必须在重复元素之间或以任何顺序出现一次。

在 XML 中,我希望这发生:

<elements>
   <second>Desc</second>
   <second>Desc1</second>
   <first>Desc</main>
   <second>Description</second>
</elements>

意味着没有 second 出现 0 到 unboundedfirst 恰好一次的顺序。

我的 XML 架构:

<xs:choice maxOccurs="unbounded" minOccurs="0">
   <xs:element type="xs:string" name="second" maxOccurs="unbounded" minOccurs="0"/>
   <xs:element type="xs:string" name="first"/>
</xs:choice>

然而,此架构允许 firstsecond 出现 unbounded 次。我试过将 minOcurrsmaxOcurrsfirst^(?:[^:/]*[:/])?\K.+ 设置为 1 但这并没有改变任何东西。有什么办法可以达到我想要的结果吗?

解决方法

您可以使用内容模型

sequence 
   A min=0 max=unbounded
   B
   A min=0 max=unbounded

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。