2017-08-29 15:06:08 -05:00

649 lines
16 KiB
Go

// Copyright 2017 Baliance. All rights reserved.
//
// 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 wordprocessingDrawing
import (
"encoding/xml"
"fmt"
"baliance.com/gooxml"
"baliance.com/gooxml/schema/schemas.openxmlformats.org/drawingml"
)
func ParseUnionST_Coordinate(s string) (drawingml.ST_Coordinate, error) {
return drawingml.ParseUnionST_Coordinate(s)
}
type ST_WrapText byte
const (
ST_WrapTextUnset ST_WrapText = 0
ST_WrapTextBothSides ST_WrapText = 1
ST_WrapTextLeft ST_WrapText = 2
ST_WrapTextRight ST_WrapText = 3
ST_WrapTextLargest ST_WrapText = 4
)
func (e ST_WrapText) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
attr := xml.Attr{}
attr.Name = name
switch e {
case ST_WrapTextUnset:
attr.Value = ""
case ST_WrapTextBothSides:
attr.Value = "bothSides"
case ST_WrapTextLeft:
attr.Value = "left"
case ST_WrapTextRight:
attr.Value = "right"
case ST_WrapTextLargest:
attr.Value = "largest"
}
return attr, nil
}
func (e *ST_WrapText) UnmarshalXMLAttr(attr xml.Attr) error {
switch attr.Value {
case "":
*e = 0
case "bothSides":
*e = 1
case "left":
*e = 2
case "right":
*e = 3
case "largest":
*e = 4
}
return nil
}
func (m ST_WrapText) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
return e.EncodeElement(m.String(), start)
}
func (m *ST_WrapText) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
tok, err := d.Token()
if err != nil {
return err
}
if cd, ok := tok.(xml.CharData); !ok {
return fmt.Errorf("expected char data, got %T", tok)
} else {
switch string(cd) {
case "":
*m = 0
case "bothSides":
*m = 1
case "left":
*m = 2
case "right":
*m = 3
case "largest":
*m = 4
}
}
tok, err = d.Token()
if err != nil {
return err
}
if el, ok := tok.(xml.EndElement); ok && el.Name == start.Name {
return nil
}
return fmt.Errorf("expected end element, got %v", tok)
}
func (m ST_WrapText) String() string {
switch m {
case 0:
return ""
case 1:
return "bothSides"
case 2:
return "left"
case 3:
return "right"
case 4:
return "largest"
}
return ""
}
func (m ST_WrapText) Validate() error {
return m.ValidateWithPath("")
}
func (m ST_WrapText) ValidateWithPath(path string) error {
switch m {
case 0, 1, 2, 3, 4:
default:
return fmt.Errorf("%s: out of range value %d", path, int(m))
}
return nil
}
type ST_AlignH byte
const (
ST_AlignHUnset ST_AlignH = 0
ST_AlignHLeft ST_AlignH = 1
ST_AlignHRight ST_AlignH = 2
ST_AlignHCenter ST_AlignH = 3
ST_AlignHInside ST_AlignH = 4
ST_AlignHOutside ST_AlignH = 5
)
func (e ST_AlignH) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
attr := xml.Attr{}
attr.Name = name
switch e {
case ST_AlignHUnset:
attr.Value = ""
case ST_AlignHLeft:
attr.Value = "left"
case ST_AlignHRight:
attr.Value = "right"
case ST_AlignHCenter:
attr.Value = "center"
case ST_AlignHInside:
attr.Value = "inside"
case ST_AlignHOutside:
attr.Value = "outside"
}
return attr, nil
}
func (e *ST_AlignH) UnmarshalXMLAttr(attr xml.Attr) error {
switch attr.Value {
case "":
*e = 0
case "left":
*e = 1
case "right":
*e = 2
case "center":
*e = 3
case "inside":
*e = 4
case "outside":
*e = 5
}
return nil
}
func (m ST_AlignH) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
return e.EncodeElement(m.String(), start)
}
func (m *ST_AlignH) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
tok, err := d.Token()
if err != nil {
return err
}
if cd, ok := tok.(xml.CharData); !ok {
return fmt.Errorf("expected char data, got %T", tok)
} else {
switch string(cd) {
case "":
*m = 0
case "left":
*m = 1
case "right":
*m = 2
case "center":
*m = 3
case "inside":
*m = 4
case "outside":
*m = 5
}
}
tok, err = d.Token()
if err != nil {
return err
}
if el, ok := tok.(xml.EndElement); ok && el.Name == start.Name {
return nil
}
return fmt.Errorf("expected end element, got %v", tok)
}
func (m ST_AlignH) String() string {
switch m {
case 0:
return ""
case 1:
return "left"
case 2:
return "right"
case 3:
return "center"
case 4:
return "inside"
case 5:
return "outside"
}
return ""
}
func (m ST_AlignH) Validate() error {
return m.ValidateWithPath("")
}
func (m ST_AlignH) ValidateWithPath(path string) error {
switch m {
case 0, 1, 2, 3, 4, 5:
default:
return fmt.Errorf("%s: out of range value %d", path, int(m))
}
return nil
}
type ST_RelFromH byte
const (
ST_RelFromHUnset ST_RelFromH = 0
ST_RelFromHMargin ST_RelFromH = 1
ST_RelFromHPage ST_RelFromH = 2
ST_RelFromHColumn ST_RelFromH = 3
ST_RelFromHCharacter ST_RelFromH = 4
ST_RelFromHLeftMargin ST_RelFromH = 5
ST_RelFromHRightMargin ST_RelFromH = 6
ST_RelFromHInsideMargin ST_RelFromH = 7
ST_RelFromHOutsideMargin ST_RelFromH = 8
)
func (e ST_RelFromH) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
attr := xml.Attr{}
attr.Name = name
switch e {
case ST_RelFromHUnset:
attr.Value = ""
case ST_RelFromHMargin:
attr.Value = "margin"
case ST_RelFromHPage:
attr.Value = "page"
case ST_RelFromHColumn:
attr.Value = "column"
case ST_RelFromHCharacter:
attr.Value = "character"
case ST_RelFromHLeftMargin:
attr.Value = "leftMargin"
case ST_RelFromHRightMargin:
attr.Value = "rightMargin"
case ST_RelFromHInsideMargin:
attr.Value = "insideMargin"
case ST_RelFromHOutsideMargin:
attr.Value = "outsideMargin"
}
return attr, nil
}
func (e *ST_RelFromH) UnmarshalXMLAttr(attr xml.Attr) error {
switch attr.Value {
case "":
*e = 0
case "margin":
*e = 1
case "page":
*e = 2
case "column":
*e = 3
case "character":
*e = 4
case "leftMargin":
*e = 5
case "rightMargin":
*e = 6
case "insideMargin":
*e = 7
case "outsideMargin":
*e = 8
}
return nil
}
func (m ST_RelFromH) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
return e.EncodeElement(m.String(), start)
}
func (m *ST_RelFromH) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
tok, err := d.Token()
if err != nil {
return err
}
if cd, ok := tok.(xml.CharData); !ok {
return fmt.Errorf("expected char data, got %T", tok)
} else {
switch string(cd) {
case "":
*m = 0
case "margin":
*m = 1
case "page":
*m = 2
case "column":
*m = 3
case "character":
*m = 4
case "leftMargin":
*m = 5
case "rightMargin":
*m = 6
case "insideMargin":
*m = 7
case "outsideMargin":
*m = 8
}
}
tok, err = d.Token()
if err != nil {
return err
}
if el, ok := tok.(xml.EndElement); ok && el.Name == start.Name {
return nil
}
return fmt.Errorf("expected end element, got %v", tok)
}
func (m ST_RelFromH) String() string {
switch m {
case 0:
return ""
case 1:
return "margin"
case 2:
return "page"
case 3:
return "column"
case 4:
return "character"
case 5:
return "leftMargin"
case 6:
return "rightMargin"
case 7:
return "insideMargin"
case 8:
return "outsideMargin"
}
return ""
}
func (m ST_RelFromH) Validate() error {
return m.ValidateWithPath("")
}
func (m ST_RelFromH) ValidateWithPath(path string) error {
switch m {
case 0, 1, 2, 3, 4, 5, 6, 7, 8:
default:
return fmt.Errorf("%s: out of range value %d", path, int(m))
}
return nil
}
type ST_AlignV byte
const (
ST_AlignVUnset ST_AlignV = 0
ST_AlignVTop ST_AlignV = 1
ST_AlignVBottom ST_AlignV = 2
ST_AlignVCenter ST_AlignV = 3
ST_AlignVInside ST_AlignV = 4
ST_AlignVOutside ST_AlignV = 5
)
func (e ST_AlignV) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
attr := xml.Attr{}
attr.Name = name
switch e {
case ST_AlignVUnset:
attr.Value = ""
case ST_AlignVTop:
attr.Value = "top"
case ST_AlignVBottom:
attr.Value = "bottom"
case ST_AlignVCenter:
attr.Value = "center"
case ST_AlignVInside:
attr.Value = "inside"
case ST_AlignVOutside:
attr.Value = "outside"
}
return attr, nil
}
func (e *ST_AlignV) UnmarshalXMLAttr(attr xml.Attr) error {
switch attr.Value {
case "":
*e = 0
case "top":
*e = 1
case "bottom":
*e = 2
case "center":
*e = 3
case "inside":
*e = 4
case "outside":
*e = 5
}
return nil
}
func (m ST_AlignV) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
return e.EncodeElement(m.String(), start)
}
func (m *ST_AlignV) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
tok, err := d.Token()
if err != nil {
return err
}
if cd, ok := tok.(xml.CharData); !ok {
return fmt.Errorf("expected char data, got %T", tok)
} else {
switch string(cd) {
case "":
*m = 0
case "top":
*m = 1
case "bottom":
*m = 2
case "center":
*m = 3
case "inside":
*m = 4
case "outside":
*m = 5
}
}
tok, err = d.Token()
if err != nil {
return err
}
if el, ok := tok.(xml.EndElement); ok && el.Name == start.Name {
return nil
}
return fmt.Errorf("expected end element, got %v", tok)
}
func (m ST_AlignV) String() string {
switch m {
case 0:
return ""
case 1:
return "top"
case 2:
return "bottom"
case 3:
return "center"
case 4:
return "inside"
case 5:
return "outside"
}
return ""
}
func (m ST_AlignV) Validate() error {
return m.ValidateWithPath("")
}
func (m ST_AlignV) ValidateWithPath(path string) error {
switch m {
case 0, 1, 2, 3, 4, 5:
default:
return fmt.Errorf("%s: out of range value %d", path, int(m))
}
return nil
}
type ST_RelFromV byte
const (
ST_RelFromVUnset ST_RelFromV = 0
ST_RelFromVMargin ST_RelFromV = 1
ST_RelFromVPage ST_RelFromV = 2
ST_RelFromVParagraph ST_RelFromV = 3
ST_RelFromVLine ST_RelFromV = 4
ST_RelFromVTopMargin ST_RelFromV = 5
ST_RelFromVBottomMargin ST_RelFromV = 6
ST_RelFromVInsideMargin ST_RelFromV = 7
ST_RelFromVOutsideMargin ST_RelFromV = 8
)
func (e ST_RelFromV) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
attr := xml.Attr{}
attr.Name = name
switch e {
case ST_RelFromVUnset:
attr.Value = ""
case ST_RelFromVMargin:
attr.Value = "margin"
case ST_RelFromVPage:
attr.Value = "page"
case ST_RelFromVParagraph:
attr.Value = "paragraph"
case ST_RelFromVLine:
attr.Value = "line"
case ST_RelFromVTopMargin:
attr.Value = "topMargin"
case ST_RelFromVBottomMargin:
attr.Value = "bottomMargin"
case ST_RelFromVInsideMargin:
attr.Value = "insideMargin"
case ST_RelFromVOutsideMargin:
attr.Value = "outsideMargin"
}
return attr, nil
}
func (e *ST_RelFromV) UnmarshalXMLAttr(attr xml.Attr) error {
switch attr.Value {
case "":
*e = 0
case "margin":
*e = 1
case "page":
*e = 2
case "paragraph":
*e = 3
case "line":
*e = 4
case "topMargin":
*e = 5
case "bottomMargin":
*e = 6
case "insideMargin":
*e = 7
case "outsideMargin":
*e = 8
}
return nil
}
func (m ST_RelFromV) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
return e.EncodeElement(m.String(), start)
}
func (m *ST_RelFromV) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
tok, err := d.Token()
if err != nil {
return err
}
if cd, ok := tok.(xml.CharData); !ok {
return fmt.Errorf("expected char data, got %T", tok)
} else {
switch string(cd) {
case "":
*m = 0
case "margin":
*m = 1
case "page":
*m = 2
case "paragraph":
*m = 3
case "line":
*m = 4
case "topMargin":
*m = 5
case "bottomMargin":
*m = 6
case "insideMargin":
*m = 7
case "outsideMargin":
*m = 8
}
}
tok, err = d.Token()
if err != nil {
return err
}
if el, ok := tok.(xml.EndElement); ok && el.Name == start.Name {
return nil
}
return fmt.Errorf("expected end element, got %v", tok)
}
func (m ST_RelFromV) String() string {
switch m {
case 0:
return ""
case 1:
return "margin"
case 2:
return "page"
case 3:
return "paragraph"
case 4:
return "line"
case 5:
return "topMargin"
case 6:
return "bottomMargin"
case 7:
return "insideMargin"
case 8:
return "outsideMargin"
}
return ""
}
func (m ST_RelFromV) Validate() error {
return m.ValidateWithPath("")
}
func (m ST_RelFromV) ValidateWithPath(path string) error {
switch m {
case 0, 1, 2, 3, 4, 5, 6, 7, 8:
default:
return fmt.Errorf("%s: out of range value %d", path, int(m))
}
return nil
}
func init() {
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_EffectExtent", NewCT_EffectExtent)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_Inline", NewCT_Inline)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WrapPath", NewCT_WrapPath)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WrapNone", NewCT_WrapNone)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WrapSquare", NewCT_WrapSquare)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WrapTight", NewCT_WrapTight)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WrapThrough", NewCT_WrapThrough)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WrapTopBottom", NewCT_WrapTopBottom)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_PosH", NewCT_PosH)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_PosV", NewCT_PosV)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_Anchor", NewCT_Anchor)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_TxbxContent", NewCT_TxbxContent)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_TextboxInfo", NewCT_TextboxInfo)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_LinkedTextboxInformation", NewCT_LinkedTextboxInformation)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WordprocessingShape", NewCT_WordprocessingShape)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_GraphicFrame", NewCT_GraphicFrame)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WordprocessingContentPartNonVisual", NewCT_WordprocessingContentPartNonVisual)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WordprocessingContentPart", NewCT_WordprocessingContentPart)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WordprocessingGroup", NewCT_WordprocessingGroup)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "CT_WordprocessingCanvas", NewCT_WordprocessingCanvas)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "wpc", NewWpc)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "wgp", NewWgp)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "wsp", NewWsp)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "inline", NewInline)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "anchor", NewAnchor)
gooxml.RegisterConstructor("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "EG_WrapType", NewEG_WrapType)
}