2016-09-06 6 views
0

Я просматриваю код в Йене, чтобы выяснить, что происходит при передаче командной строки -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 ; 
    } 

я упускаю что-то или там никакой разницы между двумя режимами (строгие и не строгие)?

ответ

0

--strict является основным флагом для инструментов командной строки Jena.

Для синтаксического анализа есть небольшая разница, как вы заметили. Он отключает функции и обеспечивает минимум для стандарта. Для синтаксического анализа их не так много.