> From: Joerg Heinicke > Sent: Wednesday, May 26, 2004 1:31 PM > To: [EMAIL PROTECTED] > Subject: Re: XHTMLSerializer and empty 'xmlns' attributes > > On 26.05.2004 18:09, Matt Walter wrote: > > I'm using the following: > > > > FileGenerator -> XSLTTransfomer -> XHTMLSerializer > > > > Each time <xsl:call-template> is encountered, the > Serializer places an > > empty "xmlns" attribute in the first tag it outputs, for example: > > > > <div xmlns="" id="bannerBlock"> > > > > All subsequent tags are fine until <xsl:call-template> is > encountered > > again, at which point I get the empty 'xmlns' attribute again. > > > > Though this doesn't bother me, I've been asked to see if I > can prevent > > this from happening. Any ideas? > > You must fix your stylesheet. While the elements out of those named > templates create elements in a default namespace (probably xhtml > namespace), the named template don't do it, so the serializer > must reset > the default namespace. > > http://www.w3.org/TR/REC-xml-names/ with main point in chapter 5. > > Joerg
To spell it out in more detail, your xhtml output is supposed to be in the xhtml namespace, and perhaps the outer part of it (<xhtml:html>, <xhtml:head>, etc.) is. In general these are serialized with xhtml as the default namespace: <html xmlns="...xhtmlNamespaceURI..."> <head> ... However the template that is being called with call-template is producing <div>'s that are in no namespace, so they can't be serialized as just plain <div> in the above context. The fix is to make sure the <div>'s are in the xhtml namespace. In other words, in your called template, instead of <div> say <xhtml:div> Lars --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]