Subject: RE: Help in extracting namespace prefix of targetNamespace [SEC=UNCLASSIFIED]
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 2 Jun 2008 09:02:59 +0100
|
> I have this schema header below:
>
> <xs:schema
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:bbbcore="http://www.abcde.com/Namespace/bbb/Core/V1.0"
> xmlns:aaacore="http://www.abcde.com/Namespace/aaa/Core/V1.0"
> xmlns:aaa="http://www.abcde.com/Namespace/aaa/Service/V1.0"
> targetNamespace="http://www.abcde.com/Namespace/aaa/Service/V1.0"
> elementFormDefault="qualified"
> version="1.0"
> xml:lang="en">
>
> I would like to extract the namespace prefix "aaa" from xmlns:aaa="
> http://www.abcde.com/Namespace/aaa/Service/V1.0" or in short
> I would like to be able to extract the namespace prefix of
> the targetNamespace. Thanks in advance!
>
With XSLT 1.0 or a 2.0 system that supports the sadly-deprecated namespace
axis, and with the xs:schema element as the context node, you can use
name(namespace::*[. = current()/@targetNamespace])
Without the namespace axis it becomes
in-scope-prefixes(.)[namespace-uri-for-prefix(.) =
current()/@targetNamespace]
Michael Kay
http://www.saxonica.com/
|