2009-08-10 11 views
5

Ich freue mich auf einige Arbeit aktualisiert Klassen von xsds generiert. Ich denke, dies wäre eine gute Verwendung von T4-Vorlagen, aber ich sehe keine Beispiele von Leuten, die das tun. Im Wesentlichen möchte ich tun, was Linq to XSD getan hat, aber ohne Alpha-Build-Ziele in einer Produktionslösung zu integrieren.Kennt jemand T4-Vorlagen zum Generieren von Klassen von xsd?

Alle relevanten Links da draußen?


Jetzt ein Wiki. Speichern Sie Ihre relevanten Antworten hier.

Antwort

3

Ich verwende derzeit xsd2code.net, finden Sie hier: http://xsd2code.codeplex.com/. viele Vorteile:

  • Open Source, so können Sie tune/hacken es

  • Arrays mit Listen ersetzen oder sogar Ihre eigenen Sammlung Typ

  • Lauf von Kommandozeilen-oder laufen als ein visuelles Addin Studio

(rechts xsd klicken, erzeugen sagen) Ich mag, dass Sie es auf einer einzigen XSD-Datei ein auch ausführen können Und es wird nicht explodieren, wenn referenzierte xsd's nicht gefunden werden (so wie xsd.exe). Es ist also einfach, einzelne Dateien auszuführen, falls Sie nur ein kurzes Update für eine Datei durchführen möchten.

Allerdings sollte T4 auch eine Option sein, ich googelte T4 XSD und fand ein paar Lösungen darüber zu sprechen.

+0

Ich denke, das ist die beste Lösung an dieser Stelle. Eine bessere Lösung ist wahrscheinlich, die Situation von Anfang an zu vermeiden. – Will

+0

Um dies zu aktualisieren: Im Moment überprüfe ich dieses Projekt http://oxmlibrary.codeplex.com/ - Es scheint ein bisschen hackish, aber mehr "hackable", wenn das Sinn macht. –

+0

Will, ich bin wieder genau so. Die Vermeidung mag am besten sein, aber für den Fall, dass in xsd ein Industriestandard definiert wurde, ist das Generieren von Klassen aus dem Schema eine sehr gültige Operation. Obwohl nicht viel Spaß. –

1

Ich fand XSD sehr schwierig als Modell für die Code-Generierung zu verwenden. Es ist zu flexibel und komplex, um für meine Bedürfnisse praktisch zu sein. Der stark typisierte DataSet-Designer/Generator ist ein großartiges Beispiel für einen Versuch, XSD als Codegenerierungsmodell zu verwenden. Es funktioniert die meiste Zeit OK, aber unterstützt nicht alle möglichen Schemas, die Sie darauf werfen könnten. Auf der anderen Seite kann XSD keine Informationen darstellen, die zum direkten Erzeugen von Tabellenadaptern benötigt werden, daher mussten DataSet-spezifische Erweiterungen erstellt werden.

Wenn Sie sich dafür entscheiden, XSD als Modell zu verwenden, werden Sie wahrscheinlich eine einfache Untermenge auswählen wollen, die ausreichend ist für das, was Sie generieren müssen. Ein Ansatz könnte sein, ein XSD-Schema in ein DataSet-Objekt zu laden und dieses DataSet-Objekt als Modell zu verwenden. DataSet-Metadaten sind wesentlich einfacher zu verwenden als Allzweck-XSD. Auf diese Weise können Sie auch den vorhandenen DataSet-Designer in Visual Studio zum Bearbeiten Ihrer Modelle verwenden.

+0

Die Code-Generierung ist für Klassen, die entserialisierten xml halten wird. Entweder baue ich meine eigenen Modelle aus und analysiere XML in sie oder deserialiere Objekte direkt von XML. Ich suche nach einer leichteren Lösung als Datasets ... eine, die es mir ermöglicht, partielle Klassen für die deserialisierten Daten zu schreiben. – Will

Verwandte Themen