]> Cypherpunks repositories - gostls13.git/commitdiff
Revert "encoding/xml: fix reserved namespace check to be case-insensitive"
authorIan Lance Taylor <iant@golang.org>
Fri, 26 Jun 2020 18:29:34 +0000 (18:29 +0000)
committerIan Lance Taylor <iant@golang.org>
Mon, 29 Jun 2020 21:33:02 +0000 (21:33 +0000)
This reverts CL 203417.

Reason for revert: This change changes uses of tags like "XMLSchema-instance" without any recourse.

For #35151
Fixes #39876

Change-Id: I4c85c8267a46b3748664b5078794dafffb42aa26
Reviewed-on: https://go-review.googlesource.com/c/go/+/240179
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
src/encoding/xml/marshal.go
src/encoding/xml/marshal_test.go

index d8a04a95a2520fa39b8028dd97f43bef70804aba..0554b0d204e40948309643204405935f0f661a81 100644 (file)
@@ -345,11 +345,8 @@ func (p *printer) createAttrPrefix(url string) string {
        if prefix == "" || !isName([]byte(prefix)) || strings.Contains(prefix, ":") {
                prefix = "_"
        }
-       // xmlanything is reserved and any variant of it regardless of
-       // case should be matched, so:
-       //    (('X'|'x') ('M'|'m') ('L'|'l'))
-       // See Section 2.3 of https://www.w3.org/TR/REC-xml/
-       if len(prefix) >= 3 && strings.EqualFold(prefix[:3], "xml") {
+       if strings.HasPrefix(prefix, "xml") {
+               // xmlanything is reserved.
                prefix = "_" + prefix
        }
        if p.attrNS[prefix] != "" {
index d2e5137afd7c05a7ad0ad1414e227f168ee4bf54..31309ef2ca8c5a6895e3d6e728ff48e38280bada 100644 (file)
@@ -2283,30 +2283,6 @@ var encodeTokenTests = []struct {
                }},
        },
        want: `<foo xmlns="space"><bar xmlns="space" xmlns:space="space" space:attr="value">`,
-}, {
-       desc: "reserved namespace prefix -- all lower case",
-       toks: []Token{
-               StartElement{Name{"", "foo"}, []Attr{
-                       {Name{"http://www.w3.org/2001/xmlSchema-instance", "nil"}, "true"},
-               }},
-       },
-       want: `<foo xmlns:_xmlSchema-instance="http://www.w3.org/2001/xmlSchema-instance" _xmlSchema-instance:nil="true">`,
-}, {
-       desc: "reserved namespace prefix -- all upper case",
-       toks: []Token{
-               StartElement{Name{"", "foo"}, []Attr{
-                       {Name{"http://www.w3.org/2001/XMLSchema-instance", "nil"}, "true"},
-               }},
-       },
-       want: `<foo xmlns:_XMLSchema-instance="http://www.w3.org/2001/XMLSchema-instance" _XMLSchema-instance:nil="true">`,
-}, {
-       desc: "reserved namespace prefix -- all mixed case",
-       toks: []Token{
-               StartElement{Name{"", "foo"}, []Attr{
-                       {Name{"http://www.w3.org/2001/XmLSchema-instance", "nil"}, "true"},
-               }},
-       },
-       want: `<foo xmlns:_XmLSchema-instance="http://www.w3.org/2001/XmLSchema-instance" _XmLSchema-instance:nil="true">`,
 }}
 
 func TestEncodeToken(t *testing.T) {