RE: [xsl] invoking template for other namespace elements in mixed namespace scenario (sample XML & XSL)

Subject: RE: [xsl] invoking template for other namespace elements in mixed namespace scenario (sample XML & XSL)
From: "SANWAL, ABHISHEK (HP-Houston)" <abhishek.sanwal@xxxxxx>
Date: Wed, 8 Sep 2004 11:00:14 -0500
Apologies :). Let me clarify it a little.

The thing is the XHTML elements are not prefixed by xhtml in the data
that is made available from InfoPath. Does that mean it lies in the null
namespace?

I am not sure if that is true or not for xhtml elements inside a
container of elements that are under the my:namespace.

XML Root Element:

my:Root

These are the namespaces as available in the XML made available from
InfoPath.

XML Namespaces:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:xhtml="http://www.w3.org/1999/xhtml";
xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2004-0
8-25T18:09:45"
xmlns:xd="http://schemas.microsoft.com/office/infopath/2003";
xml:lang="en-us"

These are the XPaths for the elements under the object
my:SectionContent:

/my:Root/my:SubRoot/my:SectionContent/div
/my:Root/my:SubRoot/my:SectionContent/ul

>From my calling template...

<xsl:template match="my:SectionContent">
<xsl:comment>SectionContent Starts</xsl:comment>

..... ( This is where I want to invoke the following templates )

<xsl:comment>SectionContent Ends</xsl:comment>
</xsl:template>


.... I basically want to invoke the following templates...that handle
the non-namespace prefixed xhtml elements (Another FYI - there is not a
proper XHTML structure created by InfoPath. i.e. InfoPath does not
create HTML, HEAD, TITLE, BODY, and other higher level elements. The
Blob contains HTML elements that are well-formed. They may or may not be
XHTML Schema Valid)

Do I need to prefix these templates with xhtml: ??

<xsl:template match="table">
...
</xsl:template>
<xsl:template match="colgroup">
..
</xsl:template>
<xsl:template match="col">
...
</xsl:template>
<xsl:template name="column">
...
</xsl:template>
<xsl:template match="tbody">
...
</xsl:template>
<xsl:template match="tr">
...
</xsl:template>
<xsl:template match="td|th">
...
</xsl:template>
<xsl:template match="h1|h2|h3|h4|h5|h6">
...
</xsl:template>
<xsl:template match="div">
...
</xsl:template>
<xsl:template match="p">
...
</xsl:template>
<xsl:template match="span">
...
</xsl:template>
<xsl:template match="font">
	<xsl:apply-templates select="node()"/>
</xsl:template>
<xsl:template match="ul|ol">
...
</xsl:template>
<xsl:template match="li">
...
</xsl:template>
<xsl:template match="i | em">
...
</xsl:template>
<xsl:template match="b | strong">
...
</xsl:template>

Thanks,

Abhishek

____________________________________________________________

Abhishek Sanwal
HP - Houston Campus
........................................................................
....

-----Original Message-----
From: Jarno.Elovirta@xxxxxxxxx [mailto:Jarno.Elovirta@xxxxxxxxx]
Sent: Wednesday, September 08, 2004 2:14 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] invoking template for other namespace elements in
mixed namespace scenario (sample XML & XSL)

Hi,

> 	<xsl:template match="my:SectionContent">
> 		<xsl:comment>SectionContent Starts</xsl:comment>
> 			<xsl:apply-templates
> select="child::*[name()!=('')]"/>

"Select every child element node whose name is not an empy string". This
will match all elements, so you could might as well just use

  select="*"

> 		<xsl:comment>SectionContent Ends</xsl:comment>
> 	</xsl:template>
>
>
> Problem:
>
> I have an element SectionContent that holds a huge blob of
> XHTML. I have
> manage to create templates to handle everything in that XTHML blob.
>
> But when I want to initiate processing of the BLOB from its parent
> container SectionContent I am not able to do so. I believe this has
> something to do with the template select or the way I am
> pointing to the
> given nodes under a different namespace inside that container.

You didn't show use the templates you intend to handle the elements in
XHTML namespace. Have you prefixed the match patterns with xhtml:
prefix?

Cheers,

Jarno

Current Thread