Ciao ragazzi,
sto cercando di scrivere uno schema XSD che mi permetta di rappresentare le espressioni aritmetiche.

Mi spiego:

se la mia espressione si definisce ricorsivamente come:

expr =
int (type=int)
real (type=real)
bool (type=bool)
var (type=string)
plus (type=expr,expr)
xor (type=expr,expr)
not (type=expr)

ecc ecc

voglio poter validare file XML che mi permettano di avere all'interno dei nodi "operatore" solamente altri operatori (o i valori base) e non invece nodi <expr>.

Spiego meglio:

per un'espressione "x * 2" voglio una cosa così

codice:
<mult> 							 <var>x</var> 							 <int>2</int> 						
</mult>
e non così

codice:
<expr>
  <mult> 							 
    <expr>
      <var>x</var>
    </expr>
    <expr>
      <int>2</int>
    </expr>
  </mult>
</expr>
Cioè voglio evitare di dover ripetere ogni volta il nodo <expr>, e se possibile (come il primo esempio) non doverlo scrivere nemmeno all'inizio come nodo principale.

Sapete se si può fare una cosa così?