Avatar billede djondjoe Nybegynder
14. januar 2004 - 10:57 Der er 11 kommentarer og
1 løsning

XMLSpy 2004 engine til VB6 Studio?

Jeg er igang med at lave et Visual Basic 6 program, der skal læse en xslt og en xml ind og behandle disse. Problemet er, at xslt'en er lavet med XMLSpy 2004's engine og at MSXML giver en masse fejl, når jeg prøver at assign XSLT'en til en XML. Findes XMLSpy's engine som en DOM eller andet til VB6, så jeg kan benytte denne istedet for MSXML?

Fejlene jeg får er af typen "Variable or parameter 'DT203' cannot be defined twice within the same template". Hvorfor kan det overhovedet være, at XSLT'en virker fint med en engine men ikke en anden? Er det ikke tilladt at oprette flere variabler med samme navn i en XSLT, f.eks.  "<xsl:variable name="DT203"..."?
Avatar billede nute Nybegynder
14. januar 2004 - 16:02 #1
nope ... det kan du ikke.

Du kan sagtens gemme en xsl der har flere variabler med samme navn, men når du prøver at transformere en en xml i xmlspy, så vil den også brokke sig.

det giver jo hellere ingen mening at navngive flere variabler med samme navn. hvordan ved du da hvilken af de variabler du referer til ?

Det er det samme som at du befinder dig i en forsamling der alle hedder Anders And. Hvis du råber "Anders And" der inde, så vil alle svare "her" ... det går jo ikke ;-)

/nute
Avatar billede djondjoe Nybegynder
14. januar 2004 - 16:12 #2
NEj, jeg kan sagtens gemme og transformere den med XMLSpy 2004s indbyggede XLST transformer, men når jeg vælger MSXML 3 eller 4 brokker den sig. Måske er XMLSpy mere tilgivende?
Jeg benytter en variabel i et par linier og går derefter videre uden at bruge den mere. Derfor var tanken nok, at man ligeså godt kunne genbruge variabelnavnet. Har ikke selv lavet den, så er ikke helt sikker. Sagen er blot, at der er 25 XSLT'ere kædet sammen, og nok en 8 variabler der bliver benyttet en 500 gange i alt. Så at skulle finde og erstatte nye variablenavne til alle dem er ikke sjovt. Alle "DT203" variabler skulle så ændres til, "DT203-2", "DT203-3" osv. hver gang den bliver oprettet og benyttet igen.
Avatar billede nute Nybegynder
14. januar 2004 - 16:24 #3
hvilken parser har du sat op din xmlspy til at bruge ?

"desværre" kan man ikke "genbruge" variabler i xsl. man kan ikke lægge nye værdier i en variabel der allerede er deklareret og initialiseret. Den eneste måde at gøre dette på, er at lave funktioner og bruge disse rekursivt
Avatar billede djondjoe Nybegynder
15. januar 2004 - 15:12 #4
Når det virker, XMLSpy 2004's Parser. Når det ikke virker MSXML 3 eller 4 SP2
Avatar billede nute Nybegynder
15. januar 2004 - 15:22 #5
jeg har tidligere også oplevet at XmlSpy sin indebyggede parser tillader meget "lort" ... ved ikke helt hvorfor den tillader så meget invalid kode.

Men det er helt  korrekt at du ikke kan deklarere en variabel mere end én gang.

Det du kan gøre, som et alternativ, er at lave nogle templates der optræder som variabler. det er lidt vanskelig at give et eksempel lige nu, da jeg ikke helt kender din problemstilling.

/nute
Avatar billede nute Nybegynder
15. marts 2004 - 10:02 #6
har du fået et svar du kan bruge til noget ?
Avatar billede djondjoe Nybegynder
15. marts 2004 - 10:13 #7
Findes XMLSpy's engine som en DOM til VB6?
Avatar billede nute Nybegynder
15. marts 2004 - 10:20 #8
regner med at når du skriver DOM, så mener du en plugin eller ActiveX component ?! Men jeg kan ikke forestille mig at det eksistere. Men hvorfor prøve at finde en parser der tillader "ulovlig" xsl i stedet for at skrive sin xsl ordentlig ??

/nute
Avatar billede djondjoe Nybegynder
15. marts 2004 - 10:22 #9
Fordi XSLT'erne er lavet i forvejen (ikke af mig) og er yderst omfattende, og jeg skal have det indbygget i et større VB6 program.
Avatar billede nute Nybegynder
15. marts 2004 - 10:25 #10
hmm ... det ser faktisk ud til at den er her:

http://www.altova.com/resources_xsltengine.html

jeg har ikke prøvet den (andet end et par gange i XMLSpy), men som tidligere nævnt ... jeg har oplevet at den tillader underlig xsl og den tolker i nogle tilfælde xsl'en meget underlig.

/nute
Avatar billede djondjoe Nybegynder
15. marts 2004 - 10:30 #11
Det er blot en exe fil man kan kalde med parametre. Havde forestillet mig noget ala MSXML, hvor man kan benytte den direkte i VB6 og benytte metoder og parametre. Jeg tvivler dog på, at dette findes til VB6. Synes kun, at jeg har set det til .net.
Avatar billede nute Nybegynder
15. marts 2004 - 10:41 #12
ok ... jeg kigget ikke godt nok på den, så ... troede det var en installerbar fil.

jeg tror du kan lede længe efter dette ;o]
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
Kurser inden for grundlæggende programmering

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