Paul: PHP DOM, welche Elemente sind Pflichtfelder laut xsd?

Beitrag lesen

Hi!

kann man, wenn man ein xml-file und dessen xsd-file hat, per PHP DOM herausfinden welche Elemente im xml Pflichtfelder sind? Und wenn ja, wie?

Ein XML-Schema-Dokument ist auch nichts weiter als ein XML-Dokument welches man parsen und auf das man XPath anwenden kann.

Klar. Aber Tagnamen können gleich sein. D.h. man kann wenn nach dem Tag "Bezeichnung" gesucht wird keinen xpath wie "//*/Bezeichnung" angeben.
Und wenn man den Pfad ganz ausschreibt sieht das so aus:

Für xsd:
/xs:schema/xs:complexType/xs:sequence/xs:element/xs:complexType/xs:sequence/xs:element/xs:complexType/xs:sequence/xs:element[@name="Bezeichnung"]

Für xml:
/meinNS:profil/meinNS:Titeldaten/meinNS:TK/meinNS:Bezeichnung

Wie soll man das vergleichen?

Ganz wild wird's dann noch, wenn man die XSD's auf mehrere Dateien aufgeteilt hat und mit Namespaces arbeitet.