Habe jetzt eine funktionierende XSD für signal.xml und habe damit den Vorlagen-Bestand im Signals-Ordner durchgeprüft. Erkenntnis: Es wurden keine neuen schwerwiegenden Fehler aufgedeckt. Aber der XML-Parser im Zusi-3D-Editor ist unglaublich nachsichtig und frisst auch Dinge, die andere XML-Parser sofort zum kotzen bringen würden. Hier eine kleine exemplarische Auswahl:
Es wird unnötiger Cruft definiert, der keine Funktion hat oder nur in st3-Dateien wirklich Sinn macht:
Code: Alles auswählen
Signals/travellers.signal.xml:9.14: Element 'KoppelSignal': This element is not expected. Expected is one of ( SigAssiPosition, MatrixEintrag, Ersatzsignal, HsigBegriff, SigAssiCheck, SigAssiRadio, SigAssiText, SignalFrame, VsigBegriff ).
Signals/Deutschland/Signalbuch_1959_DR/DR_Licht_HV_Signale/Assistent/DR_HV_52_ASig_4-5m.signal.xml:52.17: Element 'Datei': The attribute 'Dateiname' is required but missing.
Signals/Deutschland/Signalordnung_1959_DB/Lichtsignale_Einheitsbauform_51/Asig+kennlicht51.signal.xml:6.37: Element 'Signal', attribute 'BeideRichtungen': The attribute 'BeideRichtungen' is not allowed.
Signals/Deutschland/Signalordnung_1972_DB/Lichtsignale_Sk/Assistent/SkEsigVsig69_Randweg_Zs1_Zs3Licht_Zs3vLicht.signal.xml:59.96: Element 'SignalFrame', attribute 'WeichenbaugruppeIndex': The attribute 'WeichenbaugruppeIndex' is not allowed.
Noch eine Variante einer unnötigen Attributangabe, die von anderen XML-Implementierungen als undefiniert bemeckert werden würde. Zusi hingegen interpretiert sie implizit als Nullwert:
Code: Alles auswählen
Signals/Deutschland/Signalbuch_1959_DR/Langsamfahrsignale/DR_Ziffer/DR_Lf1_10.signal.xml:11.41: Element 'HsigBegriff', attribute 'FahrstrTyp': '' is not a valid value of the atomic type 'xs:integer'.
Das hier hat mich am meisten überrascht: Der Editor akzeptiert auch signal.xml als gültige Signale, die von sich selbst behaupten dass sie gar kein Signal sind sondern eine Landschaft
Code: Alles auswählen
Signals/Deutschland/Signalbuch_1959_DR/Formsignale_Einheitsbauform/Objekte/DR_grau_VSig-2begr-haengend.signal.xml:3.37: Element 'Info', attribute 'DateiTyp': The value 'Landschaft' does not match the fixed value constraint 'Signal'.
Durch das händische Editieren der Signalvorlagen rutschen immer wieder deutsche Dezimaltrennzeichen rein. Diese sind in XML eigentlich unzulässig. Zusis Editor akzeptiert sie gnädigerweise trotzdem:
Code: Alles auswählen
Signals/Deutschland/FVNE/Bahnuebergangssignale/FVNE_Ues_86_Rw.signal.xml:21.17: Element 'p', attribute 'Z': '1,3' is not a valid value of the atomic type 'xs:decimal'.
Insgesamt bin ich jetzt nicht schlauer als vorher. Man könnte natürlich mit viel Zeitaufwand das alles richtigstellen (rund 2300 Fundstellen allein im offiziellen Signalbestand), hätte dann aber kaum etwas gewonnen. Es funktioniert ja alles, und Zusis Editor akzeptiert die Sachen auch so wie sie jetzt sind.