Avatar billede davidfossil Nybegynder
23. november 2006 - 11:15 Der er 4 kommentarer og
1 løsning

Undgå namespace deklarationer i output

Jeg har et XSLT stylesheet som omformer noget XML til XHTML indeholdende diverse ASP.NET elementer som har et asp: prefix. For at kunne deklarere disse elementer i min XSLT har det været nødvendigt at tilføje en namespace declaration xmlns:asp="whatever" til min xsl:stylesheet.

I mit output vil jeg gerne beholde asp: prefixet, men jeg ønsker ingen xmlns:asp deklaration. I mit nuværende stylesheet klistres denne deklaration på det første og bedste element i mit output.

Jeg ønsker ingen xmlns: attributter i mit output overhovedet, men jeg vil gerne beholde min asp: prefixes. Kan jeg det?

På forhånd tak :)
Avatar billede Slettet bruger
23. november 2006 - 12:35 #1
Velkommen til een af Microsofts fuldstændig hovedløse implementationer. :-)

Det har altid irriteret mig gevaldigt at det der asp: ikke er et rigtigt Namespace-prefix - for hvad f***en er ideen så?

Jeg tror ikke du kan slippe for den namespace definition, da din XSLT processor jo kun gør hvad den er blevet bedt om af XSLT-specifikationen :-)

Du må nok strippe den manuelt hvis den absolut ikke må være der... alternativt er den jo et godt sted at efterlade et "æg" til folk der lurer i koden - f.eks.:

<html xmlns:asp="http://it.dont.mean.a.thing.if.it.aint.got.that.swing">...

/CS
Avatar billede christian Nybegynder
23. november 2006 - 12:59 #2
Har glemt at indsætte asp i exclude-result-prefixes?

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:asp="http://asp"
  xmlns:nummer2="http://nummer2"
  exclude-result-prefixes="asp nummer2">
Avatar billede davidfossil Nybegynder
23. november 2006 - 13:26 #3
greystate > Det er hvad jeg frygter - indtil videre stripper jeg jeg det væk med en replace, men det er det ærgeligt at det ikke kan gøre pænere. Er helt enig i at det er bizart at MS ikke har valgt at gøre markup-delen af ASP.NET til rigtig XML.

christian > Har prøvet det, men så kommer namespace deklarationen bare senere i mit markup (direkte på det elementer som bruger asp: prefixet).
Avatar billede christian Nybegynder
23. november 2006 - 13:40 #4
Ser slutbrugeren namespacet?

Altså din xml kører vel gennem .net hvor at ASP.NET elementerne bliver omdannet til html
Avatar billede davidfossil Nybegynder
23. november 2006 - 14:22 #5
xmlns:asp="http://asp" bliver klistrer på det yderste tag for hver enkel asp.net kontrol i den endlige html-markup =\
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