| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | package iiimport (	"encoding/json"	"encoding/xml"	"fmt"	"strings")type Name stringfunc (n *Name) Database() string {	name := n.String()	if i := strings.Index(name, "."); i != -1 {		return name[:i]	}	return name}func (n *Name) Collection() string {	name := n.String()	if i := strings.Index(name, "."); i != -1 {		return name[i+1:]	}	return name}func (n *Name) String() string {	return string(*n)}func (n *Name) UnmarshalXMLAttr(attr xml.Attr) error {	name := strings.Split(attr.Value, ".")	if len(name) != 2 {		return fmt.Errorf("itemname error: %s", attr.Value)	}	if strings.TrimSpace(name[0]) == "" || strings.TrimSpace(name[1]) == "" {		return fmt.Errorf("itemname error: %s", attr.Value)	}	*n = Name(attr.Value)	return nil}func (n *Name) MarshalJSON() ([]byte, error) {	value := fmt.Sprintf(`"%s"`, n)	return []byte(value), nil}func (n *Name) UnmarshalJSON(v []byte) error {	var temp string	if err := json.Unmarshal(v, &temp); err != nil {		return err	}	*n = Name(temp)	return nil}
 |