-
Notifications
You must be signed in to change notification settings - Fork 225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
xmlns-prefixed attribute on root element is lost #569
Comments
It looks like the parsing code stores the namespace data for the node in the treebuilder's namespace stack, but the data about which tag declares a namespace is thrown away. Instead we store the namespace uri for child tags; this is why the xmlns-prefixed attribute jumps to the first child that uses the namespace. |
Parsing code that strips out the xmlns attribute: html5ever/xml5ever/src/tree_builder/mod.rs Line 347 in feced06
Parsing code that stores the namespace URI on child tags: html5ever/xml5ever/src/tree_builder/mod.rs Line 297 in feced06
Serialization code that uses the namespace URI: html5ever/xml5ever/src/serialize/mod.rs Line 111 in feced06
|
Testcase in rcdom/tests/xml-driver.rs: #[test]
fn weird() {
assert_serialization(
r##"<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd">
<sodipodi:namedview>
...
</sodipodi:namedview>
<path d="..." sodipodi:nodetypes="cccc"/>
</svg>"##,
driver::parse_document(RcDom::default(), Default::default())
.from_utf8()
.one(r##"<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd">
<sodipodi:namedview>
...
</sodipodi:namedview>
<path d="..." sodipodi:nodetypes="cccc"/>
</svg>"##.as_bytes()),
);
} |
Current status: I have changes that allow these testcases to pass. However, they cause a lot of xml5lib namespace tests to fail, and Ygg01/xml5lib-tests@3fb8d2b suggests that the current behaviour is intentional. I'm hoping to get in touch with @Ygg01 to better understand what the right behaviour here is. |
Hi Josh. To be honest I don't quite remember the motivation. It's been like 8 years. The important question is does it goes against XML namespace spec? If not, just change the tests. I'm open to PRs on xml5lib-tests |
@jdm what are the next steps to close this?
|
Originally posted by @noahbald in #538 (comment)
The text was updated successfully, but these errors were encountered: