-
Notifications
You must be signed in to change notification settings - Fork 17.7k
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
encoding/xml: disallow attributes named xmlns:* #8167
Comments
Output XML is correct and equivalent to input XML (thus idempotent transformation). And - unfortunately - larger. That said, as this issue does not result in incorrect and/or non-equivalent XML, I would suggest first fixing higher priority bugs that either produce incorrect and/or non-equivalent XML (or just break), such as #7535, #6800, #8068, #8535, #7113 |
It's not intended that you can even emit xmlns: attributes that way. The encoder does not know about them and may step on you (or vice versa). If you want to put the name space definition in an outer element, the easiest thing to do is to use it in an attribute on that element: http://play.golang.org/p/2-Y-CrhaP7, which will let the Encoder define it instead. The test program in the initial report may be just invalid for trying to define an attribute named xmlns:l. Perhaps we should disallow all attributes named xmlns:* in a future version of Go. Not for 1.4 though. Labels changed: added release-go1.5, removed release-go1.4. Status changed to Accepted. |
CL is here 4 days ago: https://go-review.googlesource.com/#/c/12351/ but lacked the magic syntax, so this bug wasn't updated. |
CL https://golang.org/cl/12351 mentions this issue. |
See #11841. |
CL https://golang.org/cl/12570 mentions this issue. |
There is clearly work to do here with respect to xml name spaces, but I don't believe the changes in this cycle are clearly correct. The changes in this cycle have visible impact on the generated xml, possibly breaking existing programs, and yet it's not clear that they are the end of the story: there is still significant confusion about how name spaces work or should work (see #9519, #9775, #8167, #7113). I would like to wait to make breaking changes until we completely understand what the behavior should be and can evaluate the benefit of those breaking changes. My main concern here is that we will break programs in Go 1.5 for the sake of name space adjustments and then while trying to fix those other bugs we'll break programs in Go 1.6 too. Let's wait until we know all the changes we want to make before we decide whether or how to break existing programs. This CL reverts: 5ae822b encoding/xml: minor changes bb7e665 encoding/xml: fix xmlns= behavior 9f9d66d encoding/xml: fix default namespace of tags b69ea01 encoding/xml: fix namespaces in a>b tags 3be158d encoding/xml: encoding name spaces correctly and adjusts tests from a9dddb5 encoding/xml: add more EncodeToken tests. to expect Go 1.4 behavior. I have confirmed that the name space parts of the test suite as of this CL passes against the Go 1.4 encoding/xml package, indicating that this CL successfully restores the Go 1.4 behavior. (Other tests do not, but that's because there were some real bug fixes in this cycle that are being kept. Specifically, the tests that don't pass in Go 1.4 are TestMarshal's NestedAndComment case, TestEncodeToken's encoding of newlines, and TestSimpleUseOfEncodeToken returning an error for invalid token types.) I also checked that the Go 1.4 tests pass when run against this copy of the sources. Fixes #11841. Change-Id: I97de06761038b40388ef6e3a55547ff43edee7cb Reviewed-on: https://go-review.googlesource.com/12570 Reviewed-by: Nigel Tao <nigeltao@golang.org>
Blocked on #13400. |
Change https://go.dev/cl/116056 mentions this issue: |
by opennota:
The text was updated successfully, but these errors were encountered: