Re: performance of parsing docbook with xincludes
Nick Wellnhofer <[email protected]> Wed, 16 May 2018 00:41:39 +0200
| Newsgroups | gmane.comp.gnome.lib.xml.general |
|---|---|
| Message-ID | <[email protected]> |
On May 15, 2018, at 21:56 , Stefan Sauer <[email protected]> wrote: > > On 05/15/2018 08:40 PM, Stefan Sauer wrote: >> On 05/15/2018 12:42 PM, Nick Wellnhofer wrote: >>> Can you try to change the line to >>> >>> xmlCtxtUseOptions(pctxt, ctxt->parseFlags); >>> >>> and see if it helps? >>> >> It does not help. I'll experiment further. Thanks for the recomendations. I think you also have to remove the line at https://git.gnome.org/browse/libxml2/tree/xinclude.c#n463 pctxt->loadsubset |= XML_DETECT_IDS; Looks like the idea is to make sure that ID attributes are detected for XIncludes with XPointers. IMO, it should be the application's responsibility to set the XML_PARSE_DTDLOAD flag in this case. But changing the behavior might break code that relies on this feature. > Is libxml2 doing that for each file over and over? Yes. > Wouldn't it make sense to only load each dtd once? This would make sense. > And where exatly is it loaded (I can only > see xmlFreeDtd, but can't find a xmlLoadDtd or the like. Via xmlParseDocument -> xmlSAX2ExternalSubset -> xmlParseExternalSubset. Nick