Re: [xsl] Transform xhtml to xhtml, convert one tag to another, while preserving rest of file
Subject: Re: [xsl] Transform xhtml to xhtml, convert one tag to another, while preserving rest of file
From: "Peter O." <xolox@xxxxxxx>
Date: Tue, 08 Feb 2005 17:57:38 +0100
|
Lots of questions about namespaces and behavior related to it that I
don't understand, but if you don't feel like explaining the namespace
thing and think I should just look it up: ok, you're right. I will. :-)
Thanks to both Wendell Piez & Joris Gillis for pointing out that
elements inherit parent elements' namespaces. (is this the correct way
of defining this behavior?)
Because you both mentioned namespaces, I looked through my source and I
discovered that I hadn't even included the XHTML namespace in my (X)HTML
documents root tag (<html>)... Quickly added it, to be sure I was
correct and on line with both your expectations :-).
Then I thought, 'Hey, wait a sec, if there was no namespace before, the
template should have matched...' Right? The XHTML documents did include
the doctype definition, but for as far as I know this doesn't mean that
all elements are in the XHTML namespace, or is this infact the case?
Hehe, nevermind, getting off-topic here, guess I should just read about
namespaces some more.
Anyways, added namespace, adjusted template, as you both suggested, but
things did not work out ok. :(
The document stays the same (well, not exactly: read on), except of
course the added namespace in the source xhtml documents root (<html>)
appears.
But there's something else. Almost all of the elements in my page now
appear with the empty attribute xmlns, like:
<p xmlns=""></p>
for example. Why is this? Doesn't seem logical at all. But the strangest
thing -to me anyway- is that some elements do, and some elements don't
get the attribute. Every <p> element does, but for example <em> does
not. I got so far (with help of the XHTML Recommendation) that it seems
block elements (h1-h6, div, etc) do, and inline (em, strong, etc) don't
include this empty attribute, and empty elements (hr) don't get it
either. Why does Xalan do this? Never seen/heard about this behavior before.
Ok, sorry about all the namespace stuff, back to the original subject:
it still doesn't work. The XHTML namespace is now present in both the
XHTML source files and the XSL file that processes them. I've also
changed the template to match "xhtml:reference". Anything I could have
missed?
Maybe I should post the files on the web so someone (with a lot of time
on his/her hands and a very helpful attitude) could take a look at them.
Sorry for the long text, I'm not that good at summarising. And thanks a
lot for your attention and help so far! I really appreciate it! Don't
think I could have solved this on my own. Seems I'm still a total newbie
in the land of XSL :-).
- Peter Odding