Woodstox通过SimpleXML的属性限制 - 如何设置呢?(Woodstox via Sim

2019-10-28 19:05发布

我一直试图让SimpleXML来读取XML巨大碰上属性的大小限制。

javax.xml.stream.XMLStreamException:最大属性大小限制(524288)超过在com.ctc.wstx.sr.StreamScanner.constructLimitViolation(StreamScanner.java:2470)

我已经使用系统属性尝试,但它似乎并没有把它捡起来。

-Djavax.xml.stream.XMLInputFactory = com.ctc.wstx.stax.WstxInputFactory -Dcom.ctc.wstx.maxAttributeSize =千万

我怎么能强迫Woodstox使用新的限制?

Answer 1:

我发现,工作的方式。 我创建了自己的XMLInputFactory,它扩展了woodstox工厂改变问题的限制。

public class InputFactory extends WstxInputFactory {
    public InputFactory() {
        super();
        setProperty(WstxInputProperties.P_MAX_ATTRIBUTE_SIZE, Integer.MAX_VALUE);
    }
}

然后,只需设置在主系统属性。

// Force use of our custom XML input factory
    System.getProperties().put("javax.xml.stream.XMLInputFactory", "my.custom.InputFactory");           


文章来源: Woodstox via SimpleXML attribute limits - how to set them?