谁能解释在验证 XSD 时 this 选项的用途是什么?如果我设置 true
或 false
会发生什么背景事情?哪种情况需要将此选项设置为 true
,哪种情况需要将此选项设置为 false
?如果我的 XSD 超过 10MB
,当我将此选项设置为 StackOverflow
时,我会收到 true
异常。
代码示例:
SymbolTable sym = new SymbolTable(BIG_PRIME);
preparser.setProperty(GRAMMAR_POOL, grammarPool);
preparser.setFeature(NAMESPACES_FEATURE_ID, true);
preparser.setFeature(VALIDATION_FEATURE_ID, true);
preparser.setFeature(SCHEMA_VALIDATION_FEATURE_ID, true);
preparser.setFeature(SCHEMA_FULL_CHECKING_FEATURE_ID, true);
MyXMLErrorHandler myXMLErrorHandler = new MyXMLErrorHandler(errorOutput);
XMLGrammarPreparser preparser = new XMLGrammarPreparser(sym);
Grammar g = preparser.preparseGrammar(XMLGrammarDescription.XML_SCHEMA, stringToXIS((String) inputOptions.schemas.get(i)));
答案 0 :(得分:0)
根据http://xerces.apache.org/xerces-j/features.html:
<块引用>启用完整的架构约束检查,包括检查可能耗时或占用大量内存的内容。目前,粒子唯一属性约束检查和粒子派生限制检查都由该选项控制。
您需要了解“唯一粒子属性”和“粒子派生限制”的含义。 Google 应该可以为您提供帮助。