unioffice/schema/soo/sml/CT_Font.go
2017-09-23 10:01:17 -04:00

351 lines
9.9 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 sml
import (
"encoding/xml"
"fmt"
"log"
)
type CT_Font struct {
// Font Name
Name []*CT_FontName
// Character Set
Charset []*CT_IntProperty
// Font Family
Family []*CT_FontFamily
// Bold
B []*CT_BooleanProperty
// Italic
I []*CT_BooleanProperty
// Strike Through
Strike []*CT_BooleanProperty
// Outline
Outline []*CT_BooleanProperty
// Shadow
Shadow []*CT_BooleanProperty
// Condense
Condense []*CT_BooleanProperty
// Extend
Extend []*CT_BooleanProperty
// Text Color
Color []*CT_Color
// Font Size
Sz []*CT_FontSize
// Underline
U []*CT_UnderlineProperty
// Text Vertical Alignment
VertAlign []*CT_VerticalAlignFontProperty
// Scheme
Scheme []*CT_FontScheme
}
func NewCT_Font() *CT_Font {
ret := &CT_Font{}
return ret
}
func (m *CT_Font) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
e.EncodeToken(start)
if m.Name != nil {
sename := xml.StartElement{Name: xml.Name{Local: "ma:name"}}
for _, c := range m.Name {
e.EncodeElement(c, sename)
}
}
if m.Charset != nil {
secharset := xml.StartElement{Name: xml.Name{Local: "ma:charset"}}
for _, c := range m.Charset {
e.EncodeElement(c, secharset)
}
}
if m.Family != nil {
sefamily := xml.StartElement{Name: xml.Name{Local: "ma:family"}}
for _, c := range m.Family {
e.EncodeElement(c, sefamily)
}
}
if m.B != nil {
seb := xml.StartElement{Name: xml.Name{Local: "ma:b"}}
for _, c := range m.B {
e.EncodeElement(c, seb)
}
}
if m.I != nil {
sei := xml.StartElement{Name: xml.Name{Local: "ma:i"}}
for _, c := range m.I {
e.EncodeElement(c, sei)
}
}
if m.Strike != nil {
sestrike := xml.StartElement{Name: xml.Name{Local: "ma:strike"}}
for _, c := range m.Strike {
e.EncodeElement(c, sestrike)
}
}
if m.Outline != nil {
seoutline := xml.StartElement{Name: xml.Name{Local: "ma:outline"}}
for _, c := range m.Outline {
e.EncodeElement(c, seoutline)
}
}
if m.Shadow != nil {
seshadow := xml.StartElement{Name: xml.Name{Local: "ma:shadow"}}
for _, c := range m.Shadow {
e.EncodeElement(c, seshadow)
}
}
if m.Condense != nil {
secondense := xml.StartElement{Name: xml.Name{Local: "ma:condense"}}
for _, c := range m.Condense {
e.EncodeElement(c, secondense)
}
}
if m.Extend != nil {
seextend := xml.StartElement{Name: xml.Name{Local: "ma:extend"}}
for _, c := range m.Extend {
e.EncodeElement(c, seextend)
}
}
if m.Color != nil {
secolor := xml.StartElement{Name: xml.Name{Local: "ma:color"}}
for _, c := range m.Color {
e.EncodeElement(c, secolor)
}
}
if m.Sz != nil {
sesz := xml.StartElement{Name: xml.Name{Local: "ma:sz"}}
for _, c := range m.Sz {
e.EncodeElement(c, sesz)
}
}
if m.U != nil {
seu := xml.StartElement{Name: xml.Name{Local: "ma:u"}}
for _, c := range m.U {
e.EncodeElement(c, seu)
}
}
if m.VertAlign != nil {
severtAlign := xml.StartElement{Name: xml.Name{Local: "ma:vertAlign"}}
for _, c := range m.VertAlign {
e.EncodeElement(c, severtAlign)
}
}
if m.Scheme != nil {
sescheme := xml.StartElement{Name: xml.Name{Local: "ma:scheme"}}
for _, c := range m.Scheme {
e.EncodeElement(c, sescheme)
}
}
e.EncodeToken(xml.EndElement{Name: start.Name})
return nil
}
func (m *CT_Font) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
// initialize to default
lCT_Font:
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/spreadsheetml/2006/main", Local: "name"}:
tmp := NewCT_FontName()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.Name = append(m.Name, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "charset"}:
tmp := NewCT_IntProperty()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.Charset = append(m.Charset, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "family"}:
tmp := NewCT_FontFamily()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.Family = append(m.Family, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "b"}:
tmp := NewCT_BooleanProperty()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.B = append(m.B, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "i"}:
tmp := NewCT_BooleanProperty()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.I = append(m.I, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "strike"}:
tmp := NewCT_BooleanProperty()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.Strike = append(m.Strike, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "outline"}:
tmp := NewCT_BooleanProperty()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.Outline = append(m.Outline, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "shadow"}:
tmp := NewCT_BooleanProperty()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.Shadow = append(m.Shadow, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "condense"}:
tmp := NewCT_BooleanProperty()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.Condense = append(m.Condense, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "extend"}:
tmp := NewCT_BooleanProperty()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.Extend = append(m.Extend, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "color"}:
tmp := NewCT_Color()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.Color = append(m.Color, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "sz"}:
tmp := NewCT_FontSize()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.Sz = append(m.Sz, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "u"}:
tmp := NewCT_UnderlineProperty()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.U = append(m.U, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "vertAlign"}:
tmp := NewCT_VerticalAlignFontProperty()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.VertAlign = append(m.VertAlign, tmp)
case xml.Name{Space: "http://schemas.openxmlformats.org/spreadsheetml/2006/main", Local: "scheme"}:
tmp := NewCT_FontScheme()
if err := d.DecodeElement(tmp, &el); err != nil {
return err
}
m.Scheme = append(m.Scheme, tmp)
default:
log.Printf("skipping unsupported element on CT_Font %v", el.Name)
if err := d.Skip(); err != nil {
return err
}
}
case xml.EndElement:
break lCT_Font
case xml.CharData:
}
}
return nil
}
// Validate validates the CT_Font and its children
func (m *CT_Font) Validate() error {
return m.ValidateWithPath("CT_Font")
}
// ValidateWithPath validates the CT_Font and its children, prefixing error messages with path
func (m *CT_Font) ValidateWithPath(path string) error {
for i, v := range m.Name {
if err := v.ValidateWithPath(fmt.Sprintf("%s/Name[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.Charset {
if err := v.ValidateWithPath(fmt.Sprintf("%s/Charset[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.Family {
if err := v.ValidateWithPath(fmt.Sprintf("%s/Family[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.B {
if err := v.ValidateWithPath(fmt.Sprintf("%s/B[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.I {
if err := v.ValidateWithPath(fmt.Sprintf("%s/I[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.Strike {
if err := v.ValidateWithPath(fmt.Sprintf("%s/Strike[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.Outline {
if err := v.ValidateWithPath(fmt.Sprintf("%s/Outline[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.Shadow {
if err := v.ValidateWithPath(fmt.Sprintf("%s/Shadow[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.Condense {
if err := v.ValidateWithPath(fmt.Sprintf("%s/Condense[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.Extend {
if err := v.ValidateWithPath(fmt.Sprintf("%s/Extend[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.Color {
if err := v.ValidateWithPath(fmt.Sprintf("%s/Color[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.Sz {
if err := v.ValidateWithPath(fmt.Sprintf("%s/Sz[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.U {
if err := v.ValidateWithPath(fmt.Sprintf("%s/U[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.VertAlign {
if err := v.ValidateWithPath(fmt.Sprintf("%s/VertAlign[%d]", path, i)); err != nil {
return err
}
}
for i, v := range m.Scheme {
if err := v.ValidateWithPath(fmt.Sprintf("%s/Scheme[%d]", path, i)); err != nil {
return err
}
}
return nil
}