redispatch_xml/validation/
semantic.rs1use super::{ValidationError, ValidationResult};
7use crate::documents::activation::ActivationDocType;
8use crate::parse::Document;
9
10pub fn validate(doc: &Document, result: &mut ValidationResult) {
12 match doc {
13 Document::Activation(d) => {
14 match d.document_type.v {
16 ActivationDocType::RedispatchActivation | ActivationDocType::ActivationResponse => {
17 if d.time_series.is_empty() {
18 result.errors.push(ValidationError::Semantic(
19 "ACO/ACR ActivationDocument must contain at least one ActivationTimeSeries"
20 .to_string(),
21 ));
22 }
23 }
24 ActivationDocType::TenderReduction => {}
26 }
27 }
28 Document::Kostenblatt(d) => {
29 if d.time_series.is_empty() {
30 result.errors.push(ValidationError::Semantic(
31 "Kostenblatt must contain at least one CostTimeSeries".to_string(),
32 ));
33 }
34 }
35 Document::PlannedResourceSchedule(d) => {
36 if d.time_series.is_empty() {
37 result.errors.push(ValidationError::Semantic(
38 "PlannedResourceScheduleDocument must contain at least one PlannedResourceTimeSeries"
39 .to_string(),
40 ));
41 }
42 }
43 _ => {}
45 }
46}