Begin XML Schema Validator

This commit is contained in:
2025-04-05 23:15:39 +02:00
parent 0e2cca2e4f
commit 55a920414d
21 changed files with 798 additions and 2 deletions

View File

@@ -0,0 +1,64 @@
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct XsSchema {
#[serde(rename = "@xmlns:xs")]
pub xmlns_xs: String,
#[serde(rename = "@elementFormDefault")]
pub element_form_default: String,
#[serde(rename = "$text")]
pub text: Option<String>,
#[serde(rename = "element")]
pub xs_element: Vec<XsElement>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct XsElement {
#[serde(rename = "@name")]
pub name: String,
#[serde(rename = "$text")]
pub text: Option<String>,
#[serde(rename = "complexType")]
pub xs_complex_type: XsComplexType,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct XsComplexType {
#[serde(rename = "@mixed")]
pub mixed: Option<String>,
#[serde(rename = "$text")]
pub text: Option<String>,
#[serde(rename = "attribute")]
pub xs_attribute: Option<Vec<XsAttribute>>,
#[serde(rename = "sequence")]
pub xs_sequence: Option<XsSequence>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct XsAttribute {
#[serde(rename = "@name")]
pub name: String,
#[serde(rename = "@type")]
pub xs_attribute_type: String,
#[serde(rename = "@use")]
pub xs_attribute_use: String,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct XsSequence {
#[serde(rename = "$text")]
pub text: Option<String>,
#[serde(rename = "any")]
pub xs_any: XsAny,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct XsAny {
#[serde(rename = "@minOccurs")]
pub min_occurs: String,
#[serde(rename = "@maxOccurs")]
pub max_occurs: String,
#[serde(rename = "@processContents")]
pub process_contents: String,
}