1

次の 2 つのルールがあるとします。

JFalse = element JFalse {
   attribute label { xs:string }?,
   attribute jump { xs:string }?,
   attribute offset { xs:integer }?
}

JGt = element JGt {
   attribute label { xs:string }?,
   attribute jump { xs:string }?,
   attribute offset { xs:integer }?
}

(実際はもっと多い)

私がやりたいことは明らかに次のようなものです:

JFalseOrJGt = element (JFalse | JGt) {
   attribute label { xs:string }?,
   attribute jump { xs:string }?,
   attribute offset { xs:integer }?
}

(ただし、上記は無効です)。より「圧縮された」文法規則になる他の方法でそれを行うことはできますか?

4

2 に答える 2

3

これは 1 つのオプションです。

JFalse = element JFalse { jFalseGt }

JGt = element JGt { jFalseGt }

jFalseGt = 
   attribute label { xs:string }?,
   attribute jump { xs:string }?,
   attribute offset { xs:integer }?
于 2012-11-08T12:06:19.367 に答える