| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  05-11-2008, 11:25 | #1 | 
| Junior Member Iscritto dal: Oct 2008 
					Messaggi: 6
				 | 
				
				[XSD] Campi obbligatori mutuamente esclusivi
			 
		Ciao ragazzi devo definire uno xml-schema dove siano presenti due campi con obbligatorietà mutuamente esclusiva: ovvero in un doc xml deve essere presente esattamente uno dei due campi: o uno o l'altro. Qualcuno riesce a illuminarmi? grazie | 
|   |   | 
|  15-11-2008, 14:30 | #2 | 
| Member Iscritto dal: Aug 2004 
					Messaggi: 39
				 | 
		Se per "campo" intendi un elemento, allora basta usare una choice: Codice: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" ...>
...
  <xs:element name="padre">
    <xs:complexType>
      <xs:choice>
        <xs:element name="figlio-1"></xs:element>
        <xs:element name="figlio-2"></xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
...Se invece per "campo" intendi un attributo, allora si tratta di un problema che mi sono dannato a risolvere anche io, ma alla fine sembra che non ci sia soluzione a livello di XSD. Ossia che è un controllo che devi fare per forza a livello di codice applicativo (supponendo che stai sviluppando un'applicazione). Alcuni dicono che questa è una scelta voluta, perché se devi definire attributi diversi per un certo elemento allora si tratta di due entità concettualmente diverse cosicché dovresti definirli in XSD come elementi diversi. Eppure (penso io) si consente in XSD che un certo elemento abbia elementi figli mutuamente escusivi. Quest'impossibilità tra l'altro smentisce l'affermazione (che ho letto diverse volte) che si può descrivere XSD utilizzando XSD stesso.   (Perché in XSD, ad esempio, gli attributi name e ref di un elemento sono mutuamente esclusivi.) Se qualcuno sa come risolvere il problema, ci illumini!   
				__________________ Quello che davvero mi interessa è se Dio, quando creò il mondo, aveva scelta. | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 09:13.









 
		 
		 
		 
		






 
  
 



 
                        
                        










