Subject: RE: matching namespace declaration
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 28 Sep 2004 14:49:13 +0100
|
Firstly, namespace declarations don't appear as attributes in the XPath data
model, so you can't find them on the attribute axis (which is where you are
looking when you write @x).
Secondly, there's no point doing this in a predicate, because your match
pattern match="meta:htmldescription" won't match unless the namespace is
correct.
If you want you could add a template rule:
<xsl:template match="*[local-name() = 'htmldescription']" priority="0.9">
<xsl:message>The htmldescription element is in the wrong
namespace</xsl:message>
</xsl:template>
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Jean-Roch Meurisse [mailto:jrm@xxxxxxxxxxxxxxxx]
> Sent: 28 September 2004 14:37
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: matching namespace declaration
>
> Hi everybody,
>
> We have a bunch of documents with the following structure
>
> <meta:htmldescription xmlns:meta="http://www.cetic.be/retroweb">
> <meta:element>....</meta:element>
> ...
> <meta:element>...</meta:element>
> </meta:htmldescription>
>
> We want to transform these documents using xslt and would
> like to check at
> the same time that they have the correct namespace declaration.
> We tried with the following template but it doesn't work
>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0" xmlns:meta="http://www.cetic.be/retroweb">
> <xsl:output method="xml" indent="yes"/>
> <xsl:template match="meta:htmldescription[@xmlns:meta =
> 'http://www.cetic.be/retroweb'">
> <root>
> <xsl:apply-templates/>
> </root>
> </xsl:template>
> ...
> </xsl:stylesheet>
>
> can somebody help us
>
> Thanks in advance
|