Как подключить функции XPath в XSLT?
От: byleas  
Дата: 24.11.09 16:20
Оценка:
Сабж.
То ли неправильное пространство имён (хотя везде видел именно в таком виде), то ли я чего-то не понимаю.
Пример:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    <xsl:output method="xml" standalone="yes" encoding="utf-8" indent="yes"/>

    <xsl:template match="/">
        <xsl:element name="fn">
            <xsl:attribute name="empty">
                <xsl:value-of select="function-available('fn:empty')"/>
            </xsl:attribute>
            <xsl:attribute name="exist">
                <xsl:value-of select="function-available('fn:exists')"/>
            </xsl:attribute>
        </xsl:element>
    </xsl:template>

</xsl:stylesheet>


Проверял на MSXML6, xsltproc (libxml 20627, libxslt 10119 and libexslt 813)

xsltValueOf: select function-available('fn:exists')
Lookup function {http://www.w3.org/2005/xpath-functions}exists
xsltCopyTextString: copy text false
xsltValueOf: result 'false'

xslt
Re: Как подключить функции XPath в XSLT?
От: Аноним  
Дата: 25.11.09 07:00
Оценка:
Здравствуйте, byleas, Вы писали:

результат на .NET 3.5 SP 1.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<fn empty="false" exist="false" />
Re: Как подключить функции XPath в XSLT?
От: byleas  
Дата: 25.11.09 08:14
Оценка:
Судя по всему, эти функции для XPath 2.0. Но изменил stylesheet version на 2.0, проверил на MSXML — тоже не работает, а xsltproc отказывается от этой версии.

Что я делаю не так?
Re[2]: Как подключить функции XPath в XSLT?
От: Аноним  
Дата: 25.11.09 17:54
Оценка:
Здравствуйте, byleas, Вы писали:

B>Судя по всему, эти функции для XPath 2.0. Но изменил stylesheet version на 2.0, проверил на MSXML — тоже не работает, а xsltproc отказывается от этой версии.


B>Что я делаю не так?


Какие функции? здесь одн
а функция
 function-available
вот что про неё написано:
http://www.w3.org/TR/xslt#function-function-available
14.2 Extension Functions
If a FunctionName in a FunctionCall expression is not an NCName (i.e. if it contains a colon), then it is treated as a call to an extension function. The FunctionName is expanded to a name using the namespace declarations from the evaluation context.

If the XSLT processor does not have an implementation of an extension function of a particular name available, then the function-available function must return false for that name. If such an extension function occurs in an expression and the extension function is actually called, the XSLT processor must signal an error. An XSLT processor must not signal an error merely because an expression contains an extension function for which no implementation is available.

If the XSLT processor has an implementation of an extension function of a particular name available, then the function-available function must return true for that name. If such an extension is called, then the XSLT processor must call the implementation passing it the function call arguments; the result returned by the implementation is returned as the result of the function call.

основное здесь
 If the XSLT processor does not have an implementation of an extension function ...



и ещё вот
http://www.w3schools.com/xsl/func_functionavailable.asp
Re[3]: Как подключить функции XPath в XSLT?
От: byleas  
Дата: 25.11.09 18:43
Оценка:
Здравствуйте, Аноним, Вы писали:

А>основное здесь
 If the XSLT processor does not have an implementation of an extension function ...

Хорошо, а где найти XSLT процессор с поддержкой функций из XPath 2.0 (вышеупомянутых xpath-functions)?
Re[4]: Как подключить функции XPath в XSLT?
От: xzxz Ниоткуда  
Дата: 27.11.09 19:09
Оценка:
Здравствуйте, byleas, Вы писали:

B>Здравствуйте, Аноним, Вы писали:


А>>основное здесь
 If the XSLT processor does not have an implementation of an extension function ...

B>Хорошо, а где найти XSLT процессор с поддержкой функций из XPath 2.0 (вышеупомянутых xpath-functions)?

например XSLT процессор в составе .NET 3.5 SP.1
Re[5]: Как подключить функции XPath в XSLT?
От: xzxz Ниоткуда  
Дата: 27.11.09 19:17
Оценка:
а-а-а, всмысле с поддержкой вот этих
fn:empty, fn:exists
?
а что это за функции? откуда информация что они из XPath 2.0?

з.ы. вот эта ссылка http://www.w3.org/TR/xslt#function-function-available — описание только функции
function-available

я-то решил что вопрос по ней. что ты в нее не подсунь — она отработает с результатом true/false
Re[6]: Как подключить функции XPath в XSLT?
От: xzxz Ниоткуда  
Дата: 27.11.09 19:23
Оценка: 12 (1)
Здравствуйте, xzxz, Вы писали:

да действительно это
X>
X>fn:empty, fn:exists
X>

из XPath 2.0

тогда похоже вот http://saxon.sourceforge.net/
и там
Current releases
Saxon-EE 9.2
The commercial Enterprise Edition from Saxonica Limited, supporting XSLT 2.0, XPath 2.0, XQuery 1.0, and XML Schema 1.0, together with early support of draft specifications XQuery Update 1.0, XQuery 1.1, XSD 1.1, and XSLT 2.1. 

Note that although the download files are linked below, they cannot be used without first obtaining license from the Saxonica site

Information, Evaluation, and Purchasing 
Download for Java (2.9Mb) 
Download for .NET (7.3Mb) 
Documentation and samples (13.1 Mbytes) 
Source code for Saxon-HE 9.2.0.3 (3.0 Mbytes)


т.е. есть сборки для .NET и Java
Re: Как подключить функции XPath в XSLT?
От: xzxz Ниоткуда  
Дата: 27.11.09 19:32
Оценка:
Здравствуйте, byleas, Вы писали:

как увлекает тема...

вот еще — совсем позабыл — "MVP XML Project" — мы же его сами же в проектах и используем.
вроде нормальная весчь.
Re[5]: Как подключить функции XPath в XSLT?
От: Lloyd Россия  
Дата: 27.11.09 20:10
Оценка:
Здравствуйте, xzxz, Вы писали:

B>>Хорошо, а где найти XSLT процессор с поддержкой функций из XPath 2.0 (вышеупомянутых xpath-functions)?


X>например XSLT процессор в составе .NET 3.5 SP.1


В составe .NET 3.5 SP.1 нет поддержки XPath 2.0
Re[7]: Как подключить функции XPath в XSLT?
От: byleas  
Дата: 28.11.09 16:44
Оценка:
Здравствуйте, xzxz, Вы писали:

X>тогда похоже вот http://saxon.sourceforge.net/

О! Благодарю, оно.

X>вот еще — совсем позабыл — "MVP XML Project" — мы же его сами же в проектах и используем.

Эта ссылка на XInclude, а на главной странице редирект на дорвей какой-то.
Re[8]: Как подключить функции XPath в XSLT?
От: xzxz Ниоткуда  
Дата: 30.11.09 06:25
Оценка:
Здравствуйте, byleas, Вы писали:

http://www.codeplex.com/MVPXML
http://sourceforge.net/projects/mvp-xml/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.