mf_core/schema_parser/
error.rs

1use thiserror::Error;
2
3/// XML Schema 解析错误类型
4#[derive(Error, Debug)]
5pub enum XmlSchemaError {
6    #[error("XML 解析错误: {0}")]
7    XmlParseError(#[from] quick_xml::Error),
8
9    #[error("XML 反序列化错误: {0}")]
10    DeserializeError(#[from] quick_xml::DeError),
11
12    #[error("JSON 值解析错误: {0}")]
13    JsonError(#[from] serde_json::Error),
14
15    #[error("缺少必需的属性: {0}")]
16    MissingAttribute(String),
17
18    #[error("无效的节点定义: {0}")]
19    InvalidNodeDefinition(String),
20
21    #[error("无效的标记定义: {0}")]
22    InvalidMarkDefinition(String),
23
24    #[error("重复的节点名称: {0}")]
25    DuplicateNodeName(String),
26
27    #[error("重复的标记名称: {0}")]
28    DuplicateMarkName(String),
29
30    #[error("文件引用错误: {0}")]
31    FileReferenceError(String),
32
33    #[error("循环引用检测到: {0}")]
34    CircularReference(String),
35
36    #[error("文件不存在: {0}")]
37    FileNotFound(String),
38
39    #[error("相对路径解析错误: {0}")]
40    PathResolutionError(String),
41}
42
43/// XML Schema 解析结果类型
44pub type XmlSchemaResult<T> = Result<T, XmlSchemaError>;