Dom xml

Olá Pessoal, estou trabalhando com a api xml dom java ( w3c ) para arquivos xmls pequenos funciona ok, porem com arquivo muito grande ocorre o erro abaixo:

[Fatal Error] :1:1: The parser has encountered more than "64.000" entity expansions in this document; this is the limit imposed by the application.

Sei que quando utilizamos Dom o arquivo é carregado na memória, gostaria de saber qual a melhor solução para trabalhar com arquivos com mais de 1Gb ou se existe a possibilidade de controlar o tamanho do parse atraves da api Dom.

Desde ja obrigado

Com arquivos grandes (mais de 10MB) é melhor usar STAX ou SAX. Em particular, acho mais fácil usar STAX que SAX; se for usar SAX, use o JColtrane, que facilita sobremaneira o uso do SAX.

Obrigado pela dica thingol, vou pesquisar a api …

Pesquisei a api SAX porem efetuei teste e acontece o mesmo erro.

[Fatal Error] :1:1: The parser has encountered more than "64.000" entity expansions in this document; this is the limit imposed by the application.

começa a percorrer o arquivo e dá o erro após alguns minutos, os arquivos têm tamanho superior a 1GB, alguém saberia me responder se é viável trabalhar com arquivos xml com mais de 1gb, como solucionar esse problema?.
Não tenho experiência com xml, para se trabalhar bem com xml qual tamanho limite de arquivo para se trabalhar?.

Desde já agradeço.

Vou fazer uma perguntinha estúpida. Se essa mensagem ( “64.000” entity expansions ) apareceu, é porque você tem um monte de “&” no seu arquivo XML. Se bobear, o seu arquivo XML na verdade é inválido, porque ele deveria ser codificado com “&” .

Um arquivo que tem um monte de “&” indevidos:

<produto>M&M;s</produto>

Note que na verdade isso deveria ter sido codificado com

<produto>M&M;s</produto>

Realmente thingol meu arquivo possui varios “&” substitui conforme solicitado e funcionou normalmente .
Outra opção é usar “DentityExpansionLimit = 10000000” para almentar o limite.
Estudei a api SAX e o Framework Coltrane que esta me ajudando bastante, valeu pela dica, estou verificando qual a melhor solução,
vc tem algum tutorial de Stax em portugues?ele trablha parecido com sax?

Obrigado