unioffice/schema/soo/dml/CT_TextCharacterProperties.go
Todd 629cfb008c schema: for xml ref attributes, check the namespace
One of the pml types has two attributes named 'id' with
one being a reference.  This allows that to be unmarshaled
correctly.
2017-11-18 11:52:13 -06:00

682 lines
20 KiB
Go

// Copyright 2017 Baliance. All rights reserved.
//
// DO NOT EDIT: generated by gooxml ECMA-376 generator
//
// Use of this source code is governed by the terms of the Affero GNU General
// Public License version 3.0 as published by the Free Software Foundation and
// appearing in the file LICENSE included in the packaging of this file. A
// commercial license can be purchased by contacting sales@baliance.com.
package dml
import (
"encoding/xml"
"fmt"
"strconv"
"baliance.com/gooxml"
)
type CT_TextCharacterProperties struct {
KumimojiAttr *bool
LangAttr *string
AltLangAttr *string
SzAttr *int32
BAttr *bool
IAttr *bool
UAttr ST_TextUnderlineType
StrikeAttr ST_TextStrikeType
KernAttr *int32
CapAttr ST_TextCapsType
SpcAttr *ST_TextPoint
NormalizeHAttr *bool
BaselineAttr *ST_Percentage
NoProofAttr *bool
DirtyAttr *bool
ErrAttr *bool
SmtCleanAttr *bool
SmtIdAttr *uint32
BmkAttr *string
Ln *CT_LineProperties
NoFill *CT_NoFillProperties
SolidFill *CT_SolidColorFillProperties
GradFill *CT_GradientFillProperties
BlipFill *CT_BlipFillProperties
PattFill *CT_PatternFillProperties
GrpFill *CT_GroupFillProperties
EffectLst *CT_EffectList
EffectDag *CT_EffectContainer
Highlight *CT_Color
ULnTx *CT_TextUnderlineLineFollowText
ULn *CT_LineProperties
UFillTx *CT_TextUnderlineFillFollowText
UFill *CT_TextUnderlineFillGroupWrapper
Latin *CT_TextFont
Ea *CT_TextFont
Cs *CT_TextFont
Sym *CT_TextFont
HlinkClick *CT_Hyperlink
HlinkMouseOver *CT_Hyperlink
Rtl *CT_Boolean
ExtLst *CT_OfficeArtExtensionList
}
func NewCT_TextCharacterProperties() *CT_TextCharacterProperties {
ret := &CT_TextCharacterProperties{}
return ret
}
func (m *CT_TextCharacterProperties) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
if m.KumimojiAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "kumimoji"},
Value: fmt.Sprintf("%d", b2i(*m.KumimojiAttr))})
}
if m.LangAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "lang"},
Value: fmt.Sprintf("%v", *m.LangAttr)})
}
if m.AltLangAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "altLang"},
Value: fmt.Sprintf("%v", *m.AltLangAttr)})
}
if m.SzAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "sz"},
Value: fmt.Sprintf("%v", *m.SzAttr)})
}
if m.BAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "b"},
Value: fmt.Sprintf("%d", b2i(*m.BAttr))})
}
if m.IAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "i"},
Value: fmt.Sprintf("%d", b2i(*m.IAttr))})
}
if m.UAttr != ST_TextUnderlineTypeUnset {
attr, err := m.UAttr.MarshalXMLAttr(xml.Name{Local: "u"})
if err != nil {
return err
}
start.Attr = append(start.Attr, attr)
}
if m.StrikeAttr != ST_TextStrikeTypeUnset {
attr, err := m.StrikeAttr.MarshalXMLAttr(xml.Name{Local: "strike"})
if err != nil {
return err
}
start.Attr = append(start.Attr, attr)
}
if m.KernAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "kern"},
Value: fmt.Sprintf("%v", *m.KernAttr)})
}
if m.CapAttr != ST_TextCapsTypeUnset {
attr, err := m.CapAttr.MarshalXMLAttr(xml.Name{Local: "cap"})
if err != nil {
return err
}
start.Attr = append(start.Attr, attr)
}
if m.SpcAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "spc"},
Value: fmt.Sprintf("%v", *m.SpcAttr)})
}
if m.NormalizeHAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "normalizeH"},
Value: fmt.Sprintf("%d", b2i(*m.NormalizeHAttr))})
}
if m.BaselineAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "baseline"},
Value: fmt.Sprintf("%v", *m.BaselineAttr)})
}
if m.NoProofAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "noProof"},
Value: fmt.Sprintf("%d", b2i(*m.NoProofAttr))})
}
if m.DirtyAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "dirty"},
Value: fmt.Sprintf("%d", b2i(*m.DirtyAttr))})
}
if m.ErrAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "err"},
Value: fmt.Sprintf("%d", b2i(*m.ErrAttr))})
}
if m.SmtCleanAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "smtClean"},
Value: fmt.Sprintf("%d", b2i(*m.SmtCleanAttr))})
}
if m.SmtIdAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "smtId"},
Value: fmt.Sprintf("%v", *m.SmtIdAttr)})
}
if m.BmkAttr != nil {
start.Attr = append(start.Attr, xml.Attr{Name: xml.Name{Local: "bmk"},
Value: fmt.Sprintf("%v", *m.BmkAttr)})
}
e.EncodeToken(start)
if m.Ln != nil {
seln := xml.StartElement{Name: xml.Name{Local: "a:ln"}}
e.EncodeElement(m.Ln, seln)
}
if m.NoFill != nil {
senoFill := xml.StartElement{Name: xml.Name{Local: "a:noFill"}}
e.EncodeElement(m.NoFill, senoFill)
}
if m.SolidFill != nil {
sesolidFill := xml.StartElement{Name: xml.Name{Local: "a:solidFill"}}
e.EncodeElement(m.SolidFill, sesolidFill)
}
if m.GradFill != nil {
segradFill := xml.StartElement{Name: xml.Name{Local: "a:gradFill"}}
e.EncodeElement(m.GradFill, segradFill)
}
if m.BlipFill != nil {
seblipFill := xml.StartElement{Name: xml.Name{Local: "a:blipFill"}}
e.EncodeElement(m.BlipFill, seblipFill)
}
if m.PattFill != nil {
sepattFill := xml.StartElement{Name: xml.Name{Local: "a:pattFill"}}
e.EncodeElement(m.PattFill, sepattFill)
}
if m.GrpFill != nil {
segrpFill := xml.StartElement{Name: xml.Name{Local: "a:grpFill"}}
e.EncodeElement(m.GrpFill, segrpFill)
}
if m.EffectLst != nil {
seeffectLst := xml.StartElement{Name: xml.Name{Local: "a:effectLst"}}
e.EncodeElement(m.EffectLst, seeffectLst)
}
if m.EffectDag != nil {
seeffectDag := xml.StartElement{Name: xml.Name{Local: "a:effectDag"}}
e.EncodeElement(m.EffectDag, seeffectDag)
}
if m.Highlight != nil {
sehighlight := xml.StartElement{Name: xml.Name{Local: "a:highlight"}}
e.EncodeElement(m.Highlight, sehighlight)
}
if m.ULnTx != nil {
seuLnTx := xml.StartElement{Name: xml.Name{Local: "a:uLnTx"}}
e.EncodeElement(m.ULnTx, seuLnTx)
}
if m.ULn != nil {
seuLn := xml.StartElement{Name: xml.Name{Local: "a:uLn"}}
e.EncodeElement(m.ULn, seuLn)
}
if m.UFillTx != nil {
seuFillTx := xml.StartElement{Name: xml.Name{Local: "a:uFillTx"}}
e.EncodeElement(m.UFillTx, seuFillTx)
}
if m.UFill != nil {
seuFill := xml.StartElement{Name: xml.Name{Local: "a:uFill"}}
e.EncodeElement(m.UFill, seuFill)
}
if m.Latin != nil {
selatin := xml.StartElement{Name: xml.Name{Local: "a:latin"}}
e.EncodeElement(m.Latin, selatin)
}
if m.Ea != nil {
seea := xml.StartElement{Name: xml.Name{Local: "a:ea"}}
e.EncodeElement(m.Ea, seea)
}
if m.Cs != nil {
secs := xml.StartElement{Name: xml.Name{Local: "a:cs"}}
e.EncodeElement(m.Cs, secs)
}
if m.Sym != nil {
sesym := xml.StartElement{Name: xml.Name{Local: "a:sym"}}
e.EncodeElement(m.Sym, sesym)
}
if m.HlinkClick != nil {
sehlinkClick := xml.StartElement{Name: xml.Name{Local: "a:hlinkClick"}}
e.EncodeElement(m.HlinkClick, sehlinkClick)
}
if m.HlinkMouseOver != nil {
sehlinkMouseOver := xml.StartElement{Name: xml.Name{Local: "a:hlinkMouseOver"}}
e.EncodeElement(m.HlinkMouseOver, sehlinkMouseOver)
}
if m.Rtl != nil {
sertl := xml.StartElement{Name: xml.Name{Local: "a:rtl"}}
e.EncodeElement(m.Rtl, sertl)
}
if m.ExtLst != nil {
seextLst := xml.StartElement{Name: xml.Name{Local: "a:extLst"}}
e.EncodeElement(m.ExtLst, seextLst)
}
e.EncodeToken(xml.EndElement{Name: start.Name})
return nil
}
func (m *CT_TextCharacterProperties) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
// initialize to default
for _, attr := range start.Attr {
if attr.Name.Local == "lang" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.LangAttr = &parsed
continue
}
if attr.Name.Local == "sz" {
parsed, err := strconv.ParseInt(attr.Value, 10, 32)
if err != nil {
return err
}
pt := int32(parsed)
m.SzAttr = &pt
continue
}
if attr.Name.Local == "kumimoji" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.KumimojiAttr = &parsed
continue
}
if attr.Name.Local == "strike" {
m.StrikeAttr.UnmarshalXMLAttr(attr)
continue
}
if attr.Name.Local == "cap" {
m.CapAttr.UnmarshalXMLAttr(attr)
continue
}
if attr.Name.Local == "b" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.BAttr = &parsed
continue
}
if attr.Name.Local == "i" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.IAttr = &parsed
continue
}
if attr.Name.Local == "smtClean" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.SmtCleanAttr = &parsed
continue
}
if attr.Name.Local == "kern" {
parsed, err := strconv.ParseInt(attr.Value, 10, 32)
if err != nil {
return err
}
pt := int32(parsed)
m.KernAttr = &pt
continue
}
if attr.Name.Local == "err" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.ErrAttr = &parsed
continue
}
if attr.Name.Local == "altLang" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.AltLangAttr = &parsed
continue
}
if attr.Name.Local == "noProof" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.NoProofAttr = &parsed
continue
}
if attr.Name.Local == "u" {
m.UAttr.UnmarshalXMLAttr(attr)
continue
}
if attr.Name.Local == "smtId" {
parsed, err := strconv.ParseUint(attr.Value, 10, 32)
if err != nil {
return err
}
pt := uint32(parsed)
m.SmtIdAttr = &pt
continue
}
if attr.Name.Local == "spc" {
parsed, err := ParseUnionST_TextPoint(attr.Value)
if err != nil {
return err
}
m.SpcAttr = &parsed
continue
}
if attr.Name.Local == "baseline" {
parsed, err := ParseUnionST_Percentage(attr.Value)
if err != nil {
return err
}
m.BaselineAttr = &parsed
continue
}
if attr.Name.Local == "dirty" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.DirtyAttr = &parsed
continue
}
if attr.Name.Local == "bmk" {
parsed, err := attr.Value, error(nil)
if err != nil {
return err
}
m.BmkAttr = &parsed
continue
}
if attr.Name.Local == "normalizeH" {
parsed, err := strconv.ParseBool(attr.Value)
if err != nil {
return err
}
m.NormalizeHAttr = &parsed
continue
}
}
lCT_TextCharacterProperties:
for {
tok, err := d.Token()
if err != nil {
return err
}
switch el := tok.(type) {
case xml.StartElement:
switch el.Name {
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "ln"}:
m.Ln = NewCT_LineProperties()
if err := d.DecodeElement(m.Ln, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "noFill"}:
m.NoFill = NewCT_NoFillProperties()
if err := d.DecodeElement(m.NoFill, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "solidFill"}:
m.SolidFill = NewCT_SolidColorFillProperties()
if err := d.DecodeElement(m.SolidFill, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "gradFill"}:
m.GradFill = NewCT_GradientFillProperties()
if err := d.DecodeElement(m.GradFill, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "blipFill"}:
m.BlipFill = NewCT_BlipFillProperties()
if err := d.DecodeElement(m.BlipFill, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "pattFill"}:
m.PattFill = NewCT_PatternFillProperties()
if err := d.DecodeElement(m.PattFill, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "grpFill"}:
m.GrpFill = NewCT_GroupFillProperties()
if err := d.DecodeElement(m.GrpFill, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "effectLst"}:
m.EffectLst = NewCT_EffectList()
if err := d.DecodeElement(m.EffectLst, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "effectDag"}:
m.EffectDag = NewCT_EffectContainer()
if err := d.DecodeElement(m.EffectDag, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "highlight"}:
m.Highlight = NewCT_Color()
if err := d.DecodeElement(m.Highlight, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "uLnTx"}:
m.ULnTx = NewCT_TextUnderlineLineFollowText()
if err := d.DecodeElement(m.ULnTx, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "uLn"}:
m.ULn = NewCT_LineProperties()
if err := d.DecodeElement(m.ULn, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "uFillTx"}:
m.UFillTx = NewCT_TextUnderlineFillFollowText()
if err := d.DecodeElement(m.UFillTx, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "uFill"}:
m.UFill = NewCT_TextUnderlineFillGroupWrapper()
if err := d.DecodeElement(m.UFill, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "latin"}:
m.Latin = NewCT_TextFont()
if err := d.DecodeElement(m.Latin, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "ea"}:
m.Ea = NewCT_TextFont()
if err := d.DecodeElement(m.Ea, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "cs"}:
m.Cs = NewCT_TextFont()
if err := d.DecodeElement(m.Cs, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "sym"}:
m.Sym = NewCT_TextFont()
if err := d.DecodeElement(m.Sym, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "hlinkClick"}:
m.HlinkClick = NewCT_Hyperlink()
if err := d.DecodeElement(m.HlinkClick, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "hlinkMouseOver"}:
m.HlinkMouseOver = NewCT_Hyperlink()
if err := d.DecodeElement(m.HlinkMouseOver, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "rtl"}:
m.Rtl = NewCT_Boolean()
if err := d.DecodeElement(m.Rtl, &el); err != nil {
return err
}
case xml.Name{Space: "http://schemas.openxmlformats.org/drawingml/2006/main", Local: "extLst"}:
m.ExtLst = NewCT_OfficeArtExtensionList()
if err := d.DecodeElement(m.ExtLst, &el); err != nil {
return err
}
default:
gooxml.Log("skipping unsupported element on CT_TextCharacterProperties %v", el.Name)
if err := d.Skip(); err != nil {
return err
}
}
case xml.EndElement:
break lCT_TextCharacterProperties
case xml.CharData:
}
}
return nil
}
// Validate validates the CT_TextCharacterProperties and its children
func (m *CT_TextCharacterProperties) Validate() error {
return m.ValidateWithPath("CT_TextCharacterProperties")
}
// ValidateWithPath validates the CT_TextCharacterProperties and its children, prefixing error messages with path
func (m *CT_TextCharacterProperties) ValidateWithPath(path string) error {
if m.SzAttr != nil {
if *m.SzAttr < 100 {
return fmt.Errorf("%s/m.SzAttr must be >= 100 (have %v)", path, *m.SzAttr)
}
if *m.SzAttr > 400000 {
return fmt.Errorf("%s/m.SzAttr must be <= 400000 (have %v)", path, *m.SzAttr)
}
}
if err := m.UAttr.ValidateWithPath(path + "/UAttr"); err != nil {
return err
}
if err := m.StrikeAttr.ValidateWithPath(path + "/StrikeAttr"); err != nil {
return err
}
if m.KernAttr != nil {
if *m.KernAttr < 0 {
return fmt.Errorf("%s/m.KernAttr must be >= 0 (have %v)", path, *m.KernAttr)
}
if *m.KernAttr > 400000 {
return fmt.Errorf("%s/m.KernAttr must be <= 400000 (have %v)", path, *m.KernAttr)
}
}
if err := m.CapAttr.ValidateWithPath(path + "/CapAttr"); err != nil {
return err
}
if m.SpcAttr != nil {
if err := m.SpcAttr.ValidateWithPath(path + "/SpcAttr"); err != nil {
return err
}
}
if m.BaselineAttr != nil {
if err := m.BaselineAttr.ValidateWithPath(path + "/BaselineAttr"); err != nil {
return err
}
}
if m.Ln != nil {
if err := m.Ln.ValidateWithPath(path + "/Ln"); err != nil {
return err
}
}
if m.NoFill != nil {
if err := m.NoFill.ValidateWithPath(path + "/NoFill"); err != nil {
return err
}
}
if m.SolidFill != nil {
if err := m.SolidFill.ValidateWithPath(path + "/SolidFill"); err != nil {
return err
}
}
if m.GradFill != nil {
if err := m.GradFill.ValidateWithPath(path + "/GradFill"); err != nil {
return err
}
}
if m.BlipFill != nil {
if err := m.BlipFill.ValidateWithPath(path + "/BlipFill"); err != nil {
return err
}
}
if m.PattFill != nil {
if err := m.PattFill.ValidateWithPath(path + "/PattFill"); err != nil {
return err
}
}
if m.GrpFill != nil {
if err := m.GrpFill.ValidateWithPath(path + "/GrpFill"); err != nil {
return err
}
}
if m.EffectLst != nil {
if err := m.EffectLst.ValidateWithPath(path + "/EffectLst"); err != nil {
return err
}
}
if m.EffectDag != nil {
if err := m.EffectDag.ValidateWithPath(path + "/EffectDag"); err != nil {
return err
}
}
if m.Highlight != nil {
if err := m.Highlight.ValidateWithPath(path + "/Highlight"); err != nil {
return err
}
}
if m.ULnTx != nil {
if err := m.ULnTx.ValidateWithPath(path + "/ULnTx"); err != nil {
return err
}
}
if m.ULn != nil {
if err := m.ULn.ValidateWithPath(path + "/ULn"); err != nil {
return err
}
}
if m.UFillTx != nil {
if err := m.UFillTx.ValidateWithPath(path + "/UFillTx"); err != nil {
return err
}
}
if m.UFill != nil {
if err := m.UFill.ValidateWithPath(path + "/UFill"); err != nil {
return err
}
}
if m.Latin != nil {
if err := m.Latin.ValidateWithPath(path + "/Latin"); err != nil {
return err
}
}
if m.Ea != nil {
if err := m.Ea.ValidateWithPath(path + "/Ea"); err != nil {
return err
}
}
if m.Cs != nil {
if err := m.Cs.ValidateWithPath(path + "/Cs"); err != nil {
return err
}
}
if m.Sym != nil {
if err := m.Sym.ValidateWithPath(path + "/Sym"); err != nil {
return err
}
}
if m.HlinkClick != nil {
if err := m.HlinkClick.ValidateWithPath(path + "/HlinkClick"); err != nil {
return err
}
}
if m.HlinkMouseOver != nil {
if err := m.HlinkMouseOver.ValidateWithPath(path + "/HlinkMouseOver"); err != nil {
return err
}
}
if m.Rtl != nil {
if err := m.Rtl.ValidateWithPath(path + "/Rtl"); err != nil {
return err
}
}
if m.ExtLst != nil {
if err := m.ExtLst.ValidateWithPath(path + "/ExtLst"); err != nil {
return err
}
}
return nil
}