gpt4 book ai didi

xml - RelaxNG compact schema 用于任一/两个元素的任意顺序

转载 作者:数据小太阳 更新时间:2023-10-29 02:05:06 25 4
gpt4 key购买 nike

我正在为一个 XML 文件编写 RelaxNG Compact 模式,其中 <wrap> 的内容元素必须恰好是以下之一:

<wrap><a/></wrap>
<wrap><b/></wrap>
<wrap><a/><b/></wrap>
<wrap><b/><a/></wrap>

英语,要么 <a/><b/>允许每人出现一次,或以任意顺序同时出现,但其中一个必须出现

WrapElement 是否有更好(更紧凑)的定义?比下面的?

grammar {
start =
element wrap { WrapElement }

WrapElement =
(
element a {empty},
element b {empty}?
)|(
element a {empty},
element b {empty}?
)
}

以下是关闭的。它当然更简洁,它匹配所有允许的变体,并且不允许元素出现不止一次。但是,它也错误地允许一个空的 <wrap/>。元素:

grammar {
start =
element wrap { WrapElement }

WrapElement =
element a {empty}?
& element b {empty}?
}

最佳答案

以下对我有用:

grammar {
start =
element wrap { (a|b)|(a&b) }

a = element a {empty}
b = element b {empty}
}

关于xml - RelaxNG compact schema 用于任一/两个元素的任意顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18195916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com