RE: [xsl] Resolving QName with XSLT 1.0

Subject: RE: [xsl] Resolving QName with XSLT 1.0
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 1 Dec 2004 15:14:54 -0000
The namespace URI is

string(namespace::*[name()=substring-before(@xsi:type, ':')])

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Chizzolini Stefano [mailto:chist@xxxxxx] 
> Sent: 01 December 2004 14:35
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Resolving QName with XSLT 1.0
> 
> Hi all
> 
> I'm attempting to construct an xpath expression to select in 
> my xml instance
> a document element whose category subelement attribute 
> xsi:type matches a
> QName (say: "eur:invoice"), as follows:
> 
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <documents
> xmlns="http://www.aaa.it/consulta/xdmModel";
> xmlns:eur="http://www.aaa.it/europa/xdm";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> version="1.0">
>  <document id="kjsdlkj">
>   <category xsi:type="eur:invoice">
>    [...]
>   </category>
>  </document>
>  [...]
> </documents>
> 
> My question is: as the QName is not a simple literal (you know: the
> namespace prefix isn't relevant by itself), how can I be sure that my
> predicate matches "eur:invoice" as an expanded name
> ({http://www.aaa.it/europa/xdm}invoice) instead of the arbitrary
> "eur:invoice" string?
> Keep in mind that I'm using MSXML4 (XSLT 1.0 support), so it 
> seems not to be
> available the resolve-QName function described in the XSLT 2.0 spec
> (http://www.w3.org/TR/xpath-functions/#func-resolve-QName).
> 
> What could I do in this case?
> 
> Many thanks
> 
> Stefano

Current Thread