parse_sap_odata/edmx/
mod.rs1pub mod data_services;
2pub mod reference;
3
4use serde::{Deserialize, Serialize};
5
6use data_services::DataServices;
7use reference::Reference;
8
9use crate::xml::{default_xml_namespace_edmx, default_xml_namespace_m, default_xml_namespace_sap};
10
11#[derive(Debug, Serialize, Deserialize)]
12pub enum EdmxVersion {
13 #[serde(rename = "1.0")]
14 V1_0,
15 #[serde(rename = "2.0")]
16 V2_0,
17}
18
19#[derive(Debug, Serialize, Deserialize)]
31#[serde(rename_all = "PascalCase")]
32pub struct Edmx {
33 #[serde(rename = "@Version")]
34 pub version: EdmxVersion,
35 #[serde(rename = "@xmlns:edmx", default = "default_xml_namespace_edmx")]
36 pub namespace_edmx: String,
37 #[serde(rename = "@xmlns:m", default = "default_xml_namespace_m")]
38 pub namespace_m: String,
39 #[serde(rename = "@xmlns:sap", default = "default_xml_namespace_sap")]
40 pub namespace_sap: String,
41 #[serde(rename = "Reference")]
42 pub references: Option<Vec<Reference>>,
43 pub data_services: DataServices,
44}
45
46impl std::str::FromStr for Edmx {
47 type Err = quick_xml::DeError;
48
49 fn from_str(s: &str) -> Result<Self, Self::Err> {
50 quick_xml::de::from_str(s)
51 }
52}