Autor Zpráva
iru
Profil
Zdravím, mám problém s validací xml souboru, který mi neprojde validací přestože se jedná o vzorový příklad, který by měl sedět. Chybová zpráva:
DOMDocument::schemaValidate() Generated Errors!
Error 1845: Element '{http://www.stormware.cz/schema/version_2/data.xsd}dataPack': No matching global declaration available for the validation root.

nemůžu přijít na to, co chybu způsobuje. Mám PHP 5.4.7 a libxml verzi 2.7.8.

validaci provádím takto:
public function validateXml($dokument){
        // Enable user error handling
        libxml_use_internal_errors(true);

        $xml = new DOMDocument();
        $xml->load($dokument);
        $tempFile = time() . '-' . rand() . '-document.tmp';
        $xml->save($tempFile);

        $tempDom = new DOMDocument();
        $tempDom->load($tempFile);

        // Delete temporary file.
        if (is_file($tempFile))
        {
            unlink($tempFile);
        }



        if (!$tempDom->schemaValidate('order.xsd')) {
            print '<b>DOMDocument::schemaValidate() Generated Errors!</b>';
            $this->libxml_display_errors();
        }
    }


zkoušela jsem i varinatu bez ukládání do tmp, nebo číst přímo data, nevalidovat soubor, ale výsledek je ve všech případech stejný. Máte někdo nějaký nápad?
iru
Profil
žádný nápad? Nebo tip kde hledat, nějaké nasměrování? Dotaz je stále aktuální, za každou reakci díky...
juriad
Profil
iru:
Ukaž to xml a xsd, ať si to kdyžtak někdo může vyzkoušet. Stejně jako ty, chybu k kódu na první pohled nevidím.
iru
Profil
juriad:

díky, xsd je tady:
www.stormware.cz/schema/version_2/data.xsd

a xml tady:

<?xml version="1.0" encoding="Windows-1250"?>
<dat:dataPack id="ob001" ico="12345678" application="StwTest" version = "2.0" note="Import Objednávky"
xmlns:dat="http://www.stormware.cz/schema/version_2/data.xsd"
xmlns:ord="http://www.stormware.cz/schema/version_2/order.xsd"
xmlns:typ="http://www.stormware.cz/schema/version_2/type.xsd" >

<dat:dataPackItem id="OBJ001" version="2.0">

<ord:order version="2.0">
<!--prijata objednavka s polozkama-->
<ord:orderHeader>
<ord:orderType>receivedOrder</ord:orderType>
<ord:numberOrder>20140505A001</ord:numberOrder>
<ord:date>2014-10-14</ord:date>
<ord:dateFrom>2014-10-14</ord:dateFrom>
<ord:dateTo>2014-10-14</ord:dateTo>
<ord:text>Objednáváme u Vás zboží dle ústní dohody</ord:text>
<ord:partnerIdentity>
<typ:address>
<typ:company>Otma a.s.</typ:company>
<typ:division>Obchodní oddělení</typ:division>
<typ:name>Petr Novák</typ:name>
<typ:city>Brno</typ:city>
<typ:street>Nová 15</typ:street>
<typ:zip>61900</typ:zip>
<typ:ico>789456</typ:ico>
<typ:dic>CZ789456</typ:dic>
</typ:address>
</ord:partnerIdentity>
<ord:paymentType>
<typ:ids>hotově</typ:ids>
</ord:paymentType>
<ord:priceLevel>
<typ:ids>Sleva 1</typ:ids>
</ord:priceLevel>
</ord:orderHeader>

<ord:orderDetail>
<!--textova polozka-->
<ord:orderItem>
<ord:text>Sestava PC</ord:text>
<ord:quantity>1</ord:quantity>
<ord:delivered>0</ord:delivered>
<ord:rateVAT>high</ord:rateVAT>
<ord:homeCurrency>
<typ:unitPrice>200</typ:unitPrice>
</ord:homeCurrency>
</ord:orderItem>

<!--skladova polozka-->
<ord:orderItem>
<ord:quantity>1</ord:quantity>
<ord:delivered>0</ord:delivered>
<ord:rateVAT>high</ord:rateVAT>
<ord:homeCurrency>
<typ:unitPrice>198</typ:unitPrice>
</ord:homeCurrency>
<ord:stockItem>
<typ:stockItem>
<typ:ids>STM</typ:ids>
</typ:stockItem>
</ord:stockItem>
</ord:orderItem>
</ord:orderDetail>


<ord:orderSummary>
<ord:roundingDocument>math2one</ord:roundingDocument>
</ord:orderSummary>

</ord:order>

</dat:dataPackItem>

</dat:dataPack>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: