ID: 50201 Updated by: rricha...@php.net Reported By: a dot testa at wifisolution dot it -Status: Open +Status: Bogus Bug Type: DOM XML related Operating System: linux PHP Version: 5.2.11 New Comment:
Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php createElement is level 1 non-namespace aware method. Use level 2 createElementNS method for all elements and create them in the urn:ietf:params:xml:ns:epp-1.0 namespace. Previous Comments: ------------------------------------------------------------------------ [2009-11-17 11:30:48] a dot testa at wifisolution dot it here sample code that can reproduce the problem class DOMDocument_NIC extends DOMDocument{ public function isValid_onfile(){ $tempFile = time() . '-' . rand() . '-xmlvalidation.tmp'; $this->save($tempFile); // Create temporary DOMDocument_NIC and re-load content from file. $tempDom = new DOMDocument(); $tempDom->load($tempFile); // Delete temporary file. if (is_file($tempFile)){ unlink($tempFile); } return $tempDom->schemaValidate('hosting_epp_nic_it/epp-1.0.xsd'); } public function isValid_onfly(){ return $this->schemaValidate('hosting_epp_nic_it/epp-1.0.xsd'); } } $doc = new DOMDocument_NIC('1.0', 'UTF-8'); $doc->xmlStandalone='no'; $xml_epp = $doc->createElementNS("urn:ietf:params:xml:ns:epp-1.0",'epp'); $doc->appendChild($xml_epp); $xml_epp->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); $xml_epp->setAttributeNS('http://www.w3.org/2001/XMLSchema-instance' ,'xsi:schemaLocation', 'urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd'); $xml_command = $doc->createElement('command'); $xml_epp->appendChild($xml_command); $xml_login = $doc->createElement('logout'); $xml_command->appendChild($xml_login); $xml_cltrid = $doc->createElement('clTRID',"123456"); $xml_command->appendChild($xml_cltrid); //$response = new DOMDocument_NIC(); //$response->loadXML($xml); echo htmlentities($doc->saveXML())."<br />"; echo "Valido on File: ".$doc->isValid_onfile(); echo "Valido on Fly: ".$doc->isValid_onfly(); ------------------------------------------------------------------------ [2009-11-17 10:11:27] rricha...@php.net Thank you for this bug report. To properly diagnose the problem, we need a short but complete example script to be able to reproduce this bug ourselves. A proper reproducing script starts with <?php and ends with ?>, is max. 10-20 lines long and does not require any external resources such as databases, etc. If the script requires a database to demonstrate the issue, please make sure it creates all necessary tables, stored procedures etc. Please avoid embedding huge scripts into the report. ------------------------------------------------------------------------ [2009-11-17 09:48:59] a dot testa at wifisolution dot it Description: ------------ php fails to validate a xml against a xsd. the xml is build with the DOM interface. the function schemaValidate returns true if i load the document from a file but not with the same document created on the fly. as workaround i can create the document, write it on a file, load againt and then validate. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=50201&edit=1