Hallo Thomas,
... weshalb ich überlegen würde, ob die beliebige Reihenfolge der Elemente wirklich ein unverzichtbares Kriterium sei.
Die Vorgaben sind leider so.
Es handelt sich um den kommenden RSS-Validator von Validome.
Momentan sitze ich an den Specs von Atom 0.3
(http://www.pacificspirit.com/atom/atom3-do.xsd ??)
Aber wieso eigentlich 0.3?
Es gibt zu 1.0 ein RELAX NG (compact)-Schema, vielleicht hilft dir das?
[linkl:http://www.atompub.org/rfc4287.html]
So wie das aussieht werde ich dafür wohl ein "weiches" Schema machen müssen und anschließend mit DOM per Hand nachbessern müssen.
Hast Du vieleicht eine Idee ? Es währe kein Problem ein Dokument mehrmals mit DTD's und/oder Schemata (mit DTD's währe es besser, da performanter und die Parsermeldungen Userfreundlicher sind) zu validieren, da die Dokumente i. d. R. nicht sehr groß sind.
DTD wäre/ist schlicht nicht möglich, denn wenn jemand Elemente aus einem anderen Namesraum als "atom" verwendet, wird der Feed nie im Leben gültig nach der DTD.
Und noch ne Frage.
Es besteht u.a. bei Atom 0.3 die Möglichkeit "Module" einzubinden. Die geschieht über neue Namensräume (z. B. wfw:commentRss).
Der Schemavalidator würde diese Elemente als nicht definiert anmeckern. Da wir die Module vorerst nicht mitvalidieren möchten (schon weil es Unmengen davon gibt, und schon gar keine offizielle Übersicht).
Gibt es ne Möglichkeit solche Namensräume im Schema zuzulassen, sozusagen "alles mit fremden Namensraum" ?
Ja, z.B. mit:
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
(was <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> entspricht: ##any = Any well-formed XML from any namespace (default))
Meinst du wirklich ein Schema schreiben zu wollen?
Wäre es nicht einfacher in irgendeiner Sprache einen zugeschnittenen Validator zu schreiben?
Regel wie: "atom:feed elements MUST contain one or more atom:author elements, unless all of the atom:feed element's child atom:entry elements contain at least one atom:author element." sind grausig (wenn nicht unmöglich bei Atom) in Schema umzusetzen.
Grüße
Thomas