Thomas Mell: Fragen zu XML-Namensräume

Beitrag lesen

Hi Thomas,

An welche Art von Regel hättest du denn dabei geadacht?

Hallo,
ich bin momentan dabei für Validome einen RSS/RDF – Validator zu proggen.
In einigen Versionen (1.0, 2.0, Atom) gibt es Module um die Grundversionen um zusätzliche Funktionen zu bereichern. Das ganze läuft über ordinäres XML und die Module werden per Namensräume eingebunden. So weit so gut (oder eher schlecht).
Da ich bisher keinen brauchbaren Schemaparser (DTD’s scheiden wegen teilweiser komplexer Regeln und zu prüfende Datentypen aus) gefunden habe der sowohl unter Linux als auch Windows läuft, der Mehrsprachig und auch noch mit PHP zu „bedienen“ ist, habe ich mir einen eigenen Schemaparser in PHP geschrieben (ist sogar recht schnell).
Es handelt sich dabei um eine abgespeckte Version, der nur die Dinge unterstützt die für meine Bedürfnisse benötigt werden.
Nun hänge ich an diesen blöden Modulen rum und weiß nicht so recht wie ich mit den Namenräumen umgehen soll. Es ist kein Problem zu sagen das Tag X aus Namensraum Y im Tag Z des Hauptdokumentes vorkommen darf/muss – einmal/mehrmals etc. blabla.
Nun sind mir aber Beispiele untergekommen in denen mehrerer Namensräume verschachtelt sind, z.B. im ersten Beispiel bei http://web.resource.org/rss/1.0/modules/dc/.
Kann man das überhaupt in Regeln fassen oder muss man jedes Namensraum-Tag in jeden anderen Namensraum-Tag erlauben? Ersteres dürfte kaum umzusetzen sein da es Unmengen von Möglichkeiten gibt, schließlich „kennen“ sich die Module (bzw. Namensräume) untereinander nicht. Wie soll ein Tag in Schema X auch „wissen“ das es in einem Tag in Schema Y erlaubt ist?  Das dumme ist auch das es zu fast allen Modulen keine Schemata existieren und ich mir die erst mal selber anlegen muss. In Bezug auf das Hauptdokument sind die Regeln klar aber wie verhält sich das in den Namensräumen untereinander?

Grüße
Thomas