Domanda

Esiste un modo standard per convertire un XSD in un modulo di input (ASP.NET C #) in modo che in seguito ogni volta che un nuovo campo viene aggiunto / rimosso dall'XSD il campo nella pagina viene automaticamente visualizzato o scompare, rispettivamente, è qualcosa che deve essere sviluppato internamente presumo che ci debba essere un modo per serializzare / deserializzare e generare un modulo? Qualsiasi hel sarebbe apprezzato ..

È stato utile?

Soluzione

Non credo ci sia niente incorporato per renderlo completamente automatico. Tuttavia, puoi avvicinarti abbastanza. Visual Studio include un programma da riga di comando chiamato xsd.exe che è possibile utilizzare per creare automaticamente una definizione di classe da un documento xsd. Dopo aver definito quella definizione di classe, puoi collegarla a un modulo tramite un componente ObjectDataSource e un controllo DetailsView.

Altri suggerimenti

Presupposto: stai usando XML perché al momento è più semplice per te.

Idea: dal momento che desideri creare un modulo per manipolare i dati, immagino che potresti essere aperto a SQL anziché a XML. Questo potrebbe non essere il caso, ma probabilmente troverai più strumenti per aiutarti se hai un back-end di database invece di un back-end XML / XSD. (Inoltre ci sono modi in cui puoi convertire i tuoi dati da uno all'altro).

Esistono strumenti che creano moduli da database in ASP.NET. SubSonic, ad esempio, ha un modulo di impalcatura automatica che consente di creare un gestore database conoscendo solo il suo schema. Se lo schema cambia, basta che SubSonic rigeneri i suoi file e i tuoi moduli saranno stati modificati. Non è perfetto, ma può fare molto, a seconda delle tue esigenze.

Opzione 1) È possibile creare lo schema del database dall'XSD ( Come posso creare tabelle di database da file XSD? ) e utilizzare SubSonic da quel momento in poi. Questo potrebbe essere ancora più doloroso della tua domanda originale ... solo tu lo sai.

Opzione 2) Attacca il ponteggio SubSonic in modo che supporti il ??tuo XSD / XML sottostante invece di un database. Probabilmente puoi riutilizzare molte delle loro infrastrutture (SubSonic è open source) per generare il modulo da un XSD.

Buona fortuna!

Bene, devo dire che ObjectDataSource non è una cattiva idea, ma questo non funziona se si hanno elementi nidificati. Inoltre, per gli elementi nidificati avrai tutto " .. FieldSpecified " campi booleani anche in DetailsView.

Sto ancora cercando di capire come generare un modulo ASP.NET utilizzando un file XSD, senza dover digitare tutto, che è un lavoro da scimmia.

Qualcuno ha già riscontrato questo problema?

PS: un altro approccio sarebbe quello di utilizzare InfoPath, ma ciò richiede l'esecuzione di software con licenza come moduli web ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top