xsd_schema/compiler/
mod.rs1mod all_group;
30mod compile;
31mod error;
32mod fragment;
33mod nfa;
34#[cfg(feature = "xsd11")]
35mod open_content;
36mod particle;
37pub(crate) mod substitution;
38mod upa;
39
40pub use all_group::{
41 term_matches, term_matches_with_substitution, validate_all_group_constraints, AllGroupModel,
42 AllGroupState, AllParticle, OpenContentMode, OpenContentWildcard, TermMatchResult,
43};
44pub use compile::{
45 compile_content_model_for_upa, compile_content_model_matcher, compile_model_group,
46 compile_particle, CompileContext,
47};
48pub(crate) use compile::{
49 is_top_level_all_group, resolve_top_level_all_group_ref, validate_outer_all_group_occurs,
50};
51pub use error::{NfaCompileError, NfaCompileResult};
52pub use fragment::{fragment_to_table, FragmentBuilder, NfaFragment};
53pub use nfa::{
54 advance_states, advance_with_priority, epsilon_closure, term_matches as nfa_term_matches,
55 ActiveConfig, ActiveStates, CounterDef, CounterId, MatchInfo, NfaState, NfaTable, NfaTerm,
56 NfaTransition, StateId, TransitionKind,
57};
58pub use particle::{apply_occurs, MaxOccurs};
59pub use substitution::{
60 build_substitution_group_map, build_substitution_group_map_with_abstract,
61 validate_all_substitution_groups, SubstitutionGroupMap,
62};
63pub use upa::{check_all_group_upa, check_upa};
64
65use crate::types::complex::{OpenContentMode as TypesOpenContentMode, WildcardRef};
66
67#[derive(Debug, Clone)]
69pub enum ContentModelMatcher {
70 Nfa(NfaTable),
72 AllGroup(AllGroupModel),
74 WithOpenContent {
76 nfa: NfaTable,
77 mode: TypesOpenContentMode,
78 wildcard: Option<WildcardRef>,
79 },
80 #[cfg(feature = "xsd11")]
82 AllGroupExtension {
83 base_model: AllGroupModel,
84 extension_nfa: NfaTable,
85 },
86}
87
88#[cfg(feature = "xsd11")]
89pub use open_content::validate_all_default_open_content;