耶拿命令行和--strict

时间:2016-09-06 12:29:46

标签: jena

我一直在浏览Jena中的代码,以弄清楚在传递--strict命令行时会发生什么。似乎除了记录警告之外没有区别。在CmdLangParse.java中,设置了严格模式并调用了SysRIOT.setStrictMode(true),并且在底层设置了StrictXSDLexicialForms和strictMode标志。

@Override
protected void exec() {
    boolean oldStrictValue = SysRIOT.isStrictMode() ;
    if ( modLangParse.strictMode() )
        SysRIOT.setStrictMode(true) ;
    try { exec$() ; }
    finally { SysRIOT.setStrictMode(oldStrictValue) ; } 
}

然后仅在CheckerLiters的validateByDatatype和validateByDatatypeNumericuse中使用StrictXSDLexicalForms属性,如果找到空格,\ n或\ r \ n它只是记录它。以下是来自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 ;
    }

我错过了什么或两种模式之间没有区别(严格和非严格)?

1 个答案:

答案 0 :(得分:0)

--strict是Jena命令行工具的一般标志。

对于解析,你注意到的几乎没有什么区别。它会关闭功能并提供标准的最低要求。对于解析,没有多少。