|
@@ -64,12 +64,21 @@ type (
|
|
|
|
|
|
|
|
// Allows type H to be used with xml.Marshal
|
|
// Allows type H to be used with xml.Marshal
|
|
|
func (h H) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
|
|
func (h H) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
|
|
|
- e.EncodeToken(start)
|
|
|
|
|
|
|
+ if err := e.EncodeToken(start); err != nil {
|
|
|
|
|
+ return err
|
|
|
|
|
+ }
|
|
|
for key, value := range h {
|
|
for key, value := range h {
|
|
|
- elem := xml.StartElement{Name: xml.Name{Local: key}}
|
|
|
|
|
- e.EncodeElement(value, elem)
|
|
|
|
|
|
|
+ elem := xml.StartElement{
|
|
|
|
|
+ xml.Name{"", key},
|
|
|
|
|
+ []xml.Attr{},
|
|
|
|
|
+ }
|
|
|
|
|
+ if err = e.EncodeElement(value, elem); err != nil {
|
|
|
|
|
+ return err
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if err = e.EncodeToken(xml.EndElement{start.Name}); err != nil {
|
|
|
|
|
+ return err
|
|
|
}
|
|
}
|
|
|
- e.EncodeToken(xml.EndElement{start.Name})
|
|
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
|