[XML] valideren mbv XSD via DOMXML en PHP *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Na het switchen van SAX naar DOMXML heb ik dus het volgende probleem.

Ik heb het volgende xml-file:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="UTF-8"?>
<openXML username="thijs" password="vandam"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="http://www.vandam.it/newDomain.xsd">
    <domainRegistration>
        <newDomain version="1.0">
            <domain>
                <domainname/>
                <extension/>
                <period/>
            </domain>
            <handle>
                <owner-handle/>
                <admin-handle/>
                <tech-handle/>
            </handle>
            <nameserver>
                <ns-group/>
                <ns-name/>
                <ns-ip/>
            </nameserver>
        </newDomain>
    </domainRegistration>
</openXML>

De xsd ziet niet achter een beveiligde zone, de xsd is naar mijn weten ook goed. Nu heb ik dus het volgende probleem: Ik krijg dus altijd de melding dat de DTD niet kan worden gevonden door het volgende stukje code:
PHP:
1
2
3
4
5
6
  $xml_file = 'newDomain.xml';
  $doc = @xmldocfile($xml_file, DOMXML_LOAD_VALIDATING, $error);
  
  echo '<pre>';
  print_r ($error);
  echo '</pre>';



De foutmelding is dus continu de volgende, wie kan me helpen??????
code:
1
2
3
4
5
6
7
8
9
10
11
Array
(
    [0] => Array
        (
            [line] => 2
            [col] => 67
            [directory] => /home/openprov/HTML/test
            [file] => newDomain.xml
            [errormessage] => Validation failed: no DTD found !
        )
)

Bij voorbaat dank

modbreak: jaja [code=xml] werkt ook, en [php], en [quote]. Let een beetje op je layout aub ;)

[ Voor 29% gewijzigd door curry684 op 22-08-2003 17:13 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ben je zeker dat de xml ingeladen wordt (locatie juist)? anders krijg je soms wel van die exotische foutmeldingen (ik toch in asp).

Anderzijds kan je het ook eerst proberen met een simpele xml file: neem bv
<?xml version="1.0" encoding="UTF-8"?>
<root ...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="...">
<root>
<test>
</test>
</root>
Als dit werkt zit het in je xml.
Probeer zo eens verder uit te zoeken waar de fout zit.
Pas ook natuurlijk dan je xsd aan

Dus je xsd wordt iets als:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

Correct me if I'm wrong want ik gebruik niet echt veel xsd :X
...

[ Voor 48% gewijzigd door Verwijderd op 22-08-2003 16:13 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik weet 100% zeker dat de xml wordt ingelezen. Als ik namelijk de root-element en de eerste child print werkt dit gewoon prima. Wat ook werkt is gewoon de xml file openen in IE en dan wordt hij ook gevalideerd, ook volgens de XSD