Re: [xsl] extended xhtml attribute with namespace not bound

Subject: Re: [xsl] extended xhtml attribute with namespace not bound
From: "Joe Fawcett" <joefawcett@xxxxxxxxxxx>
Date: Sun, 1 Jan 2006 11:54:21 -0000
----- Original Message ----- From: "Juergen Donnerstag" <juergen.donnerstag@xxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Sunday, January 01, 2006 11:23 AM
Subject: [xsl] extended xhtml attribute with namespace not bound



Hi,


I'm using Wicket to develop a web application and my (wicket extended)
html markup looks like

<?xml version="1.0" encoding="UTF-8"?>
<html
   xmlns:wicket
   xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
<body>
 <span wicket:id="myLabel">mein Label</span>
</body>
</html>

Wicket identifies relevant tags by means of the wicket:id attribute
which from a Wicket point of view can be added to any tag. Wicket is a
server side web framework and handles the tags (in this case <span>)
accordingly. The wicket team choose the separate namespace to avoid
any collisions with any html tags. A wicket dtd or schema is currently
not available.

The markup above is what I'd like to XSL transform. You'll find my
"empty" xsl file below

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:wicket="http://wicket.sourceforge.net";>

<xsl:output method="xml" omit-xml-declaration="yes"/>

<xsl:template match="/">
</xsl:template>

</xsl:stylesheet>

I'm using jdk 1.5 and this is my error message
Caused by: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException:
The prefix "wicket" for attribute "wicket:id" associated with an
element type "span" is not bound.

I think I understand the message but I don't know how to solve the
problem. I don't want to modify the XHTML dtd to include the wicket
tags, and I don't know how to write a dtd or schema which extends all
xhtml tags to allow for the wicket:id attribute. I don't even know if
that is possible/allowed at all. I guess what I need is either a way
to define the additional wicket attributes or to tell the xsl
processor to ignore the error and pass it trough unmodified.
I would very much appreciate any help.

Juergen

Your XML is not well formed because the wicket prefix has no namespace declared, i.e. it's "not bound".
This style of prefix declaration is often used in HTML, I'm not sure how valid it is, but it is not allowed in XML or XHTML. You need something like this:


<html
xmlns:wicket=http://wicket.sourceforge.net xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">


I'm not sure if this will affect the standard wicket server-side processing though.

Happy New Year

--

Joe

Current Thread