Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    220

    xsd ricorsivo senza ridondanze nodi

    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ì?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    220
    scusate, posto meglio il primo esempio:

    codice:
    <mult>
      <var>x</var>
      <int>2</int>
    </mult>

  3. #3
    ciao,
    ho riletto la tua domanda 4 volte ma non ho capito molto bene cosa ti serve

    ti chiedo di postare :
    1 i dati che hai a disposizione
    2 il risultato che ottieni ora
    3 il risultato che vorresti ottenere

    con questi punti potrei esserti utile

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    220
    Voglio definire un XML Schema ricorsivo, quindi un elemento "expr" che si riferisce a se stesso mediante la parola chiave "ref" e che permetta di definire XML senza ripetizione del nodo <expr>, così come ho scritto nel primo esempio.

    Dunque, il mio codice XSD è



    codice:
      <xs:element name="expr">
        <xs:complexType>
          <xs:choice>
            <xs:element name="int" type="xs:integer" />
            <xs:element name="real" type="xs:decimal" />
            <xs:element name="bool" type="xs:boolean" />
            <xs:element name="var" type="xs:string" />
            <xs:element name="plus">
    	  <xs:sequence>
    	    <xs:element ref="expr" minOccurs="2" maxOccurs="2" />
    	  </xs:sequence>
            </xs:element>
    ecc ecc.

    Il nodo <expr> così definito mi obbliga a scrivere modelli xml del tipo del secondo esempio che ho postato, mentre voglio poter scrivere cose simili al primo, senza ripetizioni di <expr>

    Ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.