mod all_group;
mod compile;
mod error;
mod fragment;
mod nfa;
#[cfg(feature = "xsd11")]
mod open_content;
mod particle;
pub(crate) mod substitution;
mod upa;
pub use all_group::{
term_matches, term_matches_with_substitution, validate_all_group_constraints, AllGroupModel,
AllGroupState, AllParticle, OpenContentMode, OpenContentWildcard, TermMatchResult,
};
pub use compile::{
compile_content_model_for_upa, compile_content_model_matcher, compile_model_group,
compile_particle, CompileContext,
};
pub(crate) use compile::{
is_top_level_all_group, resolve_top_level_all_group_ref, validate_outer_all_group_occurs,
};
pub use error::{NfaCompileError, NfaCompileResult};
pub use fragment::{fragment_to_table, FragmentBuilder, NfaFragment};
pub use nfa::{
advance_states, advance_with_priority, epsilon_closure, term_matches as nfa_term_matches,
ActiveConfig, ActiveStates, CounterDef, CounterId, MatchInfo, NfaState, NfaTable, NfaTerm,
NfaTransition, StateId, TransitionKind,
};
pub use particle::{apply_occurs, MaxOccurs};
pub use substitution::{
build_substitution_group_map, build_substitution_group_map_with_abstract,
validate_all_substitution_groups, SubstitutionGroupMap,
};
pub use upa::{check_all_group_upa, check_upa};
use crate::types::complex::{OpenContentMode as TypesOpenContentMode, WildcardRef};
#[derive(Debug, Clone)]
pub enum ContentModelMatcher {
Nfa(NfaTable),
AllGroup(AllGroupModel),
WithOpenContent {
nfa: NfaTable,
mode: TypesOpenContentMode,
wildcard: Option<WildcardRef>,
},
#[cfg(feature = "xsd11")]
AllGroupExtension {
base_model: AllGroupModel,
extension_nfa: NfaTable,
},
}
#[cfg(feature = "xsd11")]
pub use open_content::validate_all_default_open_content;