18 messaggi dal 25 settembre 2003
Salve a tutti,
scusate l'ignoranza,
ma sapete dirmi se è possibile generare automaticamente un file xml partendo da uno xsd?

Grazie mille
Riccardo

Riko
18 messaggi dal 25 settembre 2003
Ok, mi sono dato la risposta da solo:
xmlSpy.


Riko
492 messaggi dal 08 gennaio 2007
"riko" ha scritto nel messaggio

sapete dirmi se è possibile generare automaticamente un file xml partendo da uno xsd?

Ciao, come certamente già sai, xsd serve a fornire una definizione di schema per il quale un documento può essere validato, rappresenta infatti un' evoluzione delle dtd, grazie allo strumento Xsd.exe è possibile partire da uno schema generare una classe nel linguaggio che preferisci, e dall' istanza di quella classe generare il relativo documento xml il passo è breve, basta serializzarla. Se tu volessi realizzare tutto a runtime devi passare al xsd.exe tutti i parametri, poi generare un' istanza della classe creata e non conoscendone a priori il tipo dovresti farlo andando giù di Reflection, e sempre che sia effettivamente serializzabile, serializzarla in Xml. Non sarà il metodo più naturale, ma è di certo il più semplice. http://msdn2.microsoft.com/it-it/library/x6c1kb0s(VS.80).aspx http://support.microsoft.com/kb/301223/it
http://blogs.ugidotnet.org/markino/archive/2005/07/26/24281.aspx (non sono io)
176 messaggi dal 04 giugno 2007
Contributi | Blog
Attento - il problema è molto più complesso di quanto sembra.
Ci possono essere infiniti file validi dato un XSD molto facilmente.
Nel momento in cui hai strutture nell'XSD costrutti come choice, la semantica di quale delle opzioni scegliere non è definita in modo univoco.

Fino ad ora ho visto due classi di situazioni in cui questa operazione è necessaria:

1) generare test case per protocolli definiti da uno schema

in questo caso devi generare più file XML che puoi e coprire tutte le permutazioni navigando il SOM.

2) usare lo schema come un proxy per tutti i file XML che rappresenta, per esempio per costruire uno stylesheet per tutti i file validi secondo questo schema.

In questo caso, l'unica soluzione che funziona è lavorare con un'istanza generalizzata (l'unione di tutti i possibili validation path dello schema) che paradossalmente non è un'istanza valida.
Puoi vederne un esempio in Office InfoPath caricando uno schema non banale (tag any, substitution groups, choice, elementi astratti, etc.)
Purtroppo non credo esista codice pubblico per generarne una.

HTH

--Alessandro
492 messaggi dal 08 gennaio 2007
Ciao, grazie delle preziose puntualizzazioni, in effetti non avevo minimamente considerato gli aspetti che hai messo in luce, quando trovi un pò di tempo puoi precisare meglio:
l'unica soluzione che funziona è lavorare con un'istanza generalizzata (l'unione di tutti i possibili validation path dello schema) che paradossalmente non è un'istanza valida.
Non credo ne avrò mai bisogno, ma...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.