Re: [xsl] missing xsi: before schemaLocation in the result xml file.

Subject: Re: [xsl] missing xsi: before schemaLocation in the result xml file.
From: Abel Braaksma <>
Date: Fri, 13 Oct 2006 01:35:57 +0200
Lin, Jessica wrote:
I didn't use <xsl:apply-templates select="*"/> in my xslt file.

Well, there's a lot more you can do that mixes things up. I was just giving a possible example.

I tried
to run the simplified xml and xslt files but I still got the same
result. Here are my simplied xml and xslt files. Could you please take a
look at them?

They contain invalid pieces and cannot be run. This is not allowed:

<xsl:template match="*:boot_object">

What were you trying to do? The '*' is not just a wildcard for a piece of a qname, it is a node selector.

If you wanted to match all namespaces, then this is not the right syntax. Instead use a suffix from your xslt root element, or set the xpath-default-namespace in either the root or in the xsl:template element. To match any namespace, there are other ways.

If your processor somehow allowed this syntax, then this is the moment to reveal what processor you are using and what version and with what parameters you call your processor. I modified your sample to match the boot-object etc, and when run with Saxon 8.8, it clearly shows the 'xsi' prefix on the schemaLocation. Here's my output.

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="";
xsi:schemaLocation=" ..\xsd\Blueprint.xsd"
<boot_object key="bo1">
<root_category_system_object_id ref="cso1"/>

Cheers -- Abel Braaksma

Current Thread