Я просматриваю код в Йене, чтобы выяснить, что происходит при передаче командной строки -strict. Кажется, что нет никакой разницы, кроме регистрации предупреждений. В CmdLangParse.java установлен строгий режим и вызывается SysRIOT.setStrictMode (true), и под обложками устанавливаются флаги StrictXSDLexicialForms и strictMode.Командная строка Jena и --strict
@Override
protected void exec() {
boolean oldStrictValue = SysRIOT.isStrictMode() ;
if (modLangParse.strictMode())
SysRIOT.setStrictMode(true) ;
try { exec$() ; }
finally { SysRIOT.setStrictMode(oldStrictValue) ; }
}
Тогда только в CheckerLiters validateByDatatypeand validateByDatatypeNumericuse атрибут StrictXSDLexicalForms и если он находит место, \ п или \ г он просто регистрирует его. Ниже не является фрагмент из validateByDatatypeNumeric
// Do a white space check as well for numerics.
if (lexicalForm.contains(" ")) {
handler.warning("Whitespace in numeric XSD literal: '" + lexicalForm + "'", line, col) ;
return false ;
}
if (lexicalForm.contains("\n")) {
handler.warning("Newline in numeric XSD literal: '" + lexicalForm + "'", line, col) ;
return false ;
}
if (lexicalForm.contains("\r")) {
handler.warning("Carriage return in numeric XSD literal: '" + lexicalForm + "'", line, col) ;
return false ;
}
я упускаю что-то или там никакой разницы между двумя режимами (строгие и не строгие)?