Convalida XML con XSD in IDE di Visual Studio

So di averlo fatto prima, ma oggi non funziona, né posso trovare da nessuna parte che spieghi come farlo. Potrebbe essere la mia mancanza di sonno, ma sospetto gremlins.

Ho un documento XML e una directory piena di XSD che la definiscono. Come posso impostare l’IDE visivo per avvisarmi degli errori di convalida e quindi fornire un elenco intellisense di tag e attributi validi in un determinato contesto?

Quello che ho provato:

  • Ho aggiunto gli XSD al progetto con il documento XML.
  • Ho aggiunto l’XSD alla lista degli schemi XML (sotto la voce di menu XML / Schemi …).
  • Ho persino incluso gli attributi schemaLocation e noNamespaceSchemaLocation nel documento XML.

Visual Studio non ha ancora rinunciato a utili informazioni di debug o modifica. Ho provato sia il 2010 che il 2008 (l’ho già fatto nel 2008 pensavo)

Aggiornamento: ho avuto un altro sviluppatore che lo ha provato e ha fallito anche per lui. Sa di averlo fatto con altri documenti XML e ha funzionato. Ho quindi scaricato l’editor Oxygen XML e ha funzionato bene sugli stessi file XML e XSD, quindi i file sembrano andare bene (o Oxygen è più flessibile / flessibile …)

    Jim,

    Devi associare il documento XML in Visual Studio con il file XSD che hai – dovresti vedere qualcosa di simile nella finestra Proprietà del documento XML:

    alt text

    Specchio 1

    Nell’editor di schemi dello schema XML (che si apre quando si fa clic sui puntini di sospensione (…) nella casella di testo “Schemi” nella finestra Proprietà) è necessario assicurarsi di avere lo schema presente. Inoltre, assicurati che la colonna Use per lo schema sia abilitata; in caso contrario, fai clic su di essa: otterrai un elenco a discesa di opzioni, scegli Use uno con il segno di spunta verde:

    alt text

    Specchio 1

    Assicurarsi che le windows Elenco errori di Visual Studio siano visibili (menu Visualizza> Elenco errori). Questo mostrerà tutte le inconsistenze tra le definizioni dello schema XSD e XML.

    Una volta che tutto è a posto, l’editor XML di Visual Studio dovrebbe evidenziare problemi con il tuo XML nell’editor usando gli squigglie blu:

    alt text

    Specchio 1

    Non è necessario associare manualmente i file in Visual Studio: abbinerà automaticamente un file XML a un file XSD se sono entrambi aperti e il proprio spazio dei nomi è stato definito correttamente.

    Per definire lo spazio dei nomi:

    Nell’elemento radice del file XML:

      ...  

    Nell’elemento dello schema del file XSD:

      ...  

    Una nota sull’utilizzo di Tipi nello schema quando si dispone di uno spazio targetName

    Poiché stai specificando uno targetNamespace nello schema, qualsiasi riferimento a tipi definiti nello schema dovrà essere preceduto da uno spazio dei nomi (motivo per cui abbiamo aggiunto xmlns:this attributo nell’elemento sopra).

              

    Un altro punto di errore qui è Windows 7 che “blocca” i file di schema … tasto destro del mouse sul file xsd su disco, Proprietà> Generale e se è bloccato, avrai un pulsante “Sblocca”. Ciò stava causando il fallimento della convalida XML in VS2012.

    Il tuo xsd contiene un attributo “targetNamespace” / schema / @ targetNamespace simile allo spazio dei nomi a cui stai facendo riferimento nell’xml?

    Esempio:

    xsd:

    xml:

    vedere anche XML / XSD intellisense che non funziona in Visual Studio 2010

    Ho avuto lo stesso problema, ma VS stava già facendo riferimento al mio schema correttamente. Risulta che il file che stavo cercando di convalidare non aveva un’estensione di file ‘xml’. Aggiunto .xml alla fine del mio nome file e la convalida ha iniziato a funzionare.