Xsd e creazione dataset

mercoledì 22 luglio 2015 - 17.22
Tag Elenco Tags  VB.NET

d@dora Profilo | Senior Member

un buongiorno a tutti
sto utilizzando il tool xsd per la generazione di un dataset e mi crea la classe da utilizzare in vs.
Non da errori ma quando eseguo il programma a runtime ricevo questo errore: La stessa tabella 'Contact' non può essere la tabella figlia in due relazioni annidate
l'xsd e' stato generato da un nostro fornitore (DHL) in java e, credo, a loro non crea problemi, mentre per me e' inutilizzabile.
Che altro posso fare per utilizzare questo tipo di xsd ???
Devo consumare un webservice in rest e l'unico modo per avere la struttura dati e' quella di interpretare l'xsd o posso fare in alro modo ??
In soap ho a disposizione il wsdl, ma in rest ???

ciao e grazie

ysdemarc Profilo | Expert

Non credo di aver compreso bene..

Se devi crearti gli oggetti per interfarcciarti ad un WebService e ti hanno dato l'xsd ma anche suppongo un file .wsdl dovresti usare il promp dei comanti di visual studio e generare le classi con wsdl.exe

il prompt di visual studi lo trovi in "Tutti i programmi" --> Microsoft Visual Studio xxx --> "Visual Studio Tools"

per la sintassi basta che scrivi wsdl e dai invio e ti comparirà l'help.
Vincenzo
Programmatore sbilenco

d@dora Profilo | Senior Member

Ciao e grazie per la risposta. Nessun wdsl. Solo xsd. Ho già utilizzato xml ma con i wsdl solo con xsd non mi era mai successo e poi solo rest e non soap....

ysdemarc Profilo | Expert

A dire il vero ho usato i wsdl ma con problemi che ho risolto da caso a caso...
Quindi non ti aspettare soluzioni veloci da me..

Questo è il funzionamento di wsld:

*====================================================================*
wsdl.exe -
Utilità di generazione del codice per client di servizi Web XML e servizi
Web XML mediante ASP.NET da file di contratto WSDL, schemi XSD
e documenti di individuazione DISCOMAP. Questo strumento può
essere utilizzato insieme a disco.exe.

wsdl.exe <opzioni> <url o percorso> <url o percorso> ...

- OPZIONI -

<url o percorso> -
URL o percorso di un contratto WSDL, di
uno schema XSD o di un documento DISCOMAP.

/nologo
Evita la visualizzazione del messaggio di avvio.

/language:<linguaggio>
Linguaggio da utilizzare per la classe proxy generata. Scegliere fra
'CS', 'VB', 'JS', 'VJS', 'CPP' o specificare un nome completo per una
classe che implementa System.CodeDom.Compiler.CodeDomProvider.
Il linguaggio predefinito è 'CS' (CSharp). La forma breve è: '/l:'.

/sharetypes
Attiva la funzionalità di condivisione dei tipi che consente di creare un
file di codice con una singola definizione di tipo per tipi identici
condivisi da servizi diversi (lo spazio dei nomi, il nome e la firma
dell'operazione devono essere identici). Fare riferimento ai servizi con
URL http:// come parametri della riga di comando oppure creare un
documento DISCOMAP per i file locali.

/verbose
Visualizza informazioni aggiuntive quando si specifica l'opzione /sharetypes
.
La forma breve è: '/v'.

/fields
Genera campi anziché proprietà. La forma breve è: '/f'.

/order
Genera identificatori di ordine espliciti per i membri della particella.

/enableDataBinding
Implementa l'interfaccia INotifyPropertyChanged su tutti i tipi generati
per consentire l'associazione dati. La forma breve è: '/edb'.

/namespace:<spaziodeinomi>
Spazio dei nomi per il modello o il proxy generato.
Lo spazio dei nomi predefinito è quello globale. La forma breve è: '/n:'.

/out:<nomefile|percorsodirectory>
Nome di file o percorso della directory per il codice proxy generato.
Il nome di file predefinito è derivato dal nome del servizio.
La forma breve è: '/o:'.

/protocol:<protocollo>
Esegue l'override del protocollo predefinito da implementare.
Scegliere fra 'SOAP', 'SOAP12', 'HttpGet', 'HttpPost'.

/username:<nomeutente>
/password:<password>
/domain:<dominio>
Credenziali da utilizzare per la connessione a un server proxy che
richiede l'autenticazione. Le forme brevi sono '/u:', '/p:' e '/d:'.

/proxy:<url>
URL del server proxy da utilizzare per le richieste HTTP.
Per impostazione predefinita viene utilizzata l'impostazione proxy del
sistema.

/proxyusername:<nomeutente>
/proxypassword:<password>
/proxydomain:<dominio>
Credenziali da utilizzare per la connessione a un server proxy che
richiede l'autenticazione. Le forme brevi sono '/pu:', '/pp:' e '/pd:'.

/appsettingurlkey:<chiave>
Chiave di configurazione da utilizzare nella generazione del codice per
leggere il valore predefinito della proprietà Url. L'impostazione
predefinita prevede di non leggere dal file di configurazione.
La forma breve è '/urlkey:'.

/appsettingbaseurl:<urldibase>
URL di base da utilizzare per calcolare il frammento di URL.
Deve essere specificata anche l'opzione appsettingurlkey.
Il frammento di URL è il risultato del calcolo dell'URL relativo da
appsettingbaseurl all'URL nel documento WSDL.
La forma breve è '/baseurl:'.

/parsableerrors
Visualizza gli errori in un formato simile a quelli segnalati dai
compilatori.

- AVANZATE -

/server
Opzione server obsoleta. Utilizzare invece /serverInterface.
Genera una classe astratta per l'implementazione di un servizio Web
XML mediante ASP.NET basato sui contratti. Per impostazione
predefinita vengono generate classi proxy client.

/serverInterface
Genera interfacce per l'implementazione sul lato server di un servizio
Web ASP .NET. Viene generata un'interfaccia per ogni associazione
nei documenti wsdl. Il contratto WSDL è definito dal documento WSDL
stesso (le classi che implementano l'interfaccia non dovrebbero
includere i seguenti elementi nei metodi di classe: attributi del
servizio Web o attributi di serializzazione che modificano il contratto
WSDL). La forma breve è: '/si'.

/parameters:<file>
Legge le opzioni della riga di comando dal file XML specificato.
In questo modo è possibile specificare opzioni non disponibili
dalla riga di comando, ad esempio scegliere il tipo di modello di
programmazione asincrono generato. Per informazioni, vedere
la documentazione dello strumento. La forma breve è '/par:'.
*====================================================================*

Se guardi bene mi sembra che oltre agli xsd puoi dare l'url del wsdl che credo non sarebbe altro che l'indirizzo del ws (suppongo sempre) hai già provato così?

Oltretutto anche se dagli xsd ottieni un DataSet cosa te ne fai? Non puoi di certo ribaltare i dati di risposta brutalmente così. A meno che non cerchi di prendere l'output brutale e salvarlo in locale come xml e poi provare a lavorarci.. ma non so se possa funzionare...

Vincenzo
Programmatore sbilenco
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5