2011-01-07 9 views
0

Ich weiß, es gibt eine Menge Dokumentation im Internet so weit wie XSD zu Formen, aber ich habe nicht in der Lage, eine, die gerade genug für meine Situation ist.Dynamische Formularerstellung von XSD in. NET

Ich arbeite mit einem WCF-Webdienst, der XMSD-XML-Schemas abruft, und muss den HTML-Code eines Formulars basierend auf dem XSD-XML-Schema zurückgeben. Gibt es Tools von Drittanbietern, die dabei helfen können? Wenn ja, welche? Wenn nicht, haben Sie irgendwelche Vorschläge, bessere Methoden, etc., wie dies getan werden kann?

Antwort

1

Xsd ist schwierig zu analysieren, aber Sie können leicht eine Klasse von ihm, durch den Aufruf xsd.exe/Klasse oder indem Sie es im Anschluss an diese schöne Probe Laufzeit erhalten: http://mikehadlow.blogspot.com/2007/01/writing-your-own-xsdexe.html daher mit den Klassen Ihrer xsd darstellen, können Sie verwenden, Reflexion, um den HTML-Code zu erstellen.

+0

Mit dieser Methode haben Sie Vorschläge, wie Sie Reflektion verwenden, um den HTML-Code zu erstellen. Ich bin C# bekannt und habe noch nie Erfahrungen mit Reflektion gemacht. Wenn nicht, könnten Sie mir in die richtige Richtung zeigen? – TheJediCowboy

+1

Sobald Sie die Typen von der Xsd generiert haben, können Sie Type.GetProperties() verwenden, um einzelne Eigenschaftennamen und Typen zu erhalten und diese für die Generierung der HTML-Datei zu verwenden ... –

1

Zunächst einmal werden sie brauchen nicht nur die XSD passieren (ohne include, import oder redefine Elemente drin), sondern müssen auch Sie den Wurzelknoten erzählen.

Zweitens würde ich dies nähern, indem Sie in der XSD mit der XmlSchema.Read Methode einlesen. Sie können dann das Objektmodell durchlaufen und die benötigten Informationen abrufen.

Sie könnten sogar versuchen, ein XML-Dokument zu schreiben, das die Teile des Schemas enthält, die Sie wirklich benötigen, und dann eine XML-Transformation ausführen, um den HTML-Code zu erzeugen.

Beachten Sie auch das Microsoft Office InfoPath-Produkt von Microsoft. Auch wenn Sie das Produkt nicht selbst verwenden, erhalten Sie eine Testversion, um zu sehen, wie Formulare basierend auf XSD und anderen Metadaten definiert werden können.

2

Ich arbeite an meinem eigenen Projekt namens XsdFormEditor. Anwendung wird in der Lage sein, jede XSD als ein Formular in WinForms (95% getan), Web (mit Asp.Net MVC, 0% getan), WPF (0% getan) zu zeigen. Idee ist es, eine beliebige XSD-Datei zu laden, sie dem Benutzer als ein Formular anzuzeigen, den Benutzer einige Daten einzugeben und Daten als XML zu speichern. Der Benutzer kann auch Standardwerte laden, um daraus eine XML-Datei zu erstellen. Sie können es hier finden: https://github.com/janstafa/XsdFormEditor

+0

Vielen Dank! Dies ist sehr nützlich für etwas, an dem ich gerade arbeite. Musste einige Änderungen vornehmen, damit es für mich funktioniert. –

+0

@TimGeerts gut zu hören, dass es dir geholfen hat. Wenn Sie einige Verbesserungen vorgenommen haben, ziehen Sie bitte eine Anfrage – Simon

Verwandte Themen