// Auto-generated PLCopen types - addons category
// DO NOT EDIT - Generated by build script

use serde::{Serialize, Deserialize};
use super::*;

/// addData element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AddData {
    /// data element
    #[serde(rename = "data", default)]
    pub data: Vec<AddData_data_Inline>,
}

/// addData_data_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AddData_data_Inline {
    /// name attribute
    #[serde(rename = "@name", default)]
    pub name: String,
    /// handleUnknown attribute
    #[serde(rename = "@handleUnknown", default)]
    pub handle_unknown: String,
    /// Arbitrary child elements (xs:any) - skipped during deserialization
    #[serde(skip)]
    pub children: Vec<AnyElement>,
}

/// addDataInfo element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AddDataInfo {
    /// info element
    #[serde(rename = "info", default)]
    pub info: Vec<AddDataInfo_info_Inline>,
}

/// addDataInfo_info_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AddDataInfo_info_Inline {
    /// name attribute
    #[serde(rename = "@name", default)]
    pub name: String,
    /// version attribute
    #[serde(rename = "@version", default)]
    pub version: Option<String>,
    /// vendor attribute
    #[serde(rename = "@vendor", default)]
    pub vendor: String,
    /// description element
    #[serde(rename = "description", default)]
    pub description: Option<FormattedText>,
}

