Avatar billede hrc Mester
08. april 2011 - 10:12 Der er 10 kommentarer og
1 løsning

Validere XML udfra WSDL

Jeg er nærmest beskæmmende nybegynder udi .NET men har opgaven: En SOAP-requests XML skal valideres imod en WSDL-fil inden den sendes. Jeg antager at der findes klasser der kan validere og returnere oplysninger på hvor det eventuelt fejler, men .NET er mig stadig stort og uoverskueligt.

Er der en som kan give mig nogle fingerpeg på den rigtige tilgang? Altså hvilke klasser der kan den slags og evt. et par små eksempler.

... nej. Jeg har endnu ikke noget relevant kode at vise frem.
Avatar billede arne_v Ekspert
08. april 2011 - 15:26 #1
Hvorfor genererer du ikke en stub med wsdl/svcutil, saa bliver det sendte jo automatisk korrekt.
Avatar billede hrc Mester
08. april 2011 - 16:17 #2
Hej Arne. Håbede lidt du dukkede op. Jeg skulle lige hitte ud af hvad du mente med STUB (altså generere kode vha. WSDL-import), som Delphi-mand er jeg lidt på uvant område.

Jeg kan godt følge dig, men meningen er, at koden skal kompileres én gang, men håndtere, at WSDL-filen opdateres. Programmet kan håndtere at fiske de ønskede data ud af databasen fordi det konfigureres vha. XML-filer.

Jeg ved ikke helt om jeg bryder mig om konstruktionen, men det er efter specifikation og det vil være en fordel at komme væk fra den manuelle validering vi har nu.
Avatar billede arne_v Ekspert
08. april 2011 - 20:09 #3
Jeg tror stadig ikke at jeg har forstaaet problemet.

Lad os tage et super simpelt eksempel.

Du har en web service som bruger 2 int og den skal aendres til at bruge 2 double.

Med generering af stub:
- du retter client koden til at bruge double i.s.f. int
- du builder (build starter med at generere en ny stub)

Manuelt:
- du retter client koden til at bruge double i.s.f. int
- du retter XML genereringen
- du retter XML validering
- du builder

Jeg har lidt svaert ved at tro at du kan kalde en aendret web service uden at rette og rebuilde din kode.
Avatar billede arne_v Ekspert
08. april 2011 - 20:10 #4
Men ellers indeholder en WSDL (i document mode) nogle helt normale schemaer som boer kunne fiskes ud og bruges til validering.
Avatar billede hrc Mester
09. april 2011 - 11:23 #5
.. men jeg vil kun builde én gang.

Alt dynamikken skal ligge i WSDL og XML-filer. I princippet skulle den kunne tage en vilkårlig WSDL og trække data ud af databasen (vha. def i XML), generere en SOAP og sende den afsted - men der skal være en validering op mod WSDL'en et sted.
Avatar billede arne_v Ekspert
09. april 2011 - 22:49 #6
Du kommer stort set til at bygge dit eget sprog og fortolker. Var det ikke nemmere at lade in C# kode kalde noget kode i et dynamisk typed .NET sprog?
Avatar billede hrc Mester
10. april 2011 - 10:01 #7
WSDL'en kommer fra anden part og det er deres luner vi må håndtere lettest muligt. Dvs. hvis de kommer med en ny WSDL så vil vi blot rette i XML-filen der definerer hvorfra programmet skal hente data (den del eksisterer). Meningen er netop at vi skal skrotte den kodede validering vi har nu, og skyde valideringen over på noget .NET-noget.

Man kan gratis hente en samling DLL'er fra Altova (XmlSpy) hvori det virker som den slags understøttes; har dog ikke undersøgt det nok da jeg helst ikke vil blande Win32 og .NET sammen.
Desuden regnede jeg med, at hvis der fandtes et "sprog" der understøttede validering af XML på kryds og tværs, så var det .NET. Forventede noget a la XMLDocument.ValidateAgainstWSDL(URL/Path); derfor de ydmyge 30 points.
Avatar billede hrc Mester
10. april 2011 - 10:03 #8
Denne applikation skal ligge hos vores kunder og skal helst være en homogent løsning vi stort set kan glemme når den er kørende.
Avatar billede spaceus Nybegynder
11. april 2011 - 21:56 #9
Hvis jeg har forstået problemet så er det du ønsker at gøre at validere et xml request ifht. WSDL'ens XSD noget ala det han gør her

http://www.codeguru.com/csharp/csharp/cs_data/xml/article.php/c6737

Eller?
Avatar billede hrc Mester
12. april 2011 - 14:48 #10
spaceus: Ja tak, det var lige sådan noget jeg (vi) prøver. Man må kunne udtrække xsd-delen (for det er vel det det er) af en WSDL-fil og så validere derfra.

Læg et svar tak.
Avatar billede spaceus Nybegynder
14. april 2011 - 21:27 #11
xsd url vil jo typisk fremgå af wsdl filen så det vel bare at hente den og validere
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester