XML-Parser versteht gültiges XML nicht

  • Der XML-Parser Loksims versteht keine XML-Dateien, in denen Kommentare vorkommen und verlangt bei (einigen) leeren Elementen ein recht spezielles Format. [expander=Beispiel (Ausschnitt aus dem Strecke→Gleis→Eigenschaften→Zurueck-Abschnitt einer l3dstr-Datei):]
    Für Loksim verständlich:


    Gültiges XML, das von Loksim nicht verstanden wird:

    [/expander]
    Hierbei sollte z.B. bei "Signaloptionen" die Kurzschreibweise "<Signaloptionen />" möglich sein und keinesfalls ein Zeilenumbruch notwendig. IIRC braucht Loksim auch die Einrückungen, die nicht zwingend sein dürften. Wäre schön, wenn ihr das reparieren könntet, dann bräuchte man keine seltsamen Tricks um für Loksim zu entwickeln.

  • Loksim war in Sachen XML eine Art Vorreiter und setzt deshalb in fast allen Bereichen einen eigenen XML-Parser ein, der so manche Eigenheiten hat. Langfristig betrachtet werden wir auf einen Standard-Parser umstellen, für .l3dsky und .l3dwth Dateien ist dies bereits jetzt der Fall. Der Umbau für die älteren Dateiformate wird aber nur sehr langsam erfolgen, da ich keine große Priorität dafür sehe

  • Dann ist ja gut. Ich wollte nur sicher sein, dass ihr das auch wirklich wisst.
    Ist irgendwo dokumentiert, was für "Eigenheiten" das genau sind? Dieses ständige Gerate ist bei der Entwicklung etwas hinderlich.

  • Ist irgendwo dokumentiert, was für "Eigenheiten" das genau sind? Dieses ständige Gerate ist bei der Entwicklung etwas hinderlich.

    Nein leider nicht. Aber ich denke die wichtigsten Punkte hast Du schon selbst erkannt. Wenn Du mal diesbezüglich ein Problem hast, welches Du Dir nicht selbst erklären kannst, kann ich im Einzelfall auch gerne nachschauen warum es nicht funktioniert.

  • Nachdem ich gerade ein wenig beim Durchschauen der Probleme bin, ein kleines Update zu diesem Thema. Aktuell werden im Loksim folgende Dateien von einem
    (praktisch) standardkonformen XML-Parser verarbeitet:
    .l3dobj (ab 2.9)
    .l3dgrp (ab 2.9)
    .l3dfont (ab 2.9, nur lesend)
    .l3dlok (ab 2.8.3)

    .l3dwth (von Anfang an)
    .l3dsky (von Anfang an)