//
// -----------------------------------------------------------------------------
//  THIS FILE WAS @generated AUTOMATICALLY. DO NOT MODIFY THIS FILE MANUALLY.
// -----------------------------------------------------------------------------
//

#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum LayoutTargetValues {
  #[sdk(rename = "inner")]
  #[default]
  Inner,
  #[sdk(rename = "outer")]
  Outer,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum LayoutModeValues {
  #[sdk(rename = "edge")]
  #[default]
  Edge,
  #[sdk(rename = "factor")]
  Factor,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum SizeRepresentsValues {
  #[sdk(rename = "area")]
  #[default]
  Area,
  #[sdk(rename = "w")]
  Width,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum LabelAlignmentValues {
  #[sdk(rename = "ctr")]
  #[default]
  Center,
  #[sdk(rename = "l")]
  Left,
  #[sdk(rename = "r")]
  Right,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum DataLabelPositionValues {
  #[sdk(rename = "bestFit")]
  #[default]
  BestFit,
  #[sdk(rename = "b")]
  Bottom,
  #[sdk(rename = "ctr")]
  Center,
  #[sdk(rename = "inBase")]
  InsideBase,
  #[sdk(rename = "inEnd")]
  InsideEnd,
  #[sdk(rename = "l")]
  Left,
  #[sdk(rename = "outEnd")]
  OutsideEnd,
  #[sdk(rename = "r")]
  Right,
  #[sdk(rename = "t")]
  Top,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum TrendlineValues {
  #[sdk(rename = "exp")]
  #[default]
  Exponential,
  #[sdk(rename = "linear")]
  Linear,
  #[sdk(rename = "log")]
  Logarithmic,
  #[sdk(rename = "movingAvg")]
  MovingAverage,
  #[sdk(rename = "poly")]
  Polynomial,
  #[sdk(rename = "power")]
  Power,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum ErrorBarDirectionValues {
  #[sdk(rename = "x")]
  #[default]
  X,
  #[sdk(rename = "y")]
  Y,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum ErrorBarValues {
  #[sdk(rename = "both")]
  #[default]
  Both,
  #[sdk(rename = "minus")]
  Minus,
  #[sdk(rename = "plus")]
  Plus,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum ErrorValues {
  #[sdk(rename = "cust")]
  #[default]
  Custom,
  #[sdk(rename = "fixedVal")]
  FixedValue,
  #[sdk(rename = "percentage")]
  Percentage,
  #[sdk(rename = "stdDev")]
  StandardDeviation,
  #[sdk(rename = "stdErr")]
  StandardError,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum GroupingValues {
  #[sdk(rename = "percentStacked")]
  #[default]
  PercentStacked,
  #[sdk(rename = "standard")]
  Standard,
  #[sdk(rename = "stacked")]
  Stacked,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum RadarStyleValues {
  #[sdk(rename = "standard")]
  #[default]
  Standard,
  #[sdk(rename = "marker")]
  Marker,
  #[sdk(rename = "filled")]
  Filled,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum BarGroupingValues {
  #[sdk(rename = "percentStacked")]
  #[default]
  PercentStacked,
  #[sdk(rename = "clustered")]
  Clustered,
  #[sdk(rename = "standard")]
  Standard,
  #[sdk(rename = "stacked")]
  Stacked,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum BarDirectionValues {
  #[sdk(rename = "bar")]
  #[default]
  Bar,
  #[sdk(rename = "col")]
  Column,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum ShapeValues {
  #[sdk(rename = "cone")]
  #[default]
  Cone,
  #[sdk(rename = "coneToMax")]
  ConeToMax,
  #[sdk(rename = "box")]
  Box,
  #[sdk(rename = "cylinder")]
  Cylinder,
  #[sdk(rename = "pyramid")]
  Pyramid,
  #[sdk(rename = "pyramidToMax")]
  PyramidToMaximum,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum OfPieValues {
  #[sdk(rename = "pie")]
  #[default]
  Pie,
  #[sdk(rename = "bar")]
  Bar,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum AxisPositionValues {
  #[sdk(rename = "b")]
  #[default]
  Bottom,
  #[sdk(rename = "l")]
  Left,
  #[sdk(rename = "r")]
  Right,
  #[sdk(rename = "t")]
  Top,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum CrossesValues {
  #[sdk(rename = "autoZero")]
  #[default]
  AutoZero,
  #[sdk(rename = "max")]
  Maximum,
  #[sdk(rename = "min")]
  Minimum,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum CrossBetweenValues {
  #[sdk(rename = "between")]
  #[default]
  Between,
  #[sdk(rename = "midCat")]
  MidpointCategory,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum TickMarkValues {
  #[sdk(rename = "cross")]
  #[default]
  Cross,
  #[sdk(rename = "in")]
  Inside,
  #[sdk(rename = "none")]
  None,
  #[sdk(rename = "out")]
  Outside,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum TickLabelPositionValues {
  #[sdk(rename = "high")]
  #[default]
  High,
  #[sdk(rename = "low")]
  Low,
  #[sdk(rename = "nextTo")]
  NextTo,
  #[sdk(rename = "none")]
  None,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum TimeUnitValues {
  #[sdk(rename = "days")]
  #[default]
  Days,
  #[sdk(rename = "months")]
  Months,
  #[sdk(rename = "years")]
  Years,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum BuiltInUnitValues {
  #[sdk(rename = "hundreds")]
  #[default]
  Hundreds,
  #[sdk(rename = "thousands")]
  Thousands,
  #[sdk(rename = "tenThousands")]
  TenThousands,
  #[sdk(rename = "hundredThousands")]
  HundredThousands,
  #[sdk(rename = "millions")]
  Millions,
  #[sdk(rename = "tenMillions")]
  TenMillions,
  #[sdk(rename = "hundredMillions")]
  HundredMillions,
  #[sdk(rename = "billions")]
  Billions,
  #[sdk(rename = "trillions")]
  Trillions,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum PictureFormatValues {
  #[sdk(rename = "stretch")]
  #[default]
  Stretch,
  #[sdk(rename = "stack")]
  Stack,
  #[sdk(rename = "stackScale")]
  StackScale,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum OrientationValues {
  #[sdk(rename = "maxMin")]
  #[default]
  MaxMin,
  #[sdk(rename = "minMax")]
  MinMax,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum LegendPositionValues {
  #[sdk(rename = "b")]
  #[default]
  Bottom,
  #[sdk(rename = "tr")]
  TopRight,
  #[sdk(rename = "l")]
  Left,
  #[sdk(rename = "r")]
  Right,
  #[sdk(rename = "t")]
  Top,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum DisplayBlanksAsValues {
  #[sdk(rename = "span")]
  #[default]
  Span,
  #[sdk(rename = "gap")]
  Gap,
  #[sdk(rename = "zero")]
  Zero,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum PageSetupOrientationValues {
  #[sdk(rename = "default")]
  #[default]
  Default,
  #[sdk(rename = "portrait")]
  Portrait,
  #[sdk(rename = "landscape")]
  Landscape,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum ScatterStyleValues {
  #[sdk(rename = "line")]
  #[default]
  Line,
  #[sdk(rename = "lineMarker")]
  LineMarker,
  #[sdk(rename = "marker")]
  Marker,
  #[sdk(rename = "smooth")]
  Smooth,
  #[sdk(rename = "smoothMarker")]
  SmoothMarker,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum MarkerStyleValues {
  #[sdk(rename = "auto")]
  #[default]
  Auto,
  #[sdk(rename = "circle")]
  Circle,
  #[sdk(rename = "dash")]
  Dash,
  #[sdk(rename = "diamond")]
  Diamond,
  #[sdk(rename = "dot")]
  Dot,
  #[sdk(rename = "none")]
  None,
  #[sdk(rename = "picture")]
  Picture,
  #[sdk(rename = "plus")]
  Plus,
  #[sdk(rename = "square")]
  Square,
  #[sdk(rename = "star")]
  Star,
  #[sdk(rename = "triangle")]
  Triangle,
  #[sdk(rename = "x")]
  X,
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Hash, ooxmlsdk_derive::SdkEnum)]
pub enum SplitValues {
  #[sdk(rename = "cust")]
  #[default]
  Custom,
  #[sdk(rename = "percent")]
  Percent,
  #[sdk(rename = "pos")]
  Position,
  #[sdk(rename = "val")]
  Value,
}
/// Number Format.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:numFmt")]
pub struct NumberingFormat {
  /// Number Format Code
  #[sdk(attr(qname = ":formatCode"))]
  pub format_code: crate::simple_type::StringValue,
  /// Linked to Source
  #[sdk(attr(qname = ":sourceLinked"))]
  pub source_linked: Option<crate::simple_type::BooleanValue>,
}
/// Defines the ChartShapeProperties Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:spPr")]
pub struct ChartShapeProperties {
  /// Black and White Mode
  #[sdk(attr(qname = ":bwMode"))]
  #[sdk(string_format(kind = "token"))]
  pub black_white_mode: Option<crate::schemas::a::BlackWhiteModeValues>,
  /// 2D Transform for Individual Objects
  #[sdk(child(qname = "a:xfrm"))]
  pub transform2_d: Option<std::boxed::Box<crate::schemas::a::Transform2D>>,
  #[sdk(
        choice(
            child(variant = CustomGeometry, qname = "a:custGeom"),
            child(variant = PresetGeometry, qname = "a:prstGeom")
        )
    )]
  pub chart_shape_properties_choice1: Option<ChartShapePropertiesChoice>,
  #[sdk(
        choice(
            child(variant = NoFill, qname = "a:noFill"),
            child(variant = SolidFill, qname = "a:solidFill"),
            child(variant = GradientFill, qname = "a:gradFill"),
            child(variant = BlipFill, qname = "a:blipFill"),
            child(variant = PatternFill, qname = "a:pattFill")
        )
    )]
  pub chart_shape_properties_choice2: Option<ChartShapePropertiesChoice2>,
  /// Defines the Outline Class.
  #[sdk(child(qname = "a:ln"))]
  pub outline: Option<std::boxed::Box<crate::schemas::a::Outline>>,
  #[sdk(
        choice(
            child(variant = EffectList, qname = "a:effectLst"),
            child(variant = EffectDag, qname = "a:effectDag")
        )
    )]
  pub chart_shape_properties_choice3: Option<ChartShapePropertiesChoice3>,
  /// 3D Scene Properties.
  #[sdk(child(qname = "a:scene3d"))]
  pub scene3_d_type: Option<std::boxed::Box<crate::schemas::a::Scene3DType>>,
  /// Apply 3D shape properties.
  #[sdk(child(qname = "a:sp3d"))]
  pub shape3_d_type: Option<std::boxed::Box<crate::schemas::a::Shape3DType>>,
  /// Defines the ExtensionList Class.
  #[sdk(child(qname = "a:extLst"))]
  pub extension_list: Option<crate::schemas::a::ExtensionList>,
}
/// Defines the TextProperties Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:txPr")]
pub struct TextProperties {
  /// Body Properties
  #[sdk(child(qname = "a:bodyPr"))]
  pub body_properties: std::boxed::Box<crate::schemas::a::BodyProperties>,
  /// Text List Styles
  #[sdk(child(qname = "a:lstStyle"))]
  pub list_style: Option<std::boxed::Box<crate::schemas::a::ListStyle>>,
  /// Text Paragraphs.
  #[sdk(child(qname = "a:p"))]
  pub paragraph: Vec<crate::schemas::a::Paragraph>,
}
/// Rich Text.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:rich")]
pub struct RichText {
  /// Body Properties
  #[sdk(child(qname = "a:bodyPr"))]
  pub body_properties: std::boxed::Box<crate::schemas::a::BodyProperties>,
  /// Text List Styles
  #[sdk(child(qname = "a:lstStyle"))]
  pub list_style: Option<std::boxed::Box<crate::schemas::a::ListStyle>>,
  /// Text Paragraphs.
  #[sdk(child(qname = "a:p"))]
  pub paragraph: Vec<crate::schemas::a::Paragraph>,
}
/// Data Label Position.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:dLblPos")]
pub struct DataLabelPosition {
  /// Data Label Position Value
  #[sdk(attr(qname = ":val"))]
  pub val: DataLabelPositionValues,
}
/// Show Legend Key.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showLegendKey")]
pub struct ShowLegendKey {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Show Value.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showVal")]
pub struct ShowValue {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Show Category Name.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showCatName")]
pub struct ShowCategoryName {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Show Series Name.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showSerName")]
pub struct ShowSeriesName {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Show Percent.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showPercent")]
pub struct ShowPercent {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Show Bubble Size.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showBubbleSize")]
pub struct ShowBubbleSize {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Show Leader Lines.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showLeaderLines")]
pub struct ShowLeaderLines {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Defines the VaryColors Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:varyColors")]
pub struct VaryColors {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Wireframe.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:wireframe")]
pub struct Wireframe {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Delete.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:delete")]
pub struct Delete {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Overlay.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:overlay")]
pub struct Overlay {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Right Angle Axes.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:rAngAx")]
pub struct RightAngleAxes {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Show Horizontal Border.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showHorzBorder")]
pub struct ShowHorizontalBorder {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Show Vertical Border.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showVertBorder")]
pub struct ShowVerticalBorder {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Show Outline Border.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showOutline")]
pub struct ShowOutlineBorder {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Show Legend Keys.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showKeys")]
pub struct ShowKeys {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Invert if Negative.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:invertIfNegative")]
pub struct InvertIfNegative {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// 3D Bubble.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:bubble3D")]
pub struct Bubble3D {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Display R Squared Value.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:dispRSqr")]
pub struct DisplayRSquaredValue {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Display Equation.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:dispEq")]
pub struct DisplayEquation {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// No End Cap.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:noEndCap")]
pub struct NoEndCap {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Apply To Front.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:applyToFront")]
pub struct ApplyToFront {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Apply To Sides.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:applyToSides")]
pub struct ApplyToSides {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Apply to End.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:applyToEnd")]
pub struct ApplyToEnd {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Chart Object.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:chartObject")]
pub struct ChartObject {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Data Cannot Be Changed.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:data")]
pub struct Data {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Formatting.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:formatting")]
pub struct Formatting {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Selection.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:selection")]
pub struct Selection {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// User Interface.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:userInterface")]
pub struct UserInterface {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Update Automatically.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:autoUpdate")]
pub struct AutoUpdate {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Defines the ShowMarker Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:marker")]
pub struct ShowMarker {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Defines the Smooth Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:smooth")]
pub struct Smooth {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Defines the ShowNegativeBubbles Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showNegBubbles")]
pub struct ShowNegativeBubbles {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Defines the AutoLabeled Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:auto")]
pub struct AutoLabeled {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Defines the NoMultiLevelLabels Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:noMultiLvlLbl")]
pub struct NoMultiLevelLabels {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// True if the chart automatic title has been deleted..
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:autoTitleDeleted")]
pub struct AutoTitleDeleted {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// True if only visible cells are plotted..
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:plotVisOnly")]
pub struct PlotVisibleOnly {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// True if we should render datalabels over the maximum scale.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:showDLblsOverMax")]
pub struct ShowDataLabelsOverMaximum {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Defines the Date1904 Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:date1904")]
pub struct Date1904 {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Defines the RoundedCorners Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:roundedCorners")]
pub struct RoundedCorners {
  /// Boolean Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<crate::simple_type::BooleanValue>,
}
/// Separator.
pub type Separator = crate::simple_type::StringValue;
/// Trendline Name.
pub type TrendlineName = crate::simple_type::StringValue;
/// Defines the Formula Class.
pub type Formula = crate::simple_type::StringValue;
/// Layout.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:layout")]
pub struct Layout {
  /// Manual Layout
  #[sdk(child(qname = "c:manualLayout"))]
  pub manual_layout: Option<std::boxed::Box<ManualLayout>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Defines the ChartText Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:tx")]
pub struct ChartText {
  #[sdk(
        choice(
            child(variant = StringReference, qname = "c:strRef"),
            child(variant = RichText, qname = "c:rich"),
            child(variant = StringLiteral, qname = "c:strLit")
        )
    )]
  pub chart_text_choice: Option<ChartTextChoice>,
}
/// Leader Lines.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:leaderLines")]
pub struct LeaderLines {
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
}
/// Drop Lines.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:dropLines")]
pub struct DropLines {
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
}
/// Major Gridlines.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:majorGridlines")]
pub struct MajorGridlines {
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
}
/// Minor Gridlines.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:minorGridlines")]
pub struct MinorGridlines {
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
}
/// Defines the SeriesLines Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:serLines")]
pub struct SeriesLines {
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
}
/// Defines the HighLowLines Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:hiLowLines")]
pub struct HighLowLines {
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
}
/// Index.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:idx")]
pub struct Index {
  /// Integer Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::UInt32Value,
}
/// Order.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:order")]
pub struct Order {
  /// Integer Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::UInt32Value,
}
/// Axis ID.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:axId")]
pub struct AxisId {
  /// Integer Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::Int32Value,
}
/// Crossing Axis ID.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:crossAx")]
pub struct CrossingAxis {
  /// Integer Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::Int32Value,
}
/// Point Count.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ptCount")]
pub struct PointCount {
  /// Integer Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::UInt32Value,
}
/// Second Pie Point.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:secondPiePt")]
pub struct SecondPiePoint {
  /// Integer Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::UInt32Value,
}
/// Explosion.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:explosion")]
pub struct Explosion {
  /// Integer Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::UInt32Value,
}
/// Format ID.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:fmtId")]
pub struct FormatId {
  /// Integer Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::UInt32Value,
}
/// Series Text.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:tx")]
pub struct SeriesText {
  #[sdk(
        choice(
            child(variant = StringReference, qname = "c:strRef"),
            text_child(variant = NumericValue, qname = "c:v")
        )
    )]
  pub series_text_choice: Option<SeriesTextChoice>,
}
/// Grouping.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:grouping")]
pub struct Grouping {
  /// Grouping Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<GroupingValues>,
}
/// Defines the LineChartSeries Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ser")]
pub struct LineChartSeries {
  /// Index
  #[sdk(child(qname = "c:idx"))]
  pub index: std::boxed::Box<Index>,
  /// Order
  #[sdk(child(qname = "c:order"))]
  pub order: std::boxed::Box<Order>,
  /// Series Text
  #[sdk(child(qname = "c:tx"))]
  pub series_text: Option<std::boxed::Box<SeriesText>>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Marker.
  #[sdk(child(qname = "c:marker"))]
  pub marker: Option<std::boxed::Box<Marker>>,
  /// Defines the PictureOptions Class.
  #[sdk(child(qname = "c:pictureOptions"))]
  pub picture_options: Option<std::boxed::Box<PictureOptions>>,
  /// Defines the DataPoint Class.
  #[sdk(child(qname = "c:dPt"))]
  pub data_point: Vec<DataPoint>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Defines the Trendline Class.
  #[sdk(child(qname = "c:trendline"))]
  pub trendline: Vec<Trendline>,
  /// Defines the ErrorBars Class.
  #[sdk(child(qname = "c:errBars"))]
  pub error_bars: Option<std::boxed::Box<ErrorBars>>,
  /// Defines the CategoryAxisData Class.
  #[sdk(child(qname = "c:cat"))]
  pub category_axis_data: Option<std::boxed::Box<CategoryAxisData>>,
  /// Defines the Values Class.
  #[sdk(child(qname = "c:val"))]
  pub values: Option<std::boxed::Box<Values>>,
  /// Defines the Smooth Class.
  #[sdk(child(qname = "c:smooth"))]
  pub smooth: Option<Smooth>,
  /// Defines the LineSerExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub line_ser_extension_list: Option<LineSerExtensionList>,
}
/// Data Labels.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:dLbls")]
pub struct DataLabels {
  pub xml_other_children: Vec<(usize, std::boxed::Box<[u8]>)>,
  /// Data Label.
  #[sdk(child(qname = "c:dLbl"))]
  pub data_label: Vec<DataLabel>,
  #[sdk(
        choice(
            child(variant = Delete, qname = "c:delete"),
            sequence(
                variant = Sequence,
                child(qname = "c:numFmt"),
                child(qname = "c:spPr"),
                child(qname = "c:txPr"),
                child(qname = "c:dLblPos"),
                child(qname = "c:showLegendKey"),
                child(qname = "c:showVal"),
                child(qname = "c:showCatName"),
                child(qname = "c:showSerName"),
                child(qname = "c:showPercent"),
                child(qname = "c:showBubbleSize"),
                text_child(qname = "c:separator"),
                child(qname = "c:showLeaderLines"),
                child(qname = "c:leaderLines")
            )
        )
    )]
  pub data_labels_choice: Option<DataLabelsChoice>,
  /// Defines the DLblsExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub d_lbls_extension_list: Option<DLblsExtensionList>,
}
/// Bar Direction.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:barDir")]
pub struct BarDirection {
  /// Bar Direction Value
  #[sdk(attr(qname = ":val"))]
  pub val: BarDirectionValues,
}
/// Bar Grouping.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:grouping")]
pub struct BarGrouping {
  /// Bar Grouping Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<BarGroupingValues>,
}
/// Bar Chart Series.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ser")]
pub struct BarChartSeries {
  /// Index
  #[sdk(child(qname = "c:idx"))]
  pub index: std::boxed::Box<Index>,
  /// Order
  #[sdk(child(qname = "c:order"))]
  pub order: std::boxed::Box<Order>,
  /// Series Text
  #[sdk(child(qname = "c:tx"))]
  pub series_text: Option<std::boxed::Box<SeriesText>>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Invert if Negative.
  #[sdk(child(qname = "c:invertIfNegative"))]
  pub invert_if_negative: Option<InvertIfNegative>,
  /// Defines the PictureOptions Class.
  #[sdk(child(qname = "c:pictureOptions"))]
  pub picture_options: Option<std::boxed::Box<PictureOptions>>,
  /// Defines the DataPoint Class.
  #[sdk(child(qname = "c:dPt"))]
  pub data_point: Vec<DataPoint>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Defines the Trendline Class.
  #[sdk(child(qname = "c:trendline"))]
  pub trendline: Vec<Trendline>,
  /// Defines the ErrorBars Class.
  #[sdk(child(qname = "c:errBars"))]
  pub error_bars: Option<std::boxed::Box<ErrorBars>>,
  /// Defines the CategoryAxisData Class.
  #[sdk(child(qname = "c:cat"))]
  pub category_axis_data: Option<std::boxed::Box<CategoryAxisData>>,
  /// Defines the Values Class.
  #[sdk(child(qname = "c:val"))]
  pub values: Option<std::boxed::Box<Values>>,
  /// Defines the Shape Class.
  #[sdk(child(qname = "c:shape"))]
  pub shape: Option<Shape>,
  /// Defines the BarSerExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub bar_ser_extension_list: Option<BarSerExtensionList>,
}
/// Area Chart Series.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ser")]
pub struct AreaChartSeries {
  /// Index
  #[sdk(child(qname = "c:idx"))]
  pub index: std::boxed::Box<Index>,
  /// Order
  #[sdk(child(qname = "c:order"))]
  pub order: std::boxed::Box<Order>,
  /// Series Text
  #[sdk(child(qname = "c:tx"))]
  pub series_text: Option<std::boxed::Box<SeriesText>>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the PictureOptions Class.
  #[sdk(child(qname = "c:pictureOptions"))]
  pub picture_options: Option<std::boxed::Box<PictureOptions>>,
  /// Defines the DataPoint Class.
  #[sdk(child(qname = "c:dPt"))]
  pub data_point: Vec<DataPoint>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Defines the Trendline Class.
  #[sdk(child(qname = "c:trendline"))]
  pub trendline: Vec<Trendline>,
  /// Defines the ErrorBars Class.
  #[sdk(child(qname = "c:errBars"))]
  pub error_bars: Vec<ErrorBars>,
  /// Defines the CategoryAxisData Class.
  #[sdk(child(qname = "c:cat"))]
  pub category_axis_data: Option<std::boxed::Box<CategoryAxisData>>,
  /// Defines the Values Class.
  #[sdk(child(qname = "c:val"))]
  pub values: Option<std::boxed::Box<Values>>,
  /// Defines the AreaSerExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub area_ser_extension_list: Option<AreaSerExtensionList>,
}
/// Pie Chart Series.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ser")]
pub struct PieChartSeries {
  /// Index
  #[sdk(child(qname = "c:idx"))]
  pub index: Option<Index>,
  /// Order
  #[sdk(child(qname = "c:order"))]
  pub order: std::boxed::Box<Order>,
  /// Series Text
  #[sdk(child(qname = "c:tx"))]
  pub series_text: Option<std::boxed::Box<SeriesText>>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the PictureOptions Class.
  #[sdk(child(qname = "c:pictureOptions"))]
  pub picture_options: Option<std::boxed::Box<PictureOptions>>,
  /// Explosion.
  #[sdk(child(qname = "c:explosion"))]
  pub explosion: Option<Explosion>,
  /// Defines the DataPoint Class.
  #[sdk(child(qname = "c:dPt"))]
  pub data_point: Vec<DataPoint>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Defines the CategoryAxisData Class.
  #[sdk(child(qname = "c:cat"))]
  pub category_axis_data: Option<std::boxed::Box<CategoryAxisData>>,
  /// Defines the Values Class.
  #[sdk(child(qname = "c:val"))]
  pub values: Option<std::boxed::Box<Values>>,
  /// Defines the PieSerExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub pie_ser_extension_list: Option<PieSerExtensionList>,
}
/// Surface Chart Series.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ser")]
pub struct SurfaceChartSeries {
  /// Index
  #[sdk(child(qname = "c:idx"))]
  pub index: std::boxed::Box<Index>,
  /// Order
  #[sdk(child(qname = "c:order"))]
  pub order: std::boxed::Box<Order>,
  /// Series Text
  #[sdk(child(qname = "c:tx"))]
  pub series_text: Option<std::boxed::Box<SeriesText>>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the PictureOptions Class.
  #[sdk(child(qname = "c:pictureOptions"))]
  pub picture_options: Option<std::boxed::Box<PictureOptions>>,
  /// Defines the CategoryAxisData Class.
  #[sdk(child(qname = "c:cat"))]
  pub category_axis_data: Option<std::boxed::Box<CategoryAxisData>>,
  /// Defines the Values Class.
  #[sdk(child(qname = "c:val"))]
  pub values: Option<std::boxed::Box<Values>>,
  /// 3D Bubble.
  #[sdk(child(qname = "c:bubble3D"))]
  pub bubble3_d: Option<Bubble3D>,
  /// Defines the SurfaceSerExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub surface_ser_extension_list: Option<SurfaceSerExtensionList>,
}
/// Band Formats.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:bandFmts")]
pub struct BandFormats {
  /// Band Format.
  #[sdk(child(qname = "c:bandFmt"))]
  pub band_format: Vec<BandFormat>,
}
/// Scaling.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:scaling")]
pub struct Scaling {
  /// Logarithmic Base
  #[sdk(child(qname = "c:logBase"))]
  pub log_base: Option<LogBase>,
  /// Axis Orientation
  #[sdk(child(qname = "c:orientation"))]
  pub orientation: Option<Orientation>,
  /// Maximum
  #[sdk(child(qname = "c:max"))]
  pub max_axis_value: Option<MaxAxisValue>,
  /// Minimum
  #[sdk(child(qname = "c:min"))]
  pub min_axis_value: Option<MinAxisValue>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Axis Position.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:axPos")]
pub struct AxisPosition {
  /// Axis Position Value
  #[sdk(attr(qname = ":val"))]
  pub val: AxisPositionValues,
}
/// Title.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:title")]
pub struct Title {
  /// Chart Text
  #[sdk(child(qname = "c:tx"))]
  pub chart_text: Option<std::boxed::Box<ChartText>>,
  /// Layout
  #[sdk(child(qname = "c:layout"))]
  pub layout: Option<std::boxed::Box<Layout>>,
  /// Overlay
  #[sdk(child(qname = "c:overlay"))]
  pub overlay: Option<Overlay>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the TextProperties Class.
  #[sdk(child(qname = "c:txPr"))]
  pub text_properties: Option<std::boxed::Box<TextProperties>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Major Tick Mark.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:majorTickMark")]
pub struct MajorTickMark {
  /// Tick Mark Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<TickMarkValues>,
}
/// Minor Tick Mark.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:minorTickMark")]
pub struct MinorTickMark {
  /// Tick Mark Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<TickMarkValues>,
}
/// Tick Label Position.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:tickLblPos")]
pub struct TickLabelPosition {
  /// Tick Label Position Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<TickLabelPositionValues>,
}
/// Crosses.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:crosses")]
pub struct Crosses {
  /// Crosses Value
  #[sdk(attr(qname = ":val"))]
  pub val: CrossesValues,
}
/// Crossing Value.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:crossesAt")]
pub struct CrossesAt {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Left.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:x")]
pub struct Left {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Top.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:y")]
pub struct Top {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Width.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:w")]
pub struct Width {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Height.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:h")]
pub struct Height {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Forward.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:forward")]
pub struct Forward {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Backward.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:backward")]
pub struct Backward {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Intercept.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:intercept")]
pub struct Intercept {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Error Bar Value.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:val")]
pub struct ErrorBarValue {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Split Position.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:splitPos")]
pub struct SplitPosition {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Custom Display Unit.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:custUnit")]
pub struct CustomDisplayUnit {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Maximum.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:max")]
pub struct MaxAxisValue {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Minimum.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:min")]
pub struct MinAxisValue {
  /// Floating Point Value
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::DoubleValue,
}
/// Chart Space.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(extra_xmlns("c"), qname = "c:chartSpace")]
pub struct ChartSpace {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  pub xml_header: crate::common::XmlHeaderType,
  /// Version number of the file, as determined by the features used by this chart
  #[sdk(attr(qname = ":version"))]
  pub version: Option<crate::simple_type::StringValue>,
  /// A space-delimited list of additional features used in this chart but not captured in the version
  #[sdk(attr(qname = ":featureList"))]
  pub feature_list: Option<crate::simple_type::StringValue>,
  /// A reference (in the form of a relationship ID) to a fallback image to be used if the chart cannot be loaded
  #[sdk(attr(qname = ":fallbackImg"))]
  pub fallback_img: Option<crate::simple_type::StringValue>,
  /// Defines the Date1904 Class.
  #[sdk(child(qname = "c:date1904"))]
  pub date1904: Option<Date1904>,
  /// Defines the EditingLanguage Class.
  #[sdk(child(qname = "c:lang"))]
  pub editing_language: Option<EditingLanguage>,
  /// Defines the RoundedCorners Class.
  #[sdk(child(qname = "c:roundedCorners"))]
  pub rounded_corners: Option<RoundedCorners>,
  #[sdk(
        choice(
            child(variant = C14Style, qname = "c14:style"),
            child(variant = CStyle, qname = "c:style"),
            any
        )
    )]
  pub chart_space_choice: Option<ChartSpaceChoice>,
  /// Defines the ColorMapOverride Class.
  #[sdk(child(qname = "c:clrMapOvr"))]
  pub color_map_override: Option<std::boxed::Box<ColorMapOverride>>,
  /// Defines the PivotSource Class.
  #[sdk(child(qname = "c:pivotSource"))]
  pub pivot_source: Option<std::boxed::Box<PivotSource>>,
  /// Defines the Protection Class.
  #[sdk(child(qname = "c:protection"))]
  pub protection: Option<std::boxed::Box<Protection>>,
  /// Defines the Chart Class.
  #[sdk(child(qname = "c:chart"))]
  pub chart: std::boxed::Box<Chart>,
  /// Defines the ShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub shape_properties: Option<std::boxed::Box<ShapeProperties>>,
  /// Defines the TextProperties Class.
  #[sdk(child(qname = "c:txPr"))]
  pub text_properties: Option<std::boxed::Box<TextProperties>>,
  /// Defines the ExternalData Class.
  #[sdk(child(qname = "c:externalData"))]
  pub external_data: Option<std::boxed::Box<ExternalData>>,
  /// Defines the PrintSettings Class.
  #[sdk(child(qname = "c:printSettings"))]
  pub print_settings: Option<std::boxed::Box<PrintSettings>>,
  /// Defines the UserShapesReference Class.
  #[sdk(child(qname = "c:userShapes"))]
  pub user_shapes_reference: Option<UserShapesReference>,
  /// Defines the ChartSpaceExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub chart_space_extension_list: Option<ChartSpaceExtensionList>,
}
/// User Shapes.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:userShapes")]
pub struct UserShapes {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  pub xml_header: crate::common::XmlHeaderType,
  #[sdk(
        choice(
            child(variant = RelativeAnchorSize, qname = "cdr:relSizeAnchor"),
            child(variant = AbsoluteAnchorSize, qname = "cdr:absSizeAnchor")
        )
    )]
  pub user_shapes_choice: Vec<UserShapesChoice>,
}
/// Reference to Chart Part.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:chart")]
pub struct ChartReference {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Relationship Reference
  #[sdk(attr(qname = "r:id"))]
  pub id: crate::simple_type::StringValue,
}
/// Legacy Drawing for Headers and Footers.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:legacyDrawingHF")]
pub struct LegacyDrawingHeaderFooter {
  /// Relationship Reference
  #[sdk(attr(qname = "r:id"))]
  pub id: crate::simple_type::StringValue,
}
/// Defines the UserShapesReference Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:userShapes")]
pub struct UserShapesReference {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Relationship Reference
  #[sdk(attr(qname = "r:id"))]
  pub id: crate::simple_type::StringValue,
}
/// Extension.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct Extension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Uniform Resource Identifier
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: Option<crate::simple_type::StringValue>,
  #[sdk(any)]
  pub xml_children: Vec<std::boxed::Box<[u8]>>,
}
/// Numeric Value.
pub type NumericValue = crate::simple_type::StringValue;
/// Format Code.
pub type FormatCode = crate::simple_type::StringValue;
/// Odd Header.
pub type OddHeader = crate::simple_type::StringValue;
/// Odd Footer.
pub type OddFooter = crate::simple_type::StringValue;
/// Even Header.
pub type EvenHeader = crate::simple_type::StringValue;
/// Even Footer.
pub type EvenFooter = crate::simple_type::StringValue;
/// First Header.
pub type FirstHeader = crate::simple_type::StringValue;
/// First Footer.
pub type FirstFooter = crate::simple_type::StringValue;
/// Pivot Name.
pub type PivotTableName = crate::simple_type::StringValue;
/// Numeric Point.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:pt")]
pub struct NumericPoint {
  /// Index
  #[sdk(attr(qname = ":idx"))]
  pub index: crate::simple_type::UInt32Value,
  /// Number Format
  #[sdk(attr(qname = ":formatCode"))]
  pub format_code: Option<crate::simple_type::StringValue>,
  /// Numeric Value
  #[sdk(text_child(simple_type = "StringValue", qname = "c:v"))]
  pub numeric_value: NumericValue,
}
/// Defines the ExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct ExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Extension.
  #[sdk(child(qname = "c:ext"))]
  pub extension: Vec<Extension>,
}
/// Number Reference.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:numRef")]
pub struct NumberReference {
  /// Defines the Formula Class.
  #[sdk(text_child(simple_type = "StringValue", qname = "c:f"))]
  pub formula: Formula,
  /// Defines the NumberingCache Class.
  #[sdk(child(qname = "c:numCache"))]
  pub numbering_cache: Option<std::boxed::Box<NumberingCache>>,
  /// Defines the NumRefExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub num_ref_extension_list: Option<NumRefExtensionList>,
}
/// Number Literal.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:numLit")]
pub struct NumberLiteral {
  /// Format Code
  #[sdk(text_child(simple_type = "StringValue", qname = "c:formatCode"))]
  pub format_code: Option<FormatCode>,
  /// Point Count
  #[sdk(child(qname = "c:ptCount"))]
  pub point_count: Option<PointCount>,
  /// Numeric Point.
  #[sdk(child(qname = "c:pt"))]
  pub numeric_point: Vec<NumericPoint>,
  /// Defines the ExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Defines the NumberingCache Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:numCache")]
pub struct NumberingCache {
  /// Format Code
  #[sdk(text_child(simple_type = "StringValue", qname = "c:formatCode"))]
  pub format_code: Option<FormatCode>,
  /// Point Count
  #[sdk(child(qname = "c:ptCount"))]
  pub point_count: Option<PointCount>,
  /// Numeric Point.
  #[sdk(child(qname = "c:pt"))]
  pub numeric_point: Vec<NumericPoint>,
  /// Defines the ExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Level.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:lvl")]
pub struct Level {
  /// String Point.
  #[sdk(child(qname = "c:pt"))]
  pub string_point: Vec<StringPoint>,
}
/// Multi Level String Reference.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:multiLvlStrRef")]
pub struct MultiLevelStringReference {
  /// Defines the Formula Class.
  #[sdk(text_child(simple_type = "StringValue", qname = "c:f"))]
  pub formula: Formula,
  /// Defines the MultiLevelStringCache Class.
  #[sdk(child(qname = "c:multiLvlStrCache"))]
  pub multi_level_string_cache: Option<std::boxed::Box<MultiLevelStringCache>>,
  /// Defines the MultiLvlStrRefExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub multi_lvl_str_ref_extension_list: Option<MultiLvlStrRefExtensionList>,
}
/// Defines the StringReference Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:strRef")]
pub struct StringReference {
  /// Defines the Formula Class.
  #[sdk(text_child(simple_type = "StringValue", qname = "c:f"))]
  pub formula: Formula,
  /// Defines the StringCache Class.
  #[sdk(child(qname = "c:strCache"))]
  pub string_cache: Option<std::boxed::Box<StringCache>>,
  /// Defines the StrRefExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub str_ref_extension_list: Option<StrRefExtensionList>,
}
/// String Literal.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:strLit")]
pub struct StringLiteral {
  /// Point Count.
  #[sdk(child(qname = "c:ptCount"))]
  pub point_count: Option<PointCount>,
  /// String Point.
  #[sdk(child(qname = "c:pt"))]
  pub string_point: Vec<StringPoint>,
  /// Defines the StrDataExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub str_data_extension_list: Option<StrDataExtensionList>,
}
/// Defines the StringCache Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:strCache")]
pub struct StringCache {
  /// Point Count.
  #[sdk(child(qname = "c:ptCount"))]
  pub point_count: Option<PointCount>,
  /// String Point.
  #[sdk(child(qname = "c:pt"))]
  pub string_point: Vec<StringPoint>,
  /// Defines the StrDataExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub str_data_extension_list: Option<StrDataExtensionList>,
}
/// Layout Target.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:layoutTarget")]
pub struct LayoutTarget {
  /// Layout Target Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<LayoutTargetValues>,
}
/// Left Mode.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:xMode")]
pub struct LeftMode {
  /// Layout Mode Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<LayoutModeValues>,
}
/// Top Mode.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:yMode")]
pub struct TopMode {
  /// Layout Mode Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<LayoutModeValues>,
}
/// Width Mode.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:wMode")]
pub struct WidthMode {
  /// Layout Mode Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<LayoutModeValues>,
}
/// Height Mode.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:hMode")]
pub struct HeightMode {
  /// Layout Mode Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<LayoutModeValues>,
}
/// Manual Layout.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:manualLayout")]
pub struct ManualLayout {
  /// Layout Target
  #[sdk(child(qname = "c:layoutTarget"))]
  pub layout_target: Option<LayoutTarget>,
  /// Left Mode
  #[sdk(child(qname = "c:xMode"))]
  pub left_mode: Option<LeftMode>,
  /// Top Mode
  #[sdk(child(qname = "c:yMode"))]
  pub top_mode: Option<TopMode>,
  /// Width Mode
  #[sdk(child(qname = "c:wMode"))]
  pub width_mode: Option<WidthMode>,
  /// Height Mode
  #[sdk(child(qname = "c:hMode"))]
  pub height_mode: Option<HeightMode>,
  /// Left
  #[sdk(child(qname = "c:x"))]
  pub left: Option<Left>,
  /// Top
  #[sdk(child(qname = "c:y"))]
  pub top: Option<Top>,
  /// Width
  #[sdk(child(qname = "c:w"))]
  pub width: Option<Width>,
  /// Height
  #[sdk(child(qname = "c:h"))]
  pub height: Option<Height>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// X Rotation.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:rotX")]
pub struct RotateX {
  /// X Rotation Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = -90..= 90))]
  pub val: Option<crate::simple_type::SByteValue>,
}
/// Height Percent.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:hPercent")]
pub struct HeightPercent {
  /// Height Percent Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 5..= 500))]
  pub val: Option<crate::simple_type::UInt16Value>,
}
/// Y Rotation.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:rotY")]
pub struct RotateY {
  /// Y Rotation Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 0..= 360))]
  pub val: Option<crate::simple_type::UInt16Value>,
}
/// Depth Percent.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:depthPercent")]
pub struct DepthPercent {
  /// Depth Percent Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 20..= 2000))]
  pub val: Option<crate::simple_type::UInt16Value>,
}
/// Perspective.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:perspective")]
pub struct Perspective {
  /// Perspective Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 0..= 240))]
  pub val: Option<crate::simple_type::ByteValue>,
}
/// Symbol.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:symbol")]
pub struct Symbol {
  /// Marker Style Value
  #[sdk(attr(qname = ":val"))]
  pub val: MarkerStyleValues,
}
/// Size.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:size")]
pub struct Size {
  /// Marker Size Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 2..= 72))]
  pub val: Option<crate::simple_type::ByteValue>,
}
/// Marker.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:marker")]
pub struct Marker {
  /// Symbol
  #[sdk(child(qname = "c:symbol"))]
  pub symbol: Option<Symbol>,
  /// Size
  #[sdk(child(qname = "c:size"))]
  pub size: Option<Size>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Defines the PictureOptions Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:pictureOptions")]
pub struct PictureOptions {
  /// Apply To Front
  #[sdk(child(qname = "c:applyToFront"))]
  pub apply_to_front: Option<ApplyToFront>,
  /// Apply To Sides
  #[sdk(child(qname = "c:applyToSides"))]
  pub apply_to_sides: Option<ApplyToSides>,
  /// Apply to End
  #[sdk(child(qname = "c:applyToEnd"))]
  pub apply_to_end: Option<ApplyToEnd>,
  /// Picture Format
  #[sdk(child(qname = "c:pictureFormat"))]
  pub picture_format: Option<PictureFormat>,
  /// Picture Stack Unit
  #[sdk(child(qname = "c:pictureStackUnit"))]
  pub picture_stack_unit: Option<PictureStackUnit>,
}
/// Trendline Type.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:trendlineType")]
pub struct TrendlineType {
  /// Trendline Type Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<TrendlineValues>,
}
/// Polynomial Trendline Order.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:order")]
pub struct PolynomialOrder {
  /// Order Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 2..= 6))]
  pub val: crate::simple_type::ByteValue,
}
/// Period.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:period")]
pub struct Period {
  /// Period Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 2..))]
  pub val: crate::simple_type::UInt32Value,
}
/// Trendline Label.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:trendlineLbl")]
pub struct TrendlineLabel {
  /// Layout
  #[sdk(child(qname = "c:layout"))]
  pub layout: Option<std::boxed::Box<Layout>>,
  /// Defines the ChartText Class.
  #[sdk(child(qname = "c:tx"))]
  pub chart_text: Option<std::boxed::Box<ChartText>>,
  /// Number Format
  #[sdk(child(qname = "c:numFmt"))]
  pub numbering_format: Option<NumberingFormat>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the TextProperties Class.
  #[sdk(child(qname = "c:txPr"))]
  pub text_properties: Option<std::boxed::Box<TextProperties>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Error Bar Direction.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:errDir")]
pub struct ErrorDirection {
  /// Error Bar Direction Value
  #[sdk(attr(qname = ":val"))]
  pub val: ErrorBarDirectionValues,
}
/// Error Bar Type.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:errBarType")]
pub struct ErrorBarType {
  /// Error Bar Type Value
  #[sdk(attr(qname = ":val"))]
  pub val: ErrorBarValues,
}
/// Error Bar Value Type.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:errValType")]
pub struct ErrorBarValueType {
  /// Error Bar Type Value
  #[sdk(attr(qname = ":val"))]
  pub val: ErrorValues,
}
/// Plus.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:plus")]
pub struct Plus {
  #[sdk(
        choice(
            child(variant = NumberReference, qname = "c:numRef"),
            child(variant = NumberLiteral, qname = "c:numLit")
        )
    )]
  pub plus_choice: Option<PlusChoice>,
}
/// Minus.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:minus")]
pub struct Minus {
  #[sdk(
        choice(
            child(variant = NumberReference, qname = "c:numRef"),
            child(variant = NumberLiteral, qname = "c:numLit")
        )
    )]
  pub minus_choice: Option<MinusChoice>,
}
/// Defines the Values Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:val")]
pub struct Values {
  #[sdk(
        choice(
            child(variant = NumberReference, qname = "c:numRef"),
            child(variant = NumberLiteral, qname = "c:numLit")
        )
    )]
  pub values_choice: Option<ValuesChoice>,
}
/// Defines the YValues Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:yVal")]
pub struct YValues {
  #[sdk(
        choice(
            child(variant = NumberReference, qname = "c:numRef"),
            child(variant = NumberLiteral, qname = "c:numLit")
        )
    )]
  pub y_values_choice: Option<YValuesChoice>,
}
/// Defines the BubbleSize Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:bubbleSize")]
pub struct BubbleSize {
  #[sdk(
        choice(
            child(variant = NumberReference, qname = "c:numRef"),
            child(variant = NumberLiteral, qname = "c:numLit")
        )
    )]
  pub bubble_size_choice: Option<BubbleSizeChoice>,
}
/// Gap Width.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:gapWidth")]
pub struct GapWidth {
  /// Gap Size Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 0..= 500))]
  pub val: Option<crate::simple_type::UInt16Value>,
}
/// Defines the GapDepth Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:gapDepth")]
pub struct GapDepth {
  /// Gap Size Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 0..= 500))]
  pub val: Option<crate::simple_type::UInt16Value>,
}
/// Up Bars.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:upBars")]
pub struct UpBars {
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
}
/// Down Bars.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:downBars")]
pub struct DownBars {
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
}
/// Pie of Pie or Bar of Pie Type.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ofPieType")]
pub struct OfPieType {
  /// Pie of Pie or Bar of Pie Type Value
  #[sdk(attr(qname = ":val"))]
  pub val: OfPieValues,
}
/// Split Type.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:splitType")]
pub struct SplitType {
  /// Split Type Value
  #[sdk(attr(qname = ":val"))]
  pub val: SplitValues,
}
/// Custom Split.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:custSplit")]
pub struct CustomSplit {
  /// Second Pie Point.
  #[sdk(child(qname = "c:secondPiePt"))]
  pub second_pie_point: Vec<SecondPiePoint>,
}
/// Second Pie Size.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:secondPieSize")]
pub struct SecondPieSize {
  /// Second Pie Size Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 5..= 200))]
  pub val: Option<crate::simple_type::UInt16Value>,
}
/// Band Format.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:bandFmt")]
pub struct BandFormat {
  /// Index.
  #[sdk(child(qname = "c:idx"))]
  pub index: std::boxed::Box<Index>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
}
/// Picture Format.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:pictureFormat")]
pub struct PictureFormat {
  /// Picture Format Value
  #[sdk(attr(qname = ":val"))]
  pub val: PictureFormatValues,
}
/// Picture Stack Unit.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:pictureStackUnit")]
pub struct PictureStackUnit {
  /// Picture Stack Unit
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 0..))]
  pub val: crate::simple_type::DoubleValue,
}
/// Built in Display Unit Value.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:builtInUnit")]
pub struct BuiltInUnit {
  /// Built In Unit Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<BuiltInUnitValues>,
}
/// Display Units Label.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:dispUnitsLbl")]
pub struct DisplayUnitsLabel {
  /// Layout
  #[sdk(child(qname = "c:layout"))]
  pub layout: Option<std::boxed::Box<Layout>>,
  /// Defines the ChartText Class.
  #[sdk(child(qname = "c:tx"))]
  pub chart_text: Option<std::boxed::Box<ChartText>>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the TextProperties Class.
  #[sdk(child(qname = "c:txPr"))]
  pub text_properties: Option<std::boxed::Box<TextProperties>>,
}
/// Logarithmic Base.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:logBase")]
pub struct LogBase {
  /// Logarithmic Base Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 2..= 1000))]
  pub val: crate::simple_type::DoubleValue,
}
/// Axis Orientation.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:orientation")]
pub struct Orientation {
  /// Orientation Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<OrientationValues>,
}
/// Pivot Format.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:pivotFmt")]
pub struct PivotFormat {
  /// Index
  #[sdk(child(qname = "c:idx"))]
  pub index: std::boxed::Box<Index>,
  /// Defines the ShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub shape_properties: Option<std::boxed::Box<ShapeProperties>>,
  /// Marker
  #[sdk(child(qname = "c:marker"))]
  pub marker: Option<std::boxed::Box<Marker>>,
  /// Data Label
  #[sdk(child(qname = "c:dLbl"))]
  pub data_label: Option<std::boxed::Box<DataLabel>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Legend Position.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:legendPos")]
pub struct LegendPosition {
  /// Legend Position Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<LegendPositionValues>,
}
/// Legend Entry.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:legendEntry")]
pub struct LegendEntry {
  /// Index
  #[sdk(child(qname = "c:idx"))]
  pub index: std::boxed::Box<Index>,
  #[sdk(
        choice(
            child(variant = Delete, qname = "c:delete"),
            child(variant = TextProperties, qname = "c:txPr")
        )
    )]
  pub legend_entry_choice: Option<LegendEntryChoice>,
  /// Defines the ExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Header and Footer.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:headerFooter")]
pub struct HeaderFooter {
  /// Align With Margins
  #[sdk(attr(qname = ":alignWithMargins"))]
  pub align_with_margins: Option<crate::simple_type::BooleanValue>,
  /// Different Odd Even
  #[sdk(attr(qname = ":differentOddEven"))]
  pub different_odd_even: Option<crate::simple_type::BooleanValue>,
  /// Different First
  #[sdk(attr(qname = ":differentFirst"))]
  pub different_first: Option<crate::simple_type::BooleanValue>,
  /// Odd Header
  #[sdk(text_child(simple_type = "StringValue", qname = "c:oddHeader"))]
  pub odd_header: Option<OddHeader>,
  /// Odd Footer
  #[sdk(text_child(simple_type = "StringValue", qname = "c:oddFooter"))]
  pub odd_footer: Option<OddFooter>,
  /// Even Header
  #[sdk(text_child(simple_type = "StringValue", qname = "c:evenHeader"))]
  pub even_header: Option<EvenHeader>,
  /// Even Footer
  #[sdk(text_child(simple_type = "StringValue", qname = "c:evenFooter"))]
  pub even_footer: Option<EvenFooter>,
  /// First Header
  #[sdk(text_child(simple_type = "StringValue", qname = "c:firstHeader"))]
  pub first_header: Option<FirstHeader>,
  /// First Footer
  #[sdk(text_child(simple_type = "StringValue", qname = "c:firstFooter"))]
  pub first_footer: Option<FirstFooter>,
}
/// Page Margins.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:pageMargins")]
pub struct PageMargins {
  /// Left
  #[sdk(attr(qname = ":l"))]
  pub left: crate::simple_type::DoubleValue,
  /// Right
  #[sdk(attr(qname = ":r"))]
  pub right: crate::simple_type::DoubleValue,
  /// Top
  #[sdk(attr(qname = ":t"))]
  pub top: crate::simple_type::DoubleValue,
  /// Bottom
  #[sdk(attr(qname = ":b"))]
  pub bottom: crate::simple_type::DoubleValue,
  /// Header
  #[sdk(attr(qname = ":header"))]
  pub header: crate::simple_type::DoubleValue,
  /// Footer
  #[sdk(attr(qname = ":footer"))]
  pub footer: crate::simple_type::DoubleValue,
}
/// Page Setup.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:pageSetup")]
pub struct PageSetup {
  /// Page Size
  #[sdk(attr(qname = ":paperSize"))]
  pub paper_size: Option<crate::simple_type::UInt32Value>,
  /// First Page Number
  #[sdk(attr(qname = ":firstPageNumber"))]
  pub first_page_number: Option<crate::simple_type::Int32Value>,
  /// Orientation
  #[sdk(attr(qname = ":orientation"))]
  pub orientation: Option<PageSetupOrientationValues>,
  /// Black and White
  #[sdk(attr(qname = ":blackAndWhite"))]
  pub black_and_white: Option<crate::simple_type::BooleanValue>,
  /// Draft
  #[sdk(attr(qname = ":draft"))]
  pub draft: Option<crate::simple_type::BooleanValue>,
  /// Use First Page Number
  #[sdk(attr(qname = ":useFirstPageNumber"))]
  pub use_first_page_number: Option<crate::simple_type::BooleanValue>,
  /// Horizontal DPI
  #[sdk(attr(qname = ":horizontalDpi"))]
  pub horizontal_dpi: Option<crate::simple_type::Int32Value>,
  /// Vertical DPI
  #[sdk(attr(qname = ":verticalDpi"))]
  pub vertical_dpi: Option<crate::simple_type::Int32Value>,
  /// Copies
  #[sdk(attr(qname = ":copies"))]
  pub copies: Option<crate::simple_type::UInt32Value>,
}
/// Defines the ShapeProperties Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:spPr")]
pub struct ShapeProperties {
  /// Black and White Mode
  #[sdk(attr(qname = ":bwMode"))]
  #[sdk(string_format(kind = "token"))]
  pub black_white_mode: Option<crate::schemas::a::BlackWhiteModeValues>,
  /// 2D Transform for Individual Objects
  #[sdk(child(qname = "a:xfrm"))]
  pub transform2_d: Option<std::boxed::Box<crate::schemas::a::Transform2D>>,
  #[sdk(
        choice(
            child(variant = CustomGeometry, qname = "a:custGeom"),
            child(variant = PresetGeometry, qname = "a:prstGeom")
        )
    )]
  pub shape_properties_choice1: Option<ShapePropertiesChoice>,
  #[sdk(
        choice(
            child(variant = NoFill, qname = "a:noFill"),
            child(variant = SolidFill, qname = "a:solidFill"),
            child(variant = GradientFill, qname = "a:gradFill"),
            child(variant = BlipFill, qname = "a:blipFill"),
            child(variant = PatternFill, qname = "a:pattFill"),
            empty_child(variant = GroupFill, qname = "a:grpFill")
        )
    )]
  pub shape_properties_choice2: Option<ShapePropertiesChoice2>,
  /// Defines the Outline Class.
  #[sdk(child(qname = "a:ln"))]
  pub outline: Option<std::boxed::Box<crate::schemas::a::Outline>>,
  #[sdk(
        choice(
            child(variant = EffectList, qname = "a:effectLst"),
            child(variant = EffectDag, qname = "a:effectDag")
        )
    )]
  pub shape_properties_choice3: Option<ShapePropertiesChoice3>,
  /// 3D Scene Properties.
  #[sdk(child(qname = "a:scene3d"))]
  pub scene3_d_type: Option<std::boxed::Box<crate::schemas::a::Scene3DType>>,
  /// Apply 3D shape properties.
  #[sdk(child(qname = "a:sp3d"))]
  pub shape3_d_type: Option<std::boxed::Box<crate::schemas::a::Shape3DType>>,
  /// Defines the ShapePropertiesExtensionList Class.
  #[sdk(child(qname = "a:extLst"))]
  pub shape_properties_extension_list: Option<crate::schemas::a::ShapePropertiesExtensionList>,
}
/// Data Label.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:dLbl")]
pub struct DataLabel {
  /// Index.
  #[sdk(child(qname = "c:idx"))]
  pub index: std::boxed::Box<Index>,
  #[sdk(
        choice(
            child(variant = Delete, qname = "c:delete"),
            sequence(
                variant = Sequence,
                child(qname = "c:layout"),
                child(qname = "c:tx"),
                child(qname = "c:numFmt"),
                child(qname = "c:spPr"),
                child(qname = "c:txPr"),
                child(qname = "c:dLblPos"),
                child(qname = "c:showLegendKey"),
                child(qname = "c:showVal"),
                child(qname = "c:showCatName"),
                child(qname = "c:showSerName"),
                child(qname = "c:showPercent"),
                child(qname = "c:showBubbleSize"),
                text_child(qname = "c:separator")
            )
        )
    )]
  pub data_label_choice: Vec<DataLabelChoice>,
  /// Defines the DLblExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub d_lbl_extension_list: Option<DLblExtensionList>,
}
/// Area Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:areaChart")]
pub struct AreaChart {
  /// Grouping
  #[sdk(child(qname = "c:grouping"))]
  pub grouping: Option<Grouping>,
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Area Chart Series.
  #[sdk(child(qname = "c:ser"))]
  pub area_chart_series: Vec<AreaChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Drop Lines.
  #[sdk(child(qname = "c:dropLines"))]
  pub drop_lines: Option<std::boxed::Box<DropLines>>,
  /// Axis ID.
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: Vec<AxisId>,
  /// Defines the AreaChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub area_chart_extension_list: Option<AreaChartExtensionList>,
}
/// 3D Area Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:area3DChart")]
pub struct Area3DChart {
  /// Grouping
  #[sdk(child(qname = "c:grouping"))]
  pub grouping: Option<Grouping>,
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Area Chart Series.
  #[sdk(child(qname = "c:ser"))]
  pub area_chart_series: Vec<AreaChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Drop Lines.
  #[sdk(child(qname = "c:dropLines"))]
  pub drop_lines: Option<std::boxed::Box<DropLines>>,
  /// Defines the GapDepth Class.
  #[sdk(child(qname = "c:gapDepth"))]
  pub gap_depth: Option<GapDepth>,
  /// Axis ID.
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: Vec<AxisId>,
  /// Defines the Area3DChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub area3_d_chart_extension_list: Option<Area3DChartExtensionList>,
}
/// Line Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:lineChart")]
pub struct LineChart {
  /// Grouping
  #[sdk(child(qname = "c:grouping"))]
  pub grouping: Option<Grouping>,
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Defines the LineChartSeries Class.
  #[sdk(child(qname = "c:ser"))]
  pub line_chart_series: Vec<LineChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Drop Lines.
  #[sdk(child(qname = "c:dropLines"))]
  pub drop_lines: Option<std::boxed::Box<DropLines>>,
  /// Defines the HighLowLines Class.
  #[sdk(child(qname = "c:hiLowLines"))]
  pub high_low_lines: Option<std::boxed::Box<HighLowLines>>,
  /// Defines the UpDownBars Class.
  #[sdk(child(qname = "c:upDownBars"))]
  pub up_down_bars: Option<std::boxed::Box<UpDownBars>>,
  /// Defines the ShowMarker Class.
  #[sdk(child(qname = "c:marker"))]
  pub show_marker: Option<ShowMarker>,
  /// Defines the Smooth Class.
  #[sdk(child(qname = "c:smooth"))]
  pub smooth: Option<Smooth>,
  /// Axis ID.
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: Vec<AxisId>,
  /// Defines the LineChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub line_chart_extension_list: Option<LineChartExtensionList>,
}
/// 3D Line Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:line3DChart")]
pub struct Line3DChart {
  /// Grouping
  #[sdk(child(qname = "c:grouping"))]
  pub grouping: std::boxed::Box<Grouping>,
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Defines the LineChartSeries Class.
  #[sdk(child(qname = "c:ser"))]
  pub line_chart_series: Vec<LineChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Drop Lines.
  #[sdk(child(qname = "c:dropLines"))]
  pub drop_lines: Option<std::boxed::Box<DropLines>>,
  /// Defines the GapDepth Class.
  #[sdk(child(qname = "c:gapDepth"))]
  pub gap_depth: Option<GapDepth>,
  /// Axis ID.
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: Vec<AxisId>,
  /// Defines the Line3DChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub line3_d_chart_extension_list: Option<Line3DChartExtensionList>,
}
/// Stock Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:stockChart")]
pub struct StockChart {
  /// Defines the LineChartSeries Class.
  #[sdk(child(qname = "c:ser"))]
  pub line_chart_series: Vec<LineChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Drop Lines.
  #[sdk(child(qname = "c:dropLines"))]
  pub drop_lines: Option<std::boxed::Box<DropLines>>,
  /// Defines the HighLowLines Class.
  #[sdk(child(qname = "c:hiLowLines"))]
  pub high_low_lines: Option<std::boxed::Box<HighLowLines>>,
  /// Defines the UpDownBars Class.
  #[sdk(child(qname = "c:upDownBars"))]
  pub up_down_bars: Option<std::boxed::Box<UpDownBars>>,
  /// Axis ID.
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: Vec<AxisId>,
  /// Defines the StockChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub stock_chart_extension_list: Option<StockChartExtensionList>,
}
/// Radar Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:radarChart")]
pub struct RadarChart {
  /// Defines the RadarStyle Class.
  #[sdk(child(qname = "c:radarStyle"))]
  pub radar_style: std::boxed::Box<RadarStyle>,
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Defines the RadarChartSeries Class.
  #[sdk(child(qname = "c:ser"))]
  pub radar_chart_series: Vec<RadarChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Axis ID.
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: Vec<AxisId>,
  /// Defines the RadarChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub radar_chart_extension_list: Option<RadarChartExtensionList>,
}
/// Scatter Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:scatterChart")]
pub struct ScatterChart {
  /// Defines the ScatterStyle Class.
  #[sdk(child(qname = "c:scatterStyle"))]
  pub scatter_style: std::boxed::Box<ScatterStyle>,
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Defines the ScatterChartSeries Class.
  #[sdk(child(qname = "c:ser"))]
  pub scatter_chart_series: Vec<ScatterChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Axis ID.
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: Vec<AxisId>,
  /// Defines the ScatterChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub scatter_chart_extension_list: Option<ScatterChartExtensionList>,
}
/// Pie Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:pieChart")]
pub struct PieChart {
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Pie Chart Series.
  #[sdk(child(qname = "c:ser"))]
  pub pie_chart_series: Vec<PieChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// First Slice Angle.
  #[sdk(child(qname = "c:firstSliceAng"))]
  pub first_slice_angle: Option<FirstSliceAngle>,
  /// Defines the PieChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub pie_chart_extension_list: Option<PieChartExtensionList>,
}
/// 3D Pie Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:pie3DChart")]
pub struct Pie3DChart {
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Pie Chart Series.
  #[sdk(child(qname = "c:ser"))]
  pub pie_chart_series: Vec<PieChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Defines the Pie3DChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub pie3_d_chart_extension_list: Option<Pie3DChartExtensionList>,
}
/// Doughnut Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:doughnutChart")]
pub struct DoughnutChart {
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Pie Chart Series.
  #[sdk(child(qname = "c:ser"))]
  pub pie_chart_series: Vec<PieChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// First Slice Angle.
  #[sdk(child(qname = "c:firstSliceAng"))]
  pub first_slice_angle: Option<FirstSliceAngle>,
  /// Hole Size.
  #[sdk(child(qname = "c:holeSize"))]
  pub hole_size: std::boxed::Box<HoleSize>,
  /// Defines the ExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Bar Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:barChart")]
pub struct BarChart {
  /// Bar Direction
  #[sdk(child(qname = "c:barDir"))]
  pub bar_direction: std::boxed::Box<BarDirection>,
  /// Bar Grouping
  #[sdk(child(qname = "c:grouping"))]
  pub bar_grouping: Option<BarGrouping>,
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Bar Chart Series.
  #[sdk(child(qname = "c:ser"))]
  pub bar_chart_series: Vec<BarChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Gap Width.
  #[sdk(child(qname = "c:gapWidth"))]
  pub gap_width: Option<GapWidth>,
  /// Defines the Overlap Class.
  #[sdk(child(qname = "c:overlap"))]
  pub overlap: Option<Overlap>,
  /// Defines the SeriesLines Class.
  #[sdk(child(qname = "c:serLines"))]
  pub series_lines: Vec<SeriesLines>,
  /// Axis ID.
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: Vec<AxisId>,
  /// Defines the BarChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub bar_chart_extension_list: Option<BarChartExtensionList>,
}
/// 3D Bar Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:bar3DChart")]
pub struct Bar3DChart {
  /// Bar Direction
  #[sdk(child(qname = "c:barDir"))]
  pub bar_direction: std::boxed::Box<BarDirection>,
  /// Bar Grouping
  #[sdk(child(qname = "c:grouping"))]
  pub bar_grouping: Option<BarGrouping>,
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Bar Chart Series.
  #[sdk(child(qname = "c:ser"))]
  pub bar_chart_series: Vec<BarChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Gap Width.
  #[sdk(child(qname = "c:gapWidth"))]
  pub gap_width: Option<GapWidth>,
  /// Defines the GapDepth Class.
  #[sdk(child(qname = "c:gapDepth"))]
  pub gap_depth: Option<GapDepth>,
  /// Defines the Shape Class.
  #[sdk(child(qname = "c:shape"))]
  pub shape: Option<Shape>,
  /// Axis ID.
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: Vec<AxisId>,
  /// Defines the Bar3DChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub bar3_d_chart_extension_list: Option<Bar3DChartExtensionList>,
}
/// Pie of Pie or Bar of Pie Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ofPieChart")]
pub struct OfPieChart {
  /// Pie of Pie or Bar of Pie Type
  #[sdk(child(qname = "c:ofPieType"))]
  pub of_pie_type: std::boxed::Box<OfPieType>,
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Pie Chart Series.
  #[sdk(child(qname = "c:ser"))]
  pub pie_chart_series: Vec<PieChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Gap Width.
  #[sdk(child(qname = "c:gapWidth"))]
  pub gap_width: Option<GapWidth>,
  /// Split Type.
  #[sdk(child(qname = "c:splitType"))]
  pub split_type: Option<SplitType>,
  /// Split Position.
  #[sdk(child(qname = "c:splitPos"))]
  pub split_position: Option<SplitPosition>,
  /// Custom Split.
  #[sdk(child(qname = "c:custSplit"))]
  pub custom_split: Option<CustomSplit>,
  /// Second Pie Size.
  #[sdk(child(qname = "c:secondPieSize"))]
  pub second_pie_size: Option<SecondPieSize>,
  /// Defines the SeriesLines Class.
  #[sdk(child(qname = "c:serLines"))]
  pub series_lines: Vec<SeriesLines>,
  /// Defines the ExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Surface Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:surfaceChart")]
pub struct SurfaceChart {
  /// Wireframe
  #[sdk(child(qname = "c:wireframe"))]
  pub wireframe: Option<Wireframe>,
  /// Surface Chart Series.
  #[sdk(child(qname = "c:ser"))]
  pub surface_chart_series: Vec<SurfaceChartSeries>,
  /// Band Formats.
  #[sdk(child(qname = "c:bandFmts"))]
  pub band_formats: Option<BandFormats>,
  /// Axis ID.
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: Vec<AxisId>,
  /// Defines the SurfaceChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub surface_chart_extension_list: Option<SurfaceChartExtensionList>,
}
/// 3D Surface Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:surface3DChart")]
pub struct Surface3DChart {
  /// Wireframe.
  #[sdk(child(qname = "c:wireframe"))]
  pub wireframe: Option<Wireframe>,
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Surface Chart Series.
  #[sdk(child(qname = "c:ser"))]
  pub surface_chart_series: Vec<SurfaceChartSeries>,
  /// Band Formats.
  #[sdk(child(qname = "c:bandFmts"))]
  pub band_formats: Option<BandFormats>,
  /// Axis ID.
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: Vec<AxisId>,
  /// Defines the Surface3DChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub surface3_d_chart_extension_list: Option<Surface3DChartExtensionList>,
}
/// Bubble Charts.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:bubbleChart")]
pub struct BubbleChart {
  /// Defines the VaryColors Class.
  #[sdk(child(qname = "c:varyColors"))]
  pub vary_colors: Option<VaryColors>,
  /// Defines the BubbleChartSeries Class.
  #[sdk(child(qname = "c:ser"))]
  pub bubble_chart_series: Vec<BubbleChartSeries>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// 3D Bubble.
  #[sdk(child(qname = "c:bubble3D"))]
  pub bubble3_d: Option<Bubble3D>,
  /// Defines the BubbleScale Class.
  #[sdk(child(qname = "c:bubbleScale"))]
  pub bubble_scale: Option<BubbleScale>,
  /// Defines the ShowNegativeBubbles Class.
  #[sdk(child(qname = "c:showNegBubbles"))]
  pub show_negative_bubbles: Option<ShowNegativeBubbles>,
  /// Defines the SizeRepresents Class.
  #[sdk(child(qname = "c:sizeRepresents"))]
  pub size_represents: Option<SizeRepresents>,
  /// Axis ID.
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: Vec<AxisId>,
  /// Defines the BubbleChartExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub bubble_chart_extension_list: Option<BubbleChartExtensionList>,
}
/// Value Axis.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:valAx")]
pub struct ValueAxis {
  /// Axis ID
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: std::boxed::Box<AxisId>,
  /// Scaling
  #[sdk(child(qname = "c:scaling"))]
  pub scaling: std::boxed::Box<Scaling>,
  /// Delete
  #[sdk(child(qname = "c:delete"))]
  pub delete: Option<Delete>,
  /// Axis Position
  #[sdk(child(qname = "c:axPos"))]
  pub axis_position: std::boxed::Box<AxisPosition>,
  /// Major Gridlines
  #[sdk(child(qname = "c:majorGridlines"))]
  pub major_gridlines: Option<std::boxed::Box<MajorGridlines>>,
  /// Minor Gridlines
  #[sdk(child(qname = "c:minorGridlines"))]
  pub minor_gridlines: Option<std::boxed::Box<MinorGridlines>>,
  /// Title
  #[sdk(child(qname = "c:title"))]
  pub title: Option<std::boxed::Box<Title>>,
  /// Number Format
  #[sdk(child(qname = "c:numFmt"))]
  pub numbering_format: Option<NumberingFormat>,
  /// Major Tick Mark
  #[sdk(child(qname = "c:majorTickMark"))]
  pub major_tick_mark: Option<MajorTickMark>,
  /// Minor Tick Mark
  #[sdk(child(qname = "c:minorTickMark"))]
  pub minor_tick_mark: Option<MinorTickMark>,
  /// Tick Label Position
  #[sdk(child(qname = "c:tickLblPos"))]
  pub tick_label_position: Option<TickLabelPosition>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the TextProperties Class.
  #[sdk(child(qname = "c:txPr"))]
  pub text_properties: Option<std::boxed::Box<TextProperties>>,
  /// Crossing Axis ID
  #[sdk(child(qname = "c:crossAx"))]
  pub crossing_axis: std::boxed::Box<CrossingAxis>,
  #[sdk(
        choice(
            child(variant = Crosses, qname = "c:crosses"),
            child(variant = CrossesAt, qname = "c:crossesAt")
        )
    )]
  pub value_axis_choice: Option<ValueAxisChoice>,
  /// Defines the CrossBetween Class.
  #[sdk(child(qname = "c:crossBetween"))]
  pub cross_between: Option<CrossBetween>,
  /// Defines the MajorUnit Class.
  #[sdk(child(qname = "c:majorUnit"))]
  pub major_unit: Option<MajorUnit>,
  /// Defines the MinorUnit Class.
  #[sdk(child(qname = "c:minorUnit"))]
  pub minor_unit: Option<MinorUnit>,
  /// Defines the DisplayUnits Class.
  #[sdk(child(qname = "c:dispUnits"))]
  pub display_units: Option<std::boxed::Box<DisplayUnits>>,
  /// Defines the ValAxExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub val_ax_extension_list: Option<ValAxExtensionList>,
}
/// Category Axis Data.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:catAx")]
pub struct CategoryAxis {
  /// Axis ID
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: std::boxed::Box<AxisId>,
  /// Scaling
  #[sdk(child(qname = "c:scaling"))]
  pub scaling: std::boxed::Box<Scaling>,
  /// Delete
  #[sdk(child(qname = "c:delete"))]
  pub delete: Option<Delete>,
  /// Axis Position
  #[sdk(child(qname = "c:axPos"))]
  pub axis_position: std::boxed::Box<AxisPosition>,
  /// Major Gridlines
  #[sdk(child(qname = "c:majorGridlines"))]
  pub major_gridlines: Option<std::boxed::Box<MajorGridlines>>,
  /// Minor Gridlines
  #[sdk(child(qname = "c:minorGridlines"))]
  pub minor_gridlines: Option<std::boxed::Box<MinorGridlines>>,
  /// Title
  #[sdk(child(qname = "c:title"))]
  pub title: Option<std::boxed::Box<Title>>,
  /// Number Format
  #[sdk(child(qname = "c:numFmt"))]
  pub numbering_format: Option<NumberingFormat>,
  /// Major Tick Mark
  #[sdk(child(qname = "c:majorTickMark"))]
  pub major_tick_mark: Option<MajorTickMark>,
  /// Minor Tick Mark
  #[sdk(child(qname = "c:minorTickMark"))]
  pub minor_tick_mark: Option<MinorTickMark>,
  /// Tick Label Position
  #[sdk(child(qname = "c:tickLblPos"))]
  pub tick_label_position: Option<TickLabelPosition>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the TextProperties Class.
  #[sdk(child(qname = "c:txPr"))]
  pub text_properties: Option<std::boxed::Box<TextProperties>>,
  /// Crossing Axis ID
  #[sdk(child(qname = "c:crossAx"))]
  pub crossing_axis: std::boxed::Box<CrossingAxis>,
  #[sdk(
        choice(
            child(variant = Crosses, qname = "c:crosses"),
            child(variant = CrossesAt, qname = "c:crossesAt")
        )
    )]
  pub category_axis_choice: Option<CategoryAxisChoice>,
  /// Defines the AutoLabeled Class.
  #[sdk(child(qname = "c:auto"))]
  pub auto_labeled: Option<AutoLabeled>,
  /// Defines the LabelAlignment Class.
  #[sdk(child(qname = "c:lblAlgn"))]
  pub label_alignment: Option<LabelAlignment>,
  /// Defines the LabelOffset Class.
  #[sdk(child(qname = "c:lblOffset"))]
  pub label_offset: Option<LabelOffset>,
  /// Defines the TickLabelSkip Class.
  #[sdk(child(qname = "c:tickLblSkip"))]
  pub tick_label_skip: Option<TickLabelSkip>,
  /// Defines the TickMarkSkip Class.
  #[sdk(child(qname = "c:tickMarkSkip"))]
  pub tick_mark_skip: Option<TickMarkSkip>,
  /// Defines the NoMultiLevelLabels Class.
  #[sdk(child(qname = "c:noMultiLvlLbl"))]
  pub no_multi_level_labels: Option<NoMultiLevelLabels>,
  /// Defines the CatAxExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub cat_ax_extension_list: Option<CatAxExtensionList>,
}
/// Date Axis.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:dateAx")]
pub struct DateAxis {
  /// Axis ID
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: std::boxed::Box<AxisId>,
  /// Scaling
  #[sdk(child(qname = "c:scaling"))]
  pub scaling: std::boxed::Box<Scaling>,
  /// Delete
  #[sdk(child(qname = "c:delete"))]
  pub delete: Option<Delete>,
  /// Axis Position
  #[sdk(child(qname = "c:axPos"))]
  pub axis_position: std::boxed::Box<AxisPosition>,
  /// Major Gridlines
  #[sdk(child(qname = "c:majorGridlines"))]
  pub major_gridlines: Option<std::boxed::Box<MajorGridlines>>,
  /// Minor Gridlines
  #[sdk(child(qname = "c:minorGridlines"))]
  pub minor_gridlines: Option<std::boxed::Box<MinorGridlines>>,
  /// Title
  #[sdk(child(qname = "c:title"))]
  pub title: Option<std::boxed::Box<Title>>,
  /// Number Format
  #[sdk(child(qname = "c:numFmt"))]
  pub numbering_format: Option<NumberingFormat>,
  /// Major Tick Mark
  #[sdk(child(qname = "c:majorTickMark"))]
  pub major_tick_mark: Option<MajorTickMark>,
  /// Minor Tick Mark
  #[sdk(child(qname = "c:minorTickMark"))]
  pub minor_tick_mark: Option<MinorTickMark>,
  /// Tick Label Position
  #[sdk(child(qname = "c:tickLblPos"))]
  pub tick_label_position: Option<TickLabelPosition>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the TextProperties Class.
  #[sdk(child(qname = "c:txPr"))]
  pub text_properties: Option<std::boxed::Box<TextProperties>>,
  /// Crossing Axis ID
  #[sdk(child(qname = "c:crossAx"))]
  pub crossing_axis: std::boxed::Box<CrossingAxis>,
  #[sdk(
        choice(
            child(variant = Crosses, qname = "c:crosses"),
            child(variant = CrossesAt, qname = "c:crossesAt")
        )
    )]
  pub date_axis_choice: Option<DateAxisChoice>,
  /// Defines the AutoLabeled Class.
  #[sdk(child(qname = "c:auto"))]
  pub auto_labeled: Option<AutoLabeled>,
  /// Defines the LabelOffset Class.
  #[sdk(child(qname = "c:lblOffset"))]
  pub label_offset: Option<LabelOffset>,
  /// Defines the BaseTimeUnit Class.
  #[sdk(child(qname = "c:baseTimeUnit"))]
  pub base_time_unit: Option<BaseTimeUnit>,
  /// Defines the MajorUnit Class.
  #[sdk(child(qname = "c:majorUnit"))]
  pub major_unit: Option<MajorUnit>,
  /// Defines the MajorTimeUnit Class.
  #[sdk(child(qname = "c:majorTimeUnit"))]
  pub major_time_unit: Option<MajorTimeUnit>,
  /// Defines the MinorUnit Class.
  #[sdk(child(qname = "c:minorUnit"))]
  pub minor_unit: Option<MinorUnit>,
  /// Defines the MinorTimeUnit Class.
  #[sdk(child(qname = "c:minorTimeUnit"))]
  pub minor_time_unit: Option<MinorTimeUnit>,
  /// Defines the DateAxExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub date_ax_extension_list: Option<DateAxExtensionList>,
}
/// Series Axis.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:serAx")]
pub struct SeriesAxis {
  /// Axis ID
  #[sdk(child(qname = "c:axId"))]
  pub axis_id: std::boxed::Box<AxisId>,
  /// Scaling
  #[sdk(child(qname = "c:scaling"))]
  pub scaling: std::boxed::Box<Scaling>,
  /// Delete
  #[sdk(child(qname = "c:delete"))]
  pub delete: Option<Delete>,
  /// Axis Position
  #[sdk(child(qname = "c:axPos"))]
  pub axis_position: std::boxed::Box<AxisPosition>,
  /// Major Gridlines
  #[sdk(child(qname = "c:majorGridlines"))]
  pub major_gridlines: Option<std::boxed::Box<MajorGridlines>>,
  /// Minor Gridlines
  #[sdk(child(qname = "c:minorGridlines"))]
  pub minor_gridlines: Option<std::boxed::Box<MinorGridlines>>,
  /// Title
  #[sdk(child(qname = "c:title"))]
  pub title: Option<std::boxed::Box<Title>>,
  /// Number Format
  #[sdk(child(qname = "c:numFmt"))]
  pub numbering_format: Option<NumberingFormat>,
  /// Major Tick Mark
  #[sdk(child(qname = "c:majorTickMark"))]
  pub major_tick_mark: Option<MajorTickMark>,
  /// Minor Tick Mark
  #[sdk(child(qname = "c:minorTickMark"))]
  pub minor_tick_mark: Option<MinorTickMark>,
  /// Tick Label Position
  #[sdk(child(qname = "c:tickLblPos"))]
  pub tick_label_position: Option<TickLabelPosition>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the TextProperties Class.
  #[sdk(child(qname = "c:txPr"))]
  pub text_properties: Option<std::boxed::Box<TextProperties>>,
  /// Crossing Axis ID
  #[sdk(child(qname = "c:crossAx"))]
  pub crossing_axis: std::boxed::Box<CrossingAxis>,
  #[sdk(
        choice(
            child(variant = Crosses, qname = "c:crosses"),
            child(variant = CrossesAt, qname = "c:crossesAt")
        )
    )]
  pub series_axis_choice: Option<SeriesAxisChoice>,
  /// Defines the TickLabelSkip Class.
  #[sdk(child(qname = "c:tickLblSkip"))]
  pub tick_label_skip: Option<TickLabelSkip>,
  /// Defines the TickMarkSkip Class.
  #[sdk(child(qname = "c:tickMarkSkip"))]
  pub tick_mark_skip: Option<TickMarkSkip>,
  /// Defines the SerAxExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub ser_ax_extension_list: Option<SerAxExtensionList>,
}
/// Data Table.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:dTable")]
pub struct DataTable {
  /// Show Horizontal Border
  #[sdk(child(qname = "c:showHorzBorder"))]
  pub show_horizontal_border: Option<ShowHorizontalBorder>,
  /// Show Vertical Border
  #[sdk(child(qname = "c:showVertBorder"))]
  pub show_vertical_border: Option<ShowVerticalBorder>,
  /// Show Outline Border
  #[sdk(child(qname = "c:showOutline"))]
  pub show_outline_border: Option<ShowOutlineBorder>,
  /// Show Legend Keys
  #[sdk(child(qname = "c:showKeys"))]
  pub show_keys: Option<ShowKeys>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Text Properties
  #[sdk(child(qname = "c:txPr"))]
  pub text_properties: Option<std::boxed::Box<TextProperties>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// First Slice Angle.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:firstSliceAng")]
pub struct FirstSliceAngle {
  /// First Slice Angle Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 0..= 360))]
  pub val: Option<crate::simple_type::UInt16Value>,
}
/// Hole Size.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:holeSize")]
pub struct HoleSize {
  /// Hole Size Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 1..= 90))]
  pub val: crate::simple_type::ByteValue,
}
/// String Point.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:pt")]
pub struct StringPoint {
  /// Index
  #[sdk(attr(qname = ":idx"))]
  pub index: crate::simple_type::UInt32Value,
  /// Text Value
  #[sdk(text_child(simple_type = "StringValue", qname = "c:v"))]
  pub numeric_value: NumericValue,
}
/// Thickness.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:thickness")]
pub struct Thickness {
  /// val
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 0..= 100))]
  pub val: Option<crate::simple_type::ByteValue>,
}
/// Defines the StockChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct StockChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(
                variant = FilteredLineSeriesExtension,
                qname = "c15:filteredLineSeries"
            ),
            any
        )
    )]
  pub stock_chart_extension_choice: Option<StockChartExtensionChoice>,
}
/// Defines the PieChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct PieChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(child(variant = FilteredPieSeries, qname = "c15:filteredPieSeries"), any)
    )]
  pub pie_chart_extension_choice: Option<PieChartExtensionChoice>,
}
/// Defines the Pie3DChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct Pie3DChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(child(variant = FilteredPieSeries, qname = "c15:filteredPieSeries"), any)
    )]
  pub pie3_d_chart_extension_choice: Option<Pie3DChartExtensionChoice>,
}
/// Defines the NumRefExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct NumRefExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FullReference, qname = "c15:fullRef"),
            child(variant = LevelReference, qname = "c15:levelRef"),
            child(variant = FormulaReference, qname = "c15:formulaRef"),
            any
        )
    )]
  pub num_ref_extension_choice: Option<NumRefExtensionChoice>,
}
/// Defines the StrDataExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct StrDataExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(child(variant = AutoGeneneratedCategories, qname = "c15:autoCat"), any)
    )]
  pub str_data_extension_choice: Option<StrDataExtensionChoice>,
}
/// Defines the StrRefExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct StrRefExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FullReference, qname = "c15:fullRef"),
            child(variant = LevelReference, qname = "c15:levelRef"),
            child(variant = FormulaReference, qname = "c15:formulaRef"),
            any
        )
    )]
  pub str_ref_extension_choice: Option<StrRefExtensionChoice>,
}
/// Defines the MultiLvlStrRefExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct MultiLvlStrRefExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FullReference, qname = "c15:fullRef"),
            child(variant = LevelReference, qname = "c15:levelRef"),
            child(variant = FormulaReference, qname = "c15:formulaRef"),
            any
        )
    )]
  pub multi_lvl_str_ref_extension_choice: Option<MultiLvlStrRefExtensionChoice>,
}
/// Defines the DLblsExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct DLblsExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = ChartText, qname = "c15:tx"),
            child(variant = DataLabelFieldTable, qname = "c15:dlblFieldTable"),
            child(variant = ShowDataLabelsRange, qname = "c15:showDataLabelsRange"),
            child(variant = ShapeProperties, qname = "c15:spPr"),
            child(variant = Layout, qname = "c15:layout"),
            child(variant = ShowLeaderLines, qname = "c15:showLeaderLines"),
            child(variant = LeaderLines, qname = "c15:leaderLines"),
            any
        )
    )]
  pub d_lbls_extension_choice: Vec<DLblsExtensionChoice>,
}
/// Defines the LineChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct LineChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(
                variant = FilteredLineSeriesExtension,
                qname = "c15:filteredLineSeries"
            ),
            any
        )
    )]
  pub line_chart_extension_choice: Option<LineChartExtensionChoice>,
}
/// Defines the Line3DChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct Line3DChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(
                variant = FilteredLineSeriesExtension,
                qname = "c15:filteredLineSeries"
            ),
            any
        )
    )]
  pub line3_d_chart_extension_choice: Option<Line3DChartExtensionChoice>,
}
/// Defines the ScatterChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct ScatterChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredScatterSeries, qname = "c15:filteredScatterSeries"),
            any
        )
    )]
  pub scatter_chart_extension_choice: Option<ScatterChartExtensionChoice>,
}
/// Defines the RadarChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct RadarChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredRadarSeries, qname = "c15:filteredRadarSeries"),
            any
        )
    )]
  pub radar_chart_extension_choice: Option<RadarChartExtensionChoice>,
}
/// Defines the BarChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct BarChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(child(variant = FilteredBarSeries, qname = "c15:filteredBarSeries"), any)
    )]
  pub bar_chart_extension_choice: Option<BarChartExtensionChoice>,
}
/// Defines the Bar3DChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct Bar3DChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(child(variant = FilteredBarSeries, qname = "c15:filteredBarSeries"), any)
    )]
  pub bar3_d_chart_extension_choice: Option<Bar3DChartExtensionChoice>,
}
/// Defines the AreaChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct AreaChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredAreaSeries, qname = "c15:filteredAreaSeries"),
            any
        )
    )]
  pub area_chart_extension_choice: Option<AreaChartExtensionChoice>,
}
/// Defines the Area3DChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct Area3DChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredAreaSeries, qname = "c15:filteredAreaSeries"),
            any
        )
    )]
  pub area3_d_chart_extension_choice: Option<Area3DChartExtensionChoice>,
}
/// Defines the BubbleChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct BubbleChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredBubbleSeries, qname = "c15:filteredBubbleSeries"),
            any
        )
    )]
  pub bubble_chart_extension_choice: Option<BubbleChartExtensionChoice>,
}
/// Defines the SurfaceChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct SurfaceChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredSurfaceSeries, qname = "c15:filteredSurfaceSeries"),
            any
        )
    )]
  pub surface_chart_extension_choice: Option<SurfaceChartExtensionChoice>,
}
/// Defines the Surface3DChartExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct Surface3DChartExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredSurfaceSeries, qname = "c15:filteredSurfaceSeries"),
            any
        )
    )]
  pub surface3_d_chart_extension_choice: Option<Surface3DChartExtensionChoice>,
}
/// Defines the CatAxExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct CatAxExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(choice(child(variant = NumberingFormat, qname = "c15:numFmt"), any))]
  pub cat_ax_extension_choice: Option<CatAxExtensionChoice>,
}
/// Defines the DateAxExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct DateAxExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(choice(child(variant = NumberingFormat, qname = "c15:numFmt"), any))]
  pub date_ax_extension_choice: Option<DateAxExtensionChoice>,
}
/// Defines the SerAxExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct SerAxExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(choice(child(variant = NumberingFormat, qname = "c15:numFmt"), any))]
  pub ser_ax_extension_choice: Option<SerAxExtensionChoice>,
}
/// Defines the ValAxExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct ValAxExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(choice(child(variant = NumberingFormat, qname = "c15:numFmt"), any))]
  pub val_ax_extension_choice: Option<ValAxExtensionChoice>,
}
/// Defines the UpDownBars Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:upDownBars")]
pub struct UpDownBars {
  /// Gap Width
  #[sdk(child(qname = "c:gapWidth"))]
  pub gap_width: Option<GapWidth>,
  /// Up Bars
  #[sdk(child(qname = "c:upBars"))]
  pub up_bars: Option<std::boxed::Box<UpBars>>,
  /// Down Bars
  #[sdk(child(qname = "c:downBars"))]
  pub down_bars: Option<std::boxed::Box<DownBars>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Defines the StockChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct StockChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the StockChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub stock_chart_extension: Vec<StockChartExtension>,
}
/// Defines the PieChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct PieChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the PieChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub pie_chart_extension: Vec<PieChartExtension>,
}
/// Defines the Pie3DChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct Pie3DChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the Pie3DChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub pie3_d_chart_extension: Vec<Pie3DChartExtension>,
}
/// Defines the NumRefExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct NumRefExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the NumRefExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub num_ref_extension: Vec<NumRefExtension>,
}
/// Defines the StrDataExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct StrDataExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the StrDataExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub str_data_extension: Vec<StrDataExtension>,
}
/// Defines the StrRefExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct StrRefExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the StrRefExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub str_ref_extension: Vec<StrRefExtension>,
}
/// Defines the MultiLevelStringCache Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:multiLvlStrCache")]
pub struct MultiLevelStringCache {
  /// Point Count.
  #[sdk(child(qname = "c:ptCount"))]
  pub point_count: Option<PointCount>,
  /// Level.
  #[sdk(child(qname = "c:lvl"))]
  pub level: Vec<Level>,
  /// Defines the ExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Defines the MultiLvlStrRefExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct MultiLvlStrRefExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the MultiLvlStrRefExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub multi_lvl_str_ref_extension: Vec<MultiLvlStrRefExtension>,
}
/// Defines the DLblsExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct DLblsExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the DLblsExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub d_lbls_extension: Vec<DLblsExtension>,
}
/// Defines the LineChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct LineChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the LineChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub line_chart_extension: Vec<LineChartExtension>,
}
/// Defines the Line3DChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct Line3DChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the Line3DChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub line3_d_chart_extension: Vec<Line3DChartExtension>,
}
/// Defines the ScatterStyle Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:scatterStyle")]
pub struct ScatterStyle {
  /// Scatter Style Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<ScatterStyleValues>,
}
/// Defines the ScatterChartSeries Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ser")]
pub struct ScatterChartSeries {
  /// Index
  #[sdk(child(qname = "c:idx"))]
  pub index: std::boxed::Box<Index>,
  /// Order
  #[sdk(child(qname = "c:order"))]
  pub order: std::boxed::Box<Order>,
  /// Series Text
  #[sdk(child(qname = "c:tx"))]
  pub series_text: Option<std::boxed::Box<SeriesText>>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Marker.
  #[sdk(child(qname = "c:marker"))]
  pub marker: Option<std::boxed::Box<Marker>>,
  /// Defines the DataPoint Class.
  #[sdk(child(qname = "c:dPt"))]
  pub data_point: Vec<DataPoint>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Defines the Trendline Class.
  #[sdk(child(qname = "c:trendline"))]
  pub trendline: Vec<Trendline>,
  /// Defines the ErrorBars Class.
  #[sdk(child(qname = "c:errBars"))]
  pub error_bars: Vec<ErrorBars>,
  /// Defines the XValues Class.
  #[sdk(child(qname = "c:xVal"))]
  pub x_values: Option<std::boxed::Box<XValues>>,
  /// Defines the YValues Class.
  #[sdk(child(qname = "c:yVal"))]
  pub y_values: Option<std::boxed::Box<YValues>>,
  /// Defines the Smooth Class.
  #[sdk(child(qname = "c:smooth"))]
  pub smooth: Option<Smooth>,
  /// Defines the ScatterSerExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub scatter_ser_extension_list: Option<ScatterSerExtensionList>,
}
/// Defines the ScatterChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct ScatterChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the ScatterChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub scatter_chart_extension: Vec<ScatterChartExtension>,
}
/// Defines the RadarStyle Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:radarStyle")]
pub struct RadarStyle {
  /// Radar Style Value
  #[sdk(attr(qname = ":val"))]
  pub val: RadarStyleValues,
}
/// Defines the RadarChartSeries Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ser")]
pub struct RadarChartSeries {
  /// Index
  #[sdk(child(qname = "c:idx"))]
  pub index: std::boxed::Box<Index>,
  /// Order
  #[sdk(child(qname = "c:order"))]
  pub order: std::boxed::Box<Order>,
  /// Series Text
  #[sdk(child(qname = "c:tx"))]
  pub series_text: Option<std::boxed::Box<SeriesText>>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the PictureOptions Class.
  #[sdk(child(qname = "c:pictureOptions"))]
  pub picture_options: Option<std::boxed::Box<PictureOptions>>,
  /// Marker.
  #[sdk(child(qname = "c:marker"))]
  pub marker: Option<std::boxed::Box<Marker>>,
  /// Defines the DataPoint Class.
  #[sdk(child(qname = "c:dPt"))]
  pub data_point: Vec<DataPoint>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Defines the CategoryAxisData Class.
  #[sdk(child(qname = "c:cat"))]
  pub category_axis_data: Option<std::boxed::Box<CategoryAxisData>>,
  /// Defines the Values Class.
  #[sdk(child(qname = "c:val"))]
  pub values: Option<std::boxed::Box<Values>>,
  /// Defines the RadarSerExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub radar_ser_extension_list: Option<RadarSerExtensionList>,
}
/// Defines the RadarChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct RadarChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the RadarChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub radar_chart_extension: Vec<RadarChartExtension>,
}
/// Defines the Overlap Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:overlap")]
pub struct Overlap {
  /// Overlap Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = -100..= 100))]
  pub val: Option<crate::simple_type::SByteValue>,
}
/// Defines the BarChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct BarChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the BarChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub bar_chart_extension: Vec<BarChartExtension>,
}
/// Defines the Shape Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:shape")]
pub struct Shape {
  /// Shape Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<ShapeValues>,
}
/// Defines the Bar3DChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct Bar3DChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the Bar3DChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub bar3_d_chart_extension: Vec<Bar3DChartExtension>,
}
/// Defines the AreaChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct AreaChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the AreaChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub area_chart_extension: Vec<AreaChartExtension>,
}
/// Defines the Area3DChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct Area3DChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the Area3DChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub area3_d_chart_extension: Vec<Area3DChartExtension>,
}
/// Defines the BubbleChartSeries Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ser")]
pub struct BubbleChartSeries {
  /// Index
  #[sdk(child(qname = "c:idx"))]
  pub index: std::boxed::Box<Index>,
  /// Order
  #[sdk(child(qname = "c:order"))]
  pub order: std::boxed::Box<Order>,
  /// Series Text
  #[sdk(child(qname = "c:tx"))]
  pub series_text: Option<std::boxed::Box<SeriesText>>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the PictureOptions Class.
  #[sdk(child(qname = "c:pictureOptions"))]
  pub picture_options: Option<std::boxed::Box<PictureOptions>>,
  /// Invert if Negative.
  #[sdk(child(qname = "c:invertIfNegative"))]
  pub invert_if_negative: Option<InvertIfNegative>,
  /// Defines the DataPoint Class.
  #[sdk(child(qname = "c:dPt"))]
  pub data_point: Vec<DataPoint>,
  /// Data Labels.
  #[sdk(child(qname = "c:dLbls"))]
  pub data_labels: Option<std::boxed::Box<DataLabels>>,
  /// Defines the Trendline Class.
  #[sdk(child(qname = "c:trendline"))]
  pub trendline: Vec<Trendline>,
  /// Defines the ErrorBars Class.
  #[sdk(child(qname = "c:errBars"))]
  pub error_bars: Vec<ErrorBars>,
  /// Defines the XValues Class.
  #[sdk(child(qname = "c:xVal"))]
  pub x_values: Option<std::boxed::Box<XValues>>,
  /// Defines the YValues Class.
  #[sdk(child(qname = "c:yVal"))]
  pub y_values: Option<std::boxed::Box<YValues>>,
  /// Defines the BubbleSize Class.
  #[sdk(child(qname = "c:bubbleSize"))]
  pub bubble_size: Option<std::boxed::Box<BubbleSize>>,
  /// 3D Bubble.
  #[sdk(child(qname = "c:bubble3D"))]
  pub bubble3_d: Option<Bubble3D>,
  /// Defines the BubbleSerExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub bubble_ser_extension_list: Option<BubbleSerExtensionList>,
}
/// Defines the BubbleScale Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:bubbleScale")]
pub struct BubbleScale {
  /// Bubble Scale Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 0..= 300))]
  pub val: Option<crate::simple_type::UInt32Value>,
}
/// Defines the SizeRepresents Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:sizeRepresents")]
pub struct SizeRepresents {
  /// Size Represents Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<SizeRepresentsValues>,
}
/// Defines the BubbleChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct BubbleChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the BubbleChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub bubble_chart_extension: Vec<BubbleChartExtension>,
}
/// Defines the SurfaceChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct SurfaceChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the SurfaceChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub surface_chart_extension: Vec<SurfaceChartExtension>,
}
/// Defines the Surface3DChartExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct Surface3DChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the Surface3DChartExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub surface3_d_chart_extension: Vec<Surface3DChartExtension>,
}
/// Defines the LabelAlignment Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:lblAlgn")]
pub struct LabelAlignment {
  /// Label Alignment Value
  #[sdk(attr(qname = ":val"))]
  pub val: LabelAlignmentValues,
}
/// Defines the LabelOffset Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:lblOffset")]
pub struct LabelOffset {
  /// Label Offset Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 0..= 1000))]
  pub val: Option<crate::simple_type::UInt16Value>,
}
/// Defines the TickLabelSkip Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:tickLblSkip")]
pub struct TickLabelSkip {
  /// Tick Skip Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 1..))]
  pub val: crate::simple_type::Int32Value,
}
/// Defines the TickMarkSkip Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:tickMarkSkip")]
pub struct TickMarkSkip {
  /// Tick Skip Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 1..))]
  pub val: crate::simple_type::Int32Value,
}
/// Defines the CatAxExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct CatAxExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the CatAxExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub cat_ax_extension: Vec<CatAxExtension>,
}
/// Defines the BaseTimeUnit Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:baseTimeUnit")]
pub struct BaseTimeUnit {
  /// Time Unit Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<TimeUnitValues>,
}
/// Defines the MajorTimeUnit Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:majorTimeUnit")]
pub struct MajorTimeUnit {
  /// Time Unit Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<TimeUnitValues>,
}
/// Defines the MinorTimeUnit Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:minorTimeUnit")]
pub struct MinorTimeUnit {
  /// Time Unit Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<TimeUnitValues>,
}
/// Defines the MajorUnit Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:majorUnit")]
pub struct MajorUnit {
  /// Major Unit Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(min = 0, min_inclusive = false, max_inclusive = false))]
  pub val: crate::simple_type::DoubleValue,
}
/// Defines the MinorUnit Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:minorUnit")]
pub struct MinorUnit {
  /// Major Unit Value
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(min = 0, min_inclusive = false, max_inclusive = false))]
  pub val: crate::simple_type::DoubleValue,
}
/// Defines the DateAxExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct DateAxExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the DateAxExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub date_ax_extension: Vec<DateAxExtension>,
}
/// Defines the SerAxExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct SerAxExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the SerAxExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub ser_ax_extension: Vec<SerAxExtension>,
}
/// Defines the CrossBetween Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:crossBetween")]
pub struct CrossBetween {
  /// Cross Between Value
  #[sdk(attr(qname = ":val"))]
  pub val: CrossBetweenValues,
}
/// Defines the DisplayUnits Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:dispUnits")]
pub struct DisplayUnits {
  #[sdk(
        choice(
            child(variant = CustomDisplayUnit, qname = "c:custUnit"),
            child(variant = BuiltInUnit, qname = "c:builtInUnit")
        )
    )]
  pub display_units_choice: Option<DisplayUnitsChoice>,
  /// Display Units Label.
  #[sdk(child(qname = "c:dispUnitsLbl"))]
  pub display_units_label: Option<std::boxed::Box<DisplayUnitsLabel>>,
  /// Defines the ExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Defines the ValAxExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct ValAxExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the ValAxExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub val_ax_extension: Vec<ValAxExtension>,
}
/// Defines the DLblExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct DLblExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the DLblExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub d_lbl_extension: Vec<DLblExtension>,
}
/// Defines the DLblExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct DLblExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = DataLabelFieldTable, qname = "c15:dlblFieldTable"),
            child(variant = ExceptionForSave, qname = "c15:xForSave"),
            child(variant = ShowDataLabelsRange, qname = "c15:showDataLabelsRange"),
            child(variant = ShapeProperties, qname = "c15:spPr"),
            child(variant = Layout, qname = "c15:layout"),
            child(variant = UniqueIdChartUniqueId, qname = "c16:uniqueId"),
            any
        )
    )]
  pub d_lbl_extension_choice: Vec<DLblExtensionChoice>,
}
/// Defines the DataPoint Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:dPt")]
pub struct DataPoint {
  /// Index
  #[sdk(child(qname = "c:idx"))]
  pub index: std::boxed::Box<Index>,
  /// Invert if Negative
  #[sdk(child(qname = "c:invertIfNegative"))]
  pub invert_if_negative: Option<InvertIfNegative>,
  /// Marker
  #[sdk(child(qname = "c:marker"))]
  pub marker: Option<std::boxed::Box<Marker>>,
  /// 3D Bubble
  #[sdk(child(qname = "c:bubble3D"))]
  pub bubble3_d: Option<Bubble3D>,
  /// Explosion
  #[sdk(child(qname = "c:explosion"))]
  pub explosion: Option<Explosion>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the PictureOptions Class.
  #[sdk(child(qname = "c:pictureOptions"))]
  pub picture_options: Option<std::boxed::Box<PictureOptions>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Defines the Trendline Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:trendline")]
pub struct Trendline {
  /// Trendline Name
  #[sdk(text_child(simple_type = "StringValue", qname = "c:name"))]
  pub trendline_name: Option<TrendlineName>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Trendline Type
  #[sdk(child(qname = "c:trendlineType"))]
  pub trendline_type: std::boxed::Box<TrendlineType>,
  /// Polynomial Trendline Order
  #[sdk(child(qname = "c:order"))]
  pub polynomial_order: Option<PolynomialOrder>,
  /// Period
  #[sdk(child(qname = "c:period"))]
  pub period: Option<Period>,
  /// Forward
  #[sdk(child(qname = "c:forward"))]
  pub forward: Option<Forward>,
  /// Backward
  #[sdk(child(qname = "c:backward"))]
  pub backward: Option<Backward>,
  /// Intercept
  #[sdk(child(qname = "c:intercept"))]
  pub intercept: Option<Intercept>,
  /// Display R Squared Value
  #[sdk(child(qname = "c:dispRSqr"))]
  pub display_r_squared_value: Option<DisplayRSquaredValue>,
  /// Display Equation
  #[sdk(child(qname = "c:dispEq"))]
  pub display_equation: Option<DisplayEquation>,
  /// Trendline Label
  #[sdk(child(qname = "c:trendlineLbl"))]
  pub trendline_label: Option<std::boxed::Box<TrendlineLabel>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Defines the ErrorBars Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:errBars")]
pub struct ErrorBars {
  /// Error Bar Direction
  #[sdk(child(qname = "c:errDir"))]
  pub error_direction: Option<ErrorDirection>,
  /// Error Bar Type
  #[sdk(child(qname = "c:errBarType"))]
  pub error_bar_type: std::boxed::Box<ErrorBarType>,
  /// Error Bar Value Type
  #[sdk(child(qname = "c:errValType"))]
  pub error_bar_value_type: std::boxed::Box<ErrorBarValueType>,
  /// No End Cap
  #[sdk(child(qname = "c:noEndCap"))]
  pub no_end_cap: Option<NoEndCap>,
  /// Plus
  #[sdk(child(qname = "c:plus"))]
  pub plus: Option<std::boxed::Box<Plus>>,
  /// Minus
  #[sdk(child(qname = "c:minus"))]
  pub minus: Option<std::boxed::Box<Minus>>,
  /// Error Bar Value
  #[sdk(child(qname = "c:val"))]
  pub error_bar_value: Option<ErrorBarValue>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Defines the CategoryAxisData Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:cat")]
pub struct CategoryAxisData {
  #[sdk(
        choice(
            child(variant = MultiLevelStringReference, qname = "c:multiLvlStrRef"),
            child(variant = NumberReference, qname = "c:numRef"),
            child(variant = NumberLiteral, qname = "c:numLit"),
            child(variant = StringReference, qname = "c:strRef"),
            child(variant = StringLiteral, qname = "c:strLit")
        )
    )]
  pub category_axis_data_choice: Option<CategoryAxisDataChoice>,
}
/// Defines the XValues Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:xVal")]
pub struct XValues {
  #[sdk(
        choice(
            child(variant = MultiLevelStringReference, qname = "c:multiLvlStrRef"),
            child(variant = NumberReference, qname = "c:numRef"),
            child(variant = NumberLiteral, qname = "c:numLit"),
            child(variant = StringReference, qname = "c:strRef"),
            child(variant = StringLiteral, qname = "c:strLit")
        )
    )]
  pub x_values_choice: Option<XValuesChoice>,
}
/// Defines the LineSerExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct LineSerExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the LineSerExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub line_ser_extension: Vec<LineSerExtension>,
}
/// Defines the LineSerExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct LineSerExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredSeriesTitle, qname = "c15:filteredSeriesTitle"),
            child(variant = FilteredCategoryTitle, qname = "c15:filteredCategoryTitle"),
            child(variant = DataLabelsRange, qname = "c15:datalabelsRange"),
            child(
                variant = C15CategoryFilterExceptions,
                qname = "c15:categoryFilterExceptions"
            ),
            child(
                variant = C16CategoryFilterExceptions,
                qname = "c16:categoryFilterExceptions"
            ),
            child(
                variant = ChartDataPointUniqueIdMap,
                qname = "c16:datapointuniqueidmap"
            ),
            child(variant = UniqueIdChartUniqueId, qname = "c16:uniqueId"),
            any
        )
    )]
  pub line_ser_extension_choice: Option<LineSerExtensionChoice>,
}
/// Defines the ScatterSerExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct ScatterSerExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the ScatterSerExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub scatter_ser_extension: Vec<ScatterSerExtension>,
}
/// Defines the ScatterSerExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct ScatterSerExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredSeriesTitle, qname = "c15:filteredSeriesTitle"),
            child(variant = FilteredCategoryTitle, qname = "c15:filteredCategoryTitle"),
            child(variant = DataLabelsRange, qname = "c15:datalabelsRange"),
            child(
                variant = C15CategoryFilterExceptions,
                qname = "c15:categoryFilterExceptions"
            ),
            child(
                variant = C16CategoryFilterExceptions,
                qname = "c16:categoryFilterExceptions"
            ),
            child(
                variant = ChartDataPointUniqueIdMap,
                qname = "c16:datapointuniqueidmap"
            ),
            child(variant = UniqueIdChartUniqueId, qname = "c16:uniqueId"),
            any
        )
    )]
  pub scatter_ser_extension_choice: Option<ScatterSerExtensionChoice>,
}
/// Defines the RadarSerExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct RadarSerExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the RadarSerExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub radar_ser_extension: Vec<RadarSerExtension>,
}
/// Defines the RadarSerExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct RadarSerExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredSeriesTitle, qname = "c15:filteredSeriesTitle"),
            child(variant = FilteredCategoryTitle, qname = "c15:filteredCategoryTitle"),
            child(variant = DataLabelsRange, qname = "c15:datalabelsRange"),
            child(
                variant = C15CategoryFilterExceptions,
                qname = "c15:categoryFilterExceptions"
            ),
            child(
                variant = C16CategoryFilterExceptions,
                qname = "c16:categoryFilterExceptions"
            ),
            child(
                variant = ChartDataPointUniqueIdMap,
                qname = "c16:datapointuniqueidmap"
            ),
            child(variant = UniqueIdChartUniqueId, qname = "c16:uniqueId"),
            any
        )
    )]
  pub radar_ser_extension_choice: Option<RadarSerExtensionChoice>,
}
/// Defines the BarSerExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct BarSerExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the BarSerExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub bar_ser_extension: Vec<BarSerExtension>,
}
/// Defines the BarSerExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct BarSerExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = InvertSolidFillFormat, qname = "c14:invertSolidFillFmt"),
            child(variant = FilteredSeriesTitle, qname = "c15:filteredSeriesTitle"),
            child(variant = FilteredCategoryTitle, qname = "c15:filteredCategoryTitle"),
            child(variant = DataLabelsRange, qname = "c15:datalabelsRange"),
            child(
                variant = C15CategoryFilterExceptions,
                qname = "c15:categoryFilterExceptions"
            ),
            child(
                variant = C16CategoryFilterExceptions,
                qname = "c16:categoryFilterExceptions"
            ),
            child(
                variant = ChartDataPointUniqueIdMap,
                qname = "c16:datapointuniqueidmap"
            ),
            child(variant = UniqueIdChartUniqueId, qname = "c16:uniqueId"),
            any
        )
    )]
  pub bar_ser_extension_choice: Option<BarSerExtensionChoice>,
}
/// Defines the AreaSerExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct AreaSerExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the AreaSerExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub area_ser_extension: Vec<AreaSerExtension>,
}
/// Defines the AreaSerExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct AreaSerExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredSeriesTitle, qname = "c15:filteredSeriesTitle"),
            child(variant = FilteredCategoryTitle, qname = "c15:filteredCategoryTitle"),
            child(variant = DataLabelsRange, qname = "c15:datalabelsRange"),
            child(
                variant = C15CategoryFilterExceptions,
                qname = "c15:categoryFilterExceptions"
            ),
            child(
                variant = C16CategoryFilterExceptions,
                qname = "c16:categoryFilterExceptions"
            ),
            child(
                variant = ChartDataPointUniqueIdMap,
                qname = "c16:datapointuniqueidmap"
            ),
            child(variant = UniqueIdChartUniqueId, qname = "c16:uniqueId"),
            any
        )
    )]
  pub area_ser_extension_choice: Option<AreaSerExtensionChoice>,
}
/// Defines the PieSerExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct PieSerExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the PieSerExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub pie_ser_extension: Vec<PieSerExtension>,
}
/// Defines the PieSerExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct PieSerExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredSeriesTitle, qname = "c15:filteredSeriesTitle"),
            child(variant = FilteredCategoryTitle, qname = "c15:filteredCategoryTitle"),
            child(variant = DataLabelsRange, qname = "c15:datalabelsRange"),
            child(
                variant = C15CategoryFilterExceptions,
                qname = "c15:categoryFilterExceptions"
            ),
            child(
                variant = C16CategoryFilterExceptions,
                qname = "c16:categoryFilterExceptions"
            ),
            child(
                variant = ChartDataPointUniqueIdMap,
                qname = "c16:datapointuniqueidmap"
            ),
            child(variant = UniqueIdChartUniqueId, qname = "c16:uniqueId"),
            any
        )
    )]
  pub pie_ser_extension_choice: Option<PieSerExtensionChoice>,
}
/// Defines the BubbleSerExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct BubbleSerExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the BubbleSerExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub bubble_ser_extension: Vec<BubbleSerExtension>,
}
/// Defines the BubbleSerExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct BubbleSerExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = InvertSolidFillFormat, qname = "c14:invertSolidFillFmt"),
            child(variant = FilteredCategoryTitle, qname = "c15:filteredCategoryTitle"),
            child(variant = DataLabelsRange, qname = "c15:datalabelsRange"),
            child(
                variant = C15CategoryFilterExceptions,
                qname = "c15:categoryFilterExceptions"
            ),
            child(
                variant = C16CategoryFilterExceptions,
                qname = "c16:categoryFilterExceptions"
            ),
            child(
                variant = ChartDataPointUniqueIdMap,
                qname = "c16:datapointuniqueidmap"
            ),
            child(variant = UniqueIdChartUniqueId, qname = "c16:uniqueId"),
            any
        )
    )]
  pub bubble_ser_extension_choice: Option<BubbleSerExtensionChoice>,
}
/// Defines the SurfaceSerExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct SurfaceSerExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the SurfaceSerExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub surface_ser_extension: Vec<SurfaceSerExtension>,
}
/// Defines the SurfaceSerExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct SurfaceSerExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = FilteredSeriesTitle, qname = "c15:filteredSeriesTitle"),
            child(variant = FilteredCategoryTitle, qname = "c15:filteredCategoryTitle"),
            child(
                variant = C15CategoryFilterExceptions,
                qname = "c15:categoryFilterExceptions"
            ),
            child(
                variant = C16CategoryFilterExceptions,
                qname = "c16:categoryFilterExceptions"
            ),
            child(
                variant = ChartDataPointUniqueIdMap,
                qname = "c16:datapointuniqueidmap"
            ),
            child(variant = UniqueIdChartUniqueId, qname = "c16:uniqueId"),
            any
        )
    )]
  pub surface_ser_extension_choice: Option<SurfaceSerExtensionChoice>,
}
/// Defines the DataDisplayOptions16 Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct DataDisplayOptions16 {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  pub xml_other_children: Vec<(usize, std::boxed::Box<[u8]>)>,
  /// Uniform Resource Identifier
  #[sdk(attr(qname = ":uri"))]
  pub uri: Option<crate::simple_type::StringValue>,
  /// Defines the BooleanFalse Class.
  #[sdk(child(qname = "c16r3:dispNaAsBlank"))]
  pub boolean_false: Option<crate::schemas::c16r3::BooleanFalse>,
}
/// pivot chart format persistence data.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:pivotFmts")]
pub struct PivotFormats {
  /// Pivot Format.
  #[sdk(child(qname = "c:pivotFmt"))]
  pub pivot_format: Vec<PivotFormat>,
}
/// 3D view settings.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:view3D")]
pub struct View3D {
  /// X Rotation
  #[sdk(child(qname = "c:rotX"))]
  pub rotate_x: Option<RotateX>,
  /// Height Percent
  #[sdk(child(qname = "c:hPercent"))]
  pub height_percent: Option<HeightPercent>,
  /// Y Rotation
  #[sdk(child(qname = "c:rotY"))]
  pub rotate_y: Option<RotateY>,
  /// Depth Percent
  #[sdk(child(qname = "c:depthPercent"))]
  pub depth_percent: Option<DepthPercent>,
  /// Right Angle Axes
  #[sdk(child(qname = "c:rAngAx"))]
  pub right_angle_axes: Option<RightAngleAxes>,
  /// Perspective
  #[sdk(child(qname = "c:perspective"))]
  pub perspective: Option<Perspective>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// 3D floor formatting.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:floor")]
pub struct Floor {
  /// Thickness
  #[sdk(child(qname = "c:thickness"))]
  pub thickness: Option<Thickness>,
  /// Defines the ShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub shape_properties: Option<std::boxed::Box<ShapeProperties>>,
  /// Picture Options
  #[sdk(child(qname = "c:pictureOptions"))]
  pub picture_options: Option<std::boxed::Box<PictureOptions>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// 3D side wall formatting.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:sideWall")]
pub struct SideWall {
  /// Thickness
  #[sdk(child(qname = "c:thickness"))]
  pub thickness: Option<Thickness>,
  /// Defines the ShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub shape_properties: Option<std::boxed::Box<ShapeProperties>>,
  /// Picture Options
  #[sdk(child(qname = "c:pictureOptions"))]
  pub picture_options: Option<std::boxed::Box<PictureOptions>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// 3D back wall formatting.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:backWall")]
pub struct BackWall {
  /// Thickness
  #[sdk(child(qname = "c:thickness"))]
  pub thickness: Option<Thickness>,
  /// Defines the ShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub shape_properties: Option<std::boxed::Box<ShapeProperties>>,
  /// Picture Options
  #[sdk(child(qname = "c:pictureOptions"))]
  pub picture_options: Option<std::boxed::Box<PictureOptions>>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Plot data and formatting.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:plotArea")]
pub struct PlotArea {
  /// Layout
  #[sdk(child(qname = "c:layout"))]
  pub layout: Option<std::boxed::Box<Layout>>,
  #[sdk(
        choice(
            child(variant = AreaChart, qname = "c:areaChart"),
            child(variant = Area3DChart, qname = "c:area3DChart"),
            child(variant = LineChart, qname = "c:lineChart"),
            child(variant = Line3DChart, qname = "c:line3DChart"),
            child(variant = StockChart, qname = "c:stockChart"),
            child(variant = RadarChart, qname = "c:radarChart"),
            child(variant = ScatterChart, qname = "c:scatterChart"),
            child(variant = PieChart, qname = "c:pieChart"),
            child(variant = Pie3DChart, qname = "c:pie3DChart"),
            child(variant = DoughnutChart, qname = "c:doughnutChart"),
            child(variant = BarChart, qname = "c:barChart"),
            child(variant = Bar3DChart, qname = "c:bar3DChart"),
            child(variant = OfPieChart, qname = "c:ofPieChart"),
            child(variant = SurfaceChart, qname = "c:surfaceChart"),
            child(variant = Surface3DChart, qname = "c:surface3DChart"),
            child(variant = BubbleChart, qname = "c:bubbleChart")
        )
    )]
  pub plot_area_choice1: Vec<PlotAreaChoice>,
  #[sdk(
        choice(
            child(variant = ValueAxis, qname = "c:valAx"),
            child(variant = CategoryAxis, qname = "c:catAx"),
            child(variant = DateAxis, qname = "c:dateAx"),
            child(variant = SeriesAxis, qname = "c:serAx")
        )
    )]
  pub plot_area_choice2: Vec<PlotAreaChoice2>,
  /// Data Table.
  #[sdk(child(qname = "c:dTable"))]
  pub data_table: Option<std::boxed::Box<DataTable>>,
  /// Defines the ShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub shape_properties: Option<std::boxed::Box<ShapeProperties>>,
  /// Defines the ExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Legend data and formatting.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:legend")]
pub struct Legend {
  /// Legend Position
  #[sdk(child(qname = "c:legendPos"))]
  pub legend_position: Option<LegendPosition>,
  /// Legend Entry.
  #[sdk(child(qname = "c:legendEntry"))]
  pub legend_entry: Vec<LegendEntry>,
  /// Layout.
  #[sdk(child(qname = "c:layout"))]
  pub layout: Option<std::boxed::Box<Layout>>,
  /// Overlay.
  #[sdk(child(qname = "c:overlay"))]
  pub overlay: Option<Overlay>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the TextProperties Class.
  #[sdk(child(qname = "c:txPr"))]
  pub text_properties: Option<std::boxed::Box<TextProperties>>,
  /// Defines the ExtensionList Class.
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// The way that blank cells are plotted on a chart..
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:dispBlanksAs")]
pub struct DisplayBlanksAs {
  /// Display Blanks As Value
  #[sdk(attr(qname = ":val"))]
  pub val: Option<DisplayBlanksAsValues>,
}
/// Extensibility container.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct ChartExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the DataDisplayOptions16 Class.
  #[sdk(child(qname = "c:ext"))]
  pub data_display_options16: Vec<DataDisplayOptions16>,
}
/// Defines the EditingLanguage Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:lang")]
pub struct EditingLanguage {
  /// Language Code
  #[sdk(attr(qname = ":val"))]
  pub val: crate::simple_type::StringValue,
}
/// Defines the Style Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:style")]
pub struct Style {
  /// Style Type
  #[sdk(attr(qname = ":val"))]
  #[sdk(number_range(range = 1..= 48))]
  pub val: Option<crate::simple_type::ByteValue>,
}
/// Defines the ColorMapOverride Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:clrMapOvr")]
pub struct ColorMapOverride {
  /// Background 1
  #[sdk(attr(qname = ":bg1"))]
  #[sdk(string_format(kind = "token"))]
  pub background1: crate::schemas::a::ColorSchemeIndexValues,
  /// Text 1
  #[sdk(attr(qname = ":tx1"))]
  #[sdk(string_format(kind = "token"))]
  pub text1: crate::schemas::a::ColorSchemeIndexValues,
  /// Background 2
  #[sdk(attr(qname = ":bg2"))]
  #[sdk(string_format(kind = "token"))]
  pub background2: crate::schemas::a::ColorSchemeIndexValues,
  /// Text 2
  #[sdk(attr(qname = ":tx2"))]
  #[sdk(string_format(kind = "token"))]
  pub text2: crate::schemas::a::ColorSchemeIndexValues,
  /// Accent 1
  #[sdk(attr(qname = ":accent1"))]
  #[sdk(string_format(kind = "token"))]
  pub accent1: crate::schemas::a::ColorSchemeIndexValues,
  /// Accent 2
  #[sdk(attr(qname = ":accent2"))]
  #[sdk(string_format(kind = "token"))]
  pub accent2: crate::schemas::a::ColorSchemeIndexValues,
  /// Accent 3
  #[sdk(attr(qname = ":accent3"))]
  #[sdk(string_format(kind = "token"))]
  pub accent3: crate::schemas::a::ColorSchemeIndexValues,
  /// Accent 4
  #[sdk(attr(qname = ":accent4"))]
  #[sdk(string_format(kind = "token"))]
  pub accent4: crate::schemas::a::ColorSchemeIndexValues,
  /// Accent 5
  #[sdk(attr(qname = ":accent5"))]
  #[sdk(string_format(kind = "token"))]
  pub accent5: crate::schemas::a::ColorSchemeIndexValues,
  /// Accent 6
  #[sdk(attr(qname = ":accent6"))]
  #[sdk(string_format(kind = "token"))]
  pub accent6: crate::schemas::a::ColorSchemeIndexValues,
  /// Hyperlink
  #[sdk(attr(qname = ":hlink"))]
  #[sdk(string_format(kind = "token"))]
  pub hyperlink: crate::schemas::a::ColorSchemeIndexValues,
  /// Followed Hyperlink
  #[sdk(attr(qname = ":folHlink"))]
  #[sdk(string_format(kind = "token"))]
  pub followed_hyperlink: crate::schemas::a::ColorSchemeIndexValues,
  /// Defines the ExtensionList Class.
  #[sdk(child(qname = "a:extLst"))]
  pub extension_list: Option<crate::schemas::a::ExtensionList>,
}
/// Defines the PivotSource Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:pivotSource")]
pub struct PivotSource {
  /// Pivot Name
  #[sdk(text_child(simple_type = "StringValue", qname = "c:name"))]
  pub pivot_table_name: PivotTableName,
  /// Format ID
  #[sdk(child(qname = "c:fmtId"))]
  pub format_id: std::boxed::Box<FormatId>,
  /// Chart Extensibility
  #[sdk(child(qname = "c:extLst"))]
  pub extension_list: Option<ExtensionList>,
}
/// Defines the Protection Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:protection")]
pub struct Protection {
  /// Chart Object
  #[sdk(child(qname = "c:chartObject"))]
  pub chart_object: Option<ChartObject>,
  /// Data Cannot Be Changed
  #[sdk(child(qname = "c:data"))]
  pub data: Option<Data>,
  /// Formatting
  #[sdk(child(qname = "c:formatting"))]
  pub formatting: Option<Formatting>,
  /// Selection
  #[sdk(child(qname = "c:selection"))]
  pub selection: Option<Selection>,
  /// User Interface
  #[sdk(child(qname = "c:userInterface"))]
  pub user_interface: Option<UserInterface>,
}
/// Defines the Chart Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:chart")]
pub struct Chart {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Title data and formatting
  #[sdk(child(qname = "c:title"))]
  pub title: Option<std::boxed::Box<Title>>,
  /// True if the chart automatic title has been deleted.
  #[sdk(child(qname = "c:autoTitleDeleted"))]
  pub auto_title_deleted: Option<AutoTitleDeleted>,
  /// pivot chart format persistence data
  #[sdk(child(qname = "c:pivotFmts"))]
  pub pivot_formats: Option<PivotFormats>,
  /// 3D view settings
  #[sdk(child(qname = "c:view3D"))]
  pub view3_d: Option<std::boxed::Box<View3D>>,
  /// 3D floor formatting
  #[sdk(child(qname = "c:floor"))]
  pub floor: Option<std::boxed::Box<Floor>>,
  /// 3D side wall formatting
  #[sdk(child(qname = "c:sideWall"))]
  pub side_wall: Option<std::boxed::Box<SideWall>>,
  /// 3D back wall formatting
  #[sdk(child(qname = "c:backWall"))]
  pub back_wall: Option<std::boxed::Box<BackWall>>,
  /// Plot data and formatting
  #[sdk(child(qname = "c:plotArea"))]
  pub plot_area: std::boxed::Box<PlotArea>,
  /// Legend data and formatting
  #[sdk(child(qname = "c:legend"))]
  pub legend: Option<std::boxed::Box<Legend>>,
  /// True if only visible cells are plotted.
  #[sdk(child(qname = "c:plotVisOnly"))]
  pub plot_visible_only: Option<PlotVisibleOnly>,
  /// The way that blank cells are plotted on a chart.
  #[sdk(child(qname = "c:dispBlanksAs"))]
  pub display_blanks_as: Option<DisplayBlanksAs>,
  /// True if we should render datalabels over the maximum scale
  #[sdk(child(qname = "c:showDLblsOverMax"))]
  pub show_data_labels_over_maximum: Option<ShowDataLabelsOverMaximum>,
  /// Extensibility container
  #[sdk(child(qname = "c:extLst"))]
  pub chart_extension_list: Option<ChartExtensionList>,
}
/// Defines the ExternalData Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:externalData")]
pub struct ExternalData {
  /// Relationship Reference
  #[sdk(attr(qname = "r:id"))]
  pub id: crate::simple_type::StringValue,
  /// Update Automatically
  #[sdk(child(qname = "c:autoUpdate"))]
  pub auto_update: Option<AutoUpdate>,
}
/// Defines the PrintSettings Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:printSettings")]
pub struct PrintSettings {
  /// Header and Footer
  #[sdk(child(qname = "c:headerFooter"))]
  pub header_footer: Option<HeaderFooter>,
  /// Page Margins
  #[sdk(child(qname = "c:pageMargins"))]
  pub page_margins: Option<PageMargins>,
  /// Page Setup
  #[sdk(child(qname = "c:pageSetup"))]
  pub page_setup: Option<PageSetup>,
  /// Legacy Drawing for Headers and Footers
  #[sdk(child(qname = "c:legacyDrawingHF"))]
  pub legacy_drawing_header_footer: Option<LegacyDrawingHeaderFooter>,
}
/// Defines the ChartSpaceExtensionList Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:extLst")]
pub struct ChartSpaceExtensionList {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// Defines the ChartSpaceExtension Class.
  #[sdk(child(qname = "c:ext"))]
  pub chart_space_extension: Vec<ChartSpaceExtension>,
}
/// Defines the ChartSpaceExtension Class.
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
#[sdk(qname = "c:ext")]
pub struct ChartSpaceExtension {
  pub xmlns: Vec<crate::common::XmlNamespace>,
  /// URI
  #[sdk(attr(qname = ":uri"))]
  #[sdk(string_format(kind = "token"))]
  pub uri: crate::simple_type::StringValue,
  #[sdk(
        choice(
            child(variant = PivotOptions, qname = "c14:pivotOptions"),
            child(variant = SketchOptions, qname = "c14:sketchOptions"),
            child(variant = PivotSource, qname = "c15:pivotSource"),
            any
        )
    )]
  pub chart_space_extension_choice: Option<ChartSpaceExtensionChoice>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum ChartShapePropertiesChoice {
  /// Custom geometry.
  CustomGeometry(std::boxed::Box<crate::schemas::a::CustomGeometry>),
  /// Preset geometry.
  PresetGeometry(std::boxed::Box<crate::schemas::a::PresetGeometry>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum ChartShapePropertiesChoice2 {
  /// Defines the NoFill Class.
  NoFill(std::boxed::Box<crate::schemas::a::NoFill>),
  /// Defines the SolidFill Class.
  SolidFill(std::boxed::Box<crate::schemas::a::SolidFill>),
  /// Defines the GradientFill Class.
  GradientFill(std::boxed::Box<crate::schemas::a::GradientFill>),
  /// Defines the BlipFill Class.
  BlipFill(std::boxed::Box<crate::schemas::a::BlipFill>),
  /// Pattern Fill.
  PatternFill(std::boxed::Box<crate::schemas::a::PatternFill>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum ChartShapePropertiesChoice3 {
  /// Effect Container.
  EffectList(std::boxed::Box<crate::schemas::a::EffectList>),
  /// Effect Container.
  EffectDag(std::boxed::Box<crate::schemas::a::EffectDag>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum ChartTextChoice {
  /// Defines the StringReference Class.
  StringReference(std::boxed::Box<StringReference>),
  /// Rich Text.
  RichText(std::boxed::Box<RichText>),
  /// String Literal.
  StringLiteral(std::boxed::Box<StringLiteral>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum SeriesTextChoice {
  /// Defines the StringReference Class.
  StringReference(std::boxed::Box<StringReference>),
  /// Numeric Value.
  NumericValue(NumericValue),
}
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
pub struct DataLabelsChoiceSequence {
  /// Number Format.
  #[sdk(child(qname = "c:numFmt"))]
  pub numbering_format: Option<NumberingFormat>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the TextProperties Class.
  #[sdk(child(qname = "c:txPr"))]
  pub text_properties: Option<std::boxed::Box<TextProperties>>,
  /// Data Label Position.
  #[sdk(child(qname = "c:dLblPos"))]
  pub data_label_position: Option<DataLabelPosition>,
  /// Show Legend Key.
  #[sdk(child(qname = "c:showLegendKey"))]
  pub show_legend_key: Option<ShowLegendKey>,
  /// Show Value.
  #[sdk(child(qname = "c:showVal"))]
  pub show_value: Option<ShowValue>,
  /// Show Category Name.
  #[sdk(child(qname = "c:showCatName"))]
  pub show_category_name: Option<ShowCategoryName>,
  /// Show Series Name.
  #[sdk(child(qname = "c:showSerName"))]
  pub show_series_name: Option<ShowSeriesName>,
  /// Show Percent.
  #[sdk(child(qname = "c:showPercent"))]
  pub show_percent: Option<ShowPercent>,
  /// Show Bubble Size.
  #[sdk(child(qname = "c:showBubbleSize"))]
  pub show_bubble_size: Option<ShowBubbleSize>,
  /// Separator.
  #[sdk(text_child(simple_type = "StringValue", qname = "c:separator"))]
  pub separator: Option<Separator>,
  /// Show Leader Lines.
  #[sdk(child(qname = "c:showLeaderLines"))]
  pub show_leader_lines: Option<ShowLeaderLines>,
  /// Leader Lines.
  #[sdk(child(qname = "c:leaderLines"))]
  pub leader_lines: Option<std::boxed::Box<LeaderLines>>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum DataLabelsChoice {
  /// Delete.
  Delete(std::boxed::Box<Delete>),
  /// Sequence of c:numFmt, c:spPr, c:txPr, c:dLblPos, c:showLegendKey, c:showVal, c:showCatName, c:showSerName, c:showPercent, c:showBubbleSize, c:separator, c:showLeaderLines, c:leaderLines
  Sequence(std::boxed::Box<DataLabelsChoiceSequence>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum ChartSpaceChoice {
  C14Style(std::boxed::Box<crate::schemas::c14::Style>),
  /// Defines the Style Class.
  CStyle(std::boxed::Box<Style>),
  /// Unknown XML child.
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum UserShapesChoice {
  /// Relative Anchor Shape Size.
  RelativeAnchorSize(std::boxed::Box<crate::schemas::cdr::RelativeAnchorSize>),
  /// Absolute Anchor Shape Size.
  AbsoluteAnchorSize(std::boxed::Box<crate::schemas::cdr::AbsoluteAnchorSize>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum PlusChoice {
  /// Number Reference.
  NumberReference(std::boxed::Box<NumberReference>),
  /// Number Literal.
  NumberLiteral(std::boxed::Box<NumberLiteral>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum MinusChoice {
  /// Number Reference.
  NumberReference(std::boxed::Box<NumberReference>),
  /// Number Literal.
  NumberLiteral(std::boxed::Box<NumberLiteral>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum ValuesChoice {
  /// Number Reference.
  NumberReference(std::boxed::Box<NumberReference>),
  /// Number Literal.
  NumberLiteral(std::boxed::Box<NumberLiteral>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum YValuesChoice {
  /// Number Reference.
  NumberReference(std::boxed::Box<NumberReference>),
  /// Number Literal.
  NumberLiteral(std::boxed::Box<NumberLiteral>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum BubbleSizeChoice {
  /// Number Reference.
  NumberReference(std::boxed::Box<NumberReference>),
  /// Number Literal.
  NumberLiteral(std::boxed::Box<NumberLiteral>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum LegendEntryChoice {
  /// Delete.
  Delete(std::boxed::Box<Delete>),
  TextProperties(std::boxed::Box<TextProperties>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum ShapePropertiesChoice {
  /// Custom geometry.
  CustomGeometry(std::boxed::Box<crate::schemas::a::CustomGeometry>),
  /// Preset geometry.
  PresetGeometry(std::boxed::Box<crate::schemas::a::PresetGeometry>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum ShapePropertiesChoice2 {
  /// Defines the NoFill Class.
  NoFill(std::boxed::Box<crate::schemas::a::NoFill>),
  /// Defines the SolidFill Class.
  SolidFill(std::boxed::Box<crate::schemas::a::SolidFill>),
  /// Defines the GradientFill Class.
  GradientFill(std::boxed::Box<crate::schemas::a::GradientFill>),
  /// Defines the BlipFill Class.
  BlipFill(std::boxed::Box<crate::schemas::a::BlipFill>),
  /// Pattern Fill.
  PatternFill(std::boxed::Box<crate::schemas::a::PatternFill>),
  /// Group Fill.
  GroupFill,
}
#[derive(Clone, Debug, PartialEq)]
pub enum ShapePropertiesChoice3 {
  /// Effect Container.
  EffectList(std::boxed::Box<crate::schemas::a::EffectList>),
  /// Effect Container.
  EffectDag(std::boxed::Box<crate::schemas::a::EffectDag>),
}
#[derive(Clone, Debug, Default, PartialEq, ooxmlsdk_derive::SdkType)]
pub struct DataLabelChoiceSequence {
  /// Layout.
  #[sdk(child(qname = "c:layout"))]
  pub layout: Option<std::boxed::Box<Layout>>,
  /// Defines the ChartText Class.
  #[sdk(child(qname = "c:tx"))]
  pub chart_text: Option<std::boxed::Box<ChartText>>,
  /// Number Format.
  #[sdk(child(qname = "c:numFmt"))]
  pub numbering_format: Option<NumberingFormat>,
  /// Defines the ChartShapeProperties Class.
  #[sdk(child(qname = "c:spPr"))]
  pub chart_shape_properties: Option<std::boxed::Box<ChartShapeProperties>>,
  /// Defines the TextProperties Class.
  #[sdk(child(qname = "c:txPr"))]
  pub text_properties: Option<std::boxed::Box<TextProperties>>,
  /// Data Label Position.
  #[sdk(child(qname = "c:dLblPos"))]
  pub data_label_position: Option<DataLabelPosition>,
  /// Show Legend Key.
  #[sdk(child(qname = "c:showLegendKey"))]
  pub show_legend_key: Option<ShowLegendKey>,
  /// Show Value.
  #[sdk(child(qname = "c:showVal"))]
  pub show_value: Option<ShowValue>,
  /// Show Category Name.
  #[sdk(child(qname = "c:showCatName"))]
  pub show_category_name: Option<ShowCategoryName>,
  /// Show Series Name.
  #[sdk(child(qname = "c:showSerName"))]
  pub show_series_name: Option<ShowSeriesName>,
  /// Show Percent.
  #[sdk(child(qname = "c:showPercent"))]
  pub show_percent: Option<ShowPercent>,
  /// Show Bubble Size.
  #[sdk(child(qname = "c:showBubbleSize"))]
  pub show_bubble_size: Option<ShowBubbleSize>,
  /// Separator.
  #[sdk(text_child(simple_type = "StringValue", qname = "c:separator"))]
  pub separator: Option<Separator>,
}
#[derive(Clone, Debug, PartialEq)]
pub enum DataLabelChoice {
  /// Delete.
  Delete(std::boxed::Box<Delete>),
  /// Sequence of c:layout, c:tx, c:numFmt, c:spPr, c:txPr, c:dLblPos, c:showLegendKey, c:showVal, c:showCatName, c:showSerName, c:showPercent, c:showBubbleSize, c:separator
  Sequence(std::boxed::Box<DataLabelChoiceSequence>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum ValueAxisChoice {
  /// Crosses.
  Crosses(std::boxed::Box<Crosses>),
  /// Crossing Value.
  CrossesAt(std::boxed::Box<CrossesAt>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum CategoryAxisChoice {
  /// Crosses.
  Crosses(std::boxed::Box<Crosses>),
  /// Crossing Value.
  CrossesAt(std::boxed::Box<CrossesAt>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum DateAxisChoice {
  /// Crosses.
  Crosses(std::boxed::Box<Crosses>),
  /// Crossing Value.
  CrossesAt(std::boxed::Box<CrossesAt>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum SeriesAxisChoice {
  /// Crosses.
  Crosses(std::boxed::Box<Crosses>),
  /// Crossing Value.
  CrossesAt(std::boxed::Box<CrossesAt>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum StockChartExtensionChoice {
  /// Defines the FilteredLineSeriesExtension Class.
  FilteredLineSeriesExtension(std::boxed::Box<crate::schemas::c15::FilteredLineSeriesExtension>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum PieChartExtensionChoice {
  /// Defines the FilteredPieSeries Class.
  FilteredPieSeries(std::boxed::Box<crate::schemas::c15::FilteredPieSeries>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum Pie3DChartExtensionChoice {
  /// Defines the FilteredPieSeries Class.
  FilteredPieSeries(std::boxed::Box<crate::schemas::c15::FilteredPieSeries>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum NumRefExtensionChoice {
  /// Defines the FullReference Class.
  FullReference(std::boxed::Box<crate::schemas::c15::FullReference>),
  /// Defines the LevelReference Class.
  LevelReference(std::boxed::Box<crate::schemas::c15::LevelReference>),
  /// Defines the FormulaReference Class.
  FormulaReference(std::boxed::Box<crate::schemas::c15::FormulaReference>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum StrDataExtensionChoice {
  /// Defines the AutoGeneneratedCategories Class.
  AutoGeneneratedCategories(std::boxed::Box<crate::schemas::c15::AutoGeneneratedCategories>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum StrRefExtensionChoice {
  /// Defines the FullReference Class.
  FullReference(std::boxed::Box<crate::schemas::c15::FullReference>),
  /// Defines the LevelReference Class.
  LevelReference(std::boxed::Box<crate::schemas::c15::LevelReference>),
  /// Defines the FormulaReference Class.
  FormulaReference(std::boxed::Box<crate::schemas::c15::FormulaReference>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum MultiLvlStrRefExtensionChoice {
  /// Defines the FullReference Class.
  FullReference(std::boxed::Box<crate::schemas::c15::FullReference>),
  /// Defines the LevelReference Class.
  LevelReference(std::boxed::Box<crate::schemas::c15::LevelReference>),
  /// Defines the FormulaReference Class.
  FormulaReference(std::boxed::Box<crate::schemas::c15::FormulaReference>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum DLblsExtensionChoice {
  /// Defines the ChartText Class.
  ChartText(std::boxed::Box<crate::schemas::c15::ChartText>),
  /// Defines the DataLabelFieldTable Class.
  DataLabelFieldTable(std::boxed::Box<crate::schemas::c15::DataLabelFieldTable>),
  /// Defines the ShowDataLabelsRange Class.
  ShowDataLabelsRange(std::boxed::Box<crate::schemas::c15::ShowDataLabelsRange>),
  /// Defines the ShapeProperties Class.
  ShapeProperties(std::boxed::Box<crate::schemas::c15::ShapeProperties>),
  /// Defines the Layout Class.
  Layout(std::boxed::Box<crate::schemas::c15::Layout>),
  /// Defines the ShowLeaderLines Class.
  ShowLeaderLines(std::boxed::Box<crate::schemas::c15::ShowLeaderLines>),
  /// Defines the LeaderLines Class.
  LeaderLines(std::boxed::Box<crate::schemas::c15::LeaderLines>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum LineChartExtensionChoice {
  /// Defines the FilteredLineSeriesExtension Class.
  FilteredLineSeriesExtension(std::boxed::Box<crate::schemas::c15::FilteredLineSeriesExtension>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum Line3DChartExtensionChoice {
  /// Defines the FilteredLineSeriesExtension Class.
  FilteredLineSeriesExtension(std::boxed::Box<crate::schemas::c15::FilteredLineSeriesExtension>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum ScatterChartExtensionChoice {
  /// Defines the FilteredScatterSeries Class.
  FilteredScatterSeries(std::boxed::Box<crate::schemas::c15::FilteredScatterSeries>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum RadarChartExtensionChoice {
  /// Defines the FilteredRadarSeries Class.
  FilteredRadarSeries(std::boxed::Box<crate::schemas::c15::FilteredRadarSeries>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum BarChartExtensionChoice {
  /// Defines the FilteredBarSeries Class.
  FilteredBarSeries(std::boxed::Box<crate::schemas::c15::FilteredBarSeries>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum Bar3DChartExtensionChoice {
  /// Defines the FilteredBarSeries Class.
  FilteredBarSeries(std::boxed::Box<crate::schemas::c15::FilteredBarSeries>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum AreaChartExtensionChoice {
  /// Defines the FilteredAreaSeries Class.
  FilteredAreaSeries(std::boxed::Box<crate::schemas::c15::FilteredAreaSeries>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum Area3DChartExtensionChoice {
  /// Defines the FilteredAreaSeries Class.
  FilteredAreaSeries(std::boxed::Box<crate::schemas::c15::FilteredAreaSeries>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum BubbleChartExtensionChoice {
  /// Defines the FilteredBubbleSeries Class.
  FilteredBubbleSeries(std::boxed::Box<crate::schemas::c15::FilteredBubbleSeries>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum SurfaceChartExtensionChoice {
  /// Defines the FilteredSurfaceSeries Class.
  FilteredSurfaceSeries(std::boxed::Box<crate::schemas::c15::FilteredSurfaceSeries>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum Surface3DChartExtensionChoice {
  /// Defines the FilteredSurfaceSeries Class.
  FilteredSurfaceSeries(std::boxed::Box<crate::schemas::c15::FilteredSurfaceSeries>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum CatAxExtensionChoice {
  /// Defines the NumberingFormat Class.
  NumberingFormat(std::boxed::Box<crate::schemas::c15::NumberingFormat>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum DateAxExtensionChoice {
  /// Defines the NumberingFormat Class.
  NumberingFormat(std::boxed::Box<crate::schemas::c15::NumberingFormat>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum SerAxExtensionChoice {
  /// Defines the NumberingFormat Class.
  NumberingFormat(std::boxed::Box<crate::schemas::c15::NumberingFormat>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum ValAxExtensionChoice {
  /// Defines the NumberingFormat Class.
  NumberingFormat(std::boxed::Box<crate::schemas::c15::NumberingFormat>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum DisplayUnitsChoice {
  /// Custom Display Unit.
  CustomDisplayUnit(std::boxed::Box<CustomDisplayUnit>),
  /// Built in Display Unit Value.
  BuiltInUnit(std::boxed::Box<BuiltInUnit>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum DLblExtensionChoice {
  /// Defines the DataLabelFieldTable Class.
  DataLabelFieldTable(std::boxed::Box<crate::schemas::c15::DataLabelFieldTable>),
  /// Defines the ExceptionForSave Class.
  ExceptionForSave(std::boxed::Box<crate::schemas::c15::ExceptionForSave>),
  /// Defines the ShowDataLabelsRange Class.
  ShowDataLabelsRange(std::boxed::Box<crate::schemas::c15::ShowDataLabelsRange>),
  /// Defines the ShapeProperties Class.
  ShapeProperties(std::boxed::Box<crate::schemas::c15::ShapeProperties>),
  /// Defines the Layout Class.
  Layout(std::boxed::Box<crate::schemas::c15::Layout>),
  /// Defines the UniqueIdChartUniqueID Class.
  UniqueIdChartUniqueId(std::boxed::Box<crate::schemas::c16::UniqueIdChartUniqueId>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum CategoryAxisDataChoice {
  /// Multi Level String Reference.
  MultiLevelStringReference(std::boxed::Box<MultiLevelStringReference>),
  /// Number Reference.
  NumberReference(std::boxed::Box<NumberReference>),
  /// Number Literal.
  NumberLiteral(std::boxed::Box<NumberLiteral>),
  /// Defines the StringReference Class.
  StringReference(std::boxed::Box<StringReference>),
  /// String Literal.
  StringLiteral(std::boxed::Box<StringLiteral>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum XValuesChoice {
  /// Multi Level String Reference.
  MultiLevelStringReference(std::boxed::Box<MultiLevelStringReference>),
  /// Number Reference.
  NumberReference(std::boxed::Box<NumberReference>),
  /// Number Literal.
  NumberLiteral(std::boxed::Box<NumberLiteral>),
  /// Defines the StringReference Class.
  StringReference(std::boxed::Box<StringReference>),
  /// String Literal.
  StringLiteral(std::boxed::Box<StringLiteral>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum LineSerExtensionChoice {
  /// Defines the FilteredSeriesTitle Class.
  FilteredSeriesTitle(std::boxed::Box<crate::schemas::c15::FilteredSeriesTitle>),
  /// Defines the FilteredCategoryTitle Class.
  FilteredCategoryTitle(std::boxed::Box<crate::schemas::c15::FilteredCategoryTitle>),
  /// Defines the DataLabelsRange Class.
  DataLabelsRange(std::boxed::Box<crate::schemas::c15::DataLabelsRange>),
  /// Defines the CategoryFilterExceptions Class.
  C15CategoryFilterExceptions(std::boxed::Box<crate::schemas::c15::CategoryFilterExceptions>),
  /// Defines the CategoryFilterExceptions Class.
  C16CategoryFilterExceptions(std::boxed::Box<crate::schemas::c16::CategoryFilterExceptions>),
  /// Defines the ChartDataPointUniqueIDMap Class.
  ChartDataPointUniqueIdMap(std::boxed::Box<crate::schemas::c16::ChartDataPointUniqueIdMap>),
  /// Defines the UniqueIdChartUniqueID Class.
  UniqueIdChartUniqueId(std::boxed::Box<crate::schemas::c16::UniqueIdChartUniqueId>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum ScatterSerExtensionChoice {
  /// Defines the FilteredSeriesTitle Class.
  FilteredSeriesTitle(std::boxed::Box<crate::schemas::c15::FilteredSeriesTitle>),
  /// Defines the FilteredCategoryTitle Class.
  FilteredCategoryTitle(std::boxed::Box<crate::schemas::c15::FilteredCategoryTitle>),
  /// Defines the DataLabelsRange Class.
  DataLabelsRange(std::boxed::Box<crate::schemas::c15::DataLabelsRange>),
  /// Defines the CategoryFilterExceptions Class.
  C15CategoryFilterExceptions(std::boxed::Box<crate::schemas::c15::CategoryFilterExceptions>),
  /// Defines the CategoryFilterExceptions Class.
  C16CategoryFilterExceptions(std::boxed::Box<crate::schemas::c16::CategoryFilterExceptions>),
  /// Defines the ChartDataPointUniqueIDMap Class.
  ChartDataPointUniqueIdMap(std::boxed::Box<crate::schemas::c16::ChartDataPointUniqueIdMap>),
  /// Defines the UniqueIdChartUniqueID Class.
  UniqueIdChartUniqueId(std::boxed::Box<crate::schemas::c16::UniqueIdChartUniqueId>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum RadarSerExtensionChoice {
  /// Defines the FilteredSeriesTitle Class.
  FilteredSeriesTitle(std::boxed::Box<crate::schemas::c15::FilteredSeriesTitle>),
  /// Defines the FilteredCategoryTitle Class.
  FilteredCategoryTitle(std::boxed::Box<crate::schemas::c15::FilteredCategoryTitle>),
  /// Defines the DataLabelsRange Class.
  DataLabelsRange(std::boxed::Box<crate::schemas::c15::DataLabelsRange>),
  /// Defines the CategoryFilterExceptions Class.
  C15CategoryFilterExceptions(std::boxed::Box<crate::schemas::c15::CategoryFilterExceptions>),
  /// Defines the CategoryFilterExceptions Class.
  C16CategoryFilterExceptions(std::boxed::Box<crate::schemas::c16::CategoryFilterExceptions>),
  /// Defines the ChartDataPointUniqueIDMap Class.
  ChartDataPointUniqueIdMap(std::boxed::Box<crate::schemas::c16::ChartDataPointUniqueIdMap>),
  /// Defines the UniqueIdChartUniqueID Class.
  UniqueIdChartUniqueId(std::boxed::Box<crate::schemas::c16::UniqueIdChartUniqueId>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum BarSerExtensionChoice {
  /// Defines the InvertSolidFillFormat Class.
  InvertSolidFillFormat(std::boxed::Box<crate::schemas::c14::InvertSolidFillFormat>),
  /// Defines the FilteredSeriesTitle Class.
  FilteredSeriesTitle(std::boxed::Box<crate::schemas::c15::FilteredSeriesTitle>),
  /// Defines the FilteredCategoryTitle Class.
  FilteredCategoryTitle(std::boxed::Box<crate::schemas::c15::FilteredCategoryTitle>),
  /// Defines the DataLabelsRange Class.
  DataLabelsRange(std::boxed::Box<crate::schemas::c15::DataLabelsRange>),
  /// Defines the CategoryFilterExceptions Class.
  C15CategoryFilterExceptions(std::boxed::Box<crate::schemas::c15::CategoryFilterExceptions>),
  /// Defines the CategoryFilterExceptions Class.
  C16CategoryFilterExceptions(std::boxed::Box<crate::schemas::c16::CategoryFilterExceptions>),
  /// Defines the ChartDataPointUniqueIDMap Class.
  ChartDataPointUniqueIdMap(std::boxed::Box<crate::schemas::c16::ChartDataPointUniqueIdMap>),
  /// Defines the UniqueIdChartUniqueID Class.
  UniqueIdChartUniqueId(std::boxed::Box<crate::schemas::c16::UniqueIdChartUniqueId>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum AreaSerExtensionChoice {
  /// Defines the FilteredSeriesTitle Class.
  FilteredSeriesTitle(std::boxed::Box<crate::schemas::c15::FilteredSeriesTitle>),
  /// Defines the FilteredCategoryTitle Class.
  FilteredCategoryTitle(std::boxed::Box<crate::schemas::c15::FilteredCategoryTitle>),
  /// Defines the DataLabelsRange Class.
  DataLabelsRange(std::boxed::Box<crate::schemas::c15::DataLabelsRange>),
  /// Defines the CategoryFilterExceptions Class.
  C15CategoryFilterExceptions(std::boxed::Box<crate::schemas::c15::CategoryFilterExceptions>),
  /// Defines the CategoryFilterExceptions Class.
  C16CategoryFilterExceptions(std::boxed::Box<crate::schemas::c16::CategoryFilterExceptions>),
  /// Defines the ChartDataPointUniqueIDMap Class.
  ChartDataPointUniqueIdMap(std::boxed::Box<crate::schemas::c16::ChartDataPointUniqueIdMap>),
  /// Defines the UniqueIdChartUniqueID Class.
  UniqueIdChartUniqueId(std::boxed::Box<crate::schemas::c16::UniqueIdChartUniqueId>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum PieSerExtensionChoice {
  /// Defines the FilteredSeriesTitle Class.
  FilteredSeriesTitle(std::boxed::Box<crate::schemas::c15::FilteredSeriesTitle>),
  /// Defines the FilteredCategoryTitle Class.
  FilteredCategoryTitle(std::boxed::Box<crate::schemas::c15::FilteredCategoryTitle>),
  /// Defines the DataLabelsRange Class.
  DataLabelsRange(std::boxed::Box<crate::schemas::c15::DataLabelsRange>),
  /// Defines the CategoryFilterExceptions Class.
  C15CategoryFilterExceptions(std::boxed::Box<crate::schemas::c15::CategoryFilterExceptions>),
  /// Defines the CategoryFilterExceptions Class.
  C16CategoryFilterExceptions(std::boxed::Box<crate::schemas::c16::CategoryFilterExceptions>),
  /// Defines the ChartDataPointUniqueIDMap Class.
  ChartDataPointUniqueIdMap(std::boxed::Box<crate::schemas::c16::ChartDataPointUniqueIdMap>),
  /// Defines the UniqueIdChartUniqueID Class.
  UniqueIdChartUniqueId(std::boxed::Box<crate::schemas::c16::UniqueIdChartUniqueId>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum BubbleSerExtensionChoice {
  /// Defines the InvertSolidFillFormat Class.
  InvertSolidFillFormat(std::boxed::Box<crate::schemas::c14::InvertSolidFillFormat>),
  /// Defines the FilteredCategoryTitle Class.
  FilteredCategoryTitle(std::boxed::Box<crate::schemas::c15::FilteredCategoryTitle>),
  /// Defines the DataLabelsRange Class.
  DataLabelsRange(std::boxed::Box<crate::schemas::c15::DataLabelsRange>),
  /// Defines the CategoryFilterExceptions Class.
  C15CategoryFilterExceptions(std::boxed::Box<crate::schemas::c15::CategoryFilterExceptions>),
  /// Defines the CategoryFilterExceptions Class.
  C16CategoryFilterExceptions(std::boxed::Box<crate::schemas::c16::CategoryFilterExceptions>),
  /// Defines the ChartDataPointUniqueIDMap Class.
  ChartDataPointUniqueIdMap(std::boxed::Box<crate::schemas::c16::ChartDataPointUniqueIdMap>),
  /// Defines the UniqueIdChartUniqueID Class.
  UniqueIdChartUniqueId(std::boxed::Box<crate::schemas::c16::UniqueIdChartUniqueId>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum SurfaceSerExtensionChoice {
  /// Defines the FilteredSeriesTitle Class.
  FilteredSeriesTitle(std::boxed::Box<crate::schemas::c15::FilteredSeriesTitle>),
  /// Defines the FilteredCategoryTitle Class.
  FilteredCategoryTitle(std::boxed::Box<crate::schemas::c15::FilteredCategoryTitle>),
  /// Defines the CategoryFilterExceptions Class.
  C15CategoryFilterExceptions(std::boxed::Box<crate::schemas::c15::CategoryFilterExceptions>),
  /// Defines the CategoryFilterExceptions Class.
  C16CategoryFilterExceptions(std::boxed::Box<crate::schemas::c16::CategoryFilterExceptions>),
  /// Defines the ChartDataPointUniqueIDMap Class.
  ChartDataPointUniqueIdMap(std::boxed::Box<crate::schemas::c16::ChartDataPointUniqueIdMap>),
  /// Defines the UniqueIdChartUniqueID Class.
  UniqueIdChartUniqueId(std::boxed::Box<crate::schemas::c16::UniqueIdChartUniqueId>),
  XmlAny(std::boxed::Box<[u8]>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum PlotAreaChoice {
  /// Area Charts.
  AreaChart(std::boxed::Box<AreaChart>),
  /// 3D Area Charts.
  Area3DChart(std::boxed::Box<Area3DChart>),
  /// Line Charts.
  LineChart(std::boxed::Box<LineChart>),
  /// 3D Line Charts.
  Line3DChart(std::boxed::Box<Line3DChart>),
  /// Stock Charts.
  StockChart(std::boxed::Box<StockChart>),
  /// Radar Charts.
  RadarChart(std::boxed::Box<RadarChart>),
  /// Scatter Charts.
  ScatterChart(std::boxed::Box<ScatterChart>),
  /// Pie Charts.
  PieChart(std::boxed::Box<PieChart>),
  /// 3D Pie Charts.
  Pie3DChart(std::boxed::Box<Pie3DChart>),
  /// Doughnut Charts.
  DoughnutChart(std::boxed::Box<DoughnutChart>),
  /// Bar Charts.
  BarChart(std::boxed::Box<BarChart>),
  /// 3D Bar Charts.
  Bar3DChart(std::boxed::Box<Bar3DChart>),
  /// Pie of Pie or Bar of Pie Charts.
  OfPieChart(std::boxed::Box<OfPieChart>),
  /// Surface Charts.
  SurfaceChart(std::boxed::Box<SurfaceChart>),
  /// 3D Surface Charts.
  Surface3DChart(std::boxed::Box<Surface3DChart>),
  /// Bubble Charts.
  BubbleChart(std::boxed::Box<BubbleChart>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum PlotAreaChoice2 {
  /// Value Axis.
  ValueAxis(std::boxed::Box<ValueAxis>),
  /// Category Axis Data.
  CategoryAxis(std::boxed::Box<CategoryAxis>),
  /// Date Axis.
  DateAxis(std::boxed::Box<DateAxis>),
  /// Series Axis.
  SeriesAxis(std::boxed::Box<SeriesAxis>),
}
#[derive(Clone, Debug, PartialEq)]
pub enum ChartSpaceExtensionChoice {
  /// Defines the PivotOptions Class.
  PivotOptions(std::boxed::Box<crate::schemas::c14::PivotOptions>),
  /// Defines the SketchOptions Class.
  SketchOptions(std::boxed::Box<crate::schemas::c14::SketchOptions>),
  /// Defines the PivotSource Class.
  PivotSource(std::boxed::Box<crate::schemas::c15::PivotSource>),
  XmlAny(std::boxed::Box<[u8]>),
}
