1--TEST--
2Auto-registration of namespaces in XSL stylesheet with new DOM
3--EXTENSIONS--
4dom
5xsl
6--FILE--
7<?php
8
9$sheet = DOM\XMLDocument::createFromString(<<<XML
10<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
11    xmlns:php="http://php.net/xsl"
12    xmlns:str="http://exslt.org/strings"
13    xmlns:xsdl="http://www.w3.org/1999/XSL/Transform">
14    <xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
15    <xsl:template match="/root">
16        <xsl:value-of select="php:function('strtoupper', string(./hello))"/>
17        <xsl:value-of select="test:reverse(string(./hello))"/>
18    </xsl:template>
19</xsl:stylesheet>
20XML);
21
22// Make sure it will auto-register urn:test
23$sheet->documentElement->append($sheet->createElementNS('urn:test', 'test:dummy'));
24
25$input = DOM\XMLDocument::createFromString(<<<XML
26<root>
27    <hello>World</hello>
28</root>
29XML);
30
31$processor = new XSLTProcessor();
32$processor->importStylesheet($sheet);
33$processor->registerPHPFunctions();
34$processor->registerPHPFunctionNS('urn:test', 'reverse', 'strrev');
35echo $processor->transformToXML($input), "\n";
36
37?>
38--EXPECT--
39WORLDdlroW
40