xsd-parser 1.5.2

Rust code generator for XML schema files
Documentation
mod collect_namespaces;
mod deserialize;
mod serialize;

use crate::models::{
    data::ComplexDataElement,
    meta::{ElementMetaVariant, ElementMode},
};

pub use self::collect_namespaces::QuickXmlCollectNamespacesRenderStep;
pub use self::deserialize::QuickXmlDeserializeRenderStep;
pub use self::serialize::{NamespaceSerialization, QuickXmlSerializeRenderStep};

impl ComplexDataElement<'_> {
    #[inline]
    fn treat_as_any(&self) -> bool {
        self.meta().is_any()
    }

    #[inline]
    fn treat_as_text(&self) -> bool {
        self.meta().is_text()
    }

    #[inline]
    fn treat_as_group(&self) -> bool {
        !self.treat_as_any()
            && !self.treat_as_text()
            && matches!(
                &self.meta().variant,
                ElementMetaVariant::Type {
                    mode: ElementMode::Group,
                    ..
                }
            )
    }

    #[inline]
    fn treat_as_group_or_dynamic(&self) -> bool {
        self.treat_as_group() || self.target_is_dynamic
    }

    #[inline]
    fn treat_as_element(&self) -> bool {
        !self.treat_as_any()
            && !self.treat_as_text()
            && !self.treat_as_group()
            && !self.target_is_dynamic
    }
}