Si consiglia di non creare un modello per l'intero standard. Si può semplicemente passare XML e non serializzare in un modello, ma invece caricarlo in XDocument/XElement e usare Linq per interrogarlo e aggiornare il DOM usando Linq per Xml. Quindi, uno non sta caricando il codice XML in un modello fortemente tipizzato, ma semplicemente caricando l'XML. Non esiste un modello, solo un documento XML.
Da lì, è possibile prelevare i dati dall'XML in base alle esigenze.
Utilizzando questo approccio, il codice sarà brutto e avrà un piccolo contesto poiché XElements verrà passato ovunque e ci saranno tonnellate di stringhe magiche di XPath per interrogare e definire gli elementi, ma può funzionare. Inoltre, tutto è una stringa quindi ci saranno metodi di conversione dell'utilità per convertire in numeri, date, ecc.
Dal mio punto di vista, ho modellato parte di Acord in un modello a oggetti usando XmlSerializer ma è ben oltre 500 classi. Il modello non è stato lavorato da XSD o altro, ma è stato realizzato manualmente e ha richiesto un po 'di tempo. La lavorazione con utensili produrrà classi mostruose inutilizzabili (come hai menzionato) e/o crash inatteso. Ad esempio, ho provato a caricare XSD in Stylus Studio e si è bloccato più volte.
Quindi, la soluzione migliore se il tuo tempo è impegnato in un XDocument anziché provare a mappare tutto in un modello. So che fa schifo, ma Acord in generale è fondamentalmente un enorme pasticcio di dati.
fonte
2017-05-24 20:22:50
Quale aiuto specifico avete bisogno? Raccomando la modifica per porre una domanda particolare, dato che è troppo generica, ed è il tipo di cosa che normalmente viene chiusa. – halfer
Il progetto che genera il file di codice dall'XSD non deve necessariamente essere nello stesso progetto che lo utilizza (non dovrebbe, probabilmente) e non deve neppure far parte della stessa soluzione (ad esempio può essere una libreria di riferimento) ... questo allevierà il problema del congelamento, anche se non risolve necessariamente qualcos'altro :) Considerare di ripulire la lingua nel post per rendere la domanda più obiettiva. –
Ho lavorato con il formato dei file Transaction ($) una volta che, dopo un rapido sguardo al tuo link, è praticamente lo stesso che incontrerai. Il mio consiglio, non combattere il sistema. Sarà brutto. Sarà un casino. Lo farai una volta e non ti guarderai mai indietro dopo. Non cercare di fare niente di fantasia e basta farlo funzionare. Quei giorni erano i miei peggiori giorni da programmatore. In bocca al lupo ! –