如何有效地模拟XML中的逻辑/布尔表达式?

mar*_*hon 3 xml boolean-logic

这里的小xml建模练习.

假设我们有一些逻辑表达式:(x&y)| (p&q)

无论出于何种原因,它都需要用XML表示.

这是一个快速的刺,但我认为这是笨拙的:

 <expr>
    <or>
        <and>
            <e>x</e>
            <e>y</e>
        </and>
        <and>
            <e>p</e>
            <e>q</e>
        </and>
    </or>
 </expr>
Run Code Online (Sandbox Code Playgroud)

另一个刺伤,对我来说没有味道:

<expr>
    <or>
        <and l="x" r="y"/>
        <and l="p" r="q"/>
    </or>
</expr>
Run Code Online (Sandbox Code Playgroud)

你会怎么做?

Ben*_*Ben 5

Armatus的回答对我来说很好.我认为左右元素是多余的.有一个逻辑表达式,如果我左右或左右评估它们并不重要.

 <expr type="or">
    <expr type="and">
        <sig>x</sig>
        <sig>y</sig>
    </expr>
    <expr type="and">
        <sig>p</sig>
        <sig>q</sig>
    </expr>
</expr>
Run Code Online (Sandbox Code Playgroud)

例如: (x & y) | (p & q)与...相同(q & p) | (y & x)

此外,它可以添加两个以上的信号.