Files
comicverse/ipub/ast/errors.go

37 lines
732 B
Go

package ast
import (
"encoding/xml"
"fmt"
)
type ErrInvalidAttrName struct {
Actual xml.Name
Expected xml.Name
}
var _ error = ErrInvalidAttrName{}
func (err ErrInvalidAttrName) Error() string {
return fmt.Sprintf("attribute %q has invalid name, expected %q", fmtXMLName(err.Expected), fmtXMLName(err.Actual))
}
type ErrInvalidAttrValue struct {
Attr xml.Attr
Message string
}
var _ error = ErrInvalidAttrValue{}
func (err ErrInvalidAttrValue) Error() string {
return fmt.Sprintf("attribute %q's value %q is invalid: %s", fmtXMLName(err.Attr.Name), err.Attr.Value, err.Message)
}
func fmtXMLName(n xml.Name) string {
s := n.Local
if n.Space != "" {
s = fmt.Sprintf("%s:%s", n.Space, n.Local)
}
return s
}