[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: XSLT and Default namespaces

Subject: RE: XSLT and Default namespaces
From: "Evan Lenz" <elenz@xxxxxxxxxxx>
Date: Thu, 5 Oct 2000 17:32:29 -0700
default namespace xslt
If an element or attribute in the source document is in a namespace (whether
default or prefixed), your stylesheet *must* include a namespace declaration
corresponding to the same namespace and it *must* use a prefix as well
(whatever you want).  Even if your stylesheet itself has a default
namespace, that namespace will only be in effect for unprefixed element
names in the stylesheet, but not for names in XPath expressions or XSLT
patterns.

<snip href="http://www.w3.org/TR/xslt#qname" note="emphasis added">
2.4 Qualified Names
The name of an internal XSLT object, specifically a named template (see [6
Named Templates]), a mode (see [5.7 Modes]), an attribute set (see [7.1.4
Named Attribute Sets]), a key (see [12.2 Keys]), a decimal-format (see [12.3
Number Formatting]), a variable or a parameter (see [11 Variables and
Parameters]) is specified as a QName. If it has a prefix, then the prefix is
expanded into a URI reference using the namespace declarations in effect on
the attribute in which the name occurs. The expanded-name consisting of the
local part of the name and the possibly null URI reference is used as the
name of the object. ***The default namespace is not used for unprefixed
names.***
</snip>

Evan Lenz
elenz@xxxxxxxxxxx
http://www.xyzfind.com
XYZFind, the search engine *designed* for XML
Download our free beta software: http://www.xyzfind.com/beta


-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxx]On Behalf Of Raimond Brookman
Sent: Thursday, October 05, 2000 12:03 PM
To: xsl-list@xxxxxxxxxxxxxxxx
Subject: XSLT and Default namespaces


Hi,

I want to transform an xml document that has declared a namespace, for
example:

<?xml version="1.0" encoding="UTF-8"?>
<test xmlns="myns">
 <a>
  <b></b>
 </a>
</test>

The corresponding XSLT is:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

 <xsl:template match="/">
  <xsl:copy-of select="a/b"/>
 </xsl:template>
</xsl:stylesheet>

The resulting output document is empty.
When i dont use a default namespace and prefix the root elements in the
source document, and also declare the namespace in the XSL and use it in my
X-path, it works:

<?xml version="1.0" encoding="UTF-8"?>
<x:test xmlns:x="myns">
 <a>
  <b></b>
 </a>
</x:test>

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:x="myns">
 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

 <xsl:template match="/">
  <xsl:copy-of select="x:test/a/b"/>
 </xsl:template>
</xsl:stylesheet>

Result:
<?xml version="1.0" encoding="UTF-16"?>
<b xmlns:x="myns"></b>

So, after this lengthy introduction the following questions:
1. Is there a way to make this work without having to contantly prefix all
my xpath queries
2. Secondly, MS has come up with XDR, which is declared as follows:
    xmlns="x-schema:myschema.xdr"
    The problem is, that automatic validating happens in this case in tools
such as XML spy. I cant find a way to declare that namespace inside an XSLT
without having problems running the XLST because validation kicks in.....

Anybody know some workarounds for these things?

Grtz,
Raimond



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.