/** * IdentityConstraintEngine (G28b - v1.5.0) * ───────────────────────────────────────── * v1.7.0: Single-pass DOM evaluation of xs:key, xs:unique, and xs:keyref. * Replaced recursive _walk with iterative post-order traversal to * avoid call-stack overflow on deep documents. * Replaced O(n) stack.shift()/unshift in _findDescendants with O(1) * push/pop using reversed insertion order. * * XPath selector: `.`, `./child`, `.//descendant`, `//descendant`, `child::name`, `*` * Field expression: `@attr`, `child`, `.` (text content) * Composite multi-field keys: `fields: ['@a', '@b']` */ import { SchemaModel } from '../schema/SchemaModel'; import { XmlDocument } from '../parser/XmlNodes'; import { ValidationResult } from './ValidationResult'; export declare class IdentityConstraintEngine { private schema; /** P0 fix: pre-built set of element names that own identity constraints. * Avoids two Map.get() calls for every node that has no constraints. */ private readonly _constraintNames; constructor(schema: SchemaModel); evaluate(doc: XmlDocument, result: ValidationResult): void; private _walkIterative; private _evaluateConstraint; private _checkKeyref; private _checkDuplicates; private _evalSelector; private _findDescendants; private _evalField; } //# sourceMappingURL=IdentityConstraintEngine.d.ts.map