Hello,
we would very much like to move to relaxng for validation of our xml's in our middleware, but unfortunately we ran across this bug!
I can confirm the exponential blowup reported in this bug perfectly. A document with an element with 13 optional attributes takes ~2 seconds to validate, way too long considering W3C validation using a semantically equivalant schema takes just a few milliseconds.
It seems the number of validation states undergoes blowup. I can't pretend to really understand the problem, but there is a loop over all states in the validation context at line 10461 in relaxng.c
where validate state gets called. With 13 optional attributes it tries to validate 8192 states, and this loop starts being a real drag. Take it up to 14 and it tries AGAIN to validate 16,384 states.
We love libxml2, and we love relaxng, but this bug is a real show-stopper.
Any news? Please, please let us know.
Thank you,
i.A. John Loutzenhiser
OneVision Software Entwicklungs GmbH & Co. KG
Dr.-Leo-Ritter-Strasse 9, 93049 Regensburg
Sitz der Gesellschaft: Regensburg
Handelsregister: HRA 6744, Amtsgericht Regensburg
Persönlich haftende Gesellschafterin:
OneVision Software Entwicklungs Verwaltungs GmbH
Dr.-Leo-Ritter-Strasse 9, 93049 Regensburg
Sitz der Gesellschaft: Regensburg
Handelsregister: HRB 8932, Amtsgericht Regensburg
Geschäftsführer: Ulrike Döhler, Manuela Kluger