Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
XSD aus XML auslesen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
XSD aus XML auslesen


 
dominikr
15-05-2009, 19:56 
 
Hallo Zusammen,

ich möchte XML-Dateien per XSD validieren. Das ganze funktioniert, wenn ich im vorhinein weiß, welches XSD auf die XML passt.

Das Problem ist, es werden mir XML-Dateien zur Verfügung gestellt, von denen ich nicht weiß, welche das nun ist (zuordnung zur xsd).
Aber im ersten Element ist ja das Attribut z.b. xsi:schemaLocation="http://www.seite.de seite.xsd" angegeben, diese Information muss ich nun auslesen, aber nur wie?!

Gruß
Dominik

 
ezkimo
18-05-2009, 00:41 
 
Die PHP Document Object Model Extension (http://de2.php.net/manual/de/book.dom.php) bietet dafür die passenden Objekte und Methoden an. Ich würde das komplette XML Konstrukt über das DOMDocument Object einlesen und die entsprechenden Attribute der Elemente dann dadurch ermitteln.

Durch das Einlesen der XML Datei stehen Dir alle Informationen in einem Objekt zur Verfügung.

 
dominikr
05-06-2009, 10:33 
 
Danke für deinen Hinweis. Ich habe mich jetzt so langsam mit dem XML DOM angefreundet und bin nun diesen Schritt weiter gekommen.

Aber nun kommen einige Fehler :(

es schaut so aus, als ob meine XSD und die XML nicht zusammenspielen (obwohl eigentlich zusammengehörig)

Vielleicht kann mir jemand einen Tipp geben warum da was nicht passt:

die XSD
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- edited with XMLSPY v2004 rel. 3 (http://www.xmlspy.com) -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0">
<!--

und die XML
<?xml version="1.0" encoding="UTF-8"?>
<imo:openimmo xmlns:imo="http://www.openimmo.de" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openimmo.de openimmo.xsd">


wenn ich das jetzt mit $xml->schemaValidate() laufen lasse, spukt mir DOM einen Fehler aus: Error 1845: Element '{http://www.openimmo.de}openimmo': No matching global declaration available for the validation root. in file:

Viele Grüße
Dominik

 
piratos
29-06-2009, 17:43 
 
Bei OpenImmo gibt es für einen kleinen Betrag umfangreiches Material zur Nutzung der Schnittstelle.

 
dominikr
29-06-2009, 17:50 
 
Hallo,

in der Tat, es gibt Beispiele gegen Gebühr. Allerdings nehme ich fast an dass dort nichts validiert wird. Da das aktuelle Schema wohl einen Fehler enthält...
Und da mir der ganze Verein etwas komisch vorkommt habe ich kein Interesse dort Mitglied zu werden oder auch nur etwas zu investieren. Zwischenzeitlich ist ja eine Alternative zu diesem "Standard" im Entstehen.

Gruß

 
piratos
29-06-2009, 18:12 
 
Nur wenn man es nutzen möchte führt da kein Weg vorbei.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:09 Uhr.