10 Febbraio, 2012, 15:49:05 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia: È uscito il numero 55 di Full Circle Magazine in italiano! Lo trovate a questo indirizzo.
 
   Indice   FAQ Aiuto Regolamento Ricerca Accedi Registrati  
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: [Xml]file xsd e uso di xml schema(RISOLTO)  (Letto 3061 volte)
0 Utenti e 1 Utente non registrato stanno visualizzando questa discussione.
cristian_c
Illuminato Imbonitore
*****
Non Connesso Non Connesso

Messaggi: 11.629

Media messaggi


Questo utente non usa Facebook e ne va fiero!


Mostra profilo
« inserita: 20 Aprile, 2009, 23:36:22 »

Ciao,
sto proseguendo il mio viaggio nel mondo di xml.
Questa volta al posto dei dtd come documento di descrizione dei miei file xml utilizzo i file xsd.

Però c'è un problema, non riesco a vedere se sono validi. Premetto che utilizzo xmlcopyeditor come software.

Ecco il file xml:
Codice:
<?xml version="1.0"?>
<note xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="note1.xsd">
<to>Mario</to>
<from>Piero</from>
<header>Reminder</header>
<body>Ricordati il vino per il weekend!</body>
</note>

E questo è il file xsd:
Codice:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
<xsd:element name="note">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="to" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="from" minOccurs="1" maxOccurs=" 1 "/>
<xsd:element ref="heading" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="body" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="to" type="xsd:string"/>
<xsd:element name="from" type="xsd:string"/>
<xsd:element name="heading" type="xsd:string"/>
<xsd:element name="body" type="xsd:string"/>
</xsd:schema>

Però se provo a fare clic sul pulsante Validate ottengo l'errore:
Citazione
Validation stopped at line 3, column 43: Unknown element 'note'

Come si può risolvere?  Huh?
« Ultima modifica: 20 Settembre, 2009, 21:15:54 da cristian_c » Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui | Post dell'anno!
Se vuoi usare Windows usalo. Hai bisogno della benedizione? Se ne fai una questione economica c'è la pirateria, non prendiamoci in giro. Se sei per il software libero, c'è un bug e si aiuta la comunità a risolverlo. (by taxidriver)
Abbio
Novello Novizio

Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 109

Media messaggi



Mostra profilo
« Risposta #1 inserita: 21 Aprile, 2009, 00:31:39 »

non tocco xsd da anni però penso che l'elemento padre note debba definire un tipo, e tale tipo dovrebbe essere il nome dell'elemento complesso. forse così può andare:

Codice:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
<xsd:element name="note" type="noteStruct">
<xsd:complexType name="noteStruct">
<xsd:sequence>
<xsd:element ref="to" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="from" minOccurs="1" maxOccurs=" 1 "/>
<xsd:element ref="heading" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="body" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="to" type="xsd:string"/>
<xsd:element name="from" type="xsd:string"/>
<xsd:element name="heading" type="xsd:string"/>
<xsd:element name="body" type="xsd:string"/>
</xsd:schema>
Registrato

Maledetto Ubuntu.... nella mia calcolatrice non si installa.... ma quanto è pesante... che ne dite provo Xubuntu Alternate? Ma LOL
cristian_c
Illuminato Imbonitore
*****
Non Connesso Non Connesso

Messaggi: 11629

Media messaggi


Questo utente non usa Facebook e ne va fiero!


Mostra profilo
« Risposta #2 inserita: 21 Aprile, 2009, 18:57:53 »

Ho fatto le modifiche che hai suggerito ma l'errore che ho postato si è ripetuto.

Ho anche corretto 'header' con 'heading' nel file xml, ma la situazione non è migliorata
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui | Post dell'anno!
Se vuoi usare Windows usalo. Hai bisogno della benedizione? Se ne fai una questione economica c'è la pirateria, non prendiamoci in giro. Se sei per il software libero, c'è un bug e si aiuta la comunità a risolverlo. (by taxidriver)
cristian_c
Illuminato Imbonitore
*****
Non Connesso Non Connesso

Messaggi: 11629

Media messaggi


Questo utente non usa Facebook e ne va fiero!


Mostra profilo
« Risposta #3 inserita: 10 Maggio, 2009, 12:06:32 »

Mi hanno detto di sostituire tutti gli xsd con xs. Così:
Codice:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
      <xs:element name="to" type="xs:string"/>
      <xs:element name="from" type="xs:string"/>
      <xs:element name="heading" type="xs:string"/>
      <xs:element name="body" type="xs:string"/>
    </xs:sequence>
</xs:complexType>
</xs:element>

</xs:schema>
ma ottengo lo stesso errore!  Undecided Roll Eyes Huh?
N.B. Ho semplificato l'xsd

Però non capisco un'altra cosa: come mai i file xsd che rispettano la sintassi xml quando li si valida restituiscon osempre errori?
Eppure non sono dtd  Sad

Edit: Provando con questo:
Codice:
<?xml version="1.0"?>
<xs:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element ref="to" minOccurs="1" maxOccurs="1"/>
<xs:element ref="from" minOccurs="1" maxOccurs=" 1 "/>
<xs:element ref="heading" minOccurs="1" maxOccurs="1"/>
<xs:element ref="body" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:schema>
continuo sempre ad ottenere lo stesso errore  Angry
« Ultima modifica: 10 Maggio, 2009, 12:09:52 da cristian_c » Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui | Post dell'anno!
Se vuoi usare Windows usalo. Hai bisogno della benedizione? Se ne fai una questione economica c'è la pirateria, non prendiamoci in giro. Se sei per il software libero, c'è un bug e si aiuta la comunità a risolverlo. (by taxidriver)
cristian_c
Illuminato Imbonitore
*****
Non Connesso Non Connesso

Messaggi: 11629

Media messaggi


Questo utente non usa Facebook e ne va fiero!


Mostra profilo
« Risposta #4 inserita: 13 Luglio, 2009, 13:17:17 »

Citazione
Mi hanno detto di sostituire tutti gli xsd con xs. Così:
questa cosa non funziona perché neanche l'editor di testi lo riconosce come xsd!  Wink

Ad ogni modo ho risolto l'errore precedente in questo modo:

ho sostituito nel file xml
Codice:
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
con
Codice:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

e nel file dello schema
Codice:
xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
con
Codice:
xmlns:xsd="http://www.w3.org/2001/XMLSchema"

A questo punto se premo sul pulsante Validate passo al prossimo errore:
Citazione
Validation stopped at line 7, column 58: Value '1' does not match regular expression facet '[+\-]?[0-9]+'

Come posso risolvere il problema?  Huh?
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui | Post dell'anno!
Se vuoi usare Windows usalo. Hai bisogno della benedizione? Se ne fai una questione economica c'è la pirateria, non prendiamoci in giro. Se sei per il software libero, c'è un bug e si aiuta la comunità a risolverlo. (by taxidriver)
shaitan
Entusiasta Emergente
**
Non Connesso Non Connesso

Messaggi: 1.473

Media messaggi


Mostra profilo
« Risposta #5 inserita: 13 Luglio, 2009, 13:34:29 »

se si riferisce a
<xs:element ref="from" minOccurs="1"   maxOccurs=" 1 "/>

mi sa che ci sono due spazi di troppo nel valore di maxOccurs
« Ultima modifica: 13 Luglio, 2009, 22:00:15 da shaitan » Registrato

cristian_c
Illuminato Imbonitore
*****
Non Connesso Non Connesso

Messaggi: 11629

Media messaggi


Questo utente non usa Facebook e ne va fiero!


Mostra profilo
« Risposta #6 inserita: 13 Luglio, 2009, 13:49:17 »

se si riferisce a
<xs:element ref="from" minOccurs="1"   maxOccurs=" 1 "/>

mi sa che ci sono due spazzi di troppo nel valore di maxOccurs
era proprio quello degli spazi tra le virgolette il problema!  Cheesy
Grazie!  Good Beer to beer
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui | Post dell'anno!
Se vuoi usare Windows usalo. Hai bisogno della benedizione? Se ne fai una questione economica c'è la pirateria, non prendiamoci in giro. Se sei per il software libero, c'è un bug e si aiuta la comunità a risolverlo. (by taxidriver)
Rapture
Novello Novizio

Non Connesso Non Connesso

Sesso: Maschio
Messaggi: 209

Media messaggi



Mostra profilo WWW
« Risposta #7 inserita: 13 Luglio, 2009, 16:54:14 »

cristian_c anche di questo ti interessi!!!!  Roll Eyes
Registrato

cristian_c
Illuminato Imbonitore
*****
Non Connesso Non Connesso

Messaggi: 11629

Media messaggi


Questo utente non usa Facebook e ne va fiero!


Mostra profilo
« Risposta #8 inserita: 13 Luglio, 2009, 23:09:09 »

cristian_c anche di questo ti interessi!!!!  Roll Eyes
si, appena avrò finito di studiare gli elementi di xml ho in serbo qualche sorpresina  Grin
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui | Post dell'anno!
Se vuoi usare Windows usalo. Hai bisogno della benedizione? Se ne fai una questione economica c'è la pirateria, non prendiamoci in giro. Se sei per il software libero, c'è un bug e si aiuta la comunità a risolverlo. (by taxidriver)
cristian_c
Illuminato Imbonitore
*****
Non Connesso Non Connesso

Messaggi: 11629

Media messaggi


Questo utente non usa Facebook e ne va fiero!


Mostra profilo
« Risposta #9 inserita: 14 Luglio, 2009, 11:24:42 »

Riapro questo topic per sottoporvi un altro problema che ho riscontrato con xml schema.  Grin

Ho preso il file studente.xml che fa uso dello schema studente.xsd.  Mi sono studiato la struttura dello schema xsd.
Ho controllato che il file .xml fosse ben formato con Check Well-formedness ed è andato bene questo test.
Poi ho provato a validarlo con Validate, però in questo caso usciva un errore: infatti diceva che l'elemento 'studente' era sconosciuto.

Allora ho fatto delle modifiche in cima al file xml, e sono riuscito a passare all'errore successivo, che è questo:
Citazione
Validation stopped at line 10, column 9: Element qname beginning with 'xsd:' invalid
che riguarda la linea:
Codice:
     <citta>Samarcanda</citta>      

Ecco il file .xml com'è attualmente:
Codice:
<?xml version="1.0"?>
<studente xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="studente.xsd" matricola="1234567">
   <nome>Giovanni</nome>
   <cognome>Doe</cognome>
   <sesso>M</sesso>
   <indirizzo>
      <nomeVia>Viale del tramonto 13/17A</nomeVia>
      <CAP>54321</CAP>
      <citta>Samarcanda</citta>      
   </indirizzo>
   <classe sperimentazione="Brocca">3D</classe>
   <pagella>
      Quadro generale dell'alunno:
      I risultati di matematica sono <matematica>4 4.5 3 5.8</matematica>
      , quelli di italiano sono <italiano>6 6.5 6 6 6</italiano>
      e quelli di educazione musicale sono <edmusicale>10 9.5</edmusicale>
   </pagella>
</studente>
ed ecco invece il file xsd:
Codice:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:annotation>
    <xsd:documentation xml:lang="it">
    XML tutorial per il lavoro di TAW
    </xsd:documentation>
</xsd:annotation>
  
<xsd:choice>
   <xsd: element name="studente" type="StudentType"/>
   <xsd: element name="studente diplomato" type="GraduatedStudent"/>
</xsd:choice>
  
<xsd: complexType name="StudentType">
   <xsd:sequence>
      <xsd:element name="cognome" type="xsd:string"/>
      <xsd:element name="nome" type="xsd:string"/>
      <xsd:element name="sesso" type="SexType"/>
      <xsd:element name="indirizzo" type="AddressType"/>
      <xsd:element name="classe" type="ClassType"/>
      <xsd:element name="pagella">
         <xsd:complexType mixed="true">
            <xsd:sequence>
               <xsd:element name="matematica" type="ListOfMarks"/>
               <xsd:element name="italiano" type="ListOfMarks"/>
               <xsd:element name="edmusicale" type="ListOfMarks"/>
            </xsd:sequence>
         </xsd:complexType>
      </xsd:element>
   </xsd:sequence>
   <xsd:attribute name="matricola" type="xsd:integer"/>
</xsd:complexType>
<xsd:complexType name="AddressType">
   <xsd:sequence>
      <xsd:element name="nomeVia" type="xsd:string"/>
      <xsd:element name="CAP" type="xsd:integer"/>
      <xsd:element name="citta" type="xsd:string"/>
   </xsd:sequence>
</xsd:complexType>

<xsd:simpleType name ="SexType">
   <xsd:restriction base="xsd:string">
      <xsd:enumeration value="M"/>
      <xsd:enumeration value="F"/>
   </xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ClassType">
   <xsd:restriction base="xsd:string">
      <xsd:pattern value="\d{1}-[A-Z]{1}"/>
   </xsd:restriction>
   <xsd:attribute name="sperimentazione">
      <xsd:simpleType>
         <xsd:restriction base="xsd:string">
            <xsd:enumeration value="Bilingue"/>
            <xsd:enumeration value="Brocca"/>
            <xsd:enumeration value="P.N.I."/>
         </xsd:restriction>
      </xsd:simpleType>
   </xsd:attribute>
</xsd:complexType>
  
<xsd:simpleType name="voto">
   <xsd:restriction base="xsd:decimal">
      <xsd:minExclusive value="0"/>
      <xsd:maxInclusive value="10"/>
   </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ListOfMarks">
   <xsd:list itemType="voto"/>
</xsd:simpleType>
  
<xsd:complexType name="GraduatedStudent">
   <xsd:extension base="StudentType">
      <xsd:element name="voto diploma" type="integer"/>
   </xsd:extension>
</xsd:complexType>

Come posso aggiustare la cosa?  Huh?
« Ultima modifica: 14 Luglio, 2009, 11:32:06 da cristian_c » Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui | Post dell'anno!
Se vuoi usare Windows usalo. Hai bisogno della benedizione? Se ne fai una questione economica c'è la pirateria, non prendiamoci in giro. Se sei per il software libero, c'è un bug e si aiuta la comunità a risolverlo. (by taxidriver)
cristian_c
Illuminato Imbonitore
*****
Non Connesso Non Connesso

Messaggi: 11629

Media messaggi


Questo utente non usa Facebook e ne va fiero!


Mostra profilo
« Risposta #10 inserita: 15 Luglio, 2009, 22:36:20 »

praticamente l'errore stava nelle righe 10 e 11 del file xsd (anche se esce fuori nella validazione del file xml, però c'è da dire anche che veniva evidenziata la linea relativa del file xml che poteva trarre in inganno  Embarrassed ).
Non ci volevano spazi tra xsd: ed element ed anche alla linea 14 con complexType.
Infatti appena ho fatto la correzione nell'highlight di xmlcopyeditor 'element' è passato dal colore rosso a quello blu.

Risolto questo sono passato all'errore successivo:
Citazione
Validation stopped at line 76, column 20: The input ended before all started tags were ended. Last tag started was 'xsd:schema'
che ho risolto subito inserendo il fine tag </xsd:schema> in fondo al file.

Dopodiché ho riprovato a validare, ma è uscito un altro errore:
Citazione
Validation stopped at line 9, column 13:Error in content of <schema> element information item

Questo non so come risolverlo però!  Sad

L'attuale file xml è questo:
Codice:
<?xml version="1.0"?>
<studente xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="studente.xsd" matricola="1234567">
   <nome>Giovanni</nome>
   <cognome>Doe</cognome>
   <sesso>M</sesso>
   <indirizzo>
      <nomeVia>Viale del tramonto 13/17A</nomeVia>
      <CAP>54321</CAP>
      <citta>Samarcanda</citta>     
   </indirizzo>
   <classe sperimentazione="Brocca">3D</classe>
   <pagella>
      Quadro generale dell'alunno:
      I risultati di matematica sono <matematica>4 4.5 3 5.8</matematica>
      , quelli di italiano sono <italiano>6 6.5 6 6 6</italiano>
      e quelli di educazione musicale sono <edmusicale>10 9.5</edmusicale>
   </pagella>
</studente>
e il file xsd è questo:
Codice:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:annotation>
    <xsd:documentation xml:lang="it">
    XML tutorial per il lavoro di TAW
    </xsd:documentation>
</xsd:annotation>
 
<xsd:choice>
   <xsd:element name="studente" type="StudentType"/>
   <xsd:element name="studente diplomato" type="GraduatedStudent"/>
</xsd:choice>
 
<xsd:complexType name="StudentType">
   <xsd:sequence>
      <xsd:element name="cognome" type="xsd:string"/>
      <xsd:element name="nome" type="xsd:string"/>
      <xsd:element name="sesso" type="SexType"/>
      <xsd:element name="indirizzo" type="AddressType"/>
      <xsd:element name="classe" type="ClassType"/>
      <xsd:element name="pagella">
         <xsd:complexType mixed="true">
            <xsd:sequence>
               <xsd:element name="matematica" type="ListOfMarks"/>
               <xsd:element name="italiano" type="ListOfMarks"/>
               <xsd:element name="edmusicale" type="ListOfMarks"/>
            </xsd:sequence>
         </xsd:complexType>
      </xsd:element>
   </xsd:sequence>
   <xsd:attribute name="matricola" type="xsd:integer"/>
</xsd:complexType>
<xsd:complexType name="AddressType">
   <xsd:sequence>
      <xsd:element name="nomeVia" type="xsd:string"/>
      <xsd:element name="CAP" type="xsd:integer"/>
      <xsd:element name="citta" type="xsd:string"/>
   </xsd:sequence>
</xsd:complexType>

<xsd:simpleType name ="SexType">
   <xsd:restriction base="xsd:string">
      <xsd:enumeration value="M"/>
      <xsd:enumeration value="F"/>
   </xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ClassType">
   <xsd:restriction base="xsd:string">
      <xsd:pattern value="\d{1}-[A-Z]{1}"/>
   </xsd:restriction>
   <xsd:attribute name="sperimentazione">
      <xsd:simpleType>
         <xsd:restriction base="xsd:string">
            <xsd:enumeration value="Bilingue"/>
            <xsd:enumeration value="Brocca"/>
            <xsd:enumeration value="P.N.I."/>
         </xsd:restriction>
      </xsd:simpleType>
   </xsd:attribute>
</xsd:complexType>
 
<xsd:simpleType name="voto">
   <xsd:restriction base="xsd:decimal">
      <xsd:minExclusive value="0"/>
      <xsd:maxInclusive value="10"/>
   </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ListOfMarks">
   <xsd:list itemType="voto"/>
</xsd:simpleType>
 
<xsd:complexType name="GraduatedStudent">
   <xsd:extension base="StudentType">
      <xsd:element name="voto diploma" type="integer"/>
   </xsd:extension>
</xsd:complexType>
</xsd:schema>

Come posso risolvere ed aggiustare il tutto?  Huh? Roll Eyes Undecided
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui | Post dell'anno!
Se vuoi usare Windows usalo. Hai bisogno della benedizione? Se ne fai una questione economica c'è la pirateria, non prendiamoci in giro. Se sei per il software libero, c'è un bug e si aiuta la comunità a risolverlo. (by taxidriver)
cristian_c
Illuminato Imbonitore
*****
Non Connesso Non Connesso

Messaggi: 11629

Media messaggi


Questo utente non usa Facebook e ne va fiero!


Mostra profilo
« Risposta #11 inserita: 06 Agosto, 2009, 16:18:58 »

Per cercare di risolvere il problema, l'errore poteva essere individuato nell'indicatore 'choice' indicato qui: http://www.w3schools.com/schema/schema_complex_indicators.asp.

Forse in quella posizione non va bene, ma dove andrebbe spostato invece?  Huh?

Allora ho provato a modificare il file xsd cercando di fare a meno del 'choice'. Ho modificato gli elementi complessi StudentType e GraduatedStudent in questo modo:
Codice:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:annotation>
    <xsd:documentation xml:lang="it">
    XML tutorial per il lavoro di TAW
    </xsd:documentation>
</xsd:annotation>

<xsd:element name="StudentType"> 
    <xsd:complexType>
         <xsd:sequence>
             <xsd:element name="cognome" type="xsd:string"/>
             <xsd:element name="nome" type="xsd:string"/>
             <xsd:element name="sesso" type="SexType"/>
             <xsd:element name="indirizzo" type="AddressType"/>
             <xsd:element name="classe" type="ClassType"/>
             <xsd:element name="pagella">
                 <xsd:complexType mixed="true">
                     <xsd:sequence>
                         <xsd:element name="matematica" type="ListOfMarks"/>
                         <xsd:element name="italiano" type="ListOfMarks"/>
                         <xsd:element name="edmusicale" type="ListOfMarks"/>
                     </xsd:sequence>
                 </xsd:complexType>
             </xsd:element>
         </xsd:sequence>
         <xsd:attribute name="matricola" type="xsd:integer"/>
     </xsd:complexType>
</xsd:element>

<xsd:complexType name="AddressType">
   <xsd:sequence>
      <xsd:element name="nomeVia" type="xsd:string"/>
      <xsd:element name="CAP" type="xsd:integer"/>
      <xsd:element name="citta" type="xsd:string"/>
   </xsd:sequence>
</xsd:complexType>

<xsd:simpleType name ="SexType">
   <xsd:restriction base="xsd:string">
      <xsd:enumeration value="M"/>
      <xsd:enumeration value="F"/>
   </xsd:restriction>
</xsd:simpleType>

<xsd:complexType name="ClassType">
   <xsd:restriction base="xsd:string">
      <xsd:pattern value="\d{1}-[A-Z]{1}"/>
   </xsd:restriction>
   <xsd:attribute name="sperimentazione">
      <xsd:simpleType>
         <xsd:restriction base="xsd:string">
            <xsd:enumeration value="Bilingue"/>
            <xsd:enumeration value="Brocca"/>
            <xsd:enumeration value="P.N.I."/>
         </xsd:restriction>
      </xsd:simpleType>
   </xsd:attribute>
</xsd:complexType>
 
<xsd:simpleType name="voto">
   <xsd:restriction base="xsd:decimal">
      <xsd:minExclusive value="0"/>
      <xsd:maxInclusive value="10"/>
   </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ListOfMarks">
   <xsd:list itemType="voto"/>
</xsd:simpleType>
 
<xsd:element name="GraduatedStudent">
    <xsd:complexType>
        <xsd:extension base="StudentType">
            <xsd:element name="voto diploma" type="integer"/>
        </xsd:extension>
    </xsd:complexType>
</xsd:element>

</xsd:schema>

Ma se provo a validare ottengo l'errore:
Citazione
Validation stopped at line 47, column 39: Invalid child 'restriction' in the complex type

La riga a cui fa riferimento l'errore dovrebbe essere questa:
Citazione
   <xsd:restriction base="xsd:string">

Da cosa può dipendere l'errore, e come posso risolverlo?  Huh? Roll Eyes Undecided Sad
Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui | Post dell'anno!
Se vuoi usare Windows usalo. Hai bisogno della benedizione? Se ne fai una questione economica c'è la pirateria, non prendiamoci in giro. Se sei per il software libero, c'è un bug e si aiuta la comunità a risolverlo. (by taxidriver)
cristian_c
Illuminato Imbonitore
*****
Non Connesso Non Connesso

Messaggi: 11629

Media messaggi


Questo utente non usa Facebook e ne va fiero!


Mostra profilo
« Risposta #12 inserita: 31 Agosto, 2009, 15:28:43 »

Sono riuscito a risolvere il problema e a validare il documento xml!!!  Good Beer to beer

Praticamente rispetto al post #10 ho cancellato il blocco del tag 'choiche', poi ho corretto altri errori nel file dello schema, uno tra questi ad esempio era invertita la sequenza di 'nome' e 'cognome' rispetto a come si presentava nel file .xml

Ho dovuto correggere anche un errore nel file .xml relativo al non rispetto delle regole del pattern:
Codice:
     <xsd:pattern value="\d{1}-[A-Z]{1}"/>
qui:
Codice:
  <classe sperimentazione="Brocca">3D</classe>
che ho modificato così:
Codice:
  <classe sperimentazione="Brocca">3-D</classe>

Questo è il file .xml conclusivo:
Codice:
<?xml version="1.0"?>

<studente xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="studente.xsd" matricola="1234567">

   <nome>Giovanni</nome>

   <cognome>Doe</cognome>

   <sesso>M</sesso>

   <indirizzo>

      <nomeVia>Viale del tramonto 13/17A</nomeVia>

      <CAP>54321</CAP>

      <citta>Samarcanda</citta>     

   </indirizzo>

   <classe sperimentazione="Brocca">3-D</classe>

   <pagella>

      Quadro generale dell'alunno:

      I risultati di matematica sono <matematica>4 4.5 3 5.8</matematica>

      , quelli di italiano sono <italiano>6 6.5 6 6 6</italiano>

      e quelli di educazione musicale sono <edmusicale>10 9.5</edmusicale>

   </pagella>

</studente>
e questo è il file .xsd, detto anche 'schema':
Codice:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:annotation>
    <xsd:documentation xml:lang="it">
    XML tutorial per il lavoro di TAW
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType name="StudentType">
    <xsd:sequence>
      <xsd:element name="nome" type="xsd:string"/>
      <xsd:element name="cognome" type="xsd:string"/>
      <xsd:element name="sesso" type="SexType"/>
      <xsd:element name="indirizzo" type="AddressType"/>
      <xsd:element name="classe" type="ClassType"/>
      <xsd:element name="pagella">
        <xsd:complexType mixed="true">
          <xsd:sequence>
            <xsd:element name="matematica" type="ListOfMarks"/>
            <xsd:element name="italiano" type="ListOfMarks"/>
            <xsd:element name="edmusicale" type="ListOfMarks"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="matricola" type="xsd:integer"/>
  </xsd:complexType>
  <xsd:complexType name="AddressType">
    <xsd:sequence>
      <xsd:element name="nomeVia" type="xsd:string"/>
      <xsd:element name="CAP" type="xsd:integer"/>
      <xsd:element name="citta" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name="SexType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="M"/>
      <xsd:enumeration value="F"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="ClassType">
    <xsd:simpleContent>
      <xsd:extension base="ClassTypeContent">
        <xsd:attribute name="sperimentazione">
          <xsd:simpleType>
            <xsd:restriction base="xsd:string">
              <xsd:enumeration value="Bilingue"/>
              <xsd:enumeration value="Brocca"/>
              <xsd:enumeration value="P.N.I."/>
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:simpleType name="ClassTypeContent">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="\d{1}-[A-Z]{1}"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="voto">
    <xsd:restriction base="xsd:decimal">
      <xsd:minExclusive value="0"/>
      <xsd:maxInclusive value="10"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ListOfMarks">
    <xsd:list itemType="voto"/>
  </xsd:simpleType>
  <xsd:element name="GraduatedStudent" type="GraduatedStudentType"/>
  <xsd:element name="studente" type="StudentType"/>
  <xsd:complexType name="GraduatedStudentType">
    <xsd:complexContent>
      <xsd:extension base="StudentType">
        <xsd:sequence>
          <xsd:element name="voto_diploma" type="xsd:integer"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:schema>
« Ultima modifica: 31 Agosto, 2009, 15:31:24 da cristian_c » Registrato

UP! Unreal Project(la resurrezione), il futuro inizia qui | Post dell'anno!
Se vuoi usare Windows usalo. Hai bisogno della benedizione? Se ne fai una questione economica c'è la pirateria, non prendiamoci in giro. Se sei per il software libero, c'è un bug e si aiuta la comunità a risolverlo. (by taxidriver)
Pagine: [1]   Vai su
  Stampa  
 
Vai a: