2009-08-10 8 views
5

Sto osservando un po 'di lavoro che aggiorna le classi generate da xsds. Penso che questo sarebbe un ottimo uso dei modelli T4, ma non vedo alcun esempio di persone che lo fanno. In sostanza, mi piacerebbe fare ciò che ha fatto Linq to XSD, ma senza includere i target di build alpha in una soluzione di produzione.Qualcuno sa di qualsiasi modello T4 per generare classi da xsd?

Qualsiasi link pertinente là fuori?


Ora una wiki. Memorizza le tue risposte pertinenti qui.

risposta

3

Attualmente sto usando xsd2code.net, lo trovi qui: http://xsd2code.codeplex.com/. un sacco di vantaggi:

  • open source, che consente di sintonizzarsi/hack

  • sostituire gli array con le liste o anche il proprio tipo di raccolta personalizzato

  • eseguito da linea di comando, o correre come uno studio di addin visiva (tasto destro XSD, dico di generare)

mi piace anche che è possibile eseguire su un singolo file XSD un nd non si farà esplodere se xsd di riferimento non può essere trovato (come come fa xsd.exe). Quindi è facile eseguirlo su singoli file, nel caso in cui si desideri solo eseguire un rapido aggiornamento su un file.

Tuttavia, anche T4 dovrebbe essere un'opzione, ho cercato su Google T4 XSD e ho trovato alcune soluzioni a riguardo.

+0

Penso che questa sia la soluzione migliore a questo punto. Un'anima migliore è probabilmente quella di evitare la situazione per cominciare. – Will

+0

Per aggiornare su questo: sto attualmente rivedendo questo progetto- http://oxmlibrary.codeplex.com/ - Sembra un po 'hacker ma più "hackerabile" se questo ha senso. –

+0

Will, sono tornato a fare di nuovo questa cosa esatta. L'elusione può essere la soluzione migliore, ma nel caso in cui uno standard di settore sia stato definito in xsd, la generazione di classi dallo schema è un'operazione molto valida. Anche se non molto divertente. –

1

Ho trovato XSD molto difficile da utilizzare come modello per la generazione del codice. È troppo flessibile e complesso per essere pratico per le mie esigenze. Il designer/generatore DataSet fortemente tipizzato è un ottimo esempio di un tentativo di utilizzare XSD come modello di generazione del codice. Funziona bene la maggior parte del tempo, ma non supporta tutti gli schemi possibili che potresti lanciare. D'altra parte, XSD non può rappresentare le informazioni richieste per generare direttamente gli adattatori di tabella, pertanto è necessario creare estensioni specifiche di DataSet.

Se si decide di andare avanti e utilizzare XSD come modello, sarà probabilmente necessario selezionare un sottoinsieme semplice, sufficiente per ciò che è necessario generare. Un approccio potrebbe essere quello di caricare lo schema XSD in un oggetto DataSet e utilizzare questo oggetto DataSet come modello. I metadati DataSet sono molto più semplici da accedere rispetto agli XSD generici. Ciò consentirebbe inoltre di utilizzare il designer DataSet esistente in Visual Studio per modificare i modelli.

+0

La generazione del codice è per le classi che conterrà xml deserializzato. O costruisco i miei modelli e analizzo xml in essi, o semplicemente deserializza oggetti direttamente da xml. Alla ricerca di una soluzione più leggera rispetto ai dataset ... uno che mi consente di scrivere classi parziali per i dati deserializzati. – Will

Problemi correlati