diff --git a/src/pkg/encoding/xml/marshal.go b/src/pkg/encoding/xml/marshal.go index 4ef2a50eaca1e..7a05a1bb10e71 100644 --- a/src/pkg/encoding/xml/marshal.go +++ b/src/pkg/encoding/xml/marshal.go @@ -21,16 +21,8 @@ const ( Header = `` + "\n" ) -// A Marshaler can produce well-formatted XML representing its internal state. -type Marshaler interface { - MarshalXML() ([]byte, error) -} - // Marshal returns the XML encoding of v. // -// If v implements Marshaler, then Marshal calls its MarshalXML method. -// Otherwise, Marshal uses the following procedure to create the XML. -// // Marshal handles an array or slice by marshalling each of the elements. // Marshal handles a pointer by marshalling the value it points at or, if the // pointer is nil, by writing nothing. Marshal handles an interface value by @@ -128,18 +120,6 @@ func (p *printer) marshalValue(val reflect.Value, finfo *fieldInfo) error { kind := val.Kind() typ := val.Type() - // Try Marshaler - if typ.NumMethod() > 0 { - if marshaler, ok := val.Interface().(Marshaler); ok { - bytes, err := marshaler.MarshalXML() - if err != nil { - return err - } - p.Write(bytes) - return nil - } - } - // Drill into pointers/interfaces if kind == reflect.Ptr || kind == reflect.Interface { if val.IsNil() { diff --git a/src/pkg/encoding/xml/marshal_test.go b/src/pkg/encoding/xml/marshal_test.go index 3bdfa55c80bbf..e0be33200864e 100644 --- a/src/pkg/encoding/xml/marshal_test.go +++ b/src/pkg/encoding/xml/marshal_test.go @@ -34,12 +34,6 @@ type Ship struct { secret string } -type RawXML string - -func (rx RawXML) MarshalXML() ([]byte, error) { - return []byte(rx), nil -} - type NamedType string type Port struct { @@ -298,13 +292,6 @@ var marshalTests = []struct { UnmarshalOnly: true, }, - // Test marshaller interface - { - Value: RawXML(""), - ExpectXML: ``, - MarshalOnly: true, - }, - // Test structs {Value: &Port{Type: "ssl", Number: "443"}, ExpectXML: `443`}, {Value: &Port{Number: "443"}, ExpectXML: `443`},