2009-04-19 3 views
14

Utilizzo di JAXB in Java è facile generare da un file di schema xml una serie di classi Java che xml conforme a tale schema può essere deserializzata.Equivalente Jaxb in C#

Esiste un equivalente C# di JAXB? So che Linq può serializzare e deserializzare le classi da/verso i file xml. Ma come posso generare classi C# dal file dello schema xml e quindi utilizzare questa classe con linq?

risposta

15

Se si utilizza Visual Studio, provare il XML Schema Definition Tool. Prende le definizioni dello schema e produce classi C# oppure può andare nella direzione opposta e produrre definizioni di schemi dalle classi. Ha anche una serie di altre trasformazioni correlate all'XML.

+0

In realtà, XSD può generare classi in C#, VB.NET, JScript o C++. Vedi l'opzione/language. –

+0

Scusa, non volevo insinuare che non potesse. La sua domanda riguardava solo le classi C#. Ma sì, l'opzione/language è a portata di mano. –

+3

Non è necessario disporre di Visual Studio. XSD.EXE fa parte di .NET SDK. –

4

C'è uno strumento migliore di Microsoft chiamato XsdObjectGen, il generatore di codice oggetto XSD. È come xsd.exe, ma è meglio. Anche gratuito, non fa parte di .NET SDK, ma è un download separato.

vedere anche la questione SO: XSDObjectGen vs Xsd.exe

1

considerare di usare DataSet. È un concetto un po 'diverso dall'uso di "Java Beans". L'intero documento XML viene trattato insieme gerarchico di tabelle in un'unica classe. La parte buona è che la teoria dell'incapsulamento per OOP è effettivamente applicata. Wow, Microsoft ha avuto qualcosa di giusto che Sun abbia preso in giro.

In ogni caso. Puoi anche guardare DataSet digitati se vuoi rendere le cose più interessanti. L'ho usato su grandi progetti con grande successo.