From 9445a7c4cd127594e9c9f8e542571325a162113d Mon Sep 17 00:00:00 2001 From: Jason Streifling Date: Thu, 17 Oct 2024 21:44:19 +0200 Subject: [PATCH] Use built-in xml attributes --- commonAttributes.go | 30 ++++++++++-------------------- extensionAttribute.go | 27 --------------------------- 2 files changed, 10 insertions(+), 47 deletions(-) delete mode 100644 extensionAttribute.go diff --git a/commonAttributes.go b/commonAttributes.go index 5833c78..c5e139e 100644 --- a/commonAttributes.go +++ b/commonAttributes.go @@ -1,11 +1,13 @@ package atom -import "fmt" +import ( + "encoding/xml" +) type CommonAttributes struct { - Base IRI `xml:"base,attr,omitempty"` - Lang LanguageTag `xml:"lang,attr,omitempty"` - UndefinedAttributes []*ExtensionAttribute `xml:",attr"` + Base IRI `xml:"base,attr,omitempty"` + Lang LanguageTag `xml:"lang,attr,omitempty"` + UndefinedAttributes []*xml.Attr `xml:",attr,omitempty"` } // NewCommonAttributes creates a new set of CommonAttributes. It returns a @@ -15,23 +17,11 @@ func NewCommonAttributes() *CommonAttributes { } // AddExtensionAttribute adds the ExtensionAttribute to the CommonAttributes. -func (c *CommonAttributes) AddExtensionAttribute(e *ExtensionAttribute) { +func (c *CommonAttributes) AddExtensionAttribute(name, value string) { if c.UndefinedAttributes == nil { - c.UndefinedAttributes = make([]*ExtensionAttribute, 1) - c.UndefinedAttributes[0] = e + c.UndefinedAttributes = make([]*xml.Attr, 1) + c.UndefinedAttributes[0] = &xml.Attr{Name: xml.Name{Local: name}, Value: value} } else { - c.UndefinedAttributes = append(c.UndefinedAttributes, e) + c.UndefinedAttributes = append(c.UndefinedAttributes, &xml.Attr{Name: xml.Name{Local: name}, Value: value}) } } - -// Check checks the CommonAttributes for incompatibilities with RFC4287. It -// returns an error. -func (c *CommonAttributes) Check() error { - for i, a := range c.UndefinedAttributes { - if err := a.Check(); err != nil { - return fmt.Errorf("extension attribute %v of common attributes: %v", i, err) - } - } - - return nil -} diff --git a/extensionAttribute.go b/extensionAttribute.go deleted file mode 100644 index 492fda8..0000000 --- a/extensionAttribute.go +++ /dev/null @@ -1,27 +0,0 @@ -package atom - -import ( - "encoding/xml" - "errors" -) - -type ExtensionAttribute struct { - XMLName xml.Name - Value string -} - -// NewExtensionAttribute creates a new ExtensionAttribute. It returns a -// *ExtensionAttribute. -func NewExtensionAttribute(name, value string) *ExtensionAttribute { - return &ExtensionAttribute{XMLName: xml.Name{Local: name}, Value: value} -} - -// Check checks the ExtensionAttribute for incompatibilities with RFC4287. It -// returns an error. -func (e *ExtensionAttribute) Check() error { - if e.Value == "" { - return errors.New("value of extension attribute empty") - } - - return nil -}