Hi st 15. 1. 2025 v 21:35 odesÃlatel Jim Jones <jim.jo...@uni-muenster.de> napsal:
> Hi Umar, Hi Pavel, > > On 26.12.24 14:46, Jim Jones wrote: > > The idea of NO DEFAULT is pretty much to free an element (and its > > children) from a previous DEFAULT in the same scope. > > > > SELECT > > xmlserialize(DOCUMENT > > xmlelement(NAME "root", > > xmlnamespaces(DEFAULT 'http:/x.y/ns1'), > > xmlelement(NAME "foo", > > xmlnamespaces(NO DEFAULT)) > > ) AS text INDENT); > > > > xmlserialize > > ------------------------------ > > <root xmlns="http:/x.y/ns1">+ > > <foo xmlns=""/> + > > </root> > > (1 row) > > v3 is attached, now using xmlTextWriterWriteAttributeNS from libxml2 for > managing XML namespaces, instead of using xmlTextWriterWriteAttribute. > Libxml2 is quite lenient, allowing the duplication of default namespaces > within the same scope and even permitting NO DEFAULT namespaces when no > previous DEFAULT declaration has been made - both are semantically valid. > > The crux now is finding the appropriate balance between accuracy and > user intent. In the context of PostgreSQL's xmlelement and > xmlnamespaces, I would argue that explicitly declared namespaces, > redundant or not, ought to be preserved. A user who intentionally > repeats a namespace declaration might have sound reasons for doing so, > like ensuring clarity, preserving compatibility with external XML > processors, or sticking to a specific schema. Silently omitting these > declarations could lead to confusion. > > Now, I have not any objections against the code The patch has doc and enough regress tests The patching and compilation without problems make check-world passed I'll mark this patch as ready for committer > Pavel has tidied up the parser modifications - it's looking much neater > now. Many thanks for that! > It was a pleasure Regards Pavel > > Best, Jim > >