I discovered that the natural xerces load time validation that is supposed to happen when DFDL schemas are loaded, is not happening.
There seems to be code for doing a whole separate load pass just to validate rather than doing it at load time. This might be a holdover from when we were using the "constructing parser" for XML for more things, rather than Xerces. Not sure.
All I know is that in DFDLSchemaFile.scala, there is no call to loader.setValidation(...) so those loads don't validate, and that causes many syntactic problems to go undetected.
However, I don't want to fix this right now, because lots of tests break. We should fix this one little thing and fix up the tests that break at that point in one commit.