2011-07-11 18 views
12

io stia tentando qualcosa che non è possibile con lo strumento XSD, ma volevo chiedere prima di passare a una soluzione più semplice.Creare file di classe MULTIPLE sulla base di un XSD

Ho un file XSD che ha elementi multipli (e molteplici tipi complessi) che genereranno più classi in un unico file di codice (non mi piace questo). Per il piacere di avere file di classe chiari e leggibili generati dallo strumento XSD, vorrei che ogni elemento venisse inserito in un file di codice separato, non tutti inseriti in un file di codice come classi parziali.

Qualcuno sa come fare? O è la mia unica soluzione per spezzare XSD in uno schema per ciascuno degli elementi xml nello schema?

L'articolo MSDN http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=VS.100).aspx non fornisce un linguaggio che specifica se questo può essere fatto.

Grazie in anticipo per eventuali risposte o commenti.

+0

Penso che tu possa essere disintegrato, ma se qualcuno ha una soluzione mi piacerebbe vederlo. –

+0

Non riesco a trovare nulla, mi dispiace. –

risposta

12

Questo non risponde alla tua domanda direttamente, ma ho voluto lanciare un paio di cose:

io in genere trovo controproducente per separare il codice generato. Mi piace sempre seguire la regola "una classe per file", ma qui faccio un'eccezione, perché spesso gestisco schemi molto grandi. Anche nella loro directory, non voglio dover diff decine (a centinaia) di file quando genero una nuova versione del codice. Trovo molto comodo avere tutto il codice generato diffondibile in un unico file.

Ora, per offrire una possibile soluzione - Resharper ha la possibilità di estrarre tutte le classi da un file e inserirle nei propri file. Se si fa clic con il pulsante destro del mouse in Solution Explorer, è possibile pronunciare Refactor → Move types into matching files .... Ovviamente, questo non è affatto comodo come solo generarlo in questo modo, ma non conosco uno strumento che possa farlo.

+0

Grazie per il tempo e la risposta. Userò i tuoi commenti mentre lavoro sui miei bisogni per il mio progetto. – AndHeCodedIt

+0

Buona fortuna. Pubblica di nuovo se trovi effettivamente uno strumento che lo farà :) – womp

3

Il problema che sto cercando di risolvere era o in file separati di classe o di una singolare, ma classi uniche piuttosto che lo stesso spazio dei nomi contiene più classi. Di conseguenza, stavo cercando una risposta simile e ho trovato questo riferimento per condividere Getting xsd.exe To Not Create Duplicate Classes

Questa è una soluzione semplice, ma mi ci è voluto molto tempo per capire. Devi usare xsd.exe per compilare tutte le classi in una sola volta, in modo piuttosto che in esecuzione di due comandi separati, hai solo bisogno di eseguire uno: C: \ Solution \ Project> xsd.exe Types.xsd Request.xsd risposta. xsd/c Ora hai un file, Response.xsd, con tutte e tre le classi in esso.