mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
The xmlDOMWrapReconcileNamespaces method we used to fix the namespace corruption issues in 8.1.21/8.2.8 caused regressions. Primarily, there is a similar corruption that the xmlReconciliateNs method used to have in which a namespace is suddenly shifted (SAML-Toolkits/php-saml#562) and the side-effect of removing redundant namespaces causes problems when a specific serialization is required. Closes GH-12308.
28 lines
772 B
PHP
28 lines
772 B
PHP
--TEST--
|
|
DOM: specific namespace behaviour for applications with fixed serialization requirements
|
|
--EXTENSIONS--
|
|
dom
|
|
--FILE--
|
|
<?php
|
|
|
|
$dom1 = new DOMDocument();
|
|
$dom1->loadXML(<<<XML
|
|
<wsse:Security xmlns:wsse="foo:bar">
|
|
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
|
|
</ds:Signature>
|
|
</wsse:Security>
|
|
XML);
|
|
$dom2 = new DOMDocument();
|
|
$dom2->loadXML('<xml><child/></xml>');
|
|
$wsse = $dom2->importNode($dom1->documentElement, true);
|
|
$dom2->firstChild->firstChild->appendChild($wsse);
|
|
echo $dom2->saveXML();
|
|
|
|
?>
|
|
--EXPECT--
|
|
<?xml version="1.0"?>
|
|
<xml><child><wsse:Security xmlns:wsse="foo:bar" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
|
|
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
|
|
</ds:Signature>
|
|
</wsse:Security></child></xml>
|