2017-07-26 132 views
0

這裏是我的代碼片段:如何禁用XML外部實體(XEE)在SAXBuilder的處理其中使用com.sun.org.apache.xerces.internal.parsers.SAXParser

public static SAXBuilder createBuilder(@NotNull final String schemaPath) { 


    final SAXBuilder builder = new SAXBuilder("com.sun.org.apache.xerces.internal.parsers.SAXParser", true); 
    builder.setFeature("http://apache.org/xml/features/validation/schema", true); 
    builder.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); 


    builder.setFeature("http://apache.org/xml/features/disallow-doctype-decl",true); 
    builder.setFeature("http://xml.org/sax/features/external-general-entities", false); 
    builder.setFeature("http://xml.org/sax/features/external-parameter-entities", false); 
    builder.setExpandEntities(false); 
    builder.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", schemaPath); 
    builder.setEntityResolver(getEntityResolver()); 
    return builder; 
} 

我花了一些時間來尋找,但沒有太多的留在那裏

回答

1

我確定了這個問題的根本原因。這是因爲我的xsd中的processContents="lax"屬性

相關問題