Skip to content

Conversation

@ndossche
Copy link
Member

@ndossche ndossche commented Nov 11, 2025

C14N code expects namespace to be in-tree, but we store namespaces in a
different way out-of-tree to avoid reconciliations that break the tree
structure in a way unexpected by the DOM spec. In the DOM spec,
namespace nodes don't exist; they're regular attributes.
To solve this, we temporarily make fake namespace nodes that we later
remove.

…Document::C14N()

C14N code expects namespace to be in-tree, but we store namespaces in a
different way out-of-tree to avoid reconciliations that break the tree
structure in a way unexpected by the DOM spec. In the DOM spec,
namespace nodes don't exist; they're regular attributes.
To solve this, we temporarily make fake namespace nodes that we later
remove.
@ndossche ndossche marked this pull request as ready for review December 26, 2025 14:05
@ndossche ndossche requested a review from Girgias December 26, 2025 14:05
Copy link
Member

@Girgias Girgias left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mainly have questions as not familiar at all with that part of the spec.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dom\XMLDocument::C14N() seems broken compared to DOMDocument::C14N()

2 participants