From 040d7a6b7b2854537dc408abf85157474ce4f74f Mon Sep 17 00:00:00 2001 From: Jason Streifling Date: Thu, 17 Oct 2024 18:12:23 +0200 Subject: [PATCH] Create xhtmlDiv.go --- xhtmlDiv.go | 30 ++++++++++++++++++++++++++++++ xhtmlText.go | 12 +++--------- 2 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 xhtmlDiv.go diff --git a/xhtmlDiv.go b/xhtmlDiv.go new file mode 100644 index 0000000..f0224b9 --- /dev/null +++ b/xhtmlDiv.go @@ -0,0 +1,30 @@ +package atom + +import ( + "encoding/xml" + "errors" +) + +type XHTMLDiv struct { + XMLName xml.Name `xml:"div"` + XMLNS string `xml:"xmlns,attr"` + Content string `xml:",innerxml"` +} + +// NewXHTMLDiv creates a new XHTMLDiv. It returns a *XHTMLDiv. +func NewXHTMLDiv(content string) *XHTMLDiv { + return &XHTMLDiv{ + XMLNS: "http://www.w3.org/1999/xhtml", + Content: content, + } +} + +// Check checks the XHTMLDiv for incompatibilities with RFC4287. It returns an +// error. +func (x *XHTMLDiv) Check() error { + if x.XMLNS != "http://www.w3.org/1999/xhtml" { + return errors.New("xmlns attribute of xhtml text must be http://www.w3.org/1999/xhtml") + } + + return nil +} diff --git a/xhtmlText.go b/xhtmlText.go index fd44b14..1deeeb1 100644 --- a/xhtmlText.go +++ b/xhtmlText.go @@ -1,16 +1,10 @@ package atom import ( - "encoding/xml" "errors" + "fmt" ) -type XHTMLDiv struct { - XMLName xml.Name `xml:"div"` - XMLNS string `xml:"xmlns,attr"` - Content string `xml:",innerxml"` -} - type XHTMLText struct { *CommonAttributes Type string `xml:"type,attr"` // Must be xhtml @@ -27,8 +21,8 @@ func (x *XHTMLText) Check() error { return errors.New("type attribute of xhtml text must be xhtml") } - if x.XHTMLDiv.XMLNS != "http://www.w3.org/1999/xhtml" { - return errors.New("xmlns attribute of xhtml text must be http://www.w3.org/1999/xhtml") + if err := x.XHTMLDiv.Check(); err != nil { + return fmt.Errorf("xhtml div element %v of xhtml text %v: %v", x.XHTMLDiv, x, err) } return nil