14. januar 2004 - 10:57Der 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"..."?
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 ;-)
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.
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
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.
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 ??
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.
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.
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]
Synes godt om
Ny brugerNybegynder
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.