| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export declare class SchemaAll extends SchemaParticle { | ||
| particles: SchemaParticle[]; | ||
| constructor(particles: SchemaParticle[], minOccurs?: number, maxOccurs?: number | 'unbounded'); | ||
| matchOnce(children: string[], pos: number, nsMap?: Map<string, string>): number[]; | ||
| private matchRemaining; | ||
| } |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SchemaAll = void 0; | ||
| const SchemaParticle_js_1 = require("./SchemaParticle.js"); | ||
| class SchemaAll extends SchemaParticle_js_1.SchemaParticle { | ||
| particles; | ||
| constructor(particles, minOccurs = 1, maxOccurs = 1) { | ||
| super(minOccurs, maxOccurs); | ||
| this.particles = particles; | ||
| } | ||
| matchOnce(children, pos, nsMap) { | ||
| const indices = []; | ||
| for (let i = 0; i < this.particles.length; i++) { | ||
| indices.push(i); | ||
| } | ||
| return this.matchRemaining(children, pos, indices, nsMap); | ||
| } | ||
| matchRemaining(children, pos, remaining, nsMap) { | ||
| const results = new Set(); | ||
| // All remaining particles optional → current position is a valid end. | ||
| let allOptional = true; | ||
| for (let i = 0; i < remaining.length; i++) { | ||
| if (this.particles[remaining[i]].minOccurs > 0) { | ||
| allOptional = false; | ||
| break; | ||
| } | ||
| } | ||
| if (allOptional || remaining.length === 0) { | ||
| results.add(pos); | ||
| } | ||
| if (pos >= children.length || remaining.length === 0) { | ||
| return Array.from(results); | ||
| } | ||
| for (let i = 0; i < remaining.length; i++) { | ||
| const idx = remaining[i]; | ||
| const particle = this.particles[idx]; | ||
| const matched = particle.matchRepeated(children, pos, nsMap); | ||
| for (const nextPos of matched) { | ||
| if (nextPos > pos) { | ||
| // Remove slot i from remaining and recurse. | ||
| const newRemaining = []; | ||
| for (let j = 0; j < remaining.length; j++) { | ||
| if (j !== i) { | ||
| newRemaining.push(remaining[j]); | ||
| } | ||
| } | ||
| const further = this.matchRemaining(children, nextPos, newRemaining, nsMap); | ||
| for (const p of further) { | ||
| results.add(p); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| return Array.from(results); | ||
| } | ||
| } | ||
| exports.SchemaAll = SchemaAll; | ||
| //# sourceMappingURL=SchemaAll.js.map |
| {"version":3,"file":"SchemaAll.js","sourceRoot":"","sources":["../../../ts/schema/SchemaAll.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { AttributeInfo, AttributeUse } from '../grammar/Grammar.js'; | ||
| import { SchemaFacets } from './SchemaTypeValidator.js'; | ||
| export declare class SchemaAttributeDecl { | ||
| private name; | ||
| private namespace; | ||
| private type; | ||
| private use; | ||
| private defaultValue; | ||
| private fixedValue; | ||
| private facets; | ||
| private unionAlternatives; | ||
| constructor(name: string, type?: string, use?: AttributeUse, defaultValue?: string, fixedValue?: string, namespace?: string); | ||
| getName(): string; | ||
| getNamespace(): string | undefined; | ||
| getType(): string; | ||
| getUse(): AttributeUse; | ||
| getDefaultValue(): string | undefined; | ||
| getFixedValue(): string | undefined; | ||
| setEnumeration(values: string[]): void; | ||
| getEnumeration(): string[]; | ||
| setPatterns(values: string[][]): void; | ||
| setMinInclusive(value: string): void; | ||
| setMaxInclusive(value: string): void; | ||
| setMinExclusive(value: string): void; | ||
| setMaxExclusive(value: string): void; | ||
| setLength(value: number): void; | ||
| setMinLength(value: number): void; | ||
| setMaxLength(value: number): void; | ||
| setTotalDigits(value: number): void; | ||
| setFractionDigits(value: number): void; | ||
| setWhiteSpace(value: string): void; | ||
| setIsList(value: boolean): void; | ||
| setUnionAlternatives(alts: Array<{ | ||
| facets: SchemaFacets; | ||
| baseType: string; | ||
| }>): void; | ||
| isValid(value: string): boolean; | ||
| toAttributeInfo(): AttributeInfo; | ||
| } |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SchemaAttributeDecl = void 0; | ||
| const Grammar_js_1 = require("../grammar/Grammar.js"); | ||
| const SchemaTypeValidator_js_1 = require("./SchemaTypeValidator.js"); | ||
| class SchemaAttributeDecl { | ||
| name; | ||
| namespace; | ||
| type; | ||
| use; | ||
| defaultValue; | ||
| fixedValue; | ||
| facets; | ||
| unionAlternatives; | ||
| constructor(name, type = 'string', use = Grammar_js_1.AttributeUse.OPTIONAL, defaultValue, fixedValue, namespace) { | ||
| this.name = name; | ||
| this.namespace = namespace; | ||
| this.type = type; | ||
| this.use = use; | ||
| this.defaultValue = defaultValue; | ||
| this.fixedValue = fixedValue; | ||
| this.facets = {}; | ||
| this.unionAlternatives = []; | ||
| } | ||
| getName() { | ||
| return this.name; | ||
| } | ||
| getNamespace() { | ||
| return this.namespace; | ||
| } | ||
| getType() { | ||
| return this.type; | ||
| } | ||
| getUse() { | ||
| return this.use; | ||
| } | ||
| getDefaultValue() { | ||
| return this.defaultValue; | ||
| } | ||
| getFixedValue() { | ||
| return this.fixedValue; | ||
| } | ||
| setEnumeration(values) { | ||
| this.facets.enumeration = values.slice(); | ||
| } | ||
| getEnumeration() { | ||
| return this.facets.enumeration || []; | ||
| } | ||
| setPatterns(values) { | ||
| this.facets.patterns = values.slice(); | ||
| } | ||
| setMinInclusive(value) { | ||
| this.facets.minInclusive = value; | ||
| } | ||
| setMaxInclusive(value) { | ||
| this.facets.maxInclusive = value; | ||
| } | ||
| setMinExclusive(value) { | ||
| this.facets.minExclusive = value; | ||
| } | ||
| setMaxExclusive(value) { | ||
| this.facets.maxExclusive = value; | ||
| } | ||
| setLength(value) { | ||
| this.facets.length = value; | ||
| } | ||
| setMinLength(value) { | ||
| this.facets.minLength = value; | ||
| } | ||
| setMaxLength(value) { | ||
| this.facets.maxLength = value; | ||
| } | ||
| setTotalDigits(value) { | ||
| this.facets.totalDigits = value; | ||
| } | ||
| setFractionDigits(value) { | ||
| this.facets.fractionDigits = value; | ||
| } | ||
| setWhiteSpace(value) { | ||
| this.facets.whiteSpace = value; | ||
| } | ||
| setIsList(value) { | ||
| this.facets.isList = value; | ||
| } | ||
| setUnionAlternatives(alts) { | ||
| this.unionAlternatives = alts.slice(); | ||
| } | ||
| isValid(value) { | ||
| if (this.fixedValue !== undefined && value !== this.fixedValue) { | ||
| return false; | ||
| } | ||
| if (this.unionAlternatives.length > 0) { | ||
| for (let i = 0; i < this.unionAlternatives.length; i++) { | ||
| const alt = this.unionAlternatives[i]; | ||
| if (SchemaTypeValidator_js_1.SchemaTypeValidator.validate(value, alt.baseType) && SchemaTypeValidator_js_1.SchemaTypeValidator.validateFacets(value, alt.facets, alt.baseType)) { | ||
| return true; | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| if (!SchemaTypeValidator_js_1.SchemaTypeValidator.validateFacets(value, this.facets, this.type)) { | ||
| return false; | ||
| } | ||
| let normalized = value; | ||
| if (this.facets.whiteSpace === 'replace') { | ||
| normalized = value.replaceAll(/[\t\n\r]/g, ' '); | ||
| } | ||
| else if (this.facets.whiteSpace === 'collapse') { | ||
| normalized = value.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| } | ||
| return SchemaTypeValidator_js_1.SchemaTypeValidator.validate(normalized, this.type); | ||
| } | ||
| toAttributeInfo() { | ||
| return new Grammar_js_1.AttributeInfo(this.name, this.type, this.use, this.defaultValue, this.fixedValue, this.namespace); | ||
| } | ||
| } | ||
| exports.SchemaAttributeDecl = SchemaAttributeDecl; | ||
| //# sourceMappingURL=SchemaAttributeDecl.js.map |
| {"version":3,"file":"SchemaAttributeDecl.js","sourceRoot":"","sources":["../../../ts/schema/SchemaAttributeDecl.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { Catalog } from '../Catalog.js'; | ||
| import { XMLSchemaParser } from '../XMLSchemaParser.js'; | ||
| import { XMLElement } from '../XMLElement.js'; | ||
| import { SchemaGrammar } from './SchemaGrammar.js'; | ||
| export declare class SchemaBuilder extends XMLSchemaParser { | ||
| private static readonly XSD_BUILT_IN_TYPES; | ||
| private modelGroupDefinitions; | ||
| private substitutionGroups; | ||
| private schemaBlockDefaults; | ||
| private schemaFinalDefaults; | ||
| private schemaFormDefaults; | ||
| private elementFormDefaultMap; | ||
| private earlyTypeHierarchy; | ||
| private schemaPrefixMaps; | ||
| constructor(catalog?: Catalog); | ||
| buildGrammar(schemaPath: string): SchemaGrammar; | ||
| protected registerSchemaComponents(schemaElement: XMLElement, targetNamespace?: string): void; | ||
| private buildElementDecl; | ||
| private buildContentModel; | ||
| private unwrapDerivation; | ||
| private buildParticle; | ||
| private buildParticleList; | ||
| private resolveGroupRef; | ||
| private collectAllAttributes; | ||
| private parseWildcardTokens; | ||
| private intersectNamespaceConstraints; | ||
| private intersectProcessContents; | ||
| private unionProcessContents; | ||
| private unionNamespaceConstraints; | ||
| private combineOwnerNsAfterIntersect; | ||
| private combineOwnerNsAfterUnion; | ||
| private gatherAttributes; | ||
| private buildAttributeDecl; | ||
| private resolveCharRefs; | ||
| private collectFacets; | ||
| private collectEnumeration; | ||
| private collectInlineFacets; | ||
| private collectPatterns; | ||
| private collectUnionAlternatives; | ||
| private applySimpleTypeConstraints; | ||
| private parseOccurs; | ||
| private findChildByLocalName; | ||
| private normalizeXsdType; | ||
| private resolveSimpleTypeBase; | ||
| private extractUnionMemberTypeNames; | ||
| private extractListItemTypeName; | ||
| private findTypeBase; | ||
| private getElementBlockSet; | ||
| private getElementDeclaredType; | ||
| private isMemberTypeBlocked; | ||
| private filterMembersByBlock; | ||
| } |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export declare class SchemaChoice extends SchemaParticle { | ||
| particles: SchemaParticle[]; | ||
| constructor(particles: SchemaParticle[], minOccurs?: number, maxOccurs?: number | 'unbounded'); | ||
| matchOnce(children: string[], pos: number, nsMap?: Map<string, string>): number[]; | ||
| } |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SchemaChoice = void 0; | ||
| const SchemaParticle_js_1 = require("./SchemaParticle.js"); | ||
| class SchemaChoice extends SchemaParticle_js_1.SchemaParticle { | ||
| particles; | ||
| constructor(particles, minOccurs = 1, maxOccurs = 1) { | ||
| super(minOccurs, maxOccurs); | ||
| this.particles = particles; | ||
| } | ||
| matchOnce(children, pos, nsMap) { | ||
| const results = new Set(); | ||
| for (const particle of this.particles) { | ||
| const matched = particle.matchRepeated(children, pos, nsMap); | ||
| for (const p of matched) { | ||
| results.add(p); | ||
| } | ||
| } | ||
| return Array.from(results); | ||
| } | ||
| } | ||
| exports.SchemaChoice = SchemaChoice; | ||
| //# sourceMappingURL=SchemaChoice.js.map |
| {"version":3,"file":"SchemaChoice.js","sourceRoot":"","sources":["../../../ts/schema/SchemaChoice.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;iFAUiF;;;AAEjF,2DAAqD;AAErD,MAAa,YAAa,SAAQ,kCAAc;IAE5C,SAAS,CAAmB;IAE5B,YAAY,SAA2B,EAAE,YAAoB,CAAC,EAAE,YAAkC,CAAC;QAC/F,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,QAAkB,EAAE,GAAW,EAAE,KAA2B;QAClE,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAU,CAAC;QAC/C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,OAAO,GAAa,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACvE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;CACJ;AAnBD,oCAmBC"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { ValidationResult } from '../grammar/Grammar.js'; | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export declare enum SchemaContentModelType { | ||
| EMPTY = "EMPTY", | ||
| ANY = "ANY", | ||
| MIXED = "MIXED", | ||
| ELEMENT = "ELEMENT" | ||
| } | ||
| export declare class SchemaContentModel { | ||
| private type; | ||
| private rootParticle; | ||
| constructor(type: SchemaContentModelType, rootParticle?: SchemaParticle); | ||
| getType(): SchemaContentModelType; | ||
| getRootParticle(): SchemaParticle | undefined; | ||
| static empty(): SchemaContentModel; | ||
| static any(): SchemaContentModel; | ||
| static mixed(rootParticle?: SchemaParticle): SchemaContentModel; | ||
| static element(rootParticle: SchemaParticle): SchemaContentModel; | ||
| findCoveringWildcard(childName: string, nsMap?: Map<string, string>): 'strict' | 'lax' | 'skip' | undefined; | ||
| private static walkParticleForWildcard; | ||
| validateChildren(elementName: string, children: string[], nsMap?: Map<string, string>): ValidationResult; | ||
| } |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SchemaContentModel = exports.SchemaContentModelType = void 0; | ||
| const Grammar_js_1 = require("../grammar/Grammar.js"); | ||
| const SchemaAll_js_1 = require("./SchemaAll.js"); | ||
| const SchemaChoice_js_1 = require("./SchemaChoice.js"); | ||
| const SchemaSequence_js_1 = require("./SchemaSequence.js"); | ||
| const SchemaWildcardParticle_js_1 = require("./SchemaWildcardParticle.js"); | ||
| var SchemaContentModelType; | ||
| (function (SchemaContentModelType) { | ||
| SchemaContentModelType["EMPTY"] = "EMPTY"; | ||
| SchemaContentModelType["ANY"] = "ANY"; | ||
| SchemaContentModelType["MIXED"] = "MIXED"; | ||
| SchemaContentModelType["ELEMENT"] = "ELEMENT"; | ||
| })(SchemaContentModelType || (exports.SchemaContentModelType = SchemaContentModelType = {})); | ||
| class SchemaContentModel { | ||
| type; | ||
| rootParticle; | ||
| constructor(type, rootParticle) { | ||
| this.type = type; | ||
| this.rootParticle = rootParticle; | ||
| } | ||
| getType() { | ||
| return this.type; | ||
| } | ||
| getRootParticle() { | ||
| return this.rootParticle; | ||
| } | ||
| static empty() { | ||
| return new SchemaContentModel(SchemaContentModelType.EMPTY); | ||
| } | ||
| static any() { | ||
| return new SchemaContentModel(SchemaContentModelType.ANY); | ||
| } | ||
| static mixed(rootParticle) { | ||
| return new SchemaContentModel(SchemaContentModelType.MIXED, rootParticle); | ||
| } | ||
| static element(rootParticle) { | ||
| return new SchemaContentModel(SchemaContentModelType.ELEMENT, rootParticle); | ||
| } | ||
| findCoveringWildcard(childName, nsMap) { | ||
| if (!this.rootParticle) { | ||
| return undefined; | ||
| } | ||
| return SchemaContentModel.walkParticleForWildcard(this.rootParticle, childName, nsMap); | ||
| } | ||
| static walkParticleForWildcard(particle, childName, nsMap) { | ||
| if (particle instanceof SchemaWildcardParticle_js_1.SchemaWildcardParticle) { | ||
| const matched = particle.matchOnce([childName], 0, nsMap); | ||
| if (matched.length > 0) { | ||
| return particle.processContents; | ||
| } | ||
| return undefined; | ||
| } | ||
| if (particle instanceof SchemaSequence_js_1.SchemaSequence || particle instanceof SchemaChoice_js_1.SchemaChoice || particle instanceof SchemaAll_js_1.SchemaAll) { | ||
| for (const child of particle.particles) { | ||
| const result = SchemaContentModel.walkParticleForWildcard(child, childName, nsMap); | ||
| if (result !== undefined) { | ||
| return result; | ||
| } | ||
| } | ||
| } | ||
| return undefined; | ||
| } | ||
| validateChildren(elementName, children, nsMap) { | ||
| if (this.type === SchemaContentModelType.EMPTY) { | ||
| if (children.length > 0) { | ||
| return Grammar_js_1.ValidationResult.error('Element "' + elementName + '" must be empty but contains child elements: ' + children.join(', ')); | ||
| } | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| if (this.type === SchemaContentModelType.ANY) { | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| // MIXED: child elements must conform to the declared particle when one exists. | ||
| // If no particle is present, any children are allowed. | ||
| if (this.type === SchemaContentModelType.MIXED) { | ||
| if (!this.rootParticle || children.length === 0) { | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| } | ||
| if (!this.rootParticle) { | ||
| // ELEMENT type with no particle — treat as EMPTY. | ||
| if (children.length > 0) { | ||
| return Grammar_js_1.ValidationResult.error('Element "' + elementName + '" has no content model but contains child elements: ' + children.join(', ')); | ||
| } | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| // Run the NFA: success when the root particle's matchRepeated can reach | ||
| // exactly children.length (all children consumed). | ||
| const positions = this.rootParticle.matchRepeated(children, 0, nsMap); | ||
| for (const p of positions) { | ||
| if (p === children.length) { | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| } | ||
| return Grammar_js_1.ValidationResult.error('Element "' + elementName + '" has an invalid child element sequence. ' + | ||
| 'Children found: [' + children.join(', ') + ']'); | ||
| } | ||
| } | ||
| exports.SchemaContentModel = SchemaContentModel; | ||
| //# sourceMappingURL=SchemaContentModel.js.map |
| {"version":3,"file":"SchemaContentModel.js","sourceRoot":"","sources":["../../../ts/schema/SchemaContentModel.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaAttributeDecl } from './SchemaAttributeDecl.js'; | ||
| import { SchemaContentModel } from './SchemaContentModel.js'; | ||
| import { SchemaFacets } from './SchemaTypeValidator.js'; | ||
| export interface IdentityConstraint { | ||
| name: string; | ||
| kind: 'key' | 'keyref' | 'unique'; | ||
| selector: string; | ||
| fields: string[]; | ||
| refer?: string; | ||
| } | ||
| export declare class SchemaElementDecl { | ||
| private name; | ||
| private namespace; | ||
| private contentModel; | ||
| private attributeDecls; | ||
| private anyAttribute; | ||
| private anyAttributeNamespace; | ||
| private anyAttributeProcessContents; | ||
| private anyAttributeOwnerNs; | ||
| private anyAttributeExcludedNamespaces; | ||
| private simpleType; | ||
| private textFacets; | ||
| private declaredTypeName; | ||
| private abstract; | ||
| private blockConstraints; | ||
| private finalConstraints; | ||
| private nillable; | ||
| private unionMemberTypes; | ||
| private unionAlternatives; | ||
| private listItemType; | ||
| private identityConstraints; | ||
| private fixedValue; | ||
| private defaultValue; | ||
| private qualified; | ||
| constructor(name: string, namespace?: string, contentModel?: SchemaContentModel); | ||
| getName(): string; | ||
| getNamespace(): string | undefined; | ||
| getContentModel(): SchemaContentModel; | ||
| setContentModel(model: SchemaContentModel): void; | ||
| addAttributeDecl(decl: SchemaAttributeDecl): void; | ||
| getAttributeDecl(name: string): SchemaAttributeDecl | undefined; | ||
| getAttributeDecls(): Map<string, SchemaAttributeDecl>; | ||
| setSimpleType(type: string): void; | ||
| getSimpleType(): string | undefined; | ||
| setTextFacets(facets: SchemaFacets): void; | ||
| validateText(value: string): boolean; | ||
| hasTextFacets(): boolean; | ||
| setAnyAttribute(namespace?: string, processContents?: string, ownerNs?: string, excludedNamespaces?: string[]): void; | ||
| allowsAnyAttribute(): boolean; | ||
| getAnyAttributeNamespace(): string; | ||
| getAnyAttributeProcessContents(): string; | ||
| getAnyAttributeOwnerNs(): string | undefined; | ||
| getAnyAttributeExcludedNamespaces(): string[] | undefined; | ||
| setDeclaredTypeName(typeName: string): void; | ||
| getDeclaredTypeName(): string | undefined; | ||
| setAbstract(value: boolean): void; | ||
| isAbstractElement(): boolean; | ||
| setBlockConstraints(constraints: Set<string>): void; | ||
| getBlockConstraints(): Set<string>; | ||
| setFinalConstraints(constraints: Set<string>): void; | ||
| getFinalConstraints(): Set<string>; | ||
| setNillable(value: boolean): void; | ||
| isNillable(): boolean; | ||
| setUnionMemberTypes(types: string[]): void; | ||
| getUnionMemberTypes(): string[] | undefined; | ||
| setUnionAlternatives(alts: Array<{ | ||
| facets: SchemaFacets; | ||
| baseType: string; | ||
| }>): void; | ||
| getUnionAlternatives(): Array<{ | ||
| facets: SchemaFacets; | ||
| baseType: string; | ||
| }> | undefined; | ||
| setListItemType(type: string): void; | ||
| getListItemType(): string | undefined; | ||
| addIdentityConstraint(constraint: IdentityConstraint): void; | ||
| getIdentityConstraints(): IdentityConstraint[] | undefined; | ||
| setFixedValue(value: string): void; | ||
| getFixedValue(): string | undefined; | ||
| setDefaultValue(value: string): void; | ||
| getDefaultValue(): string | undefined; | ||
| setQualified(value: boolean): void; | ||
| isQualified(): boolean; | ||
| } |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SchemaElementDecl = void 0; | ||
| const SchemaContentModel_js_1 = require("./SchemaContentModel.js"); | ||
| const SchemaTypeValidator_js_1 = require("./SchemaTypeValidator.js"); | ||
| class SchemaElementDecl { | ||
| name; | ||
| namespace; | ||
| contentModel; | ||
| attributeDecls; | ||
| anyAttribute = false; | ||
| anyAttributeNamespace = '##any'; | ||
| anyAttributeProcessContents = 'strict'; | ||
| anyAttributeOwnerNs; | ||
| anyAttributeExcludedNamespaces; | ||
| simpleType; | ||
| textFacets; | ||
| declaredTypeName; | ||
| abstract = false; | ||
| blockConstraints = new Set(); | ||
| finalConstraints = new Set(); | ||
| nillable = false; | ||
| unionMemberTypes; | ||
| unionAlternatives; | ||
| listItemType; | ||
| identityConstraints; | ||
| fixedValue; | ||
| defaultValue; | ||
| qualified = true; | ||
| constructor(name, namespace, contentModel) { | ||
| this.name = name; | ||
| this.namespace = namespace; | ||
| this.contentModel = contentModel !== undefined ? contentModel : SchemaContentModel_js_1.SchemaContentModel.any(); | ||
| this.attributeDecls = new Map(); | ||
| } | ||
| getName() { | ||
| return this.name; | ||
| } | ||
| getNamespace() { | ||
| return this.namespace; | ||
| } | ||
| getContentModel() { | ||
| return this.contentModel; | ||
| } | ||
| setContentModel(model) { | ||
| this.contentModel = model; | ||
| } | ||
| addAttributeDecl(decl) { | ||
| this.attributeDecls.set(decl.getName(), decl); | ||
| } | ||
| getAttributeDecl(name) { | ||
| return this.attributeDecls.get(name); | ||
| } | ||
| getAttributeDecls() { | ||
| return this.attributeDecls; | ||
| } | ||
| setSimpleType(type) { | ||
| this.simpleType = type; | ||
| } | ||
| getSimpleType() { | ||
| return this.simpleType; | ||
| } | ||
| setTextFacets(facets) { | ||
| this.textFacets = facets; | ||
| } | ||
| validateText(value) { | ||
| if (!this.textFacets) { | ||
| return true; | ||
| } | ||
| return SchemaTypeValidator_js_1.SchemaTypeValidator.validateFacets(value, this.textFacets, this.simpleType); | ||
| } | ||
| hasTextFacets() { | ||
| return this.textFacets !== undefined; | ||
| } | ||
| setAnyAttribute(namespace = '##any', processContents = 'strict', ownerNs, excludedNamespaces) { | ||
| this.anyAttribute = true; | ||
| this.anyAttributeNamespace = namespace; | ||
| this.anyAttributeProcessContents = processContents; | ||
| this.anyAttributeOwnerNs = ownerNs; | ||
| this.anyAttributeExcludedNamespaces = excludedNamespaces; | ||
| } | ||
| allowsAnyAttribute() { | ||
| return this.anyAttribute; | ||
| } | ||
| getAnyAttributeNamespace() { | ||
| return this.anyAttributeNamespace; | ||
| } | ||
| getAnyAttributeProcessContents() { | ||
| return this.anyAttributeProcessContents; | ||
| } | ||
| getAnyAttributeOwnerNs() { | ||
| return this.anyAttributeOwnerNs; | ||
| } | ||
| getAnyAttributeExcludedNamespaces() { | ||
| return this.anyAttributeExcludedNamespaces; | ||
| } | ||
| setDeclaredTypeName(typeName) { | ||
| this.declaredTypeName = typeName; | ||
| } | ||
| getDeclaredTypeName() { | ||
| return this.declaredTypeName; | ||
| } | ||
| setAbstract(value) { | ||
| this.abstract = value; | ||
| } | ||
| isAbstractElement() { | ||
| return this.abstract; | ||
| } | ||
| setBlockConstraints(constraints) { | ||
| this.blockConstraints = constraints; | ||
| } | ||
| getBlockConstraints() { | ||
| return this.blockConstraints; | ||
| } | ||
| setFinalConstraints(constraints) { | ||
| this.finalConstraints = constraints; | ||
| } | ||
| getFinalConstraints() { | ||
| return this.finalConstraints; | ||
| } | ||
| setNillable(value) { | ||
| this.nillable = value; | ||
| } | ||
| isNillable() { | ||
| return this.nillable; | ||
| } | ||
| setUnionMemberTypes(types) { | ||
| this.unionMemberTypes = types; | ||
| } | ||
| getUnionMemberTypes() { | ||
| return this.unionMemberTypes; | ||
| } | ||
| setUnionAlternatives(alts) { | ||
| this.unionAlternatives = alts.slice(); | ||
| } | ||
| getUnionAlternatives() { | ||
| return this.unionAlternatives; | ||
| } | ||
| setListItemType(type) { | ||
| this.listItemType = type; | ||
| } | ||
| getListItemType() { | ||
| return this.listItemType; | ||
| } | ||
| addIdentityConstraint(constraint) { | ||
| if (!this.identityConstraints) { | ||
| this.identityConstraints = []; | ||
| } | ||
| this.identityConstraints.push(constraint); | ||
| } | ||
| getIdentityConstraints() { | ||
| return this.identityConstraints; | ||
| } | ||
| setFixedValue(value) { | ||
| this.fixedValue = value; | ||
| } | ||
| getFixedValue() { | ||
| return this.fixedValue; | ||
| } | ||
| setDefaultValue(value) { | ||
| this.defaultValue = value; | ||
| } | ||
| getDefaultValue() { | ||
| return this.defaultValue; | ||
| } | ||
| setQualified(value) { | ||
| this.qualified = value; | ||
| } | ||
| isQualified() { | ||
| return this.qualified; | ||
| } | ||
| } | ||
| exports.SchemaElementDecl = SchemaElementDecl; | ||
| //# sourceMappingURL=SchemaElementDecl.js.map |
| {"version":3,"file":"SchemaElementDecl.js","sourceRoot":"","sources":["../../../ts/schema/SchemaElementDecl.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export declare class SchemaElementParticle extends SchemaParticle { | ||
| name: string; | ||
| private additionalNames; | ||
| constructor(name: string, minOccurs?: number, maxOccurs?: number | 'unbounded', additionalNames?: Set<string>); | ||
| matchOnce(children: string[], pos: number, _nsMap?: Map<string, string>): number[]; | ||
| } |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SchemaElementParticle = void 0; | ||
| const SchemaParticle_js_1 = require("./SchemaParticle.js"); | ||
| class SchemaElementParticle extends SchemaParticle_js_1.SchemaParticle { | ||
| name; | ||
| additionalNames; | ||
| constructor(name, minOccurs = 1, maxOccurs = 1, additionalNames) { | ||
| super(minOccurs, maxOccurs); | ||
| this.name = name; | ||
| this.additionalNames = additionalNames !== undefined ? additionalNames : new Set(); | ||
| } | ||
| matchOnce(children, pos, _nsMap) { | ||
| if (pos >= children.length) { | ||
| return []; | ||
| } | ||
| const childName = children[pos]; | ||
| if (childName === this.name) { | ||
| return [pos + 1]; | ||
| } | ||
| // Compare by local name, ignoring any namespace prefix on either side. | ||
| const particleColon = this.name.indexOf(':'); | ||
| const childColon = childName.indexOf(':'); | ||
| const particleLocal = particleColon !== -1 ? this.name.substring(particleColon + 1) : this.name; | ||
| const childLocal = childColon !== -1 ? childName.substring(childColon + 1) : childName; | ||
| if (particleLocal === childLocal) { | ||
| return [pos + 1]; | ||
| } | ||
| // Check substitution group members. | ||
| for (const altName of this.additionalNames) { | ||
| const altColon = altName.indexOf(':'); | ||
| const altLocal = altColon !== -1 ? altName.substring(altColon + 1) : altName; | ||
| if (childLocal === altLocal) { | ||
| return [pos + 1]; | ||
| } | ||
| } | ||
| return []; | ||
| } | ||
| } | ||
| exports.SchemaElementParticle = SchemaElementParticle; | ||
| //# sourceMappingURL=SchemaElementParticle.js.map |
| {"version":3,"file":"SchemaElementParticle.js","sourceRoot":"","sources":["../../../ts/schema/SchemaElementParticle.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;iFAUiF;;;AAEjF,2DAAqD;AAErD,MAAa,qBAAsB,SAAQ,kCAAc;IAErD,IAAI,CAAS;IACL,eAAe,CAAc;IAErC,YAAY,IAAY,EAAE,YAAoB,CAAC,EAAE,YAAkC,CAAC,EAAE,eAA6B;QAC/G,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;IAC/F,CAAC;IAED,SAAS,CAAC,QAAkB,EAAE,GAAW,EAAE,MAA4B;QACnE,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAW,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,uEAAuE;QACvE,MAAM,aAAa,GAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,UAAU,GAAW,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,aAAa,GAAW,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACxG,MAAM,UAAU,GAAW,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,oCAAoC;QACpC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAW,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAW,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACrF,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACrB,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AArCD,sDAqCC"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { AttributeInfo, Grammar, GrammarType, ValidationResult } from '../grammar/Grammar.js'; | ||
| import { SchemaAttributeDecl } from './SchemaAttributeDecl.js'; | ||
| import { SchemaElementDecl } from './SchemaElementDecl.js'; | ||
| export declare class SchemaGrammar implements Grammar { | ||
| private elementDecls; | ||
| private complexTypeDecls; | ||
| private simpleTypeDecls; | ||
| private targetNamespaces; | ||
| private namespaceDeclarations; | ||
| private globalAttributeDecls; | ||
| private importedGrammars; | ||
| private xsiTypeStack; | ||
| private nilStack; | ||
| private typeHierarchy; | ||
| private instanceNsStack; | ||
| private elementPath; | ||
| private activeScopes; | ||
| private completedKeys; | ||
| private lastClosedDepth; | ||
| private lastPoppedXsiType; | ||
| private lastPoppedNil; | ||
| private lastPoppedInstanceNs; | ||
| private seenIds; | ||
| private pendingIdrefs; | ||
| private pendingKeyrefChecks; | ||
| private wildcardModeStack; | ||
| constructor(); | ||
| addTargetNamespace(namespace: string): void; | ||
| addNamespaceDeclaration(prefix: string, uri: string): void; | ||
| addGlobalAttributeDecl(decl: SchemaAttributeDecl): void; | ||
| addImportedGrammar(namespace: string, grammar: SchemaGrammar): void; | ||
| addComplexTypeDecl(typeName: string, decl: SchemaElementDecl): void; | ||
| addSimpleTypeDecl(typeName: string, decl: SchemaElementDecl): void; | ||
| addTypeHierarchyEntry(typeName: string, baseTypeName: string, method: string): void; | ||
| mergeFrom(other: SchemaGrammar): void; | ||
| addElementDecl(decl: SchemaElementDecl): void; | ||
| getElementDecl(name: string): SchemaElementDecl | undefined; | ||
| validateElement(element: string, children: string[], text: string): ValidationResult; | ||
| validateAttributes(element: string, attributes: Map<string, string>): ValidationResult; | ||
| getElementAttributes(element: string): Map<string, AttributeInfo>; | ||
| getDefaultAttributes(element: string): Map<string, string>; | ||
| resolveEntity(_name: string): string | undefined; | ||
| getGrammarType(): GrammarType; | ||
| getTargetNamespaces(): Set<string>; | ||
| getNamespaceDeclarations(): Map<string, string>; | ||
| private anyAttributeCovers; | ||
| private getElementNamespace; | ||
| private resolvePrefix; | ||
| private buildElementKey; | ||
| private validateTokenForType; | ||
| private localName; | ||
| private lookupElementDecl; | ||
| private getFinalBlockedMethod; | ||
| private isTypeDerivedFrom; | ||
| private getPathMethods; | ||
| private parseSelectorSegments; | ||
| private selectorMatches; | ||
| private parseFieldPath; | ||
| private parseFieldAlternatives; | ||
| private collectAttributeFields; | ||
| private collectTextFields; | ||
| private tupleKey; | ||
| private closeConstraintScopes; | ||
| } |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SchemaGrammar = void 0; | ||
| const Grammar_js_1 = require("../grammar/Grammar.js"); | ||
| const SchemaContentModel_js_1 = require("./SchemaContentModel.js"); | ||
| const SchemaTypeValidator_js_1 = require("./SchemaTypeValidator.js"); | ||
| const BUILTIN_TYPE_HIERARCHY = new Map([ | ||
| ['anySimpleType', 'anyType'], | ||
| ['anyAtomicType', 'anySimpleType'], | ||
| ['string', 'anyAtomicType'], | ||
| ['normalizedString', 'string'], | ||
| ['token', 'normalizedString'], | ||
| ['language', 'token'], | ||
| ['NMTOKEN', 'token'], | ||
| ['Name', 'token'], | ||
| ['NCName', 'Name'], | ||
| ['ID', 'NCName'], | ||
| ['IDREF', 'NCName'], | ||
| ['ENTITY', 'NCName'], | ||
| ['NMTOKENS', 'anySimpleType'], | ||
| ['IDREFS', 'anySimpleType'], | ||
| ['ENTITIES', 'anySimpleType'], | ||
| ['decimal', 'anyAtomicType'], | ||
| ['integer', 'decimal'], | ||
| ['long', 'integer'], | ||
| ['int', 'long'], | ||
| ['short', 'int'], | ||
| ['byte', 'short'], | ||
| ['nonNegativeInteger', 'integer'], | ||
| ['positiveInteger', 'nonNegativeInteger'], | ||
| ['unsignedLong', 'nonNegativeInteger'], | ||
| ['unsignedInt', 'unsignedLong'], | ||
| ['unsignedShort', 'unsignedInt'], | ||
| ['unsignedByte', 'unsignedShort'], | ||
| ['nonPositiveInteger', 'integer'], | ||
| ['negativeInteger', 'nonPositiveInteger'], | ||
| ['float', 'anyAtomicType'], | ||
| ['double', 'anyAtomicType'], | ||
| ['boolean', 'anyAtomicType'], | ||
| ['duration', 'anyAtomicType'], | ||
| ['dayTimeDuration', 'duration'], | ||
| ['yearMonthDuration', 'duration'], | ||
| ['dateTime', 'anyAtomicType'], | ||
| ['dateTimeStamp', 'dateTime'], | ||
| ['date', 'anyAtomicType'], | ||
| ['time', 'anyAtomicType'], | ||
| ['gYearMonth', 'anyAtomicType'], | ||
| ['gYear', 'anyAtomicType'], | ||
| ['gMonthDay', 'anyAtomicType'], | ||
| ['gDay', 'anyAtomicType'], | ||
| ['gMonth', 'anyAtomicType'], | ||
| ['hexBinary', 'anyAtomicType'], | ||
| ['base64Binary', 'anyAtomicType'], | ||
| ['anyURI', 'anyAtomicType'], | ||
| ['QName', 'anyAtomicType'], | ||
| ['NOTATION', 'anyAtomicType'], | ||
| ]); | ||
| class SchemaGrammar { | ||
| elementDecls; | ||
| complexTypeDecls; | ||
| simpleTypeDecls; | ||
| targetNamespaces; | ||
| namespaceDeclarations; | ||
| globalAttributeDecls; | ||
| importedGrammars; | ||
| xsiTypeStack; | ||
| nilStack; | ||
| typeHierarchy; | ||
| instanceNsStack; | ||
| elementPath; | ||
| activeScopes; | ||
| completedKeys; | ||
| lastClosedDepth; | ||
| lastPoppedXsiType; | ||
| lastPoppedNil; | ||
| lastPoppedInstanceNs; | ||
| seenIds; | ||
| pendingIdrefs; | ||
| pendingKeyrefChecks; | ||
| wildcardModeStack; | ||
| constructor() { | ||
| this.elementDecls = new Map(); | ||
| this.complexTypeDecls = new Map(); | ||
| this.simpleTypeDecls = new Map(); | ||
| this.targetNamespaces = new Set(); | ||
| this.namespaceDeclarations = new Map(); | ||
| this.globalAttributeDecls = new Map(); | ||
| this.importedGrammars = new Map(); | ||
| this.xsiTypeStack = []; | ||
| this.nilStack = []; | ||
| this.typeHierarchy = new Map(); | ||
| this.instanceNsStack = []; | ||
| this.elementPath = []; | ||
| this.activeScopes = []; | ||
| this.completedKeys = new Map(); | ||
| this.lastClosedDepth = -1; | ||
| this.lastPoppedXsiType = undefined; | ||
| this.lastPoppedNil = false; | ||
| this.seenIds = new Set(); | ||
| this.pendingIdrefs = []; | ||
| this.pendingKeyrefChecks = []; | ||
| this.wildcardModeStack = []; | ||
| } | ||
| addTargetNamespace(namespace) { | ||
| this.targetNamespaces.add(namespace); | ||
| } | ||
| addNamespaceDeclaration(prefix, uri) { | ||
| this.namespaceDeclarations.set(prefix, uri); | ||
| } | ||
| addGlobalAttributeDecl(decl) { | ||
| this.globalAttributeDecls.set(decl.getName(), decl); | ||
| } | ||
| addImportedGrammar(namespace, grammar) { | ||
| this.importedGrammars.set(namespace, grammar); | ||
| } | ||
| addComplexTypeDecl(typeName, decl) { | ||
| this.complexTypeDecls.set(typeName, decl); | ||
| } | ||
| addSimpleTypeDecl(typeName, decl) { | ||
| this.simpleTypeDecls.set(typeName, decl); | ||
| } | ||
| addTypeHierarchyEntry(typeName, baseTypeName, method) { | ||
| this.typeHierarchy.set(typeName, { base: baseTypeName, method: method }); | ||
| } | ||
| mergeFrom(other) { | ||
| for (const [, decl] of other.elementDecls) { | ||
| this.addElementDecl(decl); | ||
| } | ||
| for (const [typeName, decl] of other.complexTypeDecls) { | ||
| if (!this.complexTypeDecls.has(typeName)) { | ||
| this.complexTypeDecls.set(typeName, decl); | ||
| } | ||
| } | ||
| for (const [typeName, decl] of other.simpleTypeDecls) { | ||
| if (!this.simpleTypeDecls.has(typeName)) { | ||
| this.simpleTypeDecls.set(typeName, decl); | ||
| } | ||
| } | ||
| for (const ns of other.targetNamespaces) { | ||
| this.targetNamespaces.add(ns); | ||
| } | ||
| for (const [name, decl] of other.globalAttributeDecls) { | ||
| if (!this.globalAttributeDecls.has(name)) { | ||
| this.globalAttributeDecls.set(name, decl); | ||
| } | ||
| } | ||
| for (const [ns, grammar] of other.importedGrammars) { | ||
| if (!this.importedGrammars.has(ns)) { | ||
| this.importedGrammars.set(ns, grammar); | ||
| } | ||
| } | ||
| for (const [typeName, entry] of other.typeHierarchy) { | ||
| if (!this.typeHierarchy.has(typeName)) { | ||
| this.typeHierarchy.set(typeName, entry); | ||
| } | ||
| } | ||
| } | ||
| addElementDecl(decl) { | ||
| const key = this.buildElementKey(decl.getName(), decl.getNamespace()); | ||
| this.elementDecls.set(key, decl); | ||
| } | ||
| getElementDecl(name) { | ||
| return this.lookupElementDecl(name); | ||
| } | ||
| validateElement(element, children, text) { | ||
| const xsiType = this.xsiTypeStack.length > 0 ? this.xsiTypeStack.pop() : undefined; | ||
| this.lastPoppedXsiType = xsiType; | ||
| const isNilled = this.nilStack.length > 0 ? (this.nilStack.pop() ?? false) : false; | ||
| this.lastPoppedNil = isNilled; | ||
| if (this.instanceNsStack.length > 0) { | ||
| this.lastPoppedInstanceNs = this.instanceNsStack.pop(); | ||
| } | ||
| else { | ||
| this.lastPoppedInstanceNs = undefined; | ||
| } | ||
| this.lastClosedDepth = this.elementPath.length - 1; | ||
| const wildcardMode = this.wildcardModeStack.length > 0 ? this.wildcardModeStack.pop() : undefined; | ||
| if (wildcardMode === 'skip') { | ||
| if (this.elementPath.length > 0) { | ||
| this.elementPath.pop(); | ||
| } | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| if (this.activeScopes.length > 0 && !isNilled) { | ||
| const closingDepth = this.lastClosedDepth; | ||
| const idLocalName = this.localName(element); | ||
| for (const scope of this.activeScopes) { | ||
| if (scope.pendingStack.length === 0) { | ||
| continue; | ||
| } | ||
| const top = scope.pendingStack[scope.pendingStack.length - 1]; | ||
| if (!top.nil) { | ||
| if (closingDepth === top.depth) { | ||
| this.collectTextFields(scope, idLocalName, text, true, this.lastPoppedInstanceNs, xsiType); | ||
| } | ||
| else { | ||
| const hasDescendantField = scope.constraint.fields.some((f) => f.split('|').some((alt) => alt.trim().startsWith('.//'))); | ||
| const depthMatches = hasDescendantField | ||
| ? closingDepth > top.depth | ||
| : closingDepth === top.depth + 1; | ||
| if (depthMatches) { | ||
| this.collectTextFields(scope, idLocalName, text, false, this.lastPoppedInstanceNs, xsiType); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| const constraintError = this.closeConstraintScopes(); | ||
| if (this.elementPath.length > 0) { | ||
| this.elementPath.pop(); | ||
| } | ||
| if (wildcardMode === 'lax') { | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| const substitutedDecl = xsiType !== undefined ? this.complexTypeDecls.get(xsiType) : undefined; | ||
| const decl = this.lookupElementDecl(element); | ||
| if (!decl) { | ||
| return Grammar_js_1.ValidationResult.error('Element "' + element + '" is not declared in the schema'); | ||
| } | ||
| // Per spec §2.6.2: a nilled element must have no element or text children. | ||
| if (isNilled) { | ||
| if (children.length > 0) { | ||
| return Grammar_js_1.ValidationResult.error('Element "' + element + '" has xsi:nil="true" but contains child elements'); | ||
| } | ||
| if (text.trim().length > 0) { | ||
| return Grammar_js_1.ValidationResult.error('Element "' + element + '" has xsi:nil="true" but contains text content'); | ||
| } | ||
| if (constraintError !== undefined) { | ||
| return Grammar_js_1.ValidationResult.error(constraintError); | ||
| } | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| // Per the spec, an abstract element cannot appear directly in an instance. | ||
| if (decl.isAbstractElement() && xsiType === undefined) { | ||
| return Grammar_js_1.ValidationResult.error('Element "' + element + '" is declared abstract and cannot appear directly in an instance'); | ||
| } | ||
| const effectiveDecl = substitutedDecl !== undefined ? substitutedDecl : decl; | ||
| const contentResult = effectiveDecl.getContentModel().validateChildren(element, children, this.lastPoppedInstanceNs); | ||
| if (!contentResult.isValid) { | ||
| return contentResult; | ||
| } | ||
| if (constraintError !== undefined) { | ||
| return Grammar_js_1.ValidationResult.error(constraintError); | ||
| } | ||
| const xsiTypeDecl = xsiType !== undefined | ||
| ? (this.complexTypeDecls.get(xsiType) ?? this.simpleTypeDecls.get(xsiType)) | ||
| : undefined; | ||
| const textDecl = xsiTypeDecl !== undefined ? xsiTypeDecl : decl; | ||
| const instanceNs = this.lastPoppedInstanceNs; | ||
| const elementDefaultValue = textDecl.getDefaultValue(); | ||
| const effectiveText = text.trim() === '' && elementDefaultValue !== undefined ? elementDefaultValue : text; | ||
| let textError = undefined; | ||
| const fixedValue = textDecl.getFixedValue(); | ||
| if (fixedValue !== undefined) { | ||
| const normalizedText = text.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| if (normalizedText !== fixedValue) { | ||
| textError = 'Element "' + element + '" has a fixed value "' + fixedValue + '" but got "' + normalizedText + '"'; | ||
| } | ||
| } | ||
| if (textError === undefined) { | ||
| const simpleType = textDecl.getSimpleType(); | ||
| if (simpleType !== undefined) { | ||
| const normalizedText = effectiveText.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| if (!SchemaTypeValidator_js_1.SchemaTypeValidator.validate(normalizedText, simpleType, instanceNs)) { | ||
| textError = 'Invalid text content "' + effectiveText + '" for element "' + element + '": expected type ' + simpleType; | ||
| } | ||
| else if (textDecl.hasTextFacets() && !textDecl.validateText(effectiveText)) { | ||
| textError = 'Text content "' + effectiveText + '" of element "' + element + '" violates facet constraints'; | ||
| } | ||
| else { | ||
| const simpleTypeLocal = this.localName(simpleType); | ||
| if (simpleTypeLocal === 'ID' || this.isTypeDerivedFrom(simpleTypeLocal, 'ID')) { | ||
| if (this.seenIds.has(normalizedText)) { | ||
| textError = 'Duplicate xs:ID value "' + normalizedText + '" in element "' + element + '"'; | ||
| } | ||
| else { | ||
| this.seenIds.add(normalizedText); | ||
| } | ||
| } | ||
| else if (simpleTypeLocal === 'IDREF' || this.isTypeDerivedFrom(simpleTypeLocal, 'IDREF')) { | ||
| this.pendingIdrefs.push(normalizedText); | ||
| } | ||
| else if (simpleTypeLocal === 'IDREFS' || this.isTypeDerivedFrom(simpleTypeLocal, 'IDREFS')) { | ||
| for (const token of normalizedText.split(/\s+/)) { | ||
| if (token.length > 0) { | ||
| this.pendingIdrefs.push(token); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| else { | ||
| const unionAlternatives = textDecl.getUnionAlternatives(); | ||
| const unionMemberTypes = textDecl.getUnionMemberTypes(); | ||
| if (unionAlternatives !== undefined && unionAlternatives.length > 0) { | ||
| const normalizedText = effectiveText.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| let valid = false; | ||
| for (const alt of unionAlternatives) { | ||
| if (SchemaTypeValidator_js_1.SchemaTypeValidator.validate(normalizedText, alt.baseType, instanceNs) && SchemaTypeValidator_js_1.SchemaTypeValidator.validateFacets(normalizedText, alt.facets, alt.baseType)) { | ||
| valid = true; | ||
| break; | ||
| } | ||
| } | ||
| if (!valid) { | ||
| textError = 'Invalid text content "' + effectiveText + '" for element "' + element + '": does not match any union member type'; | ||
| } | ||
| } | ||
| else if (unionMemberTypes !== undefined && unionMemberTypes.length > 0) { | ||
| const normalizedText = effectiveText.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| let valid = false; | ||
| for (const memberType of unionMemberTypes) { | ||
| if (this.validateTokenForType(normalizedText, memberType, instanceNs)) { | ||
| valid = true; | ||
| break; | ||
| } | ||
| } | ||
| if (!valid) { | ||
| textError = 'Invalid text content "' + effectiveText + '" for element "' + element + '": does not match any union member type'; | ||
| } | ||
| } | ||
| else { | ||
| const listItemType = textDecl.getListItemType(); | ||
| if (listItemType !== undefined) { | ||
| const normalizedText = effectiveText.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| const tokens = normalizedText.length === 0 ? [] : normalizedText.split(/\s+/); | ||
| for (const token of tokens) { | ||
| if (!this.validateTokenForType(token, listItemType, instanceNs)) { | ||
| textError = 'Invalid list item "' + token + '" for element "' + element + '": expected type ' + listItemType; | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| else if (decl.getContentModel().getType() === SchemaContentModel_js_1.SchemaContentModelType.ELEMENT | ||
| || decl.getContentModel().getType() === SchemaContentModel_js_1.SchemaContentModelType.EMPTY) { | ||
| if (effectiveText.trim().length > 0) { | ||
| textError = 'Element "' + element + '" has element-only content but contains text: "' + effectiveText + '"'; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| if (this.elementPath.length === 0) { | ||
| for (const ref of this.pendingIdrefs) { | ||
| if (!this.seenIds.has(ref)) { | ||
| return Grammar_js_1.ValidationResult.error('xs:IDREF value "' + ref + '" does not match any xs:ID in the document'); | ||
| } | ||
| } | ||
| } | ||
| if (textError !== undefined) { | ||
| return Grammar_js_1.ValidationResult.error(textError); | ||
| } | ||
| return contentResult; | ||
| } | ||
| validateAttributes(element, attributes) { | ||
| if (this.elementPath.length === 0) { | ||
| this.completedKeys = new Map(); | ||
| this.activeScopes = []; | ||
| this.seenIds = new Set(); | ||
| this.pendingIdrefs = []; | ||
| this.pendingKeyrefChecks = []; | ||
| this.wildcardModeStack = []; | ||
| } | ||
| this.elementPath.push(this.localName(element)); | ||
| const currentDepth = this.elementPath.length - 1; | ||
| let isNilTrue = false; | ||
| let isNilPresent = false; | ||
| for (const [attrName, attrValue] of attributes) { | ||
| let isNilAttr = attrName === 'xsi:nil'; | ||
| if (!isNilAttr && attrName.endsWith(':nil') && attrName.indexOf(':') !== -1) { | ||
| const nilCheckPrefix = attrName.substring(0, attrName.indexOf(':')); | ||
| const nilCheckNs = this.resolvePrefix(nilCheckPrefix); | ||
| if (nilCheckNs === 'http://www.w3.org/2001/XMLSchema-instance') { | ||
| isNilAttr = true; | ||
| } | ||
| } | ||
| if (isNilAttr) { | ||
| isNilPresent = true; | ||
| if (attrValue === 'true' || attrValue === '1') { | ||
| isNilTrue = true; | ||
| } | ||
| break; | ||
| } | ||
| } | ||
| for (const scope of this.activeScopes) { | ||
| if (scope.pendingStack.length > 0 && scope.pendingStack[scope.pendingStack.length - 1].depth === currentDepth) { | ||
| continue; | ||
| } | ||
| const relativePath = this.elementPath.slice(scope.rootDepth + 1); | ||
| let selectorMatched = false; | ||
| for (const alt of scope.selectorAlternatives) { | ||
| if (alt.descendant) { | ||
| if (currentDepth >= scope.rootDepth + alt.segments.length | ||
| && relativePath.length >= alt.segments.length | ||
| && this.selectorMatches(alt.segments, relativePath.slice(relativePath.length - alt.segments.length))) { | ||
| selectorMatched = true; | ||
| break; | ||
| } | ||
| } | ||
| else if (currentDepth === scope.rootDepth + alt.segments.length | ||
| && this.selectorMatches(alt.segments, relativePath)) { | ||
| selectorMatched = true; | ||
| break; | ||
| } | ||
| } | ||
| if (selectorMatched) { | ||
| scope.pendingStack.push({ | ||
| tuple: new Array(scope.constraint.fields.length).fill(undefined), | ||
| depth: currentDepth, | ||
| overflow: false, | ||
| nil: isNilTrue | ||
| }); | ||
| this.collectAttributeFields(scope, attributes, this.localName(element)); | ||
| } | ||
| } | ||
| // Detect xsi:type for content-model substitution and push to stack. | ||
| let xsiTypeLocalName = undefined; | ||
| for (const [attrName, attrValue] of attributes) { | ||
| if (attrName === 'xsi:type') { | ||
| xsiTypeLocalName = this.localName(attrValue); | ||
| break; | ||
| } | ||
| if (attrName.endsWith(':type') && attrName.indexOf(':') !== -1) { | ||
| const prefix = attrName.substring(0, attrName.indexOf(':')); | ||
| const ns = this.resolvePrefix(prefix); | ||
| if (ns === 'http://www.w3.org/2001/XMLSchema-instance') { | ||
| xsiTypeLocalName = this.localName(attrValue); | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| this.xsiTypeStack.push(xsiTypeLocalName); | ||
| // Detect xsi:nil and push to nil stack. | ||
| this.nilStack.push(isNilTrue); | ||
| // Build instance namespace scope for this element (inherits from parent scope). | ||
| const instanceNs = new Map(); | ||
| if (this.instanceNsStack.length > 0) { | ||
| for (const [p, u] of this.instanceNsStack[this.instanceNsStack.length - 1]) { | ||
| instanceNs.set(p, u); | ||
| } | ||
| } | ||
| for (const [attrName, attrValue] of attributes) { | ||
| if (attrName === 'xmlns') { | ||
| instanceNs.set('', attrValue); | ||
| } | ||
| else if (attrName.startsWith('xmlns:')) { | ||
| instanceNs.set(attrName.substring(6), attrValue); | ||
| } | ||
| } | ||
| this.instanceNsStack.push(instanceNs); | ||
| const parentMode = this.wildcardModeStack.length > 0 ? this.wildcardModeStack[this.wildcardModeStack.length - 1] : undefined; | ||
| if (parentMode === 'skip') { | ||
| this.wildcardModeStack.push('skip'); | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| const decl = this.lookupElementDecl(element); | ||
| if (!decl) { | ||
| if (parentMode === 'lax') { | ||
| this.wildcardModeStack.push('lax'); | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| if (this.elementPath.length >= 2) { | ||
| const parentName = this.elementPath[this.elementPath.length - 2]; | ||
| const parentDecl = this.lookupElementDecl(parentName); | ||
| if (parentDecl !== undefined) { | ||
| if (parentDecl.getContentModel().getType() === SchemaContentModel_js_1.SchemaContentModelType.ANY) { | ||
| this.wildcardModeStack.push('skip'); | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| const currentNs = this.instanceNsStack.length > 0 ? this.instanceNsStack[this.instanceNsStack.length - 1] : undefined; | ||
| const pc = parentDecl.getContentModel().findCoveringWildcard(element, currentNs); | ||
| if (pc === 'lax') { | ||
| this.wildcardModeStack.push('lax'); | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| if (pc === 'skip') { | ||
| this.wildcardModeStack.push('skip'); | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| } | ||
| } | ||
| return Grammar_js_1.ValidationResult.error('Element "' + element + '" is not declared in the schema'); | ||
| } | ||
| this.wildcardModeStack.push('normal'); | ||
| // Enforce elementFormDefault / form per XSD §3.3.1 / §2.6.3. | ||
| // Use instanceNsStack (which already includes xmlns= declared on this element) | ||
| // rather than resolvePrefix(), which only reads the static namespaceDeclarations map. | ||
| const colonIdx = element.indexOf(':'); | ||
| const elemPrefix = colonIdx !== -1 ? element.substring(0, colonIdx) : ''; | ||
| const currentInstanceNs = this.instanceNsStack.length > 0 ? this.instanceNsStack[this.instanceNsStack.length - 1] : undefined; | ||
| const resolvedElemNs = currentInstanceNs !== undefined ? currentInstanceNs.get(elemPrefix) : undefined; | ||
| if (decl.isQualified()) { | ||
| const declNs = decl.getNamespace(); | ||
| if (declNs !== undefined && resolvedElemNs !== declNs) { | ||
| return Grammar_js_1.ValidationResult.error('Element "' + element + '" must be namespace-qualified with namespace "' + declNs + '"'); | ||
| } | ||
| } | ||
| else { | ||
| if (resolvedElemNs !== undefined && resolvedElemNs !== '') { | ||
| return Grammar_js_1.ValidationResult.error('Element "' + element + '" must not be namespace-qualified (elementFormDefault is unqualified)'); | ||
| } | ||
| } | ||
| // Per spec §3.3.4 cvc-elt 3.2.1: xsi:nil is only allowed when the element declaration has nillable="true". | ||
| if (isNilPresent && !decl.isNillable()) { | ||
| return Grammar_js_1.ValidationResult.error('Element "' + element + '" is not nillable but xsi:nil was specified'); | ||
| } | ||
| if (xsiTypeLocalName === undefined) { | ||
| const declaredTypeName = decl.getDeclaredTypeName(); | ||
| if (declaredTypeName !== undefined) { | ||
| const declaredTypeDecl = this.complexTypeDecls.get(declaredTypeName); | ||
| if (declaredTypeDecl !== undefined && declaredTypeDecl.isAbstractElement()) { | ||
| return Grammar_js_1.ValidationResult.error('Element "' + element + '" has abstract type "' + declaredTypeName + | ||
| '" and must use xsi:type to specify a concrete type'); | ||
| } | ||
| } | ||
| } | ||
| // Per the spec (§3.9.4), xsi:type must name a type validly derived from the element's declared type. | ||
| if (xsiTypeLocalName !== undefined) { | ||
| const xsiTypeDecl = this.complexTypeDecls.get(xsiTypeLocalName); | ||
| if (xsiTypeDecl !== undefined && xsiTypeDecl.isAbstractElement()) { | ||
| return Grammar_js_1.ValidationResult.error('xsi:type "' + xsiTypeLocalName + '" is abstract and cannot be used for element instantiation'); | ||
| } | ||
| const declaredTypeName = decl.getDeclaredTypeName(); | ||
| if (declaredTypeName !== undefined) { | ||
| if (!this.isTypeDerivedFrom(xsiTypeLocalName, declaredTypeName)) { | ||
| return Grammar_js_1.ValidationResult.error('xsi:type "' + xsiTypeLocalName + '" is not derived from the declared type "' + | ||
| declaredTypeName + '" of element "' + element + '"'); | ||
| } | ||
| const finalBlockedMethod = this.getFinalBlockedMethod(xsiTypeLocalName, declaredTypeName); | ||
| if (finalBlockedMethod !== undefined) { | ||
| return Grammar_js_1.ValidationResult.error('xsi:type "' + xsiTypeLocalName + '" is not validly derived: type "' + | ||
| declaredTypeName + '" has final="' + finalBlockedMethod + '"'); | ||
| } | ||
| // Effective block is union of element's {disallowed substitutions} and | ||
| // the declared type's {prohibited substitutions} — spec §3.9.4 / §3.3.4. | ||
| const typeDecl = this.complexTypeDecls.get(declaredTypeName); | ||
| const elementBlock = decl.getBlockConstraints(); | ||
| const typeBlock = typeDecl !== undefined ? typeDecl.getBlockConstraints() : new Set(); | ||
| const effectiveBlock = new Set([...elementBlock, ...typeBlock]); | ||
| if (effectiveBlock.size > 0) { | ||
| const blocksAll = effectiveBlock.has('#all'); | ||
| if (blocksAll || effectiveBlock.has('extension') || effectiveBlock.has('restriction')) { | ||
| const pathMethods = this.getPathMethods(xsiTypeLocalName, declaredTypeName); | ||
| if (pathMethods.size > 0) { | ||
| if (blocksAll) { | ||
| return Grammar_js_1.ValidationResult.error('xsi:type "' + xsiTypeLocalName + '" is blocked by type "' + | ||
| declaredTypeName + '"'); | ||
| } | ||
| for (const m of pathMethods) { | ||
| if (effectiveBlock.has(m)) { | ||
| return Grammar_js_1.ValidationResult.error('xsi:type "' + xsiTypeLocalName + '" is blocked: derivation by "' + | ||
| m + '" is prohibited'); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| // If xsi:type is present, also use the substituted type's attribute declarations | ||
| // so that derived-type attributes (e.g. exportCode on UKAddress) are accepted. | ||
| const substitutedDecl = xsiTypeLocalName !== undefined | ||
| ? this.complexTypeDecls.get(xsiTypeLocalName) | ||
| : undefined; | ||
| const baseAttributes = decl.getAttributeDecls(); | ||
| const declaredAttributes = substitutedDecl !== undefined | ||
| ? substitutedDecl.getAttributeDecls() | ||
| : baseAttributes; | ||
| // Check provided attributes. | ||
| for (const [attrName, attrValue] of attributes) { | ||
| // Namespace declarations are not XML attributes in the data model. | ||
| if (attrName === 'xmlns' || attrName.startsWith('xmlns:')) { | ||
| continue; | ||
| } | ||
| // XML Schema instance attributes (xsi:*) are always permitted on any element. | ||
| if (attrName.startsWith('xsi:')) { | ||
| continue; | ||
| } | ||
| const colonIndex = attrName.indexOf(':'); | ||
| if (colonIndex !== -1) { | ||
| const prefix0 = attrName.substring(0, colonIndex); | ||
| const ns0 = this.resolvePrefix(prefix0); | ||
| if (ns0 === 'http://www.w3.org/2001/XMLSchema-instance') { | ||
| continue; | ||
| } | ||
| } | ||
| const attrLocalName = colonIndex !== -1 ? attrName.substring(colonIndex + 1) : attrName; | ||
| const attrDecl = declaredAttributes.get(attrName) !== undefined | ||
| ? declaredAttributes.get(attrName) | ||
| : declaredAttributes.get(attrLocalName); | ||
| if (attrDecl) { | ||
| if (!attrDecl.isValid(attrValue)) { | ||
| return Grammar_js_1.ValidationResult.error('Invalid value "' + attrValue + '" for attribute "' + attrName + | ||
| '" of type "' + attrDecl.getType() + '" in element "' + element + '"'); | ||
| } | ||
| const attrTypeLocal = this.localName(attrDecl.getType()); | ||
| if (attrTypeLocal === 'ID' || this.isTypeDerivedFrom(attrTypeLocal, 'ID')) { | ||
| if (this.seenIds.has(attrValue)) { | ||
| return Grammar_js_1.ValidationResult.error('Duplicate xs:ID value "' + attrValue + '" on attribute "' + attrName + | ||
| '" of element "' + element + '"'); | ||
| } | ||
| this.seenIds.add(attrValue); | ||
| } | ||
| else if (attrTypeLocal === 'IDREF' || this.isTypeDerivedFrom(attrTypeLocal, 'IDREF')) { | ||
| this.pendingIdrefs.push(attrValue); | ||
| } | ||
| else if (attrTypeLocal === 'IDREFS' || this.isTypeDerivedFrom(attrTypeLocal, 'IDREFS')) { | ||
| for (const token of attrValue.trim().split(/\s+/)) { | ||
| if (token.length > 0) { | ||
| this.pendingIdrefs.push(token); | ||
| } | ||
| } | ||
| } | ||
| continue; | ||
| } | ||
| // anyAttribute wildcard takes priority over imported-grammar lookups. | ||
| // The wildcard namespace constraint (e.g. ##other) may explicitly exclude | ||
| // certain namespaces, so it must be evaluated before any global-attribute | ||
| // fallback that would bypass that restriction. | ||
| if (decl.allowsAnyAttribute()) { | ||
| const anyNs = decl.getAnyAttributeNamespace(); | ||
| const anyPc = decl.getAnyAttributeProcessContents(); | ||
| const anyOwnerNs = decl.getAnyAttributeOwnerNs(); | ||
| const anyExcludedNs = decl.getAnyAttributeExcludedNamespaces(); | ||
| if (this.anyAttributeCovers(anyNs, anyPc, anyOwnerNs, anyExcludedNs, attrName, attrValue, element)) { | ||
| continue; | ||
| } | ||
| return Grammar_js_1.ValidationResult.error('Attribute "' + attrName + '" is not permitted by the anyAttribute wildcard on element "' + element + '"'); | ||
| } | ||
| // No anyAttribute — try imported namespace grammars as a fallback. | ||
| if (colonIndex !== -1) { | ||
| const prefix = attrName.substring(0, colonIndex); | ||
| const namespaceUri = this.resolvePrefix(prefix); | ||
| if (namespaceUri === undefined) { | ||
| return Grammar_js_1.ValidationResult.error('Undeclared namespace prefix "' + prefix + '" on attribute "' + attrName + '"'); | ||
| } | ||
| const importedGrammar = this.importedGrammars.get(namespaceUri); | ||
| if (importedGrammar) { | ||
| const globalDecl = importedGrammar.globalAttributeDecls.get(attrLocalName); | ||
| if (globalDecl) { | ||
| if (!globalDecl.isValid(attrValue)) { | ||
| return Grammar_js_1.ValidationResult.error('Invalid value "' + attrValue + '" for attribute "' + attrName + | ||
| '" of type "' + globalDecl.getType() + '" in element "' + element + '"'); | ||
| } | ||
| continue; | ||
| } | ||
| } | ||
| } | ||
| if (decl.getContentModel().getType() === SchemaContentModel_js_1.SchemaContentModelType.ANY) { | ||
| continue; | ||
| } | ||
| return Grammar_js_1.ValidationResult.error('Attribute "' + attrName + '" is not declared for element "' + element + '"'); | ||
| } | ||
| // Check required attributes are present. | ||
| for (const [, attrDecl] of declaredAttributes) { | ||
| if (attrDecl.getUse() !== Grammar_js_1.AttributeUse.REQUIRED) { | ||
| continue; | ||
| } | ||
| const declaredName = attrDecl.getName(); | ||
| if (attributes.has(declaredName)) { | ||
| continue; | ||
| } | ||
| // Also accept a prefixed variant (prefix:localName) of the same local name. | ||
| let found = false; | ||
| for (const attrName of attributes.keys()) { | ||
| if (this.localName(attrName) === declaredName) { | ||
| found = true; | ||
| break; | ||
| } | ||
| } | ||
| if (!found) { | ||
| return Grammar_js_1.ValidationResult.error('Required attribute "' + declaredName + '" is missing from element "' + element + '"'); | ||
| } | ||
| } | ||
| const identityConstraints = decl.getIdentityConstraints(); | ||
| if (identityConstraints !== undefined) { | ||
| for (const constraint of identityConstraints) { | ||
| const selectorAlternatives = this.parseSelectorSegments(constraint.selector); | ||
| const scope = { | ||
| constraint, | ||
| rootDepth: currentDepth, | ||
| selectorAlternatives, | ||
| pendingStack: [], | ||
| lastCommittedTuple: undefined, | ||
| lastCommittedDepth: -1, | ||
| tuples: [], | ||
| }; | ||
| if (selectorAlternatives.some((alt) => alt.segments.length === 0)) { | ||
| scope.pendingStack.push({ | ||
| tuple: new Array(constraint.fields.length).fill(undefined), | ||
| depth: currentDepth, | ||
| overflow: false, | ||
| nil: isNilTrue | ||
| }); | ||
| this.collectAttributeFields(scope, attributes, this.localName(element)); | ||
| } | ||
| this.activeScopes.push(scope); | ||
| } | ||
| } | ||
| return Grammar_js_1.ValidationResult.success(); | ||
| } | ||
| getElementAttributes(element) { | ||
| const result = new Map(); | ||
| const decl = this.lookupElementDecl(element); | ||
| if (!decl) { | ||
| return result; | ||
| } | ||
| for (const [name, attrDecl] of decl.getAttributeDecls()) { | ||
| result.set(name, attrDecl.toAttributeInfo()); | ||
| } | ||
| return result; | ||
| } | ||
| getDefaultAttributes(element) { | ||
| const result = new Map(); | ||
| const decl = this.lookupElementDecl(element); | ||
| if (!decl) { | ||
| return result; | ||
| } | ||
| for (const [name, attrDecl] of decl.getAttributeDecls()) { | ||
| const defaultValue = attrDecl.getDefaultValue(); | ||
| const fixedValue = attrDecl.getFixedValue(); | ||
| if (defaultValue !== undefined) { | ||
| result.set(name, defaultValue); | ||
| } | ||
| else if (fixedValue !== undefined) { | ||
| result.set(name, fixedValue); | ||
| } | ||
| } | ||
| return result; | ||
| } | ||
| resolveEntity(_name) { | ||
| return undefined; | ||
| } | ||
| getGrammarType() { | ||
| return Grammar_js_1.GrammarType.XML_SCHEMA; | ||
| } | ||
| getTargetNamespaces() { | ||
| return this.targetNamespaces; | ||
| } | ||
| getNamespaceDeclarations() { | ||
| return this.namespaceDeclarations; | ||
| } | ||
| anyAttributeCovers(anyNs, processContents, ownerNs, excludedNs, attrName, attrValue, elementName) { | ||
| if (anyNs === '##empty') { | ||
| return false; | ||
| } | ||
| const colonIndex = attrName.indexOf(':'); | ||
| const attrPrefix = colonIndex !== -1 ? attrName.substring(0, colonIndex) : undefined; | ||
| const attrLocalName = colonIndex !== -1 ? attrName.substring(colonIndex + 1) : attrName; | ||
| const attrNs = attrPrefix ? this.resolvePrefix(attrPrefix) : undefined; | ||
| // Check if the attribute's namespace is covered by the wildcard constraint. | ||
| let covered = false; | ||
| if (anyNs === '##any') { | ||
| covered = true; | ||
| } | ||
| else if (anyNs === '##local') { | ||
| covered = attrPrefix === undefined; | ||
| } | ||
| else if (anyNs === '##other') { | ||
| // Per XSD spec §3.10.1: ##other means any non-absent namespace that is | ||
| // not the target namespace of the schema owning the anyAttribute. | ||
| if (excludedNs !== undefined && excludedNs.length > 0) { | ||
| covered = attrNs !== undefined && !excludedNs.includes(attrNs); | ||
| } | ||
| else { | ||
| covered = attrNs !== undefined && (ownerNs === undefined || attrNs !== ownerNs); | ||
| } | ||
| } | ||
| else { | ||
| // Space-separated list of URIs, ##local, ##targetNamespace. | ||
| const tokens = anyNs.split(/\s+/); | ||
| for (const token of tokens) { | ||
| if (token === '##local' && attrPrefix === undefined) { | ||
| covered = true; | ||
| break; | ||
| } | ||
| if (token === '##targetNamespace') { | ||
| if (attrNs !== undefined && attrNs === ownerNs) { | ||
| covered = true; | ||
| break; | ||
| } | ||
| } | ||
| if (token === attrNs) { | ||
| covered = true; | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| if (!covered) { | ||
| return false; | ||
| } | ||
| // Enforce processContents. | ||
| if (processContents === 'skip') { | ||
| return true; | ||
| } | ||
| // For 'strict' or 'lax', look up the attribute declaration in the imported grammar. | ||
| if (attrNs !== undefined) { | ||
| const importedGrammar = this.importedGrammars.get(attrNs); | ||
| if (importedGrammar) { | ||
| const globalDecl = importedGrammar.globalAttributeDecls.get(attrLocalName); | ||
| if (globalDecl) { | ||
| // Declaration found — validate the value. | ||
| return globalDecl.isValid(attrValue); | ||
| } | ||
| } | ||
| // No imported grammar or no declaration found. | ||
| if (processContents === 'strict') { | ||
| return false; // strict requires a declaration | ||
| } | ||
| return true; // lax: silently accept if no declaration | ||
| } | ||
| // Unqualified attribute with no namespace. | ||
| if (processContents === 'strict') { | ||
| return false; // strict requires a declaration; none found for unqualified attr | ||
| } | ||
| return true; // lax: accept | ||
| } | ||
| getElementNamespace(elementName) { | ||
| const decl = this.lookupElementDecl(elementName); | ||
| return decl ? decl.getNamespace() : undefined; | ||
| } | ||
| resolvePrefix(prefix) { | ||
| // 'xml' is always bound to this URI per the XML Namespaces specification. | ||
| if (prefix === 'xml') { | ||
| return 'http://www.w3.org/XML/1998/namespace'; | ||
| } | ||
| return this.namespaceDeclarations.get(prefix); | ||
| } | ||
| buildElementKey(name, namespace) { | ||
| if (namespace) { | ||
| return namespace + '|' + name; | ||
| } | ||
| return name; | ||
| } | ||
| validateTokenForType(token, typeName, instanceNs) { | ||
| const localTypeName = this.localName(typeName); | ||
| const typeDecl = this.simpleTypeDecls.get(localTypeName); | ||
| if (typeDecl !== undefined) { | ||
| const baseType = typeDecl.getSimpleType(); | ||
| if (baseType !== undefined) { | ||
| if (!SchemaTypeValidator_js_1.SchemaTypeValidator.validate(token, baseType, instanceNs)) { | ||
| return false; | ||
| } | ||
| if (typeDecl.hasTextFacets() && !typeDecl.validateText(token)) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| } | ||
| return SchemaTypeValidator_js_1.SchemaTypeValidator.validate(token, typeName, instanceNs); | ||
| } | ||
| localName(qname) { | ||
| const colonIndex = qname.indexOf(':'); | ||
| return colonIndex !== -1 ? qname.substring(colonIndex + 1) : qname; | ||
| } | ||
| lookupElementDecl(elementName) { | ||
| // 1. Exact key match. | ||
| let decl = this.elementDecls.get(elementName); | ||
| if (decl) { | ||
| return decl; | ||
| } | ||
| // 2. Strip namespace prefix; try local name only. | ||
| // A prefixed element cannot match an unqualified local declaration, so only return here | ||
| // when the found decl is qualified or the element itself carries no prefix. | ||
| const local = this.localName(elementName); | ||
| if (local !== elementName) { | ||
| decl = this.elementDecls.get(local); | ||
| if (decl && decl.isQualified()) { | ||
| return decl; | ||
| } | ||
| decl = undefined; | ||
| } | ||
| // 2b. Resolve the element's actual namespace from namespaceDeclarations and try that key first. | ||
| // Also consult instanceNsStack for prefixes declared in the instance document. | ||
| const colonIndex = elementName.indexOf(':'); | ||
| const prefix = colonIndex !== -1 ? elementName.substring(0, colonIndex) : ''; | ||
| const instanceNsTop = this.instanceNsStack.length > 0 ? this.instanceNsStack[this.instanceNsStack.length - 1] : undefined; | ||
| const resolvedNs = this.resolvePrefix(prefix) ?? instanceNsTop?.get(prefix); | ||
| if (resolvedNs) { | ||
| const nsKey = this.buildElementKey(local, resolvedNs); | ||
| decl = this.elementDecls.get(nsKey); | ||
| if (decl) { | ||
| return decl; | ||
| } | ||
| } | ||
| // 3. Try each known target namespace. | ||
| for (const ns of this.targetNamespaces) { | ||
| const nsKey = this.buildElementKey(local, ns); | ||
| decl = this.elementDecls.get(nsKey); | ||
| if (decl) { | ||
| return decl; | ||
| } | ||
| } | ||
| // 4. Linear scan matching local-name portion of any stored key, | ||
| // but only when the resolved namespace matches the stored key's namespace (or both are absent). | ||
| for (const [key, value] of this.elementDecls) { | ||
| const pipeIndex = key.indexOf('|'); | ||
| const keyLocal = pipeIndex !== -1 ? key.substring(pipeIndex + 1) : key; | ||
| if (keyLocal !== local) { | ||
| continue; | ||
| } | ||
| const keyNs = pipeIndex !== -1 ? key.substring(0, pipeIndex) : undefined; | ||
| if (keyNs === resolvedNs) { | ||
| return value; | ||
| } | ||
| } | ||
| return undefined; | ||
| } | ||
| getFinalBlockedMethod(candidate, required) { | ||
| const requiredDecl = this.complexTypeDecls.get(required) ?? this.simpleTypeDecls.get(required); | ||
| if (requiredDecl === undefined) { | ||
| return undefined; | ||
| } | ||
| const finalSet = requiredDecl.getFinalConstraints(); | ||
| if (finalSet.size === 0) { | ||
| return undefined; | ||
| } | ||
| let current = candidate; | ||
| const visited = new Set(); | ||
| while (current !== undefined && current !== required) { | ||
| if (visited.has(current)) { | ||
| break; | ||
| } | ||
| visited.add(current); | ||
| const entry = this.typeHierarchy.get(current); | ||
| if (!entry) { | ||
| break; | ||
| } | ||
| if (finalSet.has('#all') || finalSet.has(entry.method)) { | ||
| return entry.method; | ||
| } | ||
| current = entry.base; | ||
| } | ||
| return undefined; | ||
| } | ||
| isTypeDerivedFrom(candidate, required) { | ||
| if (candidate === required) { | ||
| return true; | ||
| } | ||
| // xs:anyType is the root of all types. | ||
| if (required === 'anyType') { | ||
| return true; | ||
| } | ||
| let current = candidate; | ||
| const visited = new Set(); | ||
| while (current !== undefined) { | ||
| if (current === required) { | ||
| return true; | ||
| } | ||
| if (visited.has(current)) { | ||
| break; | ||
| } | ||
| visited.add(current); | ||
| const entry = this.typeHierarchy.get(current); | ||
| current = entry ? entry.base : BUILTIN_TYPE_HIERARCHY.get(current); | ||
| } | ||
| return false; | ||
| } | ||
| getPathMethods(candidate, required) { | ||
| if (candidate === required) { | ||
| return new Set(); | ||
| } | ||
| let current = candidate; | ||
| const visited = new Set(); | ||
| const methods = new Set(); | ||
| while (current !== undefined) { | ||
| if (current === required) { | ||
| return methods; | ||
| } | ||
| if (visited.has(current)) { | ||
| break; | ||
| } | ||
| visited.add(current); | ||
| const entry = this.typeHierarchy.get(current); | ||
| if (entry) { | ||
| methods.add(entry.method); | ||
| current = entry.base; | ||
| } | ||
| else { | ||
| const builtinBase = BUILTIN_TYPE_HIERARCHY.get(current); | ||
| if (builtinBase) { | ||
| methods.add('restriction'); | ||
| current = builtinBase; | ||
| } | ||
| else { | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| // Did not reach required — type is not derived; return empty set. | ||
| return new Set(); | ||
| } | ||
| parseSelectorSegments(selector) { | ||
| return selector.split('|').map((alt) => { | ||
| const trimmed = alt.trim(); | ||
| const descendant = trimmed.includes('//'); | ||
| const relative = trimmed.startsWith('./') ? trimmed.substring(2) : trimmed; | ||
| if (relative === '.' || relative === '') { | ||
| return { segments: [], descendant }; | ||
| } | ||
| const steps = relative.split('/'); | ||
| const segments = []; | ||
| for (const step of steps) { | ||
| const s = step.trim(); | ||
| if (s === '' || s === '.') { | ||
| continue; | ||
| } | ||
| if (s === '*') { | ||
| segments.push('*'); | ||
| } | ||
| else { | ||
| const step = s.startsWith('child::') ? s.substring(7) : s; | ||
| const colonIdx = step.indexOf(':'); | ||
| segments.push(colonIdx !== -1 ? step.substring(colonIdx + 1) : step); | ||
| } | ||
| } | ||
| return { segments, descendant }; | ||
| }); | ||
| } | ||
| selectorMatches(segments, relativePath) { | ||
| if (segments.length !== relativePath.length) { | ||
| return false; | ||
| } | ||
| for (let i = 0; i < segments.length; i++) { | ||
| if (segments[i] !== '*' && segments[i] !== relativePath[i]) { | ||
| return false; | ||
| } | ||
| } | ||
| return true; | ||
| } | ||
| parseFieldPath(field) { | ||
| const trimmed = field.trim(); | ||
| const descendant = trimmed.startsWith('.//'); | ||
| const withoutSelf = descendant ? trimmed.substring(3) : (trimmed.startsWith('./') ? trimmed.substring(2) : (trimmed === '.' ? '' : trimmed)); | ||
| const withoutAxis = withoutSelf.startsWith('child::') ? withoutSelf.substring(7) : withoutSelf; | ||
| if (withoutAxis.startsWith('@') || withoutAxis.startsWith('attribute::')) { | ||
| const atName = withoutAxis.startsWith('attribute::') ? withoutAxis.substring(11) : withoutAxis.substring(1); | ||
| const colonIdx = atName.indexOf(':'); | ||
| return { isAttribute: true, localName: colonIdx !== -1 ? atName.substring(colonIdx + 1) : atName, descendant }; | ||
| } | ||
| const colonIdx = withoutAxis.indexOf(':'); | ||
| return { isAttribute: false, localName: colonIdx !== -1 ? withoutAxis.substring(colonIdx + 1) : withoutAxis, descendant }; | ||
| } | ||
| parseFieldAlternatives(field) { | ||
| return field.split('|').map((alt) => this.parseFieldPath(alt)); | ||
| } | ||
| collectAttributeFields(scope, attributes, elementLocalName) { | ||
| if (scope.pendingStack.length === 0) { | ||
| return; | ||
| } | ||
| const pendingTop = scope.pendingStack[scope.pendingStack.length - 1]; | ||
| const attrNs = new Map(); | ||
| if (this.instanceNsStack.length > 0) { | ||
| for (const [p, u] of this.instanceNsStack[this.instanceNsStack.length - 1]) { | ||
| attrNs.set(p, u); | ||
| } | ||
| } | ||
| for (const [attrName, attrValue] of attributes) { | ||
| if (attrName === 'xmlns') { | ||
| attrNs.set('', attrValue); | ||
| } | ||
| else if (attrName.startsWith('xmlns:')) { | ||
| attrNs.set(attrName.substring(6), attrValue); | ||
| } | ||
| } | ||
| const declaredDecl = this.lookupElementDecl(elementLocalName); | ||
| let xsiTypeLocal = undefined; | ||
| for (const [attrName, attrValue] of attributes) { | ||
| if (attrName === 'xsi:type' || (attrName.endsWith(':type') && attrName.indexOf(':') !== -1)) { | ||
| xsiTypeLocal = this.localName(attrValue); | ||
| break; | ||
| } | ||
| } | ||
| const effectiveDecl = xsiTypeLocal !== undefined | ||
| ? (this.complexTypeDecls.get(xsiTypeLocal) ?? this.simpleTypeDecls.get(xsiTypeLocal) ?? declaredDecl) | ||
| : declaredDecl; | ||
| for (let i = 0; i < scope.constraint.fields.length; i++) { | ||
| const alternatives = this.parseFieldAlternatives(scope.constraint.fields[i]); | ||
| for (const alt of alternatives) { | ||
| if (!alt.isAttribute) { | ||
| continue; | ||
| } | ||
| for (const [attrName, attrValue] of attributes) { | ||
| const attrLocal = this.localName(attrName); | ||
| if (attrLocal === alt.localName) { | ||
| const attrDecl = effectiveDecl?.getAttributeDecl(attrName) ?? effectiveDecl?.getAttributeDecl(attrLocal); | ||
| const attrType = attrDecl !== undefined ? attrDecl.getType() : 'string'; | ||
| pendingTop.tuple[i] = attrType + '\x02' + SchemaTypeValidator_js_1.SchemaTypeValidator.canonicalize(attrValue, attrType, attrNs); | ||
| break; | ||
| } | ||
| } | ||
| if (pendingTop.tuple[i] !== undefined) { | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| collectTextFields(scope, elementLocalName, text, isSelf, nsMap, xsiTypeLocalName) { | ||
| if (scope.pendingStack.length === 0) { | ||
| return; | ||
| } | ||
| const textTop = scope.pendingStack[scope.pendingStack.length - 1]; | ||
| const tuple = textTop.tuple; | ||
| const fields = scope.constraint.fields; | ||
| for (let i = 0; i < fields.length; i++) { | ||
| const alternatives = this.parseFieldAlternatives(fields[i]); | ||
| for (const alt of alternatives) { | ||
| if (alt.isAttribute) { | ||
| continue; | ||
| } | ||
| const matches = isSelf | ||
| ? (alt.localName === '' || alt.localName === '.') | ||
| : (alt.localName === elementLocalName || (alt.descendant && alt.localName === '*')); | ||
| if (matches) { | ||
| if (tuple[i] !== undefined) { | ||
| if (!isSelf) { | ||
| textTop.overflow = true; | ||
| } | ||
| } | ||
| else { | ||
| const declaredDecl = this.lookupElementDecl(elementLocalName); | ||
| const effectiveDecl = xsiTypeLocalName !== undefined | ||
| ? (this.complexTypeDecls.get(xsiTypeLocalName) ?? this.simpleTypeDecls.get(xsiTypeLocalName) ?? declaredDecl) | ||
| : declaredDecl; | ||
| const simpleType = effectiveDecl?.getSimpleType(); | ||
| const raw = text.trim(); | ||
| const canonicalized = simpleType !== undefined ? SchemaTypeValidator_js_1.SchemaTypeValidator.canonicalize(raw, simpleType, nsMap) : raw; | ||
| tuple[i] = (simpleType ?? 'string') + '\x02' + canonicalized; | ||
| } | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| tupleKey(tuple) { | ||
| return tuple.map(v => v === undefined ? '\x00' : v).join('\x01'); | ||
| } | ||
| closeConstraintScopes() { | ||
| const closingDepth = this.lastClosedDepth; | ||
| let errorMessage = undefined; | ||
| for (const scope of this.activeScopes) { | ||
| if (scope.pendingStack.length > 0 && scope.pendingStack[scope.pendingStack.length - 1].depth === closingDepth) { | ||
| const committedEntry = scope.pendingStack[scope.pendingStack.length - 1]; | ||
| const tuple = committedEntry.tuple; | ||
| scope.lastCommittedTuple = tuple; | ||
| scope.lastCommittedDepth = committedEntry.depth; | ||
| scope.pendingStack.pop(); | ||
| const wasNil = committedEntry.nil; | ||
| if (wasNil) { | ||
| if (scope.constraint.kind === 'key') { | ||
| if (errorMessage === undefined) { | ||
| errorMessage = 'xs:key "' + scope.constraint.name + '": nilled element in key target node set'; | ||
| } | ||
| } | ||
| continue; | ||
| } | ||
| if (committedEntry.overflow) { | ||
| if (scope.constraint.kind === 'key') { | ||
| if (errorMessage === undefined) { | ||
| errorMessage = 'xs:key "' + scope.constraint.name + '": selected node has multiple values for a field'; | ||
| } | ||
| scope.tuples.push(tuple); | ||
| } | ||
| continue; | ||
| } | ||
| const allAbsent = tuple.every(v => v === undefined); | ||
| if (allAbsent) { | ||
| if (scope.constraint.kind === 'key') { | ||
| if (errorMessage === undefined) { | ||
| errorMessage = 'xs:key "' + scope.constraint.name + '": selected node is missing one or more key field values'; | ||
| } | ||
| } | ||
| scope.tuples.push(tuple); | ||
| continue; | ||
| } | ||
| const anyAbsent = tuple.some(v => v === undefined); | ||
| if (anyAbsent && scope.constraint.kind === 'key') { | ||
| if (errorMessage === undefined) { | ||
| errorMessage = 'xs:key "' + scope.constraint.name + '": selected node is missing one or more key field values'; | ||
| } | ||
| } | ||
| scope.tuples.push(tuple); | ||
| } | ||
| } | ||
| const removedScopes = []; | ||
| let i = this.activeScopes.length - 1; | ||
| while (i >= 0) { | ||
| const scope = this.activeScopes[i]; | ||
| if (scope.rootDepth === closingDepth) { | ||
| this.activeScopes.splice(i, 1); | ||
| removedScopes.push(scope); | ||
| } | ||
| i--; | ||
| } | ||
| for (const scope of removedScopes) { | ||
| if (errorMessage !== undefined) { | ||
| break; | ||
| } | ||
| if (scope.constraint.kind === 'key' || scope.constraint.kind === 'unique') { | ||
| const seen = new Set(); | ||
| for (const tuple of scope.tuples) { | ||
| const allPresent = tuple.every(v => v !== undefined); | ||
| if (!allPresent) { | ||
| continue; | ||
| } | ||
| const key = this.tupleKey(tuple); | ||
| if (seen.has(key)) { | ||
| errorMessage = 'xs:' + scope.constraint.kind + ' "' + scope.constraint.name + '": duplicate key value ' + JSON.stringify(key); | ||
| break; | ||
| } | ||
| seen.add(key); | ||
| } | ||
| if (scope.constraint.kind === 'key' || scope.constraint.kind === 'unique') { | ||
| this.completedKeys.set(scope.constraint.name, scope.tuples); | ||
| let ci = this.pendingKeyrefChecks.length - 1; | ||
| while (ci >= 0) { | ||
| const check = this.pendingKeyrefChecks[ci]; | ||
| if (check.refer === scope.constraint.name) { | ||
| this.pendingKeyrefChecks.splice(ci, 1); | ||
| if (errorMessage === undefined) { | ||
| const keySet = new Set(); | ||
| for (const kt of scope.tuples) { | ||
| keySet.add(this.tupleKey(kt)); | ||
| } | ||
| for (const tuple of check.tuples) { | ||
| const allPresent = tuple.every(v => v !== undefined); | ||
| if (!allPresent) { | ||
| continue; | ||
| } | ||
| const key = this.tupleKey(tuple); | ||
| if (!keySet.has(key)) { | ||
| errorMessage = 'xs:keyref "' + check.constraintName + '": value ' + JSON.stringify(key) + ' has no matching xs:key "' + scope.constraint.name + '"'; | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| ci--; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| for (const scope of removedScopes) { | ||
| if (errorMessage !== undefined) { | ||
| break; | ||
| } | ||
| if (scope.constraint.kind === 'keyref') { | ||
| const referName = scope.constraint.refer; | ||
| if (referName !== undefined) { | ||
| const keyTuples = this.completedKeys.get(referName); | ||
| if (keyTuples !== undefined) { | ||
| const keySet = new Set(); | ||
| for (const kt of keyTuples) { | ||
| keySet.add(this.tupleKey(kt)); | ||
| } | ||
| for (const tuple of scope.tuples) { | ||
| const allPresent = tuple.every(v => v !== undefined); | ||
| if (!allPresent) { | ||
| continue; | ||
| } | ||
| const key = this.tupleKey(tuple); | ||
| if (!keySet.has(key)) { | ||
| errorMessage = 'xs:keyref "' + scope.constraint.name + '": value ' + JSON.stringify(key) + ' has no matching xs:key "' + referName + '"'; | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| else { | ||
| this.pendingKeyrefChecks.push({ constraintName: scope.constraint.name, refer: referName, tuples: scope.tuples }); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| if (closingDepth === 0 && this.pendingKeyrefChecks.length > 0) { | ||
| if (errorMessage === undefined) { | ||
| const check = this.pendingKeyrefChecks[0]; | ||
| errorMessage = 'xs:keyref "' + check.constraintName + '": referred key/unique "' + check.refer + '" was not found in the document'; | ||
| } | ||
| this.pendingKeyrefChecks = []; | ||
| } | ||
| return errorMessage; | ||
| } | ||
| } | ||
| exports.SchemaGrammar = SchemaGrammar; | ||
| //# sourceMappingURL=SchemaGrammar.js.map |
| {"version":3,"file":"SchemaGrammar.js","sourceRoot":"","sources":["../../../ts/schema/SchemaGrammar.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;iFAUiF;;;AAEjF,sDAA4G;AAE5G,mEAAiE;AAEjE,qEAA6E;AAE7E,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAiB;IACxE,CAAC,eAAe,EAAE,SAAS,CAAC;IAC5B,CAAC,eAAe,EAAE,eAAe,CAAC;IAClC,CAAC,QAAQ,EAAE,eAAe,CAAC;IAC3B,CAAC,kBAAkB,EAAE,QAAQ,CAAC;IAC9B,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAC7B,CAAC,UAAU,EAAE,OAAO,CAAC;IACrB,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,MAAM,EAAE,OAAO,CAAC;IACjB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClB,CAAC,IAAI,EAAE,QAAQ,CAAC;IAChB,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,UAAU,EAAE,eAAe,CAAC;IAC7B,CAAC,QAAQ,EAAE,eAAe,CAAC;IAC3B,CAAC,UAAU,EAAE,eAAe,CAAC;IAC7B,CAAC,SAAS,EAAE,eAAe,CAAC;IAC5B,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,MAAM,EAAE,SAAS,CAAC;IACnB,CAAC,KAAK,EAAE,MAAM,CAAC;IACf,CAAC,OAAO,EAAE,KAAK,CAAC;IAChB,CAAC,MAAM,EAAE,OAAO,CAAC;IACjB,CAAC,oBAAoB,EAAE,SAAS,CAAC;IACjC,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;IACzC,CAAC,cAAc,EAAE,oBAAoB,CAAC;IACtC,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,eAAe,EAAE,aAAa,CAAC;IAChC,CAAC,cAAc,EAAE,eAAe,CAAC;IACjC,CAAC,oBAAoB,EAAE,SAAS,CAAC;IACjC,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;IACzC,CAAC,OAAO,EAAE,eAAe,CAAC;IAC1B,CAAC,QAAQ,EAAE,eAAe,CAAC;IAC3B,CAAC,SAAS,EAAE,eAAe,CAAC;IAC5B,CAAC,UAAU,EAAE,eAAe,CAAC;IAC7B,CAAC,iBAAiB,EAAE,UAAU,CAAC;IAC/B,CAAC,mBAAmB,EAAE,UAAU,CAAC;IACjC,CAAC,UAAU,EAAE,eAAe,CAAC;IAC7B,CAAC,eAAe,EAAE,UAAU,CAAC;IAC7B,CAAC,MAAM,EAAE,eAAe,CAAC;IACzB,CAAC,MAAM,EAAE,eAAe,CAAC;IACzB,CAAC,YAAY,EAAE,eAAe,CAAC;IAC/B,CAAC,OAAO,EAAE,eAAe,CAAC;IAC1B,CAAC,WAAW,EAAE,eAAe,CAAC;IAC9B,CAAC,MAAM,EAAE,eAAe,CAAC;IACzB,CAAC,QAAQ,EAAE,eAAe,CAAC;IAC3B,CAAC,WAAW,EAAE,eAAe,CAAC;IAC9B,CAAC,cAAc,EAAE,eAAe,CAAC;IACjC,CAAC,QAAQ,EAAE,eAAe,CAAC;IAC3B,CAAC,OAAO,EAAE,eAAe,CAAC;IAC1B,CAAC,UAAU,EAAE,eAAe,CAAC;CAChC,CAAC,CAAC;AAmBH,MAAa,aAAa;IAEd,YAAY,CAAiC;IAC7C,gBAAgB,CAAiC;IACjD,eAAe,CAAiC;IAChD,gBAAgB,CAAc;IAC9B,qBAAqB,CAAsB;IAC3C,oBAAoB,CAAmC;IACvD,gBAAgB,CAA6B;IAC7C,YAAY,CAA4B;IACxC,QAAQ,CAAiB;IACzB,aAAa,CAAgD;IAC7D,eAAe,CAA6B;IAC5C,WAAW,CAAW;IACtB,YAAY,CAA4B;IACxC,aAAa,CAAgD;IAC7D,eAAe,CAAS;IACxB,iBAAiB,CAAqB;IACtC,aAAa,CAAU;IACvB,oBAAoB,CAAkC;IACtD,OAAO,CAAc;IACrB,aAAa,CAAW;IACxB,mBAAmB,CAA6F;IAChH,iBAAiB,CAAmC;IAE5D;QACI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAA6B,CAAC;QACzD,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC7D,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC5D,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvD,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAA+B,CAAC;QACnE,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAyB,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAA4C,CAAC;QACzE,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAA4C,CAAC;QACzE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,kBAAkB,CAAC,SAAiB;QAChC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,uBAAuB,CAAC,MAAc,EAAE,GAAW;QAC/C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,sBAAsB,CAAC,IAAyB;QAC5C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,kBAAkB,CAAC,SAAiB,EAAE,OAAsB;QACxD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,kBAAkB,CAAC,QAAgB,EAAE,IAAuB;QACxD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,iBAAiB,CAAC,QAAgB,EAAE,IAAuB;QACvD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,qBAAqB,CAAC,QAAgB,EAAE,YAAoB,EAAE,MAAc;QACxE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,SAAS,CAAC,KAAoB;QAC1B,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;QACD,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;QACD,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QACD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IAED,cAAc,CAAC,IAAuB;QAClC,MAAM,GAAG,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,cAAc,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,eAAe,CAAC,OAAe,EAAE,QAAkB,EAAE,IAAY;QAC7D,MAAM,OAAO,GAAuB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACvG,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;QACjC,MAAM,QAAQ,GAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5F,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;QAC3D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,MAAM,YAAY,GACd,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YAC3B,CAAC;YACD,OAAO,6BAAgB,CAAC,OAAO,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAW,IAAI,CAAC,eAAe,CAAC;YAClD,MAAM,WAAW,GAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACpD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpC,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClC,SAAS;gBACb,CAAC;gBACD,MAAM,GAAG,GAAsB,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACjF,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;oBACX,IAAI,YAAY,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;wBAC7B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;oBAC/F,CAAC;yBAAM,CAAC;wBACJ,MAAM,kBAAkB,GAAY,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAC5D,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAC/E;wBACL,MAAM,YAAY,GAAY,kBAAkB;4BAC5C,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,KAAK;4BAC1B,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;wBACrC,IAAI,YAAY,EAAE,CAAC;4BACf,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;wBAChG,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,MAAM,eAAe,GAAuB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACzE,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;YACzB,OAAO,6BAAgB,CAAC,OAAO,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,eAAe,GAAkC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9H,MAAM,IAAI,GAAkC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,6BAAgB,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,GAAG,iCAAiC,CAAC,CAAC;QAC7F,CAAC;QACD,2EAA2E;QAC3E,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,6BAAgB,CAAC,KAAK,CACzB,WAAW,GAAG,OAAO,GAAG,kDAAkD,CAC7E,CAAC;YACN,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,6BAAgB,CAAC,KAAK,CACzB,WAAW,GAAG,OAAO,GAAG,gDAAgD,CAC3E,CAAC;YACN,CAAC;YACD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,6BAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,6BAAgB,CAAC,OAAO,EAAE,CAAC;QACtC,CAAC;QACD,2EAA2E;QAC3E,IAAI,IAAI,CAAC,iBAAiB,EAAE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACpD,OAAO,6BAAgB,CAAC,KAAK,CACzB,WAAW,GAAG,OAAO,GAAG,kEAAkE,CAC7F,CAAC;QACN,CAAC;QACD,MAAM,aAAa,GAAsB,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;QAChG,MAAM,aAAa,GAAqB,aAAa,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACvI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,aAAa,CAAC;QACzB,CAAC;QACD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,6BAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,WAAW,GAAkC,OAAO,KAAK,SAAS;YACpE,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3E,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,QAAQ,GAAsB,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;QACnF,MAAM,UAAU,GAAoC,IAAI,CAAC,oBAAoB,CAAC;QAC9E,MAAM,mBAAmB,GAAuB,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC3E,MAAM,aAAa,GAAW,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;QACnH,IAAI,SAAS,GAAuB,SAAS,CAAC;QAC9C,MAAM,UAAU,GAAuB,QAAQ,CAAC,aAAa,EAAE,CAAC;QAChE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,cAAc,GAAW,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1E,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;gBAChC,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,uBAAuB,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,GAAG,CAAC;YACpH,CAAC;QACL,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAuB,QAAQ,CAAC,aAAa,EAAE,CAAC;YAChE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,cAAc,GAAW,aAAa,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnF,IAAI,CAAC,4CAAmB,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;oBACxE,SAAS,GAAG,wBAAwB,GAAG,aAAa,GAAG,iBAAiB,GAAG,OAAO,GAAG,mBAAmB,GAAG,UAAU,CAAC;gBAC1H,CAAC;qBAAM,IAAI,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC3E,SAAS,GAAG,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,GAAG,OAAO,GAAG,8BAA8B,CAAC;gBAC/G,CAAC;qBAAM,CAAC;oBACJ,MAAM,eAAe,GAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;oBAC3D,IAAI,eAAe,KAAK,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC;wBAC5E,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;4BACnC,SAAS,GAAG,yBAAyB,GAAG,cAAc,GAAG,gBAAgB,GAAG,OAAO,GAAG,GAAG,CAAC;wBAC9F,CAAC;6BAAM,CAAC;4BACJ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;wBACrC,CAAC;oBACL,CAAC;yBAAM,IAAI,eAAe,KAAK,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,CAAC;wBACzF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC5C,CAAC;yBAAM,IAAI,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,CAAC;wBAC3F,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC9C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACnC,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,iBAAiB,GAAkE,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBACzH,MAAM,gBAAgB,GAAyB,QAAQ,CAAC,mBAAmB,EAAE,CAAC;gBAC9E,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClE,MAAM,cAAc,GAAW,aAAa,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACnF,IAAI,KAAK,GAAY,KAAK,CAAC;oBAC3B,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;wBAClC,IAAI,4CAAmB,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,4CAAmB,CAAC,cAAc,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACzJ,KAAK,GAAG,IAAI,CAAC;4BACb,MAAM;wBACV,CAAC;oBACL,CAAC;oBACD,IAAI,CAAC,KAAK,EAAE,CAAC;wBACT,SAAS,GAAG,wBAAwB,GAAG,aAAa,GAAG,iBAAiB,GAAG,OAAO,GAAG,yCAAyC,CAAC;oBACnI,CAAC;gBACL,CAAC;qBAAM,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvE,MAAM,cAAc,GAAW,aAAa,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACnF,IAAI,KAAK,GAAY,KAAK,CAAC;oBAC3B,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;wBACxC,IAAI,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;4BACpE,KAAK,GAAG,IAAI,CAAC;4BACb,MAAM;wBACV,CAAC;oBACL,CAAC;oBACD,IAAI,CAAC,KAAK,EAAE,CAAC;wBACT,SAAS,GAAG,wBAAwB,GAAG,aAAa,GAAG,iBAAiB,GAAG,OAAO,GAAG,yCAAyC,CAAC;oBACnI,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,YAAY,GAAuB,QAAQ,CAAC,eAAe,EAAE,CAAC;oBACpE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;wBAC7B,MAAM,cAAc,GAAW,aAAa,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;wBACnF,MAAM,MAAM,GAAa,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACxF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4BACzB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC;gCAC9D,SAAS,GAAG,qBAAqB,GAAG,KAAK,GAAG,iBAAiB,GAAG,OAAO,GAAG,mBAAmB,GAAG,YAAY,CAAC;gCAC7G,MAAM;4BACV,CAAC;wBACL,CAAC;oBACL,CAAC;yBAAM,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,KAAK,8CAAsB,CAAC,OAAO;2BACvE,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,KAAK,8CAAsB,CAAC,KAAK,EAAE,CAAC;wBACvE,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAClC,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,iDAAiD,GAAG,aAAa,GAAG,GAAG,CAAC;wBAChH,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,OAAO,6BAAgB,CAAC,KAAK,CACzB,kBAAkB,GAAG,GAAG,GAAG,4CAA4C,CAC1E,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,6BAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,kBAAkB,CAAC,OAAe,EAAE,UAA+B;QAC/D,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAA4C,CAAC;YACzE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAW,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QACzD,IAAI,SAAS,GAAY,KAAK,CAAC;QAC/B,IAAI,YAAY,GAAY,KAAK,CAAC;QAClC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;YAC7C,IAAI,SAAS,GAAY,QAAQ,KAAK,SAAS,CAAC;YAChD,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC1E,MAAM,cAAc,GAAW,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5E,MAAM,UAAU,GAAuB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC1E,IAAI,UAAU,KAAK,2CAA2C,EAAE,CAAC;oBAC7D,SAAS,GAAG,IAAI,CAAC;gBACrB,CAAC;YACL,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACZ,YAAY,GAAG,IAAI,CAAC;gBACpB,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;oBAC5C,SAAS,GAAG,IAAI,CAAC;gBACrB,CAAC;gBACD,MAAM;YACV,CAAC;QACL,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBAC5G,SAAS;YACb,CAAC;YACD,MAAM,YAAY,GAAa,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAC3E,IAAI,eAAe,GAAY,KAAK,CAAC;YACrC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAC3C,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACjB,IAAI,YAAY,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM;2BAClD,YAAY,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM;2BAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;wBACvG,eAAe,GAAG,IAAI,CAAC;wBACvB,MAAM;oBACV,CAAC;gBACL,CAAC;qBAAM,IAAI,YAAY,KAAK,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM;uBAC1D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;oBACtD,eAAe,GAAG,IAAI,CAAC;oBACvB,MAAM;gBACV,CAAC;YACL,CAAC;YACD,IAAI,eAAe,EAAE,CAAC;gBAClB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC;oBACpB,KAAK,EAAE,IAAI,KAAK,CAAqB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;oBACpF,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,KAAK;oBACf,GAAG,EAAE,SAAS;iBACjB,CAAC,CAAC;gBACH,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5E,CAAC;QACL,CAAC;QACD,oEAAoE;QACpE,IAAI,gBAAgB,GAAuB,SAAS,CAAC;QACrD,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;YAC7C,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC1B,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC7C,MAAM;YACV,CAAC;YACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC7D,MAAM,MAAM,GAAW,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,MAAM,EAAE,GAAuB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC1D,IAAI,EAAE,KAAK,2CAA2C,EAAE,CAAC;oBACrD,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBAC7C,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEzC,wCAAwC;QACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE9B,gFAAgF;QAChF,MAAM,UAAU,GAAwB,IAAI,GAAG,EAAkB,CAAC;QAClE,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBACzE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;QACD,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;YAC7C,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACvB,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAClC,CAAC;iBAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEtC,MAAM,UAAU,GACZ,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9G,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,OAAO,6BAAgB,CAAC,OAAO,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,GAAkC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnC,OAAO,6BAAgB,CAAC,OAAO,EAAE,CAAC;YACtC,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAW,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACzE,MAAM,UAAU,GAAkC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBACrF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC3B,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,KAAK,8CAAsB,CAAC,GAAG,EAAE,CAAC;wBACxE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACpC,OAAO,6BAAgB,CAAC,OAAO,EAAE,CAAC;oBACtC,CAAC;oBACD,MAAM,SAAS,GAAoC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACvJ,MAAM,EAAE,GAA0C,UAAU,CAAC,eAAe,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBACxH,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACnC,OAAO,6BAAgB,CAAC,OAAO,EAAE,CAAC;oBACtC,CAAC;oBACD,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;wBAChB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACpC,OAAO,6BAAgB,CAAC,OAAO,EAAE,CAAC;oBACtC,CAAC;gBACL,CAAC;YACL,CAAC;YACD,OAAO,6BAAgB,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,GAAG,iCAAiC,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,6DAA6D;QAC7D,+EAA+E;QAC/E,sFAAsF;QACtF,MAAM,QAAQ,GAAW,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAW,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,MAAM,iBAAiB,GACnB,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,MAAM,cAAc,GAAuB,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3H,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,MAAM,MAAM,GAAuB,IAAI,CAAC,YAAY,EAAE,CAAC;YACvD,IAAI,MAAM,KAAK,SAAS,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;gBACpD,OAAO,6BAAgB,CAAC,KAAK,CACzB,WAAW,GAAG,OAAO,GAAG,gDAAgD,GAAG,MAAM,GAAG,GAAG,CAC1F,CAAC;YACN,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;gBACxD,OAAO,6BAAgB,CAAC,KAAK,CACzB,WAAW,GAAG,OAAO,GAAG,uEAAuE,CAClG,CAAC;YACN,CAAC;QACL,CAAC;QACD,2GAA2G;QAC3G,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACrC,OAAO,6BAAgB,CAAC,KAAK,CACzB,WAAW,GAAG,OAAO,GAAG,6CAA6C,CACxE,CAAC;QACN,CAAC;QACD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,gBAAgB,GAAuB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACxE,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,gBAAgB,GAAkC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBACpG,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,EAAE,CAAC;oBACzE,OAAO,6BAAgB,CAAC,KAAK,CACzB,WAAW,GAAG,OAAO,GAAG,uBAAuB,GAAG,gBAAgB;wBAClE,oDAAoD,CACvD,CAAC;gBACN,CAAC;YACL,CAAC;QACL,CAAC;QACD,qGAAqG;QACrG,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,WAAW,GAAkC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC/F,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,iBAAiB,EAAE,EAAE,CAAC;gBAC/D,OAAO,6BAAgB,CAAC,KAAK,CACzB,YAAY,GAAG,gBAAgB,GAAG,4DAA4D,CACjG,CAAC;YACN,CAAC;YACD,MAAM,gBAAgB,GAAuB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACxE,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,EAAE,CAAC;oBAC9D,OAAO,6BAAgB,CAAC,KAAK,CACzB,YAAY,GAAG,gBAAgB,GAAG,2CAA2C;wBAC7E,gBAAgB,GAAG,gBAAgB,GAAG,OAAO,GAAG,GAAG,CACtD,CAAC;gBACN,CAAC;gBACD,MAAM,kBAAkB,GAAuB,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;gBAC9G,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;oBACnC,OAAO,6BAAgB,CAAC,KAAK,CACzB,YAAY,GAAG,gBAAgB,GAAG,kCAAkC;wBACpE,gBAAgB,GAAG,eAAe,GAAG,kBAAkB,GAAG,GAAG,CAChE,CAAC;gBACN,CAAC;gBACD,uEAAuE;gBACvE,yEAAyE;gBACzE,MAAM,QAAQ,GAAkC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC5F,MAAM,YAAY,GAAgB,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7D,MAAM,SAAS,GAAgB,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;gBAC3G,MAAM,cAAc,GAAgB,IAAI,GAAG,CAAS,CAAC,GAAG,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;gBACrF,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,SAAS,GAAY,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACtD,IAAI,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;wBACpF,MAAM,WAAW,GAAgB,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;wBACzF,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;4BACvB,IAAI,SAAS,EAAE,CAAC;gCACZ,OAAO,6BAAgB,CAAC,KAAK,CACzB,YAAY,GAAG,gBAAgB,GAAG,wBAAwB;oCAC1D,gBAAgB,GAAG,GAAG,CACzB,CAAC;4BACN,CAAC;4BACD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gCAC1B,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oCACxB,OAAO,6BAAgB,CAAC,KAAK,CACzB,YAAY,GAAG,gBAAgB,GAAG,+BAA+B;wCACjE,CAAC,GAAG,iBAAiB,CACxB,CAAC;gCACN,CAAC;4BACL,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,iFAAiF;QACjF,+EAA+E;QAC/E,MAAM,eAAe,GAAkC,gBAAgB,KAAK,SAAS;YACjF,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC7C,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,cAAc,GAAqC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClF,MAAM,kBAAkB,GAAqC,eAAe,KAAK,SAAS;YACtF,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE;YACrC,CAAC,CAAC,cAAc,CAAC;QAErB,6BAA6B;QAC7B,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;YAC7C,mEAAmE;YACnE,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,SAAS;YACb,CAAC;YACD,8EAA8E;YAC9E,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,SAAS;YACb,CAAC;YAED,MAAM,UAAU,GAAW,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAW,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBAC1D,MAAM,GAAG,GAAuB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC5D,IAAI,GAAG,KAAK,2CAA2C,EAAE,CAAC;oBACtD,SAAS;gBACb,CAAC;YACL,CAAC;YAED,MAAM,aAAa,GAAW,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAChG,MAAM,QAAQ,GACV,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS;gBAC1C,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAEhD,IAAI,QAAQ,EAAE,CAAC;gBACX,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC/B,OAAO,6BAAgB,CAAC,KAAK,CACzB,iBAAiB,GAAG,SAAS,GAAG,mBAAmB,GAAG,QAAQ;wBAC9D,aAAa,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,gBAAgB,GAAG,OAAO,GAAG,GAAG,CACxE,CAAC;gBACN,CAAC;gBACD,MAAM,aAAa,GAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjE,IAAI,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC;oBACxE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC9B,OAAO,6BAAgB,CAAC,KAAK,CACzB,yBAAyB,GAAG,SAAS,GAAG,kBAAkB,GAAG,QAAQ;4BACrE,gBAAgB,GAAG,OAAO,GAAG,GAAG,CACnC,CAAC;oBACN,CAAC;oBACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAChC,CAAC;qBAAM,IAAI,aAAa,KAAK,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC;oBACrF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvC,CAAC;qBAAM,IAAI,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACvF,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBAChD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACnB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACnC,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,SAAS;YACb,CAAC;YAED,sEAAsE;YACtE,0EAA0E;YAC1E,0EAA0E;YAC1E,+CAA+C;YAC/C,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAW,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAW,IAAI,CAAC,8BAA8B,EAAE,CAAC;gBAC5D,MAAM,UAAU,GAAuB,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACrE,MAAM,aAAa,GAAyB,IAAI,CAAC,iCAAiC,EAAE,CAAC;gBACrF,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;oBACjG,SAAS;gBACb,CAAC;gBACD,OAAO,6BAAgB,CAAC,KAAK,CACzB,aAAa,GAAG,QAAQ,GAAG,8DAA8D,GAAG,OAAO,GAAG,GAAG,CAC5G,CAAC;YACN,CAAC;YAED,mEAAmE;YACnE,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAW,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gBACzD,MAAM,YAAY,GAAuB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACpE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC7B,OAAO,6BAAgB,CAAC,KAAK,CACzB,+BAA+B,GAAG,MAAM,GAAG,kBAAkB,GAAG,QAAQ,GAAG,GAAG,CACjF,CAAC;gBACN,CAAC;gBACD,MAAM,eAAe,GAA8B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC3F,IAAI,eAAe,EAAE,CAAC;oBAClB,MAAM,UAAU,GAAoC,eAAe,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC5G,IAAI,UAAU,EAAE,CAAC;wBACb,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;4BACjC,OAAO,6BAAgB,CAAC,KAAK,CACzB,iBAAiB,GAAG,SAAS,GAAG,mBAAmB,GAAG,QAAQ;gCAC9D,aAAa,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,gBAAgB,GAAG,OAAO,GAAG,GAAG,CAC1E,CAAC;wBACN,CAAC;wBACD,SAAS;oBACb,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,KAAK,8CAAsB,CAAC,GAAG,EAAE,CAAC;gBAClE,SAAS;YACb,CAAC;YACD,OAAO,6BAAgB,CAAC,KAAK,CACzB,aAAa,GAAG,QAAQ,GAAG,iCAAiC,GAAG,OAAO,GAAG,GAAG,CAC/E,CAAC;QACN,CAAC;QAED,yCAAyC;QACzC,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,kBAAkB,EAAE,CAAC;YAC5C,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,yBAAY,CAAC,QAAQ,EAAE,CAAC;gBAC9C,SAAS;YACb,CAAC;YACD,MAAM,YAAY,GAAW,QAAQ,CAAC,OAAO,EAAE,CAAC;YAChD,IAAI,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B,SAAS;YACb,CAAC;YACD,4EAA4E;YAC5E,IAAI,KAAK,GAAY,KAAK,CAAC;YAC3B,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;gBACvC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,YAAY,EAAE,CAAC;oBAC5C,KAAK,GAAG,IAAI,CAAC;oBACb,MAAM;gBACV,CAAC;YACL,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,OAAO,6BAAgB,CAAC,KAAK,CACzB,sBAAsB,GAAG,YAAY,GAAG,6BAA6B,GAAG,OAAO,GAAG,GAAG,CACxF,CAAC;YACN,CAAC;QACL,CAAC;QAED,MAAM,mBAAmB,GAAqC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5F,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACpC,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;gBAC3C,MAAM,oBAAoB,GAAuD,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACjI,MAAM,KAAK,GAA4B;oBACnC,UAAU;oBACV,SAAS,EAAE,YAAY;oBACvB,oBAAoB;oBACpB,YAAY,EAAE,EAAE;oBAChB,kBAAkB,EAAE,SAAS;oBAC7B,kBAAkB,EAAE,CAAC,CAAC;oBACtB,MAAM,EAAE,EAAE;iBACb,CAAC;gBACF,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAgD,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC7G,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC;wBACpB,KAAK,EAAE,IAAI,KAAK,CAAqB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;wBAC9E,KAAK,EAAE,YAAY;wBACnB,QAAQ,EAAE,KAAK;wBACf,GAAG,EAAE,SAAS;qBACjB,CAAC,CAAC;oBACH,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;QAED,OAAO,6BAAgB,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,oBAAoB,CAAC,OAAe;QAChC,MAAM,MAAM,GAA+B,IAAI,GAAG,EAAyB,CAAC;QAC5E,MAAM,IAAI,GAAkC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,oBAAoB,CAAC,OAAe;QAChC,MAAM,MAAM,GAAwB,IAAI,GAAG,EAAkB,CAAC;QAC9D,MAAM,IAAI,GAAkC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACtD,MAAM,YAAY,GAAuB,QAAQ,CAAC,eAAe,EAAE,CAAC;YACpE,MAAM,UAAU,GAAuB,QAAQ,CAAC,aAAa,EAAE,CAAC;YAChE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACnC,CAAC;iBAAM,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,aAAa,CAAC,KAAa;QACvB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,cAAc;QACV,OAAO,wBAAW,CAAC,UAAU,CAAC;IAClC,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,wBAAwB;QACpB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACtC,CAAC;IAEO,kBAAkB,CAAC,KAAa,EAAE,eAAuB,EAAE,OAA2B,EAAE,UAAgC,EAAE,QAAgB,EAAE,SAAiB,EAAE,WAAmB;QACtL,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,UAAU,GAAW,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,UAAU,GAAuB,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzG,MAAM,aAAa,GAAW,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChG,MAAM,MAAM,GAAuB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3F,4EAA4E;QAC5E,IAAI,OAAO,GAAY,KAAK,CAAC;QAC7B,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACpB,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,GAAG,UAAU,KAAK,SAAS,CAAC;QACvC,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,uEAAuE;YACvE,kEAAkE;YAClE,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,OAAO,GAAG,MAAM,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC;YACpF,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,4DAA4D;YAC5D,MAAM,MAAM,GAAa,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACzB,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAClD,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACV,CAAC;gBACD,IAAI,KAAK,KAAK,mBAAmB,EAAE,CAAC;oBAChC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;wBAC7C,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM;oBACV,CAAC;gBACL,CAAC;gBACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oBACnB,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,2BAA2B;QAC3B,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,oFAAoF;QACpF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,eAAe,GAA8B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrF,IAAI,eAAe,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAoC,eAAe,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAC5G,IAAI,UAAU,EAAE,CAAC;oBACb,0CAA0C;oBAC1C,OAAO,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC;YACD,+CAA+C;YAC/C,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC,CAAC,gCAAgC;YAClD,CAAC;YACD,OAAO,IAAI,CAAC,CAAC,yCAAyC;QAC1D,CAAC;QACD,2CAA2C;QAC3C,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,CAAC,iEAAiE;QACnF,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,cAAc;IAC/B,CAAC;IAEO,mBAAmB,CAAC,WAAmB;QAC3C,MAAM,IAAI,GAAkC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,CAAC;IAEO,aAAa,CAAC,MAAc;QAChC,0EAA0E;QAC1E,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,sCAAsC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAEO,eAAe,CAAC,IAAY,EAAE,SAA6B;QAC/D,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,oBAAoB,CAAC,KAAa,EAAE,QAAgB,EAAE,UAAgC;QAC1F,MAAM,aAAa,GAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAkC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAuB,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC9D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,4CAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;oBAC7D,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAI,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5D,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,4CAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IAEO,SAAS,CAAC,KAAa;QAC3B,MAAM,UAAU,GAAW,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACvE,CAAC;IAEO,iBAAiB,CAAC,WAAmB;QACzC,sBAAsB;QACtB,IAAI,IAAI,GAAkC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC7E,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,kDAAkD;QAClD,wFAAwF;QACxF,4EAA4E;QAC5E,MAAM,KAAK,GAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YACxB,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,GAAG,SAAS,CAAC;QACrB,CAAC;QAED,gGAAgG;QAChG,+EAA+E;QAC/E,MAAM,UAAU,GAAW,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,MAAM,GAAW,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,MAAM,aAAa,GACf,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,MAAM,UAAU,GAAuB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAChG,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,KAAK,GAAW,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAC9D,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QAED,sCAAsC;QACtC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACrC,MAAM,KAAK,GAAW,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QAED,gEAAgE;QAChE,mGAAmG;QACnG,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAW,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAW,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/E,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACrB,SAAS;YACb,CAAC;YACD,MAAM,KAAK,GAAuB,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7F,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,qBAAqB,CAAC,SAAiB,EAAE,QAAgB;QAC7D,MAAM,YAAY,GACd,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9E,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,QAAQ,GAAgB,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACjE,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,OAAO,GAAuB,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAU,CAAC;QAC/C,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACnD,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvB,MAAM;YACV,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,MAAM,KAAK,GAAiD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5F,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,MAAM;YACV,CAAC;YACD,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrD,OAAO,KAAK,CAAC,MAAM,CAAC;YACxB,CAAC;YACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,iBAAiB,CAAC,SAAiB,EAAE,QAAgB;QACzD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,uCAAuC;QACvC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,OAAO,GAAuB,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAU,CAAC;QAC/C,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvB,MAAM;YACV,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,MAAM,KAAK,GAAiD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5F,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,cAAc,CAAC,SAAiB,EAAE,QAAgB;QACtD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzB,OAAO,IAAI,GAAG,EAAU,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,GAAuB,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAU,CAAC;QAC/C,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAU,CAAC;QAC/C,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACvB,OAAO,OAAO,CAAC;YACnB,CAAC;YACD,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvB,MAAM;YACV,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrB,MAAM,KAAK,GAAiD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5F,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC1B,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACJ,MAAM,WAAW,GAAuB,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC5E,IAAI,WAAW,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC3B,OAAO,GAAG,WAAW,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACJ,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;QACD,kEAAkE;QAClE,OAAO,IAAI,GAAG,EAAU,CAAC;IAC7B,CAAC;IAEO,qBAAqB,CAAC,QAAgB;QAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAW,GAAG,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,UAAU,GAAY,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAW,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACnF,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;gBACtC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;YACxC,CAAC;YACD,MAAM,KAAK,GAAa,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAW,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBACxB,SAAS;gBACb,CAAC;gBACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;oBACZ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,GAAW,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClE,MAAM,QAAQ,GAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC3C,QAAQ,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACzE,CAAC;YACL,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,eAAe,CAAC,QAAkB,EAAE,YAAsB;QAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,cAAc,CAAC,KAAa;QAChC,MAAM,OAAO,GAAW,KAAK,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,UAAU,GAAY,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,WAAW,GAAW,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACrJ,MAAM,WAAW,GAAW,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACvG,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACvE,MAAM,MAAM,GAAW,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACpH,MAAM,QAAQ,GAAW,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;QACnH,CAAC;QACD,MAAM,QAAQ,GAAW,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;IAC9H,CAAC;IAEO,sBAAsB,CAAC,KAAa;QACxC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEO,sBAAsB,CAAC,KAA8B,EAAE,UAA+B,EAAE,gBAAwB;QACpH,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO;QACX,CAAC;QACD,MAAM,UAAU,GAAsB,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxF,MAAM,MAAM,GAAwB,IAAI,GAAG,EAAkB,CAAC;QAC9D,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBACzE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrB,CAAC;QACL,CAAC;QACD,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;YAC7C,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACjD,CAAC;QACL,CAAC;QACD,MAAM,YAAY,GAAkC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QAC7F,IAAI,YAAY,GAAuB,SAAS,CAAC;QACjD,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;YAC7C,IAAI,QAAQ,KAAK,UAAU,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1F,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACzC,MAAM;YACV,CAAC;QACL,CAAC;QACD,MAAM,aAAa,GAAkC,YAAY,KAAK,SAAS;YAC3E,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC;YACrG,CAAC,CAAC,YAAY,CAAC;QACnB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9D,MAAM,YAAY,GAA4E,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtJ,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACnB,SAAS;gBACb,CAAC;gBACD,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;oBAC7C,MAAM,SAAS,GAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACnD,IAAI,SAAS,KAAK,GAAG,CAAC,SAAS,EAAE,CAAC;wBAC9B,MAAM,QAAQ,GAAoC,aAAa,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI,aAAa,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;wBAC1I,MAAM,QAAQ,GAAW,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAChF,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,MAAM,GAAG,4CAAmB,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;wBACxG,MAAM;oBACV,CAAC;gBACL,CAAC;gBACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACpC,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,KAA8B,EAAE,gBAAwB,EAAE,IAAY,EAAE,MAAe,EAAE,KAA2B,EAAE,gBAAyB;QACrK,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO;QACX,CAAC;QACD,MAAM,OAAO,GAAsB,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrF,MAAM,KAAK,GAA8B,OAAO,CAAC,KAAK,CAAC;QACvD,MAAM,MAAM,GAAa,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QACjD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,YAAY,GAA4E,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACrI,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC7B,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBAClB,SAAS;gBACb,CAAC;gBACD,MAAM,OAAO,GAAY,MAAM;oBAC3B,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,EAAE,IAAI,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC;oBACjD,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,gBAAgB,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC;gBACxF,IAAI,OAAO,EAAE,CAAC;oBACV,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;wBACzB,IAAI,CAAC,MAAM,EAAE,CAAC;4BACV,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;wBAC5B,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,MAAM,YAAY,GAAkC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;wBAC7F,MAAM,aAAa,GAAkC,gBAAgB,KAAK,SAAS;4BAC/E,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC;4BAC7G,CAAC,CAAC,YAAY,CAAC;wBACnB,MAAM,UAAU,GAAuB,aAAa,EAAE,aAAa,EAAE,CAAC;wBACtE,MAAM,GAAG,GAAW,IAAI,CAAC,IAAI,EAAE,CAAC;wBAChC,MAAM,aAAa,GAAW,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,4CAAmB,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;wBACxH,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,QAAQ,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC;oBACjE,CAAC;oBACD,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,KAAgC;QAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC;IAEO,qBAAqB;QACzB,MAAM,YAAY,GAAW,IAAI,CAAC,eAAe,CAAC;QAClD,IAAI,YAAY,GAAuB,SAAS,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBAC5G,MAAM,cAAc,GAAsB,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC5F,MAAM,KAAK,GAA8B,cAAc,CAAC,KAAK,CAAC;gBAC9D,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC;gBACjC,KAAK,CAAC,kBAAkB,GAAG,cAAc,CAAC,KAAK,CAAC;gBAChD,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAY,cAAc,CAAC,GAAG,CAAC;gBAC3C,IAAI,MAAM,EAAE,CAAC;oBACT,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;wBAClC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;4BAC7B,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,0CAA0C,CAAC;wBACnG,CAAC;oBACL,CAAC;oBACD,SAAS;gBACb,CAAC;gBACD,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;oBAC1B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;wBAClC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;4BAC7B,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,kDAAkD,CAAC;wBAC3G,CAAC;wBACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;oBACD,SAAS;gBACb,CAAC;gBACD,MAAM,SAAS,GAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;gBAC7D,IAAI,SAAS,EAAE,CAAC;oBACZ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;wBAClC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;4BAC7B,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,0DAA0D,CAAC;wBACnH,CAAC;oBACL,CAAC;oBACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,SAAS;gBACb,CAAC;gBACD,MAAM,SAAS,GAAY,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;gBAC5D,IAAI,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC/C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;wBAC7B,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,0DAA0D,CAAC;oBACnH,CAAC;gBACL,CAAC;gBACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC;QACD,MAAM,aAAa,GAA8B,EAAE,CAAC;QACpD,IAAI,CAAC,GAAW,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACZ,MAAM,KAAK,GAA4B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/B,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,CAAC,EAAE,CAAC;QACR,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM;YACV,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACxE,MAAM,IAAI,GAAgB,IAAI,GAAG,EAAU,CAAC;gBAC5C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC/B,MAAM,UAAU,GAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;oBAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;wBACd,SAAS;oBACb,CAAC;oBACD,MAAM,GAAG,GAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBAChB,YAAY,GAAG,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBAC9H,MAAM;oBACV,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;gBACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACxE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC5D,IAAI,EAAE,GAAW,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;oBACrD,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;wBACb,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;wBAC3C,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;4BACxC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACvC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gCAC7B,MAAM,MAAM,GAAgB,IAAI,GAAG,EAAU,CAAC;gCAC9C,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oCAC5B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;gCAClC,CAAC;gCACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oCAC/B,MAAM,UAAU,GAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;oCAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;wCACd,SAAS;oCACb,CAAC;oCACD,MAAM,GAAG,GAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oCACzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wCACnB,YAAY,GAAG,aAAa,GAAG,KAAK,CAAC,cAAc,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,2BAA2B,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC;wCACpJ,MAAM;oCACV,CAAC;gCACL,CAAC;4BACL,CAAC;wBACL,CAAC;wBACD,EAAE,EAAE,CAAC;oBACT,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM;YACV,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,SAAS,GAAuB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;gBAC7D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC1B,MAAM,SAAS,GAAiD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAClG,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;wBAC1B,MAAM,MAAM,GAAgB,IAAI,GAAG,EAAU,CAAC;wBAC9C,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;4BACzB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;wBAClC,CAAC;wBACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;4BAC/B,MAAM,UAAU,GAAY,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;4BAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;gCACd,SAAS;4BACb,CAAC;4BACD,MAAM,GAAG,GAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BACzC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gCACnB,YAAY,GAAG,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,2BAA2B,GAAG,SAAS,GAAG,GAAG,CAAC;gCACzI,MAAM;4BACV,CAAC;wBACL,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBACrH,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,YAAY,KAAK,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;gBAC1C,YAAY,GAAG,aAAa,GAAG,KAAK,CAAC,cAAc,GAAG,0BAA0B,GAAG,KAAK,CAAC,KAAK,GAAG,iCAAiC,CAAC;YACvI,CAAC;YACD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AA1xCD,sCA0xCC"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| export declare abstract class SchemaParticle { | ||
| minOccurs: number; | ||
| maxOccurs: number | 'unbounded'; | ||
| constructor(minOccurs?: number, maxOccurs?: number | 'unbounded'); | ||
| abstract matchOnce(children: string[], pos: number, nsMap?: Map<string, string>): number[]; | ||
| matchRepeated(children: string[], startPos: number, nsMap?: Map<string, string>): number[]; | ||
| } |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SchemaParticle = void 0; | ||
| class SchemaParticle { | ||
| minOccurs; | ||
| maxOccurs; | ||
| constructor(minOccurs = 1, maxOccurs = 1) { | ||
| this.minOccurs = minOccurs; | ||
| this.maxOccurs = maxOccurs; | ||
| } | ||
| matchRepeated(children, startPos, nsMap) { | ||
| const max = this.maxOccurs === 'unbounded' ? children.length + 1 : this.maxOccurs; | ||
| let currentPositions = new Set([startPos]); | ||
| const results = new Set(); | ||
| if (this.minOccurs === 0) { | ||
| results.add(startPos); | ||
| } | ||
| for (let count = 1; count <= max; count++) { | ||
| const nextPositions = new Set(); | ||
| for (const pos of currentPositions) { | ||
| const matched = this.matchOnce(children, pos, nsMap); | ||
| for (const p of matched) { | ||
| nextPositions.add(p); | ||
| } | ||
| } | ||
| if (nextPositions.size === 0) { | ||
| break; | ||
| } | ||
| if (count >= this.minOccurs) { | ||
| for (const p of nextPositions) { | ||
| results.add(p); | ||
| } | ||
| } | ||
| // Only carry positions that made forward progress to avoid | ||
| // infinite loops when a particle can match zero children. | ||
| const advancingPositions = new Set(); | ||
| for (const p of nextPositions) { | ||
| let isNew = true; | ||
| for (const cp of currentPositions) { | ||
| if (cp === p) { | ||
| isNew = false; | ||
| break; | ||
| } | ||
| } | ||
| if (isNew) { | ||
| advancingPositions.add(p); | ||
| } | ||
| } | ||
| if (advancingPositions.size === 0) { | ||
| break; | ||
| } | ||
| currentPositions = advancingPositions; | ||
| } | ||
| return Array.from(results); | ||
| } | ||
| } | ||
| exports.SchemaParticle = SchemaParticle; | ||
| //# sourceMappingURL=SchemaParticle.js.map |
| {"version":3,"file":"SchemaParticle.js","sourceRoot":"","sources":["../../../ts/schema/SchemaParticle.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;iFAUiF;;;AAEjF,MAAsB,cAAc;IAEhC,SAAS,CAAS;IAClB,SAAS,CAAuB;IAEhC,YAAY,YAAoB,CAAC,EAAE,YAAkC,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAID,aAAa,CAAC,QAAkB,EAAE,QAAgB,EAAE,KAA2B;QAC3E,MAAM,GAAG,GAAW,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1F,IAAI,gBAAgB,GAAgB,IAAI,GAAG,CAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChE,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAU,CAAC;QAE/C,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;YAChD,MAAM,aAAa,GAAgB,IAAI,GAAG,EAAU,CAAC;YACrD,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAa,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC/D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACtB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;YACD,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM;YACV,CAAC;YACD,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC1B,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;YACL,CAAC;YACD,2DAA2D;YAC3D,0DAA0D;YAC1D,MAAM,kBAAkB,GAAgB,IAAI,GAAG,EAAU,CAAC;YAC1D,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC5B,IAAI,KAAK,GAAY,IAAI,CAAC;gBAC1B,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;oBAChC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;wBACX,KAAK,GAAG,KAAK,CAAC;wBACd,MAAM;oBACV,CAAC;gBACL,CAAC;gBACD,IAAI,KAAK,EAAE,CAAC;oBACR,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC;YACL,CAAC;YACD,IAAI,kBAAkB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM;YACV,CAAC;YACD,gBAAgB,GAAG,kBAAkB,CAAC;QAC1C,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;CACJ;AA5DD,wCA4DC"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export declare class SchemaSequence extends SchemaParticle { | ||
| particles: SchemaParticle[]; | ||
| constructor(particles: SchemaParticle[], minOccurs?: number, maxOccurs?: number | 'unbounded'); | ||
| matchOnce(children: string[], pos: number, nsMap?: Map<string, string>): number[]; | ||
| } |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SchemaSequence = void 0; | ||
| const SchemaParticle_js_1 = require("./SchemaParticle.js"); | ||
| class SchemaSequence extends SchemaParticle_js_1.SchemaParticle { | ||
| particles; | ||
| constructor(particles, minOccurs = 1, maxOccurs = 1) { | ||
| super(minOccurs, maxOccurs); | ||
| this.particles = particles; | ||
| } | ||
| matchOnce(children, pos, nsMap) { | ||
| let positions = new Set([pos]); | ||
| for (const particle of this.particles) { | ||
| const nextPositions = new Set(); | ||
| for (const p of positions) { | ||
| const matched = particle.matchRepeated(children, p, nsMap); | ||
| for (const m of matched) { | ||
| nextPositions.add(m); | ||
| } | ||
| } | ||
| positions = nextPositions; | ||
| if (positions.size === 0) { | ||
| break; | ||
| } | ||
| } | ||
| return Array.from(positions); | ||
| } | ||
| } | ||
| exports.SchemaSequence = SchemaSequence; | ||
| //# sourceMappingURL=SchemaSequence.js.map |
| {"version":3,"file":"SchemaSequence.js","sourceRoot":"","sources":["../../../ts/schema/SchemaSequence.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;iFAUiF;;;AAEjF,2DAAqD;AAErD,MAAa,cAAe,SAAQ,kCAAc;IAE9C,SAAS,CAAmB;IAE5B,YAAY,SAA2B,EAAE,YAAoB,CAAC,EAAE,YAAkC,CAAC;QAC/F,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,QAAkB,EAAE,GAAW,EAAE,KAA2B;QAClE,IAAI,SAAS,GAAgB,IAAI,GAAG,CAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,aAAa,GAAgB,IAAI,GAAG,EAAU,CAAC;YACrD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAa,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACrE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACtB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;YACD,SAAS,GAAG,aAAa,CAAC;YAC1B,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;CACJ;AA1BD,wCA0BC"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| export interface SchemaFacets { | ||
| enumeration?: string[]; | ||
| patterns?: string[][]; | ||
| minExclusive?: string; | ||
| maxExclusive?: string; | ||
| minInclusive?: string; | ||
| maxInclusive?: string; | ||
| length?: number; | ||
| minLength?: number; | ||
| maxLength?: number; | ||
| totalDigits?: number; | ||
| fractionDigits?: number; | ||
| whiteSpace?: string; | ||
| isList?: boolean; | ||
| } | ||
| export declare class SchemaTypeValidator { | ||
| static validateFacets(value: string, facets: SchemaFacets, typeName?: string): boolean; | ||
| static validate(value: string, typeName: string, instanceNs?: Map<string, string>): boolean; | ||
| private static isAnyURI; | ||
| private static isBoolean; | ||
| private static isDecimal; | ||
| private static isFloat; | ||
| private static isInteger; | ||
| private static isValidTimezone; | ||
| private static isLeapYear; | ||
| private static daysInMonth; | ||
| private static isDateTimeStamp; | ||
| private static isDayTimeDuration; | ||
| private static isYearMonthDuration; | ||
| private static isDateTime; | ||
| private static isDate; | ||
| private static isTime; | ||
| private static isDuration; | ||
| private static isGYear; | ||
| private static isGYearMonth; | ||
| private static isGMonth; | ||
| private static isGMonthDay; | ||
| private static isGDay; | ||
| private static isLanguage; | ||
| private static isQName; | ||
| private static isWhitespaceList; | ||
| static getCompareFunction(typeName?: string): (a: string, b: string) => number; | ||
| private static dateTimeToMs; | ||
| private static dateToMs; | ||
| private static timeToMs; | ||
| private static compareDateTimes; | ||
| private static compareDates; | ||
| private static compareTimes; | ||
| private static compareGYears; | ||
| private static compareGYearMonths; | ||
| private static compareGMonthDays; | ||
| private static compareGMonths; | ||
| private static compareGDays; | ||
| private static parseDuration; | ||
| private static durationToSeconds; | ||
| private static compareDurations; | ||
| private static compareNumericOrLexicographic; | ||
| static canonicalize(value: string, typeName: string, nsMap?: Map<string, string>): string; | ||
| private static canonicalDecimal; | ||
| private static canonicalInteger; | ||
| private static canonicalFloat; | ||
| private static canonicalizeTemporal; | ||
| } |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SchemaTypeValidator = void 0; | ||
| const XMLUtils_js_1 = require("../XMLUtils.js"); | ||
| const XsdRegexTranslator_js_1 = require("./XsdRegexTranslator.js"); | ||
| class SchemaTypeValidator { | ||
| static validateFacets(value, facets, typeName) { | ||
| if (facets.whiteSpace === 'replace') { | ||
| value = value.replaceAll(/[\t\n\r]/g, ' '); | ||
| } | ||
| else if (facets.whiteSpace === 'collapse') { | ||
| value = value.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| } | ||
| if (facets.enumeration && facets.enumeration.length > 0) { | ||
| if (facets.enumeration.indexOf(value) === -1) { | ||
| return false; | ||
| } | ||
| } | ||
| if (facets.patterns && facets.patterns.length > 0) { | ||
| for (let g = 0; g < facets.patterns.length; g++) { | ||
| const group = facets.patterns[g]; | ||
| let groupMatched = false; | ||
| for (let i = 0; i < group.length; i++) { | ||
| if (XsdRegexTranslator_js_1.XsdRegexTranslator.toRegExp(group[i]).test(value)) { | ||
| groupMatched = true; | ||
| break; | ||
| } | ||
| } | ||
| if (!groupMatched) { | ||
| return false; | ||
| } | ||
| } | ||
| } | ||
| if (facets.minExclusive !== undefined || facets.maxExclusive !== undefined || | ||
| facets.minInclusive !== undefined || facets.maxInclusive !== undefined) { | ||
| const localTypeForRange = typeName !== undefined | ||
| ? (typeName.indexOf(':') !== -1 ? typeName.substring(typeName.indexOf(':') + 1) : typeName) | ||
| : ''; | ||
| if (localTypeForRange === 'duration') { | ||
| if (facets.minExclusive !== undefined && | ||
| SchemaTypeValidator.compareDurations(value, facets.minExclusive) !== null && | ||
| SchemaTypeValidator.compareDurations(value, facets.minExclusive) <= 0) { | ||
| return false; | ||
| } | ||
| if (facets.maxExclusive !== undefined && | ||
| SchemaTypeValidator.compareDurations(value, facets.maxExclusive) !== null && | ||
| SchemaTypeValidator.compareDurations(value, facets.maxExclusive) >= 0) { | ||
| return false; | ||
| } | ||
| if (facets.minInclusive !== undefined && | ||
| SchemaTypeValidator.compareDurations(value, facets.minInclusive) !== null && | ||
| SchemaTypeValidator.compareDurations(value, facets.minInclusive) < 0) { | ||
| return false; | ||
| } | ||
| if (facets.maxInclusive !== undefined && | ||
| SchemaTypeValidator.compareDurations(value, facets.maxInclusive) !== null && | ||
| SchemaTypeValidator.compareDurations(value, facets.maxInclusive) > 0) { | ||
| return false; | ||
| } | ||
| } | ||
| else { | ||
| const compare = SchemaTypeValidator.getCompareFunction(typeName); | ||
| if (facets.minExclusive !== undefined && compare(value, facets.minExclusive) <= 0) { | ||
| return false; | ||
| } | ||
| if (facets.maxExclusive !== undefined && compare(value, facets.maxExclusive) >= 0) { | ||
| return false; | ||
| } | ||
| if (facets.minInclusive !== undefined && compare(value, facets.minInclusive) < 0) { | ||
| return false; | ||
| } | ||
| if (facets.maxInclusive !== undefined && compare(value, facets.maxInclusive) > 0) { | ||
| return false; | ||
| } | ||
| } | ||
| } | ||
| const localTypeName = typeName !== undefined | ||
| ? (typeName.indexOf(':') !== -1 ? typeName.substring(typeName.indexOf(':') + 1) : typeName) | ||
| : ''; | ||
| const noLengthFacets = localTypeName === 'QName' || localTypeName === 'NOTATION'; | ||
| if (!noLengthFacets) { | ||
| let effectiveLength; | ||
| if (facets.isList) { | ||
| const trimmed = value.trim(); | ||
| effectiveLength = trimmed.length === 0 ? 0 : trimmed.split(/\s+/).length; | ||
| } | ||
| else if (localTypeName === 'base64Binary') { | ||
| const clean = value.replaceAll(/\s/g, ''); | ||
| let padding = 0; | ||
| for (let i = clean.length - 1; i >= 0 && clean[i] === '='; i--) { | ||
| padding++; | ||
| } | ||
| effectiveLength = Math.floor(clean.length * 3 / 4) - padding; | ||
| } | ||
| else if (localTypeName === 'hexBinary') { | ||
| effectiveLength = Math.floor(value.length / 2); | ||
| } | ||
| else { | ||
| effectiveLength = Array.from(value).length; | ||
| } | ||
| if (facets.length !== undefined && effectiveLength !== facets.length) { | ||
| return false; | ||
| } | ||
| if (facets.minLength !== undefined && effectiveLength < facets.minLength) { | ||
| return false; | ||
| } | ||
| if (facets.maxLength !== undefined && effectiveLength > facets.maxLength) { | ||
| return false; | ||
| } | ||
| } | ||
| if (facets.totalDigits !== undefined || facets.fractionDigits !== undefined) { | ||
| const s = value.startsWith('+') || value.startsWith('-') ? value.substring(1) : value; | ||
| const dotIdx = s.indexOf('.'); | ||
| const rawInt = dotIdx === -1 ? s : s.substring(0, dotIdx); | ||
| const rawFrac = dotIdx === -1 ? '' : s.substring(dotIdx + 1); | ||
| let canonIntStart = 0; | ||
| while (canonIntStart < rawInt.length - 1 && rawInt[canonIntStart] === '0') { | ||
| canonIntStart++; | ||
| } | ||
| const canonInt = rawInt.length === 0 ? '0' : rawInt.substring(canonIntStart); | ||
| let canonFracEnd = rawFrac.length; | ||
| while (canonFracEnd > 0 && rawFrac[canonFracEnd - 1] === '0') { | ||
| canonFracEnd--; | ||
| } | ||
| const canonFrac = rawFrac.substring(0, canonFracEnd); | ||
| const total = canonInt.length + canonFrac.length; | ||
| if (facets.totalDigits !== undefined && total > facets.totalDigits) { | ||
| return false; | ||
| } | ||
| if (facets.fractionDigits !== undefined && canonFrac.length > facets.fractionDigits) { | ||
| return false; | ||
| } | ||
| } | ||
| return true; | ||
| } | ||
| static validate(value, typeName, instanceNs) { | ||
| const colonIndex = typeName.indexOf(':'); | ||
| const localType = colonIndex !== -1 ? typeName.substring(colonIndex + 1) : typeName; | ||
| switch (localType) { | ||
| case 'string': | ||
| return true; | ||
| case 'error': | ||
| return false; | ||
| case 'anyURI': | ||
| return SchemaTypeValidator.isAnyURI(value); | ||
| case 'anySimpleType': | ||
| case 'anyAtomicType': | ||
| return true; | ||
| case 'normalizedString': | ||
| return !/[\t\n\r]/.test(value); | ||
| case 'token': | ||
| return value === value.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| case 'hexBinary': { | ||
| const cleanHex = value.replaceAll(/\s/g, ''); | ||
| return cleanHex.length % 2 === 0 && /^[0-9A-Fa-f]*$/.test(cleanHex); | ||
| } | ||
| case 'base64Binary': { | ||
| const cleanB64 = value.replaceAll(/\s/g, ''); | ||
| if (cleanB64.length % 4 !== 0) { | ||
| return false; | ||
| } | ||
| if (!/^[A-Za-z0-9+/]*={0,2}$/.test(cleanB64)) { | ||
| return false; | ||
| } | ||
| const eqIdx = cleanB64.indexOf('='); | ||
| return eqIdx === -1 || eqIdx >= cleanB64.length - 2; | ||
| } | ||
| case 'boolean': | ||
| return SchemaTypeValidator.isBoolean(value); | ||
| // Decimal/float | ||
| case 'decimal': | ||
| return SchemaTypeValidator.isDecimal(value); | ||
| case 'float': | ||
| case 'double': | ||
| return SchemaTypeValidator.isFloat(value); | ||
| // Integer family | ||
| case 'integer': | ||
| case 'long': | ||
| case 'int': | ||
| case 'short': | ||
| case 'byte': | ||
| case 'unsignedLong': | ||
| case 'unsignedInt': | ||
| case 'unsignedShort': | ||
| case 'unsignedByte': | ||
| case 'nonNegativeInteger': | ||
| case 'positiveInteger': | ||
| case 'nonPositiveInteger': | ||
| case 'negativeInteger': | ||
| return SchemaTypeValidator.isInteger(value, localType); | ||
| // Date/time primitives | ||
| case 'dateTime': | ||
| return SchemaTypeValidator.isDateTime(value); | ||
| case 'dateTimeStamp': | ||
| return SchemaTypeValidator.isDateTimeStamp(value); | ||
| case 'date': | ||
| return SchemaTypeValidator.isDate(value); | ||
| case 'time': | ||
| return SchemaTypeValidator.isTime(value); | ||
| case 'duration': | ||
| return SchemaTypeValidator.isDuration(value); | ||
| case 'dayTimeDuration': | ||
| return SchemaTypeValidator.isDayTimeDuration(value); | ||
| case 'yearMonthDuration': | ||
| return SchemaTypeValidator.isYearMonthDuration(value); | ||
| case 'gYear': | ||
| return SchemaTypeValidator.isGYear(value); | ||
| case 'gYearMonth': | ||
| return SchemaTypeValidator.isGYearMonth(value); | ||
| case 'gMonth': | ||
| return SchemaTypeValidator.isGMonth(value); | ||
| case 'gMonthDay': | ||
| return SchemaTypeValidator.isGMonthDay(value); | ||
| case 'gDay': | ||
| return SchemaTypeValidator.isGDay(value); | ||
| // Name / token types | ||
| case 'Name': | ||
| return XMLUtils_js_1.XMLUtils.isValidXMLName(value); | ||
| case 'NCName': | ||
| case 'ID': | ||
| case 'IDREF': | ||
| case 'ENTITY': | ||
| return XMLUtils_js_1.XMLUtils.isValidNCName(value); | ||
| case 'IDREFS': | ||
| case 'ENTITIES': | ||
| return SchemaTypeValidator.isWhitespaceList(value, XMLUtils_js_1.XMLUtils.isValidNCName); | ||
| case 'NMTOKEN': | ||
| return XMLUtils_js_1.XMLUtils.isValidNMTOKEN(value); | ||
| case 'NMTOKENS': | ||
| return SchemaTypeValidator.isWhitespaceList(value, XMLUtils_js_1.XMLUtils.isValidNMTOKEN); | ||
| case 'language': | ||
| return SchemaTypeValidator.isLanguage(value); | ||
| case 'QName': | ||
| case 'NOTATION': | ||
| return SchemaTypeValidator.isQName(value, instanceNs); | ||
| default: | ||
| return true; | ||
| } | ||
| } | ||
| static isAnyURI(value) { | ||
| // XSD anyURI lexical space: any string that is a valid IRI reference per RFC 3987. | ||
| // Reject control characters (U+0000-U+001F, U+007F) which are never allowed in an IRI. | ||
| // Reject unbalanced brackets and fragment-invalid sequences. | ||
| if (/[\x00-\x1F\x7F]/.test(value)) { | ||
| return false; | ||
| } | ||
| // Check balanced square brackets (used only in IPv6 host). | ||
| const opens = (value.match(/\[/g) || []).length; | ||
| const closes = (value.match(/\]/g) || []).length; | ||
| if (opens !== closes) { | ||
| return false; | ||
| } | ||
| // Percent-encoded octets must be well-formed: %XX where X is hex. | ||
| const pct = /%(?![0-9A-Fa-f]{2})/; | ||
| if (pct.test(value)) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isBoolean(value) { | ||
| return value === 'true' || value === 'false' || value === '1' || value === '0'; | ||
| } | ||
| static isDecimal(value) { | ||
| let s = value; | ||
| if (s.startsWith('+') || s.startsWith('-')) { | ||
| s = s.substring(1); | ||
| } | ||
| if (s.length === 0) { | ||
| return false; | ||
| } | ||
| const dot = s.indexOf('.'); | ||
| if (dot === -1) { | ||
| return /^[0-9]+$/.test(s); | ||
| } | ||
| const intPart = s.substring(0, dot); | ||
| const fracPart = s.substring(dot + 1); | ||
| if (intPart.length === 0 && fracPart.length === 0) { | ||
| return false; | ||
| } | ||
| if (intPart.length > 0 && !/^[0-9]+$/.test(intPart)) { | ||
| return false; | ||
| } | ||
| if (fracPart.length > 0 && !/^[0-9]+$/.test(fracPart)) { | ||
| return false; | ||
| } | ||
| return intPart.length > 0 || fracPart.length > 0; | ||
| } | ||
| static isFloat(value) { | ||
| if (value === 'INF' || value === '+INF' || value === '-INF' || value === 'NaN') { | ||
| return true; | ||
| } | ||
| let s = value; | ||
| if (s.startsWith('+') || s.startsWith('-')) { | ||
| s = s.substring(1); | ||
| } | ||
| if (s.length === 0) { | ||
| return false; | ||
| } | ||
| const eIdx = s.search(/[eE]/); | ||
| let mantissa = s; | ||
| if (eIdx !== -1) { | ||
| const exp = s.substring(eIdx + 1); | ||
| mantissa = s.substring(0, eIdx); | ||
| if (exp.length === 0) { | ||
| return false; | ||
| } | ||
| const expDigits = (exp.startsWith('+') || exp.startsWith('-')) ? exp.substring(1) : exp; | ||
| if (expDigits.length === 0 || !/^[0-9]+$/.test(expDigits)) { | ||
| return false; | ||
| } | ||
| } | ||
| if (mantissa.length === 0) { | ||
| return false; | ||
| } | ||
| const dot = mantissa.indexOf('.'); | ||
| if (dot === -1) { | ||
| return /^[0-9]+$/.test(mantissa); | ||
| } | ||
| const intPart = mantissa.substring(0, dot); | ||
| const fracPart = mantissa.substring(dot + 1); | ||
| if (intPart.length === 0 && fracPart.length === 0) { | ||
| return false; | ||
| } | ||
| if (intPart.length > 0 && !/^[0-9]+$/.test(intPart)) { | ||
| return false; | ||
| } | ||
| if (fracPart.length > 0 && !/^[0-9]+$/.test(fracPart)) { | ||
| return false; | ||
| } | ||
| return intPart.length > 0 || fracPart.length > 0; | ||
| } | ||
| static isInteger(value, typeName) { | ||
| if (!/^[+-]?[0-9]+$/.test(value)) { | ||
| return false; | ||
| } | ||
| switch (typeName) { | ||
| case 'nonNegativeInteger': | ||
| return !value.startsWith('-'); | ||
| case 'unsignedLong': { | ||
| if (value.startsWith('-')) { | ||
| return false; | ||
| } | ||
| const n = BigInt(value.replace(/^\+/, '')); | ||
| return n <= BigInt('18446744073709551615'); | ||
| } | ||
| case 'long': { | ||
| const n = BigInt(value.replace(/^\+/, '')); | ||
| return n >= BigInt('-9223372036854775808') && n <= BigInt('9223372036854775807'); | ||
| } | ||
| case 'positiveInteger': | ||
| return !value.startsWith('-') && value.replace(/^\+/, '') !== '0'; | ||
| case 'nonPositiveInteger': { | ||
| if (value.startsWith('-')) { | ||
| return true; | ||
| } | ||
| const stripped = value.replace(/^\+/, ''); | ||
| return stripped === '0'; | ||
| } | ||
| case 'negativeInteger': | ||
| return value.startsWith('-'); | ||
| case 'byte': { | ||
| const n = Number.parseInt(value, 10); | ||
| return n >= -128 && n <= 127; | ||
| } | ||
| case 'short': { | ||
| const n = Number.parseInt(value, 10); | ||
| return n >= -32768 && n <= 32767; | ||
| } | ||
| case 'int': { | ||
| const n = Number.parseInt(value, 10); | ||
| return n >= -2147483648 && n <= 2147483647; | ||
| } | ||
| case 'unsignedByte': { | ||
| const n = Number.parseInt(value, 10); | ||
| return n >= 0 && n <= 255; | ||
| } | ||
| case 'unsignedShort': { | ||
| const n = Number.parseInt(value, 10); | ||
| return n >= 0 && n <= 65535; | ||
| } | ||
| case 'unsignedInt': { | ||
| const n = Number.parseInt(value, 10); | ||
| return n >= 0 && n <= 4294967295; | ||
| } | ||
| default: | ||
| return true; | ||
| } | ||
| } | ||
| static isValidTimezone(tz) { | ||
| if (tz === undefined || tz === 'Z') { | ||
| return true; | ||
| } | ||
| const tzM = tz.match(/^([+-])([0-9]{2}):([0-9]{2})$/); | ||
| if (!tzM) { | ||
| return false; | ||
| } | ||
| const offsetMinutes = Number.parseInt(tzM[2], 10) * 60 + Number.parseInt(tzM[3], 10); | ||
| return offsetMinutes <= 840; | ||
| } | ||
| static isLeapYear(year) { | ||
| return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; | ||
| } | ||
| static daysInMonth(year, month) { | ||
| const days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; | ||
| if (month === 2 && SchemaTypeValidator.isLeapYear(year)) { | ||
| return 29; | ||
| } | ||
| return days[month]; | ||
| } | ||
| static isDateTimeStamp(value) { | ||
| const m = value.match(/^(-?)([0-9]{4,})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (Number.parseInt(m[2], 10) === 0) { | ||
| return false; | ||
| } | ||
| const year = Number.parseInt(m[2], 10) * (m[1] === '-' ? -1 : 1); | ||
| const month = Number.parseInt(m[3], 10); | ||
| const day = Number.parseInt(m[4], 10); | ||
| const hour = Number.parseInt(m[5], 10); | ||
| const minute = Number.parseInt(m[6], 10); | ||
| const second = Number.parseFloat(m[7]); | ||
| if (month < 1 || month > 12) { | ||
| return false; | ||
| } | ||
| if (day < 1 || day > SchemaTypeValidator.daysInMonth(year, month)) { | ||
| return false; | ||
| } | ||
| if (hour === 24) { | ||
| if (minute !== 0 || second !== 0) { | ||
| return false; | ||
| } | ||
| } | ||
| else if (hour > 23) { | ||
| return false; | ||
| } | ||
| if (minute > 59 || second >= 60) { | ||
| return false; | ||
| } | ||
| return SchemaTypeValidator.isValidTimezone(m[9]); | ||
| } | ||
| static isDayTimeDuration(value) { | ||
| if (value === 'P' || value === '-P') { | ||
| return false; | ||
| } | ||
| const m = value.match(/^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\.[0-9]+)?S)?)?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (m[2] !== undefined && !m[3] && !m[4] && !m[5]) { | ||
| return false; | ||
| } | ||
| if (!m[1] && !m[2]) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isYearMonthDuration(value) { | ||
| if (value === 'P' || value === '-P') { | ||
| return false; | ||
| } | ||
| const m = value.match(/^-?P([0-9]+Y)?([0-9]+M)?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (!m[1] && !m[2]) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isDateTime(value) { | ||
| const m = value.match(/^(-?)([0-9]{4,})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (Number.parseInt(m[2], 10) === 0) { | ||
| return false; | ||
| } | ||
| const year = Number.parseInt(m[2], 10) * (m[1] === '-' ? -1 : 1); | ||
| const month = Number.parseInt(m[3], 10); | ||
| const day = Number.parseInt(m[4], 10); | ||
| const hour = Number.parseInt(m[5], 10); | ||
| const minute = Number.parseInt(m[6], 10); | ||
| const second = Number.parseFloat(m[7]); | ||
| if (month < 1 || month > 12) { | ||
| return false; | ||
| } | ||
| if (day < 1 || day > SchemaTypeValidator.daysInMonth(year, month)) { | ||
| return false; | ||
| } | ||
| if (hour === 24) { | ||
| if (minute !== 0 || second !== 0) { | ||
| return false; | ||
| } | ||
| } | ||
| else if (hour > 23) { | ||
| return false; | ||
| } | ||
| if (minute > 59 || second >= 60) { | ||
| return false; | ||
| } | ||
| if (!SchemaTypeValidator.isValidTimezone(m[9])) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isDate(value) { | ||
| const m = value.match(/^(-?)([0-9]{4,})-([0-9]{2})-([0-9]{2})(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (Number.parseInt(m[2], 10) === 0) { | ||
| return false; | ||
| } | ||
| const year = Number.parseInt(m[2], 10) * (m[1] === '-' ? -1 : 1); | ||
| const month = Number.parseInt(m[3], 10); | ||
| const day = Number.parseInt(m[4], 10); | ||
| if (month < 1 || month > 12) { | ||
| return false; | ||
| } | ||
| if (day < 1 || day > SchemaTypeValidator.daysInMonth(year, month)) { | ||
| return false; | ||
| } | ||
| if (!SchemaTypeValidator.isValidTimezone(m[5])) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isTime(value) { | ||
| const m = value.match(/^([0-9]{2}):([0-9]{2}):([0-9]{2})(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| const hour = Number.parseInt(m[1], 10); | ||
| const minute = Number.parseInt(m[2], 10); | ||
| const second = Number.parseFloat(m[3]); | ||
| if (hour === 24) { | ||
| if (minute !== 0 || second !== 0) { | ||
| return false; | ||
| } | ||
| } | ||
| else if (hour > 23) { | ||
| return false; | ||
| } | ||
| if (minute > 59 || second >= 60) { | ||
| return false; | ||
| } | ||
| if (!SchemaTypeValidator.isValidTimezone(m[5])) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isDuration(value) { | ||
| if (value === 'P' || value === '-P') { | ||
| return false; | ||
| } | ||
| const m = value.match(/^-?P([0-9]+Y)?([0-9]+M)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\.[0-9]+)?S)?)?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (m[4] !== undefined && !m[5] && !m[6] && !m[7]) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isGYear(value) { | ||
| const m = value.match(/^(-?)([0-9]{4,})(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (Number.parseInt(m[2], 10) === 0) { | ||
| return false; | ||
| } | ||
| return SchemaTypeValidator.isValidTimezone(m[3]); | ||
| } | ||
| static isGYearMonth(value) { | ||
| const m = value.match(/^(-?)([0-9]{4,})-([0-9]{2})(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (Number.parseInt(m[2], 10) === 0) { | ||
| return false; | ||
| } | ||
| const month = Number.parseInt(m[3], 10); | ||
| if (month < 1 || month > 12) { | ||
| return false; | ||
| } | ||
| return SchemaTypeValidator.isValidTimezone(m[4]); | ||
| } | ||
| static isGMonth(value) { | ||
| const m = value.match(/^--([0-9]{2})(--)?(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| const month = Number.parseInt(m[1], 10); | ||
| if (month < 1 || month > 12) { | ||
| return false; | ||
| } | ||
| return SchemaTypeValidator.isValidTimezone(m[3]); | ||
| } | ||
| static isGMonthDay(value) { | ||
| const m = value.match(/^--([0-9]{2})-([0-9]{2})(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| const month = Number.parseInt(m[1], 10); | ||
| const day = Number.parseInt(m[2], 10); | ||
| if (month < 1 || month > 12) { | ||
| return false; | ||
| } | ||
| if (day < 1 || day > SchemaTypeValidator.daysInMonth(2000, month)) { | ||
| return false; | ||
| } | ||
| return SchemaTypeValidator.isValidTimezone(m[3]); | ||
| } | ||
| static isGDay(value) { | ||
| const m = value.match(/^---([0-9]{2})(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| const day = Number.parseInt(m[1], 10); | ||
| if (day < 1 || day > 31) { | ||
| return false; | ||
| } | ||
| return SchemaTypeValidator.isValidTimezone(m[2]); | ||
| } | ||
| static isLanguage(value) { | ||
| return /^[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*$/.test(value); | ||
| } | ||
| static isQName(value, instanceNs) { | ||
| const parts = value.split(':'); | ||
| if (parts.length === 1) { | ||
| return XMLUtils_js_1.XMLUtils.isValidNCName(parts[0]); | ||
| } | ||
| if (parts.length === 2) { | ||
| if (!XMLUtils_js_1.XMLUtils.isValidNCName(parts[0]) || !XMLUtils_js_1.XMLUtils.isValidNCName(parts[1])) { | ||
| return false; | ||
| } | ||
| if (instanceNs !== undefined && !instanceNs.has(parts[0])) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| return false; | ||
| } | ||
| static isWhitespaceList(value, checker) { | ||
| const trimmed = value.trim(); | ||
| if (trimmed.length === 0) { | ||
| return false; | ||
| } | ||
| const tokens = trimmed.split(/\s+/); | ||
| for (const token of tokens) { | ||
| if (!checker(token)) { | ||
| return false; | ||
| } | ||
| } | ||
| return true; | ||
| } | ||
| static getCompareFunction(typeName) { | ||
| const colonIndex = typeName ? typeName.indexOf(':') : -1; | ||
| const local = typeName ? (colonIndex !== -1 ? typeName.substring(colonIndex + 1) : typeName) : ''; | ||
| switch (local) { | ||
| case 'dateTime': return SchemaTypeValidator.compareDateTimes; | ||
| case 'date': return SchemaTypeValidator.compareDates; | ||
| case 'time': return SchemaTypeValidator.compareTimes; | ||
| case 'gYear': return SchemaTypeValidator.compareGYears; | ||
| case 'gYearMonth': return SchemaTypeValidator.compareGYearMonths; | ||
| case 'gMonthDay': return SchemaTypeValidator.compareGMonthDays; | ||
| case 'gMonth': return SchemaTypeValidator.compareGMonths; | ||
| case 'gDay': return SchemaTypeValidator.compareGDays; | ||
| default: return SchemaTypeValidator.compareNumericOrLexicographic; | ||
| } | ||
| } | ||
| static dateTimeToMs(s) { | ||
| const negative = s.startsWith('-'); | ||
| const abs = negative ? s.substring(1) : s; | ||
| const tIndex = abs.indexOf('T'); | ||
| if (tIndex === -1) { | ||
| return Number.NaN; | ||
| } | ||
| const datePart = abs.substring(0, tIndex); | ||
| let rest = abs.substring(tIndex + 1); | ||
| let tzOffsetMs = 0; | ||
| if (rest.endsWith('Z')) { | ||
| rest = rest.substring(0, rest.length - 1); | ||
| } | ||
| else { | ||
| const tzMatch = rest.match(/([+-])([0-9]{2}):([0-9]{2})$/); | ||
| if (tzMatch) { | ||
| rest = rest.substring(0, rest.length - tzMatch[0].length); | ||
| const sign = tzMatch[1] === '+' ? 1 : -1; | ||
| tzOffsetMs = sign * (Number.parseInt(tzMatch[2], 10) * 60 + Number.parseInt(tzMatch[3], 10)) * 60000; | ||
| } | ||
| } | ||
| const dateParts = datePart.split('-'); | ||
| const year = Number.parseInt(dateParts[0], 10) * (negative ? -1 : 1); | ||
| const month = Number.parseInt(dateParts[1], 10) - 1; | ||
| const day = Number.parseInt(dateParts[2], 10); | ||
| const c1 = rest.indexOf(':'); | ||
| const c2 = rest.indexOf(':', c1 + 1); | ||
| const hours = Number.parseInt(rest.substring(0, c1), 10); | ||
| const minutes = Number.parseInt(rest.substring(c1 + 1, c2), 10); | ||
| const secFloat = Number.parseFloat(rest.substring(c2 + 1)); | ||
| const secInt = Math.floor(secFloat); | ||
| const ms = Math.round((secFloat - secInt) * 1000); | ||
| const d = new Date(Date.UTC(year, month, day, hours, minutes, secInt, ms)); | ||
| if (Number.isNaN(d.getTime())) { | ||
| return Number.NaN; | ||
| } | ||
| // Subtract tzOffsetMs: a value of +05:00 means local = UTC+5, so UTC = local - 5 h. | ||
| return d.getTime() - tzOffsetMs; | ||
| } | ||
| static dateToMs(s) { | ||
| const negative = s.startsWith('-'); | ||
| let abs = negative ? s.substring(1) : s; | ||
| let tzOffsetMs = 0; | ||
| if (abs.endsWith('Z')) { | ||
| abs = abs.substring(0, abs.length - 1); | ||
| } | ||
| else { | ||
| const tzMatch = abs.match(/([+-])([0-9]{2}):([0-9]{2})$/); | ||
| if (tzMatch) { | ||
| abs = abs.substring(0, abs.length - tzMatch[0].length); | ||
| const sign = tzMatch[1] === '+' ? 1 : -1; | ||
| tzOffsetMs = sign * (Number.parseInt(tzMatch[2], 10) * 60 + Number.parseInt(tzMatch[3], 10)) * 60000; | ||
| } | ||
| } | ||
| const parts = abs.split('-'); | ||
| const year = Number.parseInt(parts[0], 10) * (negative ? -1 : 1); | ||
| const month = Number.parseInt(parts[1], 10) - 1; | ||
| const day = Number.parseInt(parts[2], 10); | ||
| const d = new Date(Date.UTC(year, month, day, 0, 0, 0, 0)); | ||
| if (Number.isNaN(d.getTime())) { | ||
| return Number.NaN; | ||
| } | ||
| return d.getTime() - tzOffsetMs; | ||
| } | ||
| static timeToMs(s) { | ||
| let rest = s; | ||
| let tzOffsetMs = 0; | ||
| if (rest.endsWith('Z')) { | ||
| rest = rest.substring(0, rest.length - 1); | ||
| } | ||
| else { | ||
| const tzMatch = rest.match(/([+-])([0-9]{2}):([0-9]{2})$/); | ||
| if (tzMatch) { | ||
| rest = rest.substring(0, rest.length - tzMatch[0].length); | ||
| const sign = tzMatch[1] === '+' ? 1 : -1; | ||
| tzOffsetMs = sign * (Number.parseInt(tzMatch[2], 10) * 60 + Number.parseInt(tzMatch[3], 10)) * 60000; | ||
| } | ||
| } | ||
| const c1 = rest.indexOf(':'); | ||
| const c2 = rest.indexOf(':', c1 + 1); | ||
| const hours = Number.parseInt(rest.substring(0, c1), 10); | ||
| const minutes = Number.parseInt(rest.substring(c1 + 1, c2), 10); | ||
| const secFloat = Number.parseFloat(rest.substring(c2 + 1)); | ||
| const secInt = Math.floor(secFloat); | ||
| const ms = Math.round((secFloat - secInt) * 1000); | ||
| return (hours * 3600 + minutes * 60 + secInt) * 1000 + ms - tzOffsetMs; | ||
| } | ||
| static compareDateTimes(a, b) { | ||
| const msA = SchemaTypeValidator.dateTimeToMs(a); | ||
| const msB = SchemaTypeValidator.dateTimeToMs(b); | ||
| if (Number.isNaN(msA) || Number.isNaN(msB)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return msA < msB ? -1 : msA > msB ? 1 : 0; | ||
| } | ||
| static compareDates(a, b) { | ||
| const msA = SchemaTypeValidator.dateToMs(a); | ||
| const msB = SchemaTypeValidator.dateToMs(b); | ||
| if (Number.isNaN(msA) || Number.isNaN(msB)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return msA < msB ? -1 : msA > msB ? 1 : 0; | ||
| } | ||
| static compareTimes(a, b) { | ||
| const msA = SchemaTypeValidator.timeToMs(a); | ||
| const msB = SchemaTypeValidator.timeToMs(b); | ||
| if (Number.isNaN(msA) || Number.isNaN(msB)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return msA < msB ? -1 : msA > msB ? 1 : 0; | ||
| } | ||
| static compareGYears(a, b) { | ||
| const parseYear = (s) => { | ||
| const m = s.match(/^(-?)([0-9]{4,})/); | ||
| if (!m) { | ||
| return Number.NaN; | ||
| } | ||
| return Number.parseInt(m[2], 10) * (m[1] === '-' ? -1 : 1); | ||
| }; | ||
| const ya = parseYear(a); | ||
| const yb = parseYear(b); | ||
| if (Number.isNaN(ya) || Number.isNaN(yb)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return ya < yb ? -1 : ya > yb ? 1 : 0; | ||
| } | ||
| static compareGYearMonths(a, b) { | ||
| const parseYM = (s) => { | ||
| const m = s.match(/^(-?)([0-9]{4,})-([0-9]{2})/); | ||
| if (!m) { | ||
| return Number.NaN; | ||
| } | ||
| const year = Number.parseInt(m[2], 10) * (m[1] === '-' ? -1 : 1); | ||
| return year * 12 + Number.parseInt(m[3], 10); | ||
| }; | ||
| const va = parseYM(a); | ||
| const vb = parseYM(b); | ||
| if (Number.isNaN(va) || Number.isNaN(vb)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return va < vb ? -1 : va > vb ? 1 : 0; | ||
| } | ||
| static compareGMonthDays(a, b) { | ||
| const parseMD = (s) => { | ||
| const m = s.match(/^--([0-9]{2})-([0-9]{2})/); | ||
| if (!m) { | ||
| return Number.NaN; | ||
| } | ||
| return Number.parseInt(m[1], 10) * 100 + Number.parseInt(m[2], 10); | ||
| }; | ||
| const va = parseMD(a); | ||
| const vb = parseMD(b); | ||
| if (Number.isNaN(va) || Number.isNaN(vb)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return va < vb ? -1 : va > vb ? 1 : 0; | ||
| } | ||
| static compareGMonths(a, b) { | ||
| const parseM = (s) => { | ||
| const m = s.match(/^--([0-9]{2})/); | ||
| if (!m) { | ||
| return Number.NaN; | ||
| } | ||
| return Number.parseInt(m[1], 10); | ||
| }; | ||
| const va = parseM(a); | ||
| const vb = parseM(b); | ||
| if (Number.isNaN(va) || Number.isNaN(vb)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return va < vb ? -1 : va > vb ? 1 : 0; | ||
| } | ||
| static compareGDays(a, b) { | ||
| const parseD = (s) => { | ||
| const m = s.match(/^---([0-9]{2})/); | ||
| if (!m) { | ||
| return Number.NaN; | ||
| } | ||
| return Number.parseInt(m[1], 10); | ||
| }; | ||
| const va = parseD(a); | ||
| const vb = parseD(b); | ||
| if (Number.isNaN(va) || Number.isNaN(vb)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return va < vb ? -1 : va > vb ? 1 : 0; | ||
| } | ||
| static parseDuration(s) { | ||
| const m = s.match(/^(-?)P(?:([0-9]+)Y)?(?:([0-9]+)M)?(?:([0-9]+)D)?(?:T(?:([0-9]+)H)?(?:([0-9]+)M)?(?:([0-9]+(?:\.[0-9]+)?)S)?)?$/); | ||
| if (!m) { | ||
| return null; | ||
| } | ||
| const negative = m[1] === '-'; | ||
| const years = m[2] ? Number.parseInt(m[2], 10) : 0; | ||
| const months = m[3] ? Number.parseInt(m[3], 10) : 0; | ||
| const days = m[4] ? Number.parseInt(m[4], 10) : 0; | ||
| const hours = m[5] ? Number.parseInt(m[5], 10) : 0; | ||
| const minutes = m[6] ? Number.parseInt(m[6], 10) : 0; | ||
| const seconds = m[7] ? Number.parseFloat(m[7]) : 0; | ||
| const totalMonths = years * 12 + months; | ||
| const totalSeconds = days * 86400 + hours * 3600 + minutes * 60 + seconds; | ||
| return { negative, months: totalMonths, seconds: totalSeconds }; | ||
| } | ||
| static durationToSeconds(d, refMonthSecs) { | ||
| const raw = d.months * refMonthSecs + d.seconds; | ||
| return d.negative ? -raw : raw; | ||
| } | ||
| static compareDurations(a, b) { | ||
| const dA = SchemaTypeValidator.parseDuration(a); | ||
| const dB = SchemaTypeValidator.parseDuration(b); | ||
| if (!dA || !dB) { | ||
| return null; | ||
| } | ||
| const refPoints = [ | ||
| 28 * 86400, | ||
| 29 * 86400, | ||
| 30 * 86400, | ||
| 31 * 86400 | ||
| ]; | ||
| let result = null; | ||
| for (const ref of refPoints) { | ||
| const sA = SchemaTypeValidator.durationToSeconds(dA, ref); | ||
| const sB = SchemaTypeValidator.durationToSeconds(dB, ref); | ||
| const cmp = sA < sB ? -1 : sA > sB ? 1 : 0; | ||
| if (result === null) { | ||
| result = cmp; | ||
| } | ||
| else if (result !== cmp) { | ||
| return null; | ||
| } | ||
| } | ||
| return result; | ||
| } | ||
| static compareNumericOrLexicographic(a, b) { | ||
| const decimalPattern = /^-?[0-9]+(\.[0-9]+)?$/; | ||
| if (decimalPattern.test(a) && decimalPattern.test(b)) { | ||
| try { | ||
| const parseDecimal = (s) => { | ||
| const negative = s.startsWith('-'); | ||
| const abs = negative ? s.substring(1) : s; | ||
| const dotIndex = abs.indexOf('.'); | ||
| const intPart = dotIndex === -1 ? abs : abs.substring(0, dotIndex); | ||
| const fracPart = dotIndex === -1 ? '' : abs.substring(dotIndex + 1); | ||
| return { negative, integer: BigInt(intPart), fraction: fracPart }; | ||
| }; | ||
| const padFraction = (frac, len) => BigInt(frac.padEnd(len, '0').substring(0, len)); | ||
| const dA = parseDecimal(a); | ||
| const dB = parseDecimal(b); | ||
| const fracLen = Math.max(dA.fraction.length, dB.fraction.length); | ||
| const scaleA = dA.integer * BigInt(10 ** fracLen) + padFraction(dA.fraction, fracLen); | ||
| const scaleB = dB.integer * BigInt(10 ** fracLen) + padFraction(dB.fraction, fracLen); | ||
| const signedA = dA.negative ? -scaleA : scaleA; | ||
| const signedB = dB.negative ? -scaleB : scaleB; | ||
| return signedA < signedB ? -1 : signedA > signedB ? 1 : 0; | ||
| } | ||
| catch (e) { | ||
| // Fall through to float comparison. | ||
| } | ||
| } | ||
| const numA = Number.parseFloat(a); | ||
| const numB = Number.parseFloat(b); | ||
| if (!Number.isNaN(numA) && !Number.isNaN(numB)) { | ||
| return numA < numB ? -1 : numA > numB ? 1 : 0; | ||
| } | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| static canonicalize(value, typeName, nsMap) { | ||
| const colonIndex = typeName.indexOf(':'); | ||
| const localType = colonIndex !== -1 ? typeName.substring(colonIndex + 1) : typeName; | ||
| switch (localType) { | ||
| case 'decimal': | ||
| return SchemaTypeValidator.canonicalDecimal(value); | ||
| case 'integer': | ||
| case 'long': | ||
| case 'int': | ||
| case 'short': | ||
| case 'byte': | ||
| case 'nonNegativeInteger': | ||
| case 'positiveInteger': | ||
| case 'unsignedLong': | ||
| case 'unsignedInt': | ||
| case 'unsignedShort': | ||
| case 'unsignedByte': | ||
| case 'nonPositiveInteger': | ||
| case 'negativeInteger': | ||
| return SchemaTypeValidator.canonicalInteger(value); | ||
| case 'float': | ||
| case 'double': | ||
| return SchemaTypeValidator.canonicalFloat(value); | ||
| case 'boolean': | ||
| if (value === '1') { | ||
| return 'true'; | ||
| } | ||
| if (value === '0') { | ||
| return 'false'; | ||
| } | ||
| return value; | ||
| case 'normalizedString': | ||
| return value.replaceAll(/[\t\n\r]/g, ' '); | ||
| case 'token': | ||
| case 'language': | ||
| case 'Name': | ||
| case 'NCName': | ||
| case 'ID': | ||
| case 'IDREF': | ||
| case 'ENTITY': | ||
| case 'NMTOKEN': | ||
| case 'anyURI': | ||
| case 'IDREFS': | ||
| case 'ENTITIES': | ||
| case 'NMTOKENS': | ||
| return value.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| case 'QName': { | ||
| const normalized = value.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| if (nsMap !== undefined) { | ||
| const qColon = normalized.indexOf(':'); | ||
| if (qColon !== -1) { | ||
| const prefix = normalized.substring(0, qColon); | ||
| const localPart = normalized.substring(qColon + 1); | ||
| const nsUri = nsMap.get(prefix); | ||
| if (nsUri !== undefined) { | ||
| return '{' + nsUri + '}' + localPart; | ||
| } | ||
| } | ||
| else { | ||
| const defaultNs = nsMap.get(''); | ||
| if (defaultNs !== undefined) { | ||
| return '{' + defaultNs + '}' + normalized; | ||
| } | ||
| } | ||
| } | ||
| return normalized; | ||
| } | ||
| case 'hexBinary': | ||
| return value.replaceAll(/\s/g, '').toUpperCase(); | ||
| case 'base64Binary': | ||
| return value.replaceAll(/\s/g, ''); | ||
| case 'dateTime': | ||
| case 'date': | ||
| case 'time': | ||
| case 'gYear': | ||
| case 'gYearMonth': | ||
| case 'gMonth': | ||
| case 'gMonthDay': | ||
| case 'gDay': | ||
| case 'dateTimeStamp': | ||
| case 'duration': | ||
| case 'dayTimeDuration': | ||
| case 'yearMonthDuration': | ||
| return SchemaTypeValidator.canonicalizeTemporal(value); | ||
| default: | ||
| return value; | ||
| } | ||
| } | ||
| static canonicalDecimal(value) { | ||
| const s = value.trim(); | ||
| const negative = s.startsWith('-'); | ||
| const unsigned = (s.startsWith('+') || s.startsWith('-')) ? s.substring(1) : s; | ||
| const dotIndex = unsigned.indexOf('.'); | ||
| let intPart = dotIndex === -1 ? unsigned : unsigned.substring(0, dotIndex); | ||
| let fracPart = dotIndex === -1 ? '0' : unsigned.substring(dotIndex + 1); | ||
| let intStart = 0; | ||
| while (intStart < intPart.length - 1 && intPart[intStart] === '0') { | ||
| intStart++; | ||
| } | ||
| intPart = intPart.length === 0 ? '0' : intPart.substring(intStart); | ||
| let fracEnd = fracPart.length; | ||
| while (fracEnd > 0 && fracPart[fracEnd - 1] === '0') { | ||
| fracEnd--; | ||
| } | ||
| fracPart = fracEnd === 0 ? '0' : fracPart.substring(0, fracEnd); | ||
| const isZero = intPart === '0' && /^0*$/.test(fracPart); | ||
| if (isZero) { | ||
| return '0.0'; | ||
| } | ||
| return (negative ? '-' : '') + intPart + '.' + fracPart; | ||
| } | ||
| static canonicalInteger(value) { | ||
| const s = value.trim(); | ||
| const negative = s.startsWith('-'); | ||
| const unsigned = (s.startsWith('+') || s.startsWith('-')) ? s.substring(1) : s; | ||
| const stripped = unsigned.replace(/^0+/, '') || '0'; | ||
| if (stripped === '0') { | ||
| return '0'; | ||
| } | ||
| return (negative ? '-' : '') + stripped; | ||
| } | ||
| static canonicalFloat(value) { | ||
| const trimmed = value.trim(); | ||
| if (trimmed === 'INF' || trimmed === '+INF') { | ||
| return 'INF'; | ||
| } | ||
| if (trimmed === '-INF') { | ||
| return '-INF'; | ||
| } | ||
| if (trimmed === 'NaN') { | ||
| return 'NaN'; | ||
| } | ||
| return String(Number.parseFloat(trimmed)); | ||
| } | ||
| static canonicalizeTemporal(value) { | ||
| // Normalize timezone: +00:00 → Z. | ||
| let v = value.trim().replace(/\+00:00$/, 'Z'); | ||
| // Strip trailing zeros from fractional seconds, e.g. .100 → .1, .000 → remove. | ||
| const dotIdx = v.indexOf('.'); | ||
| if (dotIdx !== -1) { | ||
| let fracEnd = dotIdx + 1; | ||
| while (fracEnd < v.length && v[fracEnd] >= '0' && v[fracEnd] <= '9') { | ||
| fracEnd++; | ||
| } | ||
| const suffix = v.substring(fracEnd); | ||
| let trimEnd = fracEnd; | ||
| while (trimEnd > dotIdx + 1 && v[trimEnd - 1] === '0') { | ||
| trimEnd--; | ||
| } | ||
| const frac = trimEnd === dotIdx + 1 ? '' : v.substring(dotIdx, trimEnd); | ||
| v = v.substring(0, dotIdx) + frac + suffix; | ||
| } | ||
| return v; | ||
| } | ||
| } | ||
| exports.SchemaTypeValidator = SchemaTypeValidator; | ||
| //# sourceMappingURL=SchemaTypeValidator.js.map |
| {"version":3,"file":"SchemaTypeValidator.js","sourceRoot":"","sources":["../../../ts/schema/SchemaTypeValidator.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export declare class SchemaWildcardParticle extends SchemaParticle { | ||
| namespace: string; | ||
| processContents: 'strict' | 'lax' | 'skip'; | ||
| private schemaTargetNamespace; | ||
| constructor(namespace?: string, processContents?: 'strict' | 'lax' | 'skip', minOccurs?: number, maxOccurs?: number | 'unbounded', schemaTargetNamespace?: string); | ||
| matchOnce(children: string[], pos: number, nsMap?: Map<string, string>): number[]; | ||
| } |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.SchemaWildcardParticle = void 0; | ||
| const SchemaParticle_js_1 = require("./SchemaParticle.js"); | ||
| class SchemaWildcardParticle extends SchemaParticle_js_1.SchemaParticle { | ||
| namespace; | ||
| processContents; | ||
| schemaTargetNamespace; | ||
| constructor(namespace = '##any', processContents = 'strict', minOccurs = 1, maxOccurs = 1, schemaTargetNamespace) { | ||
| super(minOccurs, maxOccurs); | ||
| this.namespace = namespace; | ||
| this.processContents = processContents; | ||
| this.schemaTargetNamespace = schemaTargetNamespace; | ||
| } | ||
| matchOnce(children, pos, nsMap) { | ||
| if (pos >= children.length) { | ||
| return []; | ||
| } | ||
| if (this.namespace === '##any') { | ||
| return [pos + 1]; | ||
| } | ||
| const childName = children[pos]; | ||
| const colonIdx = childName.indexOf(':'); | ||
| const prefix = colonIdx !== -1 ? childName.substring(0, colonIdx) : undefined; | ||
| let childNs; | ||
| if (prefix !== undefined) { | ||
| childNs = nsMap ? nsMap.get(prefix) : undefined; | ||
| } | ||
| else { | ||
| const defaultNs = nsMap ? nsMap.get('') : undefined; | ||
| childNs = defaultNs !== '' ? defaultNs : undefined; | ||
| } | ||
| if (this.namespace === '##local') { | ||
| return (childNs === undefined || childNs === '') ? [pos + 1] : []; | ||
| } | ||
| if (this.namespace === '##other') { | ||
| const inTarget = this.schemaTargetNamespace !== undefined && childNs === this.schemaTargetNamespace; | ||
| return (childNs !== undefined && childNs !== '' && !inTarget) ? [pos + 1] : []; | ||
| } | ||
| const tokens = this.namespace.split(/\s+/); | ||
| for (const token of tokens) { | ||
| if (token === '##local' && (childNs === undefined || childNs === '')) { | ||
| return [pos + 1]; | ||
| } | ||
| if (token === '##targetNamespace' && childNs !== undefined && childNs === this.schemaTargetNamespace) { | ||
| return [pos + 1]; | ||
| } | ||
| if (token === childNs) { | ||
| return [pos + 1]; | ||
| } | ||
| } | ||
| return []; | ||
| } | ||
| } | ||
| exports.SchemaWildcardParticle = SchemaWildcardParticle; | ||
| //# sourceMappingURL=SchemaWildcardParticle.js.map |
| {"version":3,"file":"SchemaWildcardParticle.js","sourceRoot":"","sources":["../../../ts/schema/SchemaWildcardParticle.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;iFAUiF;;;AAEjF,2DAAqD;AAErD,MAAa,sBAAuB,SAAQ,kCAAc;IAEtD,SAAS,CAAS;IAClB,eAAe,CAA4B;IACnC,qBAAqB,CAAqB;IAElD,YACI,YAAoB,OAAO,EAC3B,kBAA6C,QAAQ,EACrD,YAAoB,CAAC,EACrB,YAAkC,CAAC,EACnC,qBAA8B;QAE9B,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IACvD,CAAC;IAED,SAAS,CAAC,QAAkB,EAAE,GAAW,EAAE,KAA2B;QAClE,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,SAAS,GAAW,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAW,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,MAAM,GAAuB,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClG,IAAI,OAA2B,CAAC;QAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,CAAC;aAAM,CAAC;YACJ,MAAM,SAAS,GAAuB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,OAAO,GAAG,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAY,IAAI,CAAC,qBAAqB,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,qBAAqB,CAAC;YAC7G,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,CAAC;QACD,MAAM,MAAM,GAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,CAAC,EAAE,CAAC;gBACnE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,KAAK,KAAK,mBAAmB,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACnG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACrB,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAzDD,wDAyDC"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| export declare class XsdRegexTranslator { | ||
| private static readonly NAME_START_CHAR; | ||
| private static readonly NAME_CHAR; | ||
| private static readonly XSD_DIGITS; | ||
| private static readonly XSD_W_EXCLUDES; | ||
| private static readonly CATEGORY_MAP; | ||
| private static readonly BLOCK_MAP; | ||
| static toRegExp(xsdPattern: string): RegExp; | ||
| static translate(xsdPattern: string): string; | ||
| private static parseExpression; | ||
| private static parseEscape; | ||
| private static parseCharClass; | ||
| private static emitCharClass; | ||
| private static parseEscapeInsideClass; | ||
| private static translateCategory; | ||
| private static resolveClassContent; | ||
| private static readBracedName; | ||
| } |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.XsdRegexTranslator = void 0; | ||
| class CharClassItem { | ||
| isComplement; | ||
| content; | ||
| constructor(isComplement, content) { | ||
| this.isComplement = isComplement; | ||
| this.content = content; | ||
| } | ||
| } | ||
| class XsdRegexTranslator { | ||
| // \i — NameStartChar (XML 1.0 Second Edition, Appendix B, productions [84][85][86]) | ||
| static NAME_START_CHAR = ':A-Z_a-z' + | ||
| '\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF' + | ||
| '\u0100-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E' + | ||
| '\u0180-\u01C3\u01CD-\u01F0\u01F4-\u01F5\u01FA-\u0217' + | ||
| '\u0250-\u02A8\u02BB-\u02C1' + | ||
| '\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE' + | ||
| '\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3' + | ||
| '\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481' + | ||
| '\u0490-\u04C4\u04C7-\u04C8\u04CB-\u04CC\u04D0-\u04EB' + | ||
| '\u04EE-\u04F5\u04F8-\u04F9' + | ||
| '\u0531-\u0556\u0559\u0561-\u0586' + | ||
| '\u05D0-\u05EA\u05F0-\u05F2' + | ||
| '\u0621-\u063A\u0641-\u064A' + | ||
| '\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5-\u06E6' + | ||
| '\u0905-\u0939\u093D\u0958-\u0961' + | ||
| '\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9' + | ||
| '\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1' + | ||
| '\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30' + | ||
| '\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74' + | ||
| '\u0A85-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0' + | ||
| '\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0' + | ||
| '\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30' + | ||
| '\u0B32-\u0B33\u0B36-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61' + | ||
| '\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C' + | ||
| '\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9' + | ||
| '\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60-\u0C61' + | ||
| '\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0-\u0CE1' + | ||
| '\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60-\u0D61' + | ||
| '\u0E01-\u0E2E\u0E30\u0E32-\u0E33\u0E40-\u0E45' + | ||
| '\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D' + | ||
| '\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB' + | ||
| '\u0EAD-\u0EAE\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4' + | ||
| '\u0F40-\u0F47\u0F49-\u0F69' + | ||
| '\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102-\u1103\u1105-\u1107\u1109' + | ||
| '\u110B-\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150' + | ||
| '\u1154-\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D-\u116E' + | ||
| '\u1172-\u1173\u1175\u119E\u11A8\u11AB\u11AE-\u11AF\u11B7-\u11B8\u11BA' + | ||
| '\u11BC-\u11C2\u11EB\u11F0\u11F9' + | ||
| '\u1E00-\u1E9B\u1EA0-\u1EF9' + | ||
| '\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57' + | ||
| '\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE' + | ||
| '\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC' + | ||
| '\u1FF2-\u1FF4\u1FF6-\u1FFC' + | ||
| '\u2126\u212A-\u212B\u212E\u2180-\u2182' + | ||
| '\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\uAC00-\uD7A3' + | ||
| '\u4E00-\u9FA5\u3007\u3021-\u3029'; | ||
| // \c — NameChar (XML 1.0 Second Edition, Appendix B, productions [4][87][88][89]) | ||
| static NAME_CHAR = XsdRegexTranslator.NAME_START_CHAR + | ||
| '\\-\\.0-9' + | ||
| '\u0660-\u0669\u06F0-\u06F9\u0966-\u096F\u09E6-\u09EF' + | ||
| '\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE7-\u0BEF' + | ||
| '\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59' + | ||
| '\u0ED0-\u0ED9\u0F20-\u0F29' + | ||
| '\u0300-\u0345\u0360-\u0361\u0483-\u0486\u0591-\u05A1' + | ||
| '\u05A3-\u05B9\u05BB-\u05BD\u05BF\u05C1-\u05C2\u05C4' + | ||
| '\u064B-\u0652\u0670\u06D6-\u06DC\u06DD-\u06DF\u06E0-\u06E4' + | ||
| '\u06E7-\u06E8\u06EA-\u06ED\u0901-\u0903\u093C\u093E-\u094C' + | ||
| '\u094D\u0951-\u0954\u0962-\u0963\u0981-\u0983\u09BC\u09BE' + | ||
| '\u09BF\u09C0-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09E2-\u09E3' + | ||
| '\u0A02\u0A3C\u0A3E\u0A3F\u0A40-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D' + | ||
| '\u0A70-\u0A71\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD' + | ||
| '\u0B01-\u0B03\u0B3C\u0B3E-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D' + | ||
| '\u0B56-\u0B57\u0B82-\u0B83\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD' + | ||
| '\u0BD7\u0C01-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56' + | ||
| '\u0C82-\u0C83\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6' + | ||
| '\u0D02-\u0D03\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57' + | ||
| '\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC' + | ||
| '\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F' + | ||
| '\u0F71-\u0F84\u0F86-\u0F8B\u0F90-\u0F95\u0F97\u0F99-\u0FAD' + | ||
| '\u0FB1-\u0FB7\u0FB9\u20D0-\u20DC\u20E1\u302A-\u302F\u3099\u309A' + | ||
| '\u00B7\u02D0\u02D1\u0387\u0640\u0E46\u0EC6\u3005' + | ||
| '\u3031-\u3035\u309D-\u309E\u30FC-\u30FE'; | ||
| // XSD 1.0 \d is a fixed set of 20 decimal-digit ranges frozen at Unicode 3.1. | ||
| // Using \p{Nd} would reflect current Unicode, which diverges: e.g. U+0BE6 was added | ||
| // to Nd after Unicode 3.1, and U+1369-U+1371 were removed in Unicode 6.0. | ||
| static XSD_DIGITS = '\\u0030-\\u0039\\u0660-\\u0669\\u06F0-\\u06F9\\u0966-\\u096F' + | ||
| '\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F' + | ||
| '\\u0BE7-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F' + | ||
| '\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049' + | ||
| '\\u1369-\\u1371\\u17E0-\\u17E9\\u1810-\\u1819\\uFF10-\\uFF19' + | ||
| '\\u{1D7CE}-\\u{1D7FF}'; | ||
| // Characters assigned to L/M/N/S after Unicode 3.1 that must be excluded from \w. | ||
| // XSD 1.0 \w is defined against Unicode 3.1; these were Cn (unassigned) at that time. | ||
| static XSD_W_EXCLUDES = '\\u023F-\\u0240'; | ||
| static CATEGORY_MAP = { | ||
| // Letter | ||
| L: '\\p{L}', Lu: '\\p{Lu}', Ll: '\\p{Ll}', Lt: '\\p{Lt}', | ||
| Lm: '\\p{Lm}', Lo: '\\p{Lo}', | ||
| // Mark | ||
| M: '\\p{M}', Mn: '\\p{Mn}', Mc: '\\p{Mc}', Me: '\\p{Me}', | ||
| // Number | ||
| N: '\\p{N}', Nd: '\\p{Nd}', Nl: '\\p{Nl}', No: '\\p{No}', | ||
| // Punctuation | ||
| P: '\\p{P}', Pc: '\\p{Pc}', Pd: '\\p{Pd}', Ps: '\\p{Ps}', | ||
| Pe: '\\p{Pe}', Pi: '\\p{Pi}', Pf: '\\p{Pf}', Po: '\\p{Po}', | ||
| // Symbol | ||
| S: '\\p{S}', Sm: '\\p{Sm}', Sc: '\\p{Sc}', Sk: '\\p{Sk}', | ||
| So: '\\p{So}', | ||
| // Separator | ||
| Z: '\\p{Z}', Zs: '\\p{Zs}', Zl: '\\p{Zl}', Zp: '\\p{Zp}', | ||
| // Other | ||
| C: '\\p{C}', Cc: '\\p{Cc}', Cf: '\\p{Cf}', Co: '\\p{Co}', | ||
| Cn: '\\p{Cn}', | ||
| }; | ||
| static BLOCK_MAP = { | ||
| BasicLatin: '\u0000-\u007F', | ||
| Latin1Supplement: '\u0080-\u00FF', | ||
| 'Latin-1Supplement': '\u0080-\u00FF', | ||
| LatinExtendedA: '\u0100-\u017F', | ||
| 'LatinExtended-A': '\u0100-\u017F', | ||
| LatinExtendedB: '\u0180-\u024F', | ||
| 'LatinExtended-B': '\u0180-\u024F', | ||
| IPAExtensions: '\u0250-\u02AF', | ||
| SpacingModifierLetters: '\u02B0-\u02FF', | ||
| CombiningDiacriticalMarks: '\u0300-\u036F', | ||
| Greek: '\u0370-\u03FF', | ||
| GreekandCoptic: '\u0370-\u03FF', | ||
| Cyrillic: '\u0400-\u04FF', | ||
| CyrillicSupplement: '\u0500-\u052F', | ||
| Armenian: '\u0530-\u058F', | ||
| Hebrew: '\u0590-\u05FF', | ||
| Arabic: '\u0600-\u06FF', | ||
| Syriac: '\u0700-\u074F', | ||
| Thaana: '\u0780-\u07BF', | ||
| Devanagari: '\u0900-\u097F', | ||
| Bengali: '\u0980-\u09FF', | ||
| Gurmukhi: '\u0A00-\u0A7F', | ||
| Gujarati: '\u0A80-\u0AFF', | ||
| Oriya: '\u0B00-\u0B7F', | ||
| Tamil: '\u0B80-\u0BFF', | ||
| Telugu: '\u0C00-\u0C7F', | ||
| Kannada: '\u0C80-\u0CFF', | ||
| Malayalam: '\u0D00-\u0D7F', | ||
| Sinhala: '\u0D80-\u0DFF', | ||
| Thai: '\u0E00-\u0E7F', | ||
| Lao: '\u0E80-\u0EFF', | ||
| Tibetan: '\u0F00-\u0FFF', | ||
| Myanmar: '\u1000-\u109F', | ||
| Georgian: '\u10A0-\u10FF', | ||
| HangulJamo: '\u1100-\u11FF', | ||
| Ethiopic: '\u1200-\u137F', | ||
| Cherokee: '\u13A0-\u13FF', | ||
| UnifiedCanadianAboriginalSyllabics: '\u1400-\u167F', | ||
| Ogham: '\u1680-\u169F', | ||
| Runic: '\u16A0-\u16FF', | ||
| Khmer: '\u1780-\u17FF', | ||
| Mongolian: '\u1800-\u18AF', | ||
| LatinExtendedAdditional: '\u1E00-\u1EFF', | ||
| GreekExtended: '\u1F00-\u1FFF', | ||
| GeneralPunctuation: '\u2000-\u206F', | ||
| SuperscriptsandSubscripts: '\u2070-\u209F', | ||
| CurrencySymbols: '\u20A0-\u20CF', | ||
| CombiningMarksforSymbols: '\u20D0-\u20FF', | ||
| LetterlikeSymbols: '\u2100-\u214F', | ||
| NumberForms: '\u2150-\u218F', | ||
| Arrows: '\u2190-\u21FF', | ||
| MathematicalOperators: '\u2200-\u22FF', | ||
| MiscellaneousTechnical: '\u2300-\u23FF', | ||
| ControlPictures: '\u2400-\u243F', | ||
| OpticalCharacterRecognition: '\u2440-\u245F', | ||
| EnclosedAlphanumerics: '\u2460-\u24FF', | ||
| BoxDrawing: '\u2500-\u257F', | ||
| BlockElements: '\u2580-\u259F', | ||
| GeometricShapes: '\u25A0-\u25FF', | ||
| MiscellaneousSymbols: '\u2600-\u26FF', | ||
| Dingbats: '\u2700-\u27BF', | ||
| BraillePatterns: '\u2800-\u28FF', | ||
| CJKRadicalsSupplement: '\u2E80-\u2EFF', | ||
| KangxiRadicals: '\u2F00-\u2FDF', | ||
| IdeographicDescriptionCharacters: '\u2FF0-\u2FFF', | ||
| CJKSymbolsandPunctuation: '\u3000-\u303F', | ||
| Hiragana: '\u3040-\u309F', | ||
| Katakana: '\u30A0-\u30FF', | ||
| Bopomofo: '\u3100-\u312F', | ||
| HangulCompatibilityJamo: '\u3130-\u318F', | ||
| Kanbun: '\u3190-\u319F', | ||
| BopomofoExtended: '\u31A0-\u31BF', | ||
| EnclosedCJKLettersandMonths: '\u3200-\u32FF', | ||
| CJKCompatibility: '\u3300-\u33FF', | ||
| CJKUnifiedIdeographsExtensionA: '\u3400-\u4DBF', | ||
| YijingHexagramSymbols: '\u4DC0-\u4DFF', | ||
| CJKUnifiedIdeographs: '\u4E00-\u9FFF', | ||
| YiSyllables: '\uA000-\uA48F', | ||
| YiRadicals: '\uA490-\uA4CF', | ||
| HangulSyllables: '\uAC00-\uD7AF', | ||
| HighSurrogates: '\uD800-\uDB7F', | ||
| HighPrivateUseSurrogates: '\uDB80-\uDBFF', | ||
| LowSurrogates: '\uDC00-\uDFFF', | ||
| PrivateUse: '\uE000-\uF8FF', | ||
| CJKCompatibilityIdeographs: '\uF900-\uFAFF', | ||
| AlphabeticPresentationForms: '\uFB00-\uFB4F', | ||
| ArabicPresentationFormsA: '\uFB50-\uFDFF', | ||
| 'ArabicPresentationForms-A': '\uFB50-\uFDFF', | ||
| CombiningHalfMarks: '\uFE20-\uFE2F', | ||
| CJKCompatibilityForms: '\uFE30-\uFE4F', | ||
| SmallFormVariants: '\uFE50-\uFE6F', | ||
| ArabicPresentationFormsB: '\uFE70-\uFEFF', | ||
| 'ArabicPresentationForms-B': '\uFE70-\uFEFF', | ||
| Specials: '\uFFF0-\uFFFF', | ||
| HalfwidthandFullwidthForms: '\uFF00-\uFFEF', | ||
| OldItalic: '\u{10300}-\u{1032F}', | ||
| Gothic: '\u{10330}-\u{1034F}', | ||
| Deseret: '\u{10400}-\u{1044F}', | ||
| ByzantineMusicalSymbols: '\u{1D000}-\u{1D0FF}', | ||
| MusicalSymbols: '\u{1D100}-\u{1D1FF}', | ||
| MathematicalAlphanumericSymbols: '\u{1D400}-\u{1D7FF}', | ||
| CJKUnifiedIdeographsExtensionB: '\u{20000}-\u{2A6DF}', | ||
| CJKCompatibilityIdeographsSupplement: '\u{2F800}-\u{2FA1F}', | ||
| Tags: '\u{E0000}-\u{E007F}', | ||
| }; | ||
| static toRegExp(xsdPattern) { | ||
| const jsSource = XsdRegexTranslator.translate(xsdPattern); | ||
| return new RegExp('^(?:' + jsSource + ')$', 'u'); | ||
| } | ||
| static translate(xsdPattern) { | ||
| return XsdRegexTranslator.parseExpression(xsdPattern, 0).result; | ||
| } | ||
| static parseExpression(src, start, stopAt // optional single character that ends the expression | ||
| ) { | ||
| let out = ''; | ||
| let i = start; | ||
| while (i < src.length) { | ||
| const ch = src[i]; | ||
| // Stop character (used when parsing inside groups) | ||
| if (stopAt && ch === stopAt) { | ||
| break; | ||
| } | ||
| if (ch === '\\') { | ||
| const { result, end } = XsdRegexTranslator.parseEscape(src, i); | ||
| out += result; | ||
| i = end; | ||
| continue; | ||
| } | ||
| if (ch === '[') { | ||
| const { result, end } = XsdRegexTranslator.parseCharClass(src, i); | ||
| out += result; | ||
| i = end; | ||
| continue; | ||
| } | ||
| if (ch === '.') { | ||
| // XSD dot: any char except \n \r \x85 \u2028 | ||
| out += '[^\\n\\r\\x85\\u2028]'; | ||
| i++; | ||
| continue; | ||
| } | ||
| if (ch === '(') { | ||
| // Inline .NET flag groups: (?flags:...) where flags may include | ||
| // n (explicit capture — no-op for matching), i, m, s. | ||
| // Map (?n:...) → (?:...) since "n" only suppresses capture numbering. | ||
| // All other inline-flag prefixes are passed through as-is (JS supports them). | ||
| let prefix = '('; | ||
| let bodyStart = i + 1; | ||
| if (src[i + 1] === '?') { | ||
| const flagEnd = src.indexOf(':', i + 2); | ||
| if (flagEnd !== -1) { | ||
| const rawFlags = src.substring(i + 2, flagEnd); | ||
| const flags = rawFlags.startsWith('+') ? rawFlags.slice(1) : rawFlags; | ||
| if (/^[nimsx]+$/.test(flags)) { | ||
| const jsFlags = flags.replaceAll(/n/g, ''); | ||
| prefix = jsFlags.length > 0 ? '(?' + jsFlags + ':' : '(?:'; | ||
| bodyStart = flagEnd + 1; | ||
| } | ||
| } | ||
| } | ||
| const inner = XsdRegexTranslator.parseExpression(src, bodyStart, ')'); | ||
| if (src[inner.end] !== ')') { | ||
| throw new Error('XsdRegexTranslator: unmatched \'(\' at position ' + i); | ||
| } | ||
| out += prefix + inner.result + ')'; | ||
| i = inner.end + 1; | ||
| continue; | ||
| } | ||
| // A '{' is a quantifier only when immediately followed by one or more digits. | ||
| // Otherwise it is a literal character; find the closing '}' and escape both. | ||
| if (ch === '{') { | ||
| if (i + 1 < src.length && src[i + 1] >= '0' && src[i + 1] <= '9') { | ||
| out += '{'; | ||
| i++; | ||
| continue; | ||
| } | ||
| const closeIdx = src.indexOf('}', i + 1); | ||
| if (closeIdx !== -1) { | ||
| out += '\\{' + src.substring(i + 1, closeIdx) + '\\}'; | ||
| i = closeIdx + 1; | ||
| } | ||
| else { | ||
| out += '\\{'; | ||
| i++; | ||
| } | ||
| continue; | ||
| } | ||
| if (ch === ']') { | ||
| out += '\\x5D'; | ||
| i++; | ||
| continue; | ||
| } | ||
| // Quantifiers, alternation, anchors — pass through as-is. | ||
| // XSD has no anchors, but the characters |, *, +, ?, } are | ||
| // the same as in JS. | ||
| out += ch; | ||
| i++; | ||
| } | ||
| return { result: out, end: i }; | ||
| } | ||
| static parseEscape(src, i // points at the '\' | ||
| ) { | ||
| const next = src[i + 1]; | ||
| switch (next) { | ||
| // XSD-specific shorthand classes | ||
| case 'i': return { result: '[' + XsdRegexTranslator.NAME_START_CHAR + ']', end: i + 2 }; | ||
| case 'I': return { result: '[^' + XsdRegexTranslator.NAME_START_CHAR + ']', end: i + 2 }; | ||
| case 'c': return { result: '[' + XsdRegexTranslator.NAME_CHAR + ']', end: i + 2 }; | ||
| case 'C': return { result: '[^' + XsdRegexTranslator.NAME_CHAR + ']', end: i + 2 }; | ||
| // XSD \s is narrower than JS \s — only U+0020, \t, \n, \r | ||
| case 's': return { result: '[\\x20\\t\\n\\r]', end: i + 2 }; | ||
| case 'S': return { result: '[^\\x20\\t\\n\\r]', end: i + 2 }; | ||
| case 'd': return { result: '[' + XsdRegexTranslator.XSD_DIGITS + ']', end: i + 2 }; | ||
| case 'D': return { result: '[^' + XsdRegexTranslator.XSD_DIGITS + ']', end: i + 2 }; | ||
| // XSD \w excludes the characters that \i and \c cover; | ||
| // per spec it is [#x0000-#x10FFFF]-[\p{P}\p{Z}\p{C}] which is | ||
| // equivalent to [\p{L}\p{M}\p{N}\p{S}] | ||
| case 'w': return { result: '(?:(?![' + XsdRegexTranslator.XSD_W_EXCLUDES + '])[\\p{L}\\p{M}\\p{N}\\p{S}])', end: i + 2 }; | ||
| case 'W': return { result: '(?:[^\\p{L}\\p{M}\\p{N}\\p{S}]|[' + XsdRegexTranslator.XSD_W_EXCLUDES + '])', end: i + 2 }; | ||
| // Unicode category / block escapes | ||
| case 'p': { | ||
| const { name, end } = XsdRegexTranslator.readBracedName(src, i + 2); | ||
| return { result: XsdRegexTranslator.translateCategory(name, false), end }; | ||
| } | ||
| case 'P': { | ||
| const { name, end } = XsdRegexTranslator.readBracedName(src, i + 2); | ||
| return { result: XsdRegexTranslator.translateCategory(name, true), end }; | ||
| } | ||
| // \A, \Z and \z are Perl/PCRE string-boundary anchors; toRegExp already | ||
| // wraps the pattern with ^ and $ so all three are no-ops here. | ||
| case 'A': return { result: '', end: i + 2 }; | ||
| case 'Z': return { result: '', end: i + 2 }; | ||
| case 'z': return { result: '', end: i + 2 }; | ||
| // \- is a valid XSD identity escape but not in JS u-mode outside | ||
| // a character class; map it to \x2D (literal hyphen). | ||
| case '-': return { result: '\\x2D', end: i + 2 }; | ||
| // Everything else (including \n \r \t \\ \. etc.) is passed | ||
| // through unchanged — JS understands them identically. | ||
| default: { | ||
| if (next >= '0' && next <= '7') { | ||
| let j = i + 1; | ||
| let octalStr = ''; | ||
| while (j < src.length && j < i + 4 && src[j] >= '0' && src[j] <= '7') { | ||
| octalStr += src[j]; | ||
| j++; | ||
| } | ||
| const code = Number.parseInt(octalStr, 8); | ||
| const hex = code <= 0xFF | ||
| ? '\\x' + code.toString(16).padStart(2, '0') | ||
| : '\\u' + code.toString(16).padStart(4, '0'); | ||
| return { result: hex, end: j }; | ||
| } | ||
| return { result: '\\' + next, end: i + 2 }; | ||
| } | ||
| } | ||
| } | ||
| static parseCharClass(src, start // points at the opening '[' | ||
| ) { | ||
| let i = start + 1; | ||
| const negate = src[i] === '^'; | ||
| if (negate) | ||
| i++; | ||
| if (src[i] === ']') { | ||
| throw new Error('XsdRegexTranslator: empty character class at position ' + start); | ||
| } | ||
| // First pass: collect items as a typed list | ||
| const items = []; | ||
| let subtracted = null; | ||
| while (i < src.length && src[i] !== ']') { | ||
| // Detect -[ at current position: class subtraction | ||
| if (src[i] === '-' && src[i + 1] === '[') { | ||
| const inner = XsdRegexTranslator.parseCharClass(src, i + 1); | ||
| subtracted = inner.result; | ||
| i = inner.end; | ||
| break; | ||
| } | ||
| if (src[i] === '[') { | ||
| if (src[i + 1] === ':') { | ||
| throw new Error('XsdRegexTranslator: POSIX character class not supported at position ' + i); | ||
| } | ||
| items.push(new CharClassItem(false, '\\x5B')); | ||
| i++; | ||
| continue; | ||
| } | ||
| if (src[i] === '\\') { | ||
| const esc = XsdRegexTranslator.parseEscapeInsideClass(src, i); | ||
| items.push(esc.item); | ||
| i = esc.end; | ||
| } | ||
| else { | ||
| items.push(new CharClassItem(false, src[i])); | ||
| i++; | ||
| } | ||
| } | ||
| // Consume closing ']' | ||
| if (src[i] !== ']') { | ||
| throw new Error('XsdRegexTranslator: unterminated character class at position ' + start); | ||
| } | ||
| i++; | ||
| const baseExpr = XsdRegexTranslator.emitCharClass(items, negate); | ||
| if (subtracted === null) { | ||
| return { result: baseExpr, end: i }; | ||
| } | ||
| // Class subtraction: [base-[sub]] | ||
| // JS has no native subtraction syntax, so we implement it via a | ||
| // lookahead: (?![sub])[base] — but that only works outside a class. | ||
| // We therefore convert to: (?:(?!subtracted)[base]) | ||
| // which is semantically equivalent to one code-point matching. | ||
| return { | ||
| result: '(?:(?!' + subtracted + ')' + baseExpr + ')', | ||
| end: i, | ||
| }; | ||
| } | ||
| static emitCharClass(items, negate) { | ||
| const posContent = items.filter(it => !it.isComplement).map(it => it.content).join(''); | ||
| const compContents = items.filter(it => it.isComplement).map(it => it.content); | ||
| if (compContents.length === 0) { | ||
| return '[' + (negate ? '^' : '') + posContent + ']'; | ||
| } | ||
| if (posContent === '' && compContents.length === 1) { | ||
| return negate | ||
| ? '[' + compContents[0] + ']' | ||
| : '[^' + compContents[0] + ']'; | ||
| } | ||
| if (posContent === '') { | ||
| if (negate) { | ||
| // Intersection of complement bases: (?=[c1])(?=[c2])...[cN] | ||
| let result = ''; | ||
| for (let k = 0; k < compContents.length - 1; k++) { | ||
| result += '(?=[' + compContents[k] + '])'; | ||
| } | ||
| return result + '[' + compContents[compContents.length - 1] + ']'; | ||
| } | ||
| // Union of negated: (?:[^c1]|[^c2]|...) | ||
| return '(?:' + compContents.map(c => '[^' + c + ']').join('|') + ')'; | ||
| } | ||
| if (negate) { | ||
| // ¬(P ∪ ¬C) = ¬P ∩ C → lookaheads for each C, then [^P] | ||
| const lookaheads = compContents.map(c => '(?=[' + c + '])').join(''); | ||
| return lookaheads + '[^' + posContent + ']'; | ||
| } | ||
| // P ∪ ¬C → (?:[P]|[^c1]|[^c2]|...) | ||
| const parts = ['[' + posContent + ']']; | ||
| compContents.forEach(c => parts.push('[^' + c + ']')); | ||
| return '(?:' + parts.join('|') + ')'; | ||
| } | ||
| static parseEscapeInsideClass(src, i) { | ||
| const next = src[i + 1]; | ||
| switch (next) { | ||
| case 'i': return { item: new CharClassItem(false, XsdRegexTranslator.NAME_START_CHAR), end: i + 2 }; | ||
| case 'I': return { item: new CharClassItem(true, XsdRegexTranslator.NAME_START_CHAR), end: i + 2 }; | ||
| case 'c': return { item: new CharClassItem(false, XsdRegexTranslator.NAME_CHAR), end: i + 2 }; | ||
| case 'C': return { item: new CharClassItem(true, XsdRegexTranslator.NAME_CHAR), end: i + 2 }; | ||
| case 's': return { item: new CharClassItem(false, '\\x20\\t\\n\\r'), end: i + 2 }; | ||
| case 'S': return { item: new CharClassItem(true, '\\x20\\t\\n\\r'), end: i + 2 }; | ||
| case 'd': return { item: new CharClassItem(false, XsdRegexTranslator.XSD_DIGITS), end: i + 2 }; | ||
| case 'D': return { item: new CharClassItem(true, XsdRegexTranslator.XSD_DIGITS), end: i + 2 }; | ||
| case 'w': return { item: new CharClassItem(false, '\\p{L}\\p{M}\\p{N}\\p{S}'), end: i + 2 }; | ||
| case 'W': return { item: new CharClassItem(true, '\\p{L}\\p{M}\\p{N}\\p{S}'), end: i + 2 }; | ||
| case 'p': { | ||
| const { name, end } = XsdRegexTranslator.readBracedName(src, i + 2); | ||
| return { item: new CharClassItem(false, XsdRegexTranslator.resolveClassContent(name)), end }; | ||
| } | ||
| case 'P': { | ||
| const { name, end } = XsdRegexTranslator.readBracedName(src, i + 2); | ||
| return { item: new CharClassItem(true, XsdRegexTranslator.resolveClassContent(name)), end }; | ||
| } | ||
| case 'A': return { item: new CharClassItem(false, ''), end: i + 2 }; | ||
| case 'Z': return { item: new CharClassItem(false, ''), end: i + 2 }; | ||
| case 'z': return { item: new CharClassItem(false, ''), end: i + 2 }; | ||
| default: { | ||
| if (next >= '0' && next <= '7') { | ||
| let j = i + 1; | ||
| let octalStr = ''; | ||
| while (j < src.length && j < i + 4 && src[j] >= '0' && src[j] <= '7') { | ||
| octalStr += src[j]; | ||
| j++; | ||
| } | ||
| const code = Number.parseInt(octalStr, 8); | ||
| const hex = code <= 0xFF | ||
| ? '\\x' + code.toString(16).padStart(2, '0') | ||
| : '\\u' + code.toString(16).padStart(4, '0'); | ||
| return { item: new CharClassItem(false, hex), end: j }; | ||
| } | ||
| return { item: new CharClassItem(false, '\\' + next), end: i + 2 }; | ||
| } | ||
| } | ||
| } | ||
| static translateCategory(name, negate) { | ||
| // Block escape: \p{IsXxx} | ||
| if (name.startsWith('Is')) { | ||
| const blockName = name.slice(2); | ||
| const range = XsdRegexTranslator.BLOCK_MAP[blockName] | ||
| ?? XsdRegexTranslator.BLOCK_MAP[blockName.replaceAll(/-/g, '')]; | ||
| if (range) { | ||
| return negate ? '[^' + range + ']' : '[' + range + ']'; | ||
| } | ||
| throw new Error('XsdRegexTranslator: unknown Unicode block \'' + name + '\''); | ||
| } | ||
| // Category escape: must be in CATEGORY_MAP | ||
| const mapped = XsdRegexTranslator.CATEGORY_MAP[name]; | ||
| if (mapped) { | ||
| return negate ? mapped.replace('\\p{', '\\P{') : mapped; | ||
| } | ||
| throw new Error('XsdRegexTranslator: unknown Unicode category \'' + name + '\''); | ||
| } | ||
| static resolveClassContent(name) { | ||
| if (name.startsWith('Is')) { | ||
| const blockName = name.slice(2); | ||
| const range = XsdRegexTranslator.BLOCK_MAP[blockName] | ||
| ?? XsdRegexTranslator.BLOCK_MAP[blockName.replaceAll(/-/g, '')]; | ||
| if (range) { | ||
| return range; | ||
| } | ||
| throw new Error('XsdRegexTranslator: unknown Unicode block \'' + name + '\''); | ||
| } | ||
| const mapped = XsdRegexTranslator.CATEGORY_MAP[name]; | ||
| if (mapped) { | ||
| return mapped; | ||
| } | ||
| throw new Error('XsdRegexTranslator: unknown Unicode category \'' + name + '\''); | ||
| } | ||
| static readBracedName(src, i // should point at '{' | ||
| ) { | ||
| if (src[i] !== '{') { | ||
| throw new Error('XsdRegexTranslator: expected \'{\' after \\p/\\P at position ' + i); | ||
| } | ||
| const close = src.indexOf('}', i + 1); | ||
| if (close === -1) { | ||
| throw new Error('XsdRegexTranslator: unterminated \\p{...} starting at position ' + i); | ||
| } | ||
| return { name: src.slice(i + 1, close), end: close + 1 }; | ||
| } | ||
| } | ||
| exports.XsdRegexTranslator = XsdRegexTranslator; | ||
| //# sourceMappingURL=XsdRegexTranslator.js.map |
| {"version":3,"file":"XsdRegexTranslator.js","sourceRoot":"","sources":["../../../ts/schema/XsdRegexTranslator.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { XMLElement } from '../XMLElement.js'; | ||
| export declare class XSDSemanticValidator { | ||
| static validate(schemaRoot: XMLElement): void; | ||
| static validateCrossReferences(roots: Array<XMLElement>, allComplexTypes: Map<string, XMLElement>, allSimpleTypes: Map<string, XMLElement>, allTopLevelElements: Set<string>): void; | ||
| private static checkListUnionTypeReferences; | ||
| private static checkQNameSimpleTypeRef; | ||
| private static checkNamedComponents; | ||
| private static checkNotationAttributes; | ||
| private static checkNotationPlacement; | ||
| private static checkNotationRestrictionEnumerations; | ||
| private static checkNotationEnumValues; | ||
| private static checkIdAttributes; | ||
| private static checkAnnotationCount; | ||
| private static checkIncludeRedefine; | ||
| private static checkDuplicateIds; | ||
| private static collectIds; | ||
| private static checkDuplicateTopLevelGroups; | ||
| private static checkDuplicateTopLevelAttributeGroups; | ||
| private static checkDuplicateTopLevelComplexTypes; | ||
| private static checkDuplicateTopLevelElements; | ||
| private static checkDuplicateTopLevelSimpleTypes; | ||
| private static checkDuplicateImports; | ||
| static checkIncludedNamespace(includedRoot: XMLElement, includingNamespace: string | undefined): void; | ||
| private static checkFacetValues; | ||
| private static checkFinalConstraints; | ||
| private static checkFinalBlocks; | ||
| private static collectComplexTypes; | ||
| private static checkComplexTypeFinalConstraints; | ||
| private static getDefaultNs; | ||
| private static checkComplexTypeBaseReferences; | ||
| private static buildPrefixMap; | ||
| private static collectTopLevelElements; | ||
| private static checkElementRefAndTypeReferences; | ||
| private static checkQNameElementRef; | ||
| private static checkQNameTypeRef; | ||
| private static collectSimpleTypes; | ||
| private static getTypeVariety; | ||
| private static getInlineSimpleTypeVariety; | ||
| private static checkSimpleTypeRestrictions; | ||
| private static validateRestrictionFacets; | ||
| private static isIdType; | ||
| private static checkElementRefConstraints; | ||
| private static collectFacetsFromSimpleType; | ||
| private static resolveSimpleType; | ||
| private static isValidForResolvedType; | ||
| private static checkElementValueConstraints; | ||
| private static checkAllNesting; | ||
| private static checkKeyrefReferences; | ||
| private static countFields; | ||
| private static collectKeyUniqueNames; | ||
| private static validateKeyrefRefer; | ||
| private static checkIdentityConstraintPlacement; | ||
| private static gatherAttributeNames; | ||
| private static collectBaseAttributeNames; | ||
| private static findAnyAttributeConstraint; | ||
| private static expandWildcardTokens; | ||
| private static isAnyAttributeSubset; | ||
| private static checkComplexRestrictionAttributes; | ||
| private static isValidNameTest; | ||
| private static validateSelectorXPath; | ||
| private static validateFieldXPath; | ||
| private static checkAttributeUseConstraints; | ||
| private static checkOccurrenceConstraints; | ||
| private static checkSimpleTypeChildren; | ||
| private static checkListUnionConstraints; | ||
| private static checkComplexTypeContentModel; | ||
| private static checkGroupCompositorCount; | ||
| private static localName; | ||
| } |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| export {}; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const DOMBuilder_js_1 = require("../DOMBuilder.js"); | ||
| const SAXParser_js_1 = require("../SAXParser.js"); | ||
| const SchemaBuilder_js_1 = require("../schema/SchemaBuilder.js"); | ||
| const XSDSemanticValidator_js_1 = require("../schema/XSDSemanticValidator.js"); | ||
| const schemaPath = './tests/xmlschema2006-11-06/sunData/combined/identity/idc006/idc006.nogen.xsd'; | ||
| const instancePath = './tests/xmlschema2006-11-06/sunData/combined/identity/idc006/idc006.nogen.v00.xml'; | ||
| try { | ||
| const schemaParser = new SAXParser_js_1.SAXParser(); | ||
| const schemaHandler = new DOMBuilder_js_1.DOMBuilder(); | ||
| schemaParser.setContentHandler(schemaHandler); | ||
| schemaParser.parseFile(schemaPath); | ||
| const schemaRoot = schemaHandler.getDocument()?.getRoot(); | ||
| if (schemaRoot) { | ||
| XSDSemanticValidator_js_1.XSDSemanticValidator.validate(schemaRoot); | ||
| } | ||
| const builder = new SchemaBuilder_js_1.SchemaBuilder(); | ||
| const grammar = builder.buildGrammar(schemaPath); | ||
| console.log('Schema loaded OK'); | ||
| const parser = new SAXParser_js_1.SAXParser(); | ||
| const handler = new DOMBuilder_js_1.DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| handler.setGrammar(grammar); | ||
| parser.setValidating(true); | ||
| parser.parseFile(instancePath); | ||
| console.log('Instance valid: OK'); | ||
| } | ||
| catch (e) { | ||
| if (e instanceof Error) { | ||
| console.error('ERROR: ' + e.message); | ||
| console.error(e.stack); | ||
| } | ||
| else { | ||
| console.error(e); | ||
| } | ||
| } | ||
| //# sourceMappingURL=DebugIdc006.js.map |
| {"version":3,"file":"DebugIdc006.js","sourceRoot":"","sources":["../../../ts/tests/DebugIdc006.ts"],"names":[],"mappings":";;AAAA,oDAA8C;AAC9C,kDAA4C;AAC5C,iEAA2D;AAE3D,+EAAyE;AAGzE,MAAM,UAAU,GAAW,+EAA+E,CAAC;AAC3G,MAAM,YAAY,GAAW,mFAAmF,CAAC;AAEjH,IAAI,CAAC;IACD,MAAM,YAAY,GAAc,IAAI,wBAAS,EAAE,CAAC;IAChD,MAAM,aAAa,GAAe,IAAI,0BAAU,EAAE,CAAC;IACnD,YAAY,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC9C,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,UAAU,GAA2B,aAAa,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;IAClF,IAAI,UAAU,EAAE,CAAC;QACb,8CAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,OAAO,GAAkB,IAAI,gCAAa,EAAE,CAAC;IACnD,MAAM,OAAO,GAAkB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAc,IAAI,wBAAS,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAe,IAAI,0BAAU,EAAE,CAAC;IAC7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACtC,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACT,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;AACL,CAAC"} |
| export {}; |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| export {}; |
| "use strict"; | ||
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const node_fs_1 = require("node:fs"); | ||
| const node_path_1 = require("node:path"); | ||
| const DOMBuilder_js_1 = require("../DOMBuilder.js"); | ||
| const SAXParser_js_1 = require("../SAXParser.js"); | ||
| const SchemaBuilder_js_1 = require("../schema/SchemaBuilder.js"); | ||
| const XSDSemanticValidator_js_1 = require("../schema/XSDSemanticValidator.js"); | ||
| const SUITE_FILE = './tests/xmlschema2006-11-06/suite.xml'; | ||
| // Path to the Boeing testSet file relative to the suite root | ||
| const BOEING_TESTSET = 'boeingMeta/BoeingXSDTestSet.testSet'; | ||
| // Path to the NIST testSet file relative to the suite root | ||
| const NIST_TESTSET = 'nistMeta/NISTXMLSchemaDatatypes.testSet'; | ||
| // Directory containing the Microsoft testSet files (all named *_w3c.xml) | ||
| const MS_META_DIR = 'msMeta'; | ||
| // Directory containing the SUN testSet files (13 .testSet files) | ||
| const SUN_META_DIR = 'sunMeta'; | ||
| class XMLSchemaTestSuite { | ||
| grandTotal = 0; | ||
| grandPassed = 0; | ||
| grandFailed = 0; | ||
| grandSkipped = 0; | ||
| setResults = []; | ||
| constructor() { | ||
| if (!(0, node_fs_1.existsSync)(SUITE_FILE)) { | ||
| throw new Error('XML Schema Test Suite not found at ' + SUITE_FILE); | ||
| } | ||
| } | ||
| run() { | ||
| const suiteDir = (0, node_path_1.dirname)((0, node_path_1.resolve)(SUITE_FILE)); | ||
| // Boeing: one dedicated testSet file | ||
| const boeingPath = (0, node_path_1.resolve)(suiteDir, BOEING_TESTSET); | ||
| if ((0, node_fs_1.existsSync)(boeingPath)) { | ||
| const stats = this.runBoeingTestSet(boeingPath); | ||
| this.setResults.push(stats); | ||
| this.grandTotal += stats.total; | ||
| this.grandPassed += stats.passed; | ||
| this.grandFailed += stats.failed; | ||
| this.grandSkipped += stats.skipped; | ||
| } | ||
| else { | ||
| console.warn('Boeing test set not found: ' + boeingPath); | ||
| } | ||
| // NIST: one dedicated testSet file | ||
| const nistPath = (0, node_path_1.resolve)(suiteDir, NIST_TESTSET); | ||
| if ((0, node_fs_1.existsSync)(nistPath)) { | ||
| const stats = this.runNistTestSet(nistPath); | ||
| this.setResults.push(stats); | ||
| this.grandTotal += stats.total; | ||
| this.grandPassed += stats.passed; | ||
| this.grandFailed += stats.failed; | ||
| this.grandSkipped += stats.skipped; | ||
| } | ||
| else { | ||
| console.warn('NIST test set not found: ' + nistPath); | ||
| } | ||
| // Microsoft: 17 testSet files in msMeta/, all named *_w3c.xml | ||
| const msMetaDir = (0, node_path_1.resolve)(suiteDir, MS_META_DIR); | ||
| if ((0, node_fs_1.existsSync)(msMetaDir)) { | ||
| const msStats = { contributor: 'Microsoft', name: 'MS-XSD-2006', total: 0, passed: 0, failed: 0, skipped: 0 }; | ||
| const msFiles = (0, node_fs_1.readdirSync)(msMetaDir) | ||
| .filter((f) => f.endsWith('_w3c.xml')) | ||
| .sort(); | ||
| for (const msFile of msFiles) { | ||
| const msPath = (0, node_path_1.resolve)(msMetaDir, msFile); | ||
| this.runMicrosoftTestSet(msPath, msStats); | ||
| } | ||
| this.setResults.push(msStats); | ||
| this.grandTotal += msStats.total; | ||
| this.grandPassed += msStats.passed; | ||
| this.grandFailed += msStats.failed; | ||
| this.grandSkipped += msStats.skipped; | ||
| } | ||
| else { | ||
| console.warn('Microsoft meta directory not found: ' + msMetaDir); | ||
| } | ||
| // SUN: 13 testSet files in sunMeta/ | ||
| const sunMetaDir = (0, node_path_1.resolve)(suiteDir, SUN_META_DIR); | ||
| if ((0, node_fs_1.existsSync)(sunMetaDir)) { | ||
| const sunStats = { contributor: 'SUN', name: 'SUN-XSD-2006', total: 0, passed: 0, failed: 0, skipped: 0 }; | ||
| const sunFiles = (0, node_fs_1.readdirSync)(sunMetaDir) | ||
| .filter((f) => f.endsWith('.testSet')) | ||
| .sort(); | ||
| for (const sunFile of sunFiles) { | ||
| const sunPath = (0, node_path_1.resolve)(sunMetaDir, sunFile); | ||
| this.runSunTestSet(sunPath, sunStats); | ||
| } | ||
| this.setResults.push(sunStats); | ||
| this.grandTotal += sunStats.total; | ||
| this.grandPassed += sunStats.passed; | ||
| this.grandFailed += sunStats.failed; | ||
| this.grandSkipped += sunStats.skipped; | ||
| } | ||
| else { | ||
| console.warn('SUN meta directory not found: ' + sunMetaDir); | ||
| } | ||
| this.printReport(); | ||
| } | ||
| // ------------------------------------------------------------------------- | ||
| // Microsoft harness | ||
| // | ||
| // Structure: msMeta/*_w3c.xml (17 files) | ||
| // msData/... (referenced as ../msData/ from testSet files) | ||
| // | ||
| // Rules: | ||
| // schemaTest – exactly one <schemaDocument> per group. Parsed normally; | ||
| // XSDSemanticValidator checks structural validity. | ||
| // | ||
| // instanceTest – each instance carries xsi:schemaLocation. SAXParser with | ||
| // setValidating(true) resolves the grammar automatically. | ||
| // Some groups have instanceTest with no schemaTest — those | ||
| // instances validate against schemas they declare themselves | ||
| // via xsi:schemaLocation. | ||
| // | ||
| // Stats are accumulated into a single SetStats passed by reference so that | ||
| // all 17 files contribute to one Microsoft total in the report. | ||
| // ------------------------------------------------------------------------- | ||
| runMicrosoftTestSet(testSetPath, stats) { | ||
| const testSetDir = (0, node_path_1.dirname)(testSetPath); | ||
| const doc = this.parseXML(testSetPath); | ||
| if (!doc) { | ||
| console.warn('Microsoft: could not parse ' + testSetPath); | ||
| return; | ||
| } | ||
| const root = doc.getRoot(); | ||
| if (!root) { | ||
| return; | ||
| } | ||
| for (const testGroupEl of root.getChildren()) { | ||
| if (this.localName(testGroupEl.getName()) !== 'testGroup') { | ||
| continue; | ||
| } | ||
| const groupName = testGroupEl.getAttribute('name')?.getValue() || ''; | ||
| for (const child of testGroupEl.getChildren()) { | ||
| const childLocalName = this.localName(child.getName()); | ||
| // ---- schemaTest ---- | ||
| if (childLocalName === 'schemaTest') { | ||
| const schemaDocEl = this.findChildByLocalName(child, 'schemaDocument'); | ||
| if (!schemaDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(schemaDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const schemaPath = (0, node_path_1.resolve)(testSetDir, href); | ||
| if (!(0, node_fs_1.existsSync)(schemaPath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser_js_1.SAXParser(); | ||
| const handler = new DOMBuilder_js_1.DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.parseFile(schemaPath); | ||
| const schemaRoot = handler.getDocument()?.getRoot(); | ||
| if (schemaRoot) { | ||
| XSDSemanticValidator_js_1.XSDSemanticValidator.validate(schemaRoot); | ||
| } | ||
| const builder = new SchemaBuilder_js_1.SchemaBuilder(); | ||
| builder.buildGrammar(schemaPath); | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + schemaPath + ']'); | ||
| } | ||
| continue; | ||
| } | ||
| // ---- instanceTest ---- | ||
| // All MS instances carry xsi:schemaLocation — no grammar injection needed. | ||
| if (childLocalName !== 'instanceTest') { | ||
| continue; | ||
| } | ||
| const instanceDocEl = this.findChildByLocalName(child, 'instanceDocument'); | ||
| if (!instanceDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(instanceDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const instancePath = (0, node_path_1.resolve)(testSetDir, href); | ||
| if (!(0, node_fs_1.existsSync)(instancePath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser_js_1.SAXParser(); | ||
| const handler = new DOMBuilder_js_1.DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.setValidating(true); | ||
| parser.parseFile(instancePath); | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + instancePath + ']'); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| // ------------------------------------------------------------------------- | ||
| // SUN harness | ||
| // | ||
| // Structure: sunMeta/*.testSet (13 files) | ||
| // sunData/combined/NNN/ — instance tests without xsi:schemaLocation | ||
| // sunData/TOPIC/... — instance tests with xsi:schemaLocation | ||
| // | ||
| // Rules (per AnnotatedTSSchema.xsd section 5.2): | ||
| // Validation must start with no stipulated declaration or definition. | ||
| // The processor must find the schema on its own (via xsi:schemaLocation, | ||
| // xsi:noNamespaceSchemaLocation, or namespace resolution). | ||
| // No grammar injection is permitted for any SUN instance test. | ||
| // | ||
| // schemaTest – one <schemaDocument> per group. Parsed normally; | ||
| // XSDSemanticValidator checks structural validity. | ||
| // | ||
| // instanceTest – setValidating(true); the parser resolves schemas | ||
| // autonomously. combined/ instances have no | ||
| // xsi:schemaLocation (processor starts with no schema). | ||
| // | ||
| // Stats are accumulated into a single SetStats passed by reference. | ||
| // ------------------------------------------------------------------------- | ||
| runSunTestSet(testSetPath, stats) { | ||
| const testSetDir = (0, node_path_1.dirname)(testSetPath); | ||
| const doc = this.parseXML(testSetPath); | ||
| if (!doc) { | ||
| console.warn('SUN: could not parse ' + testSetPath); | ||
| return; | ||
| } | ||
| const root = doc.getRoot(); | ||
| if (!root) { | ||
| return; | ||
| } | ||
| for (const testGroupEl of root.getChildren()) { | ||
| if (this.localName(testGroupEl.getName()) !== 'testGroup') { | ||
| continue; | ||
| } | ||
| const groupName = testGroupEl.getAttribute('name')?.getValue() || ''; | ||
| // Build the group's SchemaGrammar from the schemaTest first, so it | ||
| // can be injected into each instanceTest in the same group. | ||
| let groupSchemaGrammar; | ||
| const groupChildren = testGroupEl.getChildren(); | ||
| for (const child of groupChildren) { | ||
| const childLocalName = this.localName(child.getName()); | ||
| // ---- schemaTest ---- | ||
| if (childLocalName === 'schemaTest') { | ||
| const schemaDocEl = this.findChildByLocalName(child, 'schemaDocument'); | ||
| if (!schemaDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(schemaDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const schemaPath = (0, node_path_1.resolve)(testSetDir, href); | ||
| if (!(0, node_fs_1.existsSync)(schemaPath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser_js_1.SAXParser(); | ||
| const handler = new DOMBuilder_js_1.DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.parseFile(schemaPath); | ||
| const schemaRoot = handler.getDocument()?.getRoot(); | ||
| if (schemaRoot) { | ||
| XSDSemanticValidator_js_1.XSDSemanticValidator.validate(schemaRoot); | ||
| } | ||
| const builder = new SchemaBuilder_js_1.SchemaBuilder(); | ||
| groupSchemaGrammar = builder.buildGrammar(schemaPath); | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| groupSchemaGrammar = undefined; | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + schemaPath + ']'); | ||
| } | ||
| continue; | ||
| } | ||
| // ---- instanceTest ---- | ||
| // Per the TS spec (AnnotatedTSSchema.xsd), the testGroup groups | ||
| // the schema with its instance documents. The schemaTest grammar | ||
| // is injected into the handler so xsi:type values defined in that | ||
| // schema are reachable during validation. | ||
| if (childLocalName !== 'instanceTest') { | ||
| continue; | ||
| } | ||
| const instanceDocEl = this.findChildByLocalName(child, 'instanceDocument'); | ||
| if (!instanceDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(instanceDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const instancePath = (0, node_path_1.resolve)(testSetDir, href); | ||
| if (!(0, node_fs_1.existsSync)(instancePath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser_js_1.SAXParser(); | ||
| const handler = new DOMBuilder_js_1.DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| if (groupSchemaGrammar) { | ||
| handler.setGrammar(groupSchemaGrammar); | ||
| } | ||
| parser.setValidating(true); | ||
| parser.parseFile(instancePath); | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + instancePath + ']'); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| // ------------------------------------------------------------------------- | ||
| // NIST harness | ||
| // | ||
| // Structure: nistMeta/NISTXMLSchemaDatatypes.testSet | ||
| // nistData/atomic|list|union/TYPE/Schema+Instance/ | ||
| // | ||
| // Rules: | ||
| // schemaTest – exactly one <schemaDocument> per group. Parsed normally; | ||
| // XSDSemanticValidator checks structural validity. | ||
| // | ||
| // instanceTest – each instance carries xsi:schemaLocation pointing to the | ||
| // .xsd in the same Schema+Instance/ directory. SAXParser | ||
| // with setValidating(true) resolves it automatically. | ||
| // ------------------------------------------------------------------------- | ||
| runNistTestSet(testSetPath) { | ||
| const testSetDir = (0, node_path_1.dirname)(testSetPath); | ||
| const stats = { contributor: 'NIST', name: 'NIST2004-01-14', total: 0, passed: 0, failed: 0, skipped: 0 }; | ||
| const doc = this.parseXML(testSetPath); | ||
| if (!doc) { | ||
| console.warn('NIST: could not parse ' + testSetPath); | ||
| return stats; | ||
| } | ||
| const root = doc.getRoot(); | ||
| if (!root) { | ||
| return stats; | ||
| } | ||
| for (const testGroupEl of root.getChildren()) { | ||
| if (this.localName(testGroupEl.getName()) !== 'testGroup') { | ||
| continue; | ||
| } | ||
| const groupName = testGroupEl.getAttribute('name')?.getValue() || ''; | ||
| for (const child of testGroupEl.getChildren()) { | ||
| const childLocalName = this.localName(child.getName()); | ||
| // ---- schemaTest ---- | ||
| if (childLocalName === 'schemaTest') { | ||
| const schemaDocEl = this.findChildByLocalName(child, 'schemaDocument'); | ||
| if (!schemaDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(schemaDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const schemaPath = (0, node_path_1.resolve)(testSetDir, href); | ||
| if (!(0, node_fs_1.existsSync)(schemaPath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser_js_1.SAXParser(); | ||
| const handler = new DOMBuilder_js_1.DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.parseFile(schemaPath); | ||
| const schemaRoot = handler.getDocument()?.getRoot(); | ||
| if (schemaRoot) { | ||
| XSDSemanticValidator_js_1.XSDSemanticValidator.validate(schemaRoot); | ||
| } | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + schemaPath + ']'); | ||
| } | ||
| continue; | ||
| } | ||
| // ---- instanceTest ---- | ||
| // Instances carry xsi:schemaLocation — no grammar injection needed. | ||
| if (childLocalName !== 'instanceTest') { | ||
| continue; | ||
| } | ||
| const instanceDocEl = this.findChildByLocalName(child, 'instanceDocument'); | ||
| if (!instanceDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(instanceDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const instancePath = (0, node_path_1.resolve)(testSetDir, href); | ||
| if (!(0, node_fs_1.existsSync)(instancePath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser_js_1.SAXParser(); | ||
| const handler = new DOMBuilder_js_1.DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.setValidating(true); | ||
| parser.parseFile(instancePath); | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + instancePath + ']'); | ||
| } | ||
| } | ||
| } | ||
| return stats; | ||
| } | ||
| // ------------------------------------------------------------------------- | ||
| // Boeing harness | ||
| // | ||
| // Structure: boeingMeta/BoeingXSDTestSet.testSet | ||
| // boeingData/ipoN/ (N = 1..6) | ||
| // | ||
| // Rules: | ||
| // schemaTest – one or more <schemaDocument> elements. Each is parsed | ||
| // independently; the XSD file's own xs:import/xs:include | ||
| // declarations are resolved automatically by the parser. | ||
| // XSDSemanticValidator checks the structural validity of | ||
| // each document. One failure fails the whole schemaTest. | ||
| // | ||
| // instanceTest – each instance carries xsi:schemaLocation with a relative | ||
| // path to the schema in the same directory. SAXParser with | ||
| // setValidating(true) resolves and loads it automatically. | ||
| // ------------------------------------------------------------------------- | ||
| runBoeingTestSet(testSetPath) { | ||
| const testSetDir = (0, node_path_1.dirname)(testSetPath); | ||
| const stats = { contributor: 'Boeing', name: 'BoeingXSDTestCases', total: 0, passed: 0, failed: 0, skipped: 0 }; | ||
| const doc = this.parseXML(testSetPath); | ||
| if (!doc) { | ||
| console.warn('Boeing: could not parse ' + testSetPath); | ||
| return stats; | ||
| } | ||
| const root = doc.getRoot(); | ||
| if (!root) { | ||
| return stats; | ||
| } | ||
| for (const testGroupEl of root.getChildren()) { | ||
| if (this.localName(testGroupEl.getName()) !== 'testGroup') { | ||
| continue; | ||
| } | ||
| const groupName = testGroupEl.getAttribute('name')?.getValue() || ''; | ||
| for (const child of testGroupEl.getChildren()) { | ||
| const childLocalName = this.localName(child.getName()); | ||
| // ---- schemaTest ---- | ||
| // Each listed schemaDocument is an independent XSD file. | ||
| // Each file carries its own xs:import/xs:include declarations | ||
| // that the parser resolves automatically. We simply parse every | ||
| // listed document and run XSDSemanticValidator on its root. | ||
| // One failure in any document fails the whole schemaTest. | ||
| if (childLocalName === 'schemaTest') { | ||
| const schemaDocs = this.findChildrenByLocalName(child, 'schemaDocument'); | ||
| if (schemaDocs.length === 0) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual = 'valid'; | ||
| outer: try { | ||
| for (const schemaDocEl of schemaDocs) { | ||
| const href = this.getXlinkHref(schemaDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const schemaPath = (0, node_path_1.resolve)(testSetDir, href); | ||
| if (!(0, node_fs_1.existsSync)(schemaPath)) { | ||
| continue; | ||
| } | ||
| const parser = new SAXParser_js_1.SAXParser(); | ||
| const handler = new DOMBuilder_js_1.DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.parseFile(schemaPath); | ||
| const schemaRoot = handler.getDocument()?.getRoot(); | ||
| if (schemaRoot) { | ||
| XSDSemanticValidator_js_1.XSDSemanticValidator.validate(schemaRoot); | ||
| } | ||
| } | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual); | ||
| } | ||
| continue; | ||
| } | ||
| // ---- instanceTest ---- | ||
| // Boeing instance files declare their grammar via | ||
| // xsi:schemaLocation with a relative path (e.g. "ipo.xsd"), | ||
| // resolved relative to the instance file's own directory. | ||
| // SAXParser + setValidating(true) handles this automatically. | ||
| if (childLocalName !== 'instanceTest') { | ||
| continue; | ||
| } | ||
| const instanceDocEl = this.findChildByLocalName(child, 'instanceDocument'); | ||
| if (!instanceDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(instanceDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const instancePath = (0, node_path_1.resolve)(testSetDir, href); | ||
| if (!(0, node_fs_1.existsSync)(instancePath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser_js_1.SAXParser(); | ||
| const handler = new DOMBuilder_js_1.DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.setValidating(true); | ||
| parser.parseFile(instancePath); | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + instancePath + ']'); | ||
| } | ||
| } | ||
| } | ||
| return stats; | ||
| } | ||
| parseXML(filePath) { | ||
| try { | ||
| const parser = new SAXParser_js_1.SAXParser(); | ||
| const handler = new DOMBuilder_js_1.DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.parseFile(filePath); | ||
| return handler.getDocument(); | ||
| } | ||
| catch (e) { | ||
| return undefined; | ||
| } | ||
| } | ||
| localName(name) { | ||
| const idx = name.indexOf(':'); | ||
| return idx !== -1 ? name.substring(idx + 1) : name; | ||
| } | ||
| isAccepted(child) { | ||
| const currentEl = this.findChildByLocalName(child, 'current'); | ||
| if (!currentEl) { | ||
| return true; | ||
| } | ||
| const status = currentEl.getAttribute('status')?.getValue(); | ||
| return status === undefined || status === 'accepted'; | ||
| } | ||
| getXlinkHref(el) { | ||
| for (const attr of el.getAttributes()) { | ||
| const attrName = attr.getName(); | ||
| if (attrName === 'xlink:href' || attrName.endsWith(':href')) { | ||
| return attr.getValue(); | ||
| } | ||
| } | ||
| return undefined; | ||
| } | ||
| findChildByLocalName(el, localName) { | ||
| for (const child of el.getChildren()) { | ||
| if (this.localName(child.getName()) === localName) { | ||
| return child; | ||
| } | ||
| } | ||
| return undefined; | ||
| } | ||
| findChildrenByLocalName(el, localName) { | ||
| const result = []; | ||
| for (const child of el.getChildren()) { | ||
| if (this.localName(child.getName()) === localName) { | ||
| result.push(child); | ||
| } | ||
| } | ||
| return result; | ||
| } | ||
| printReport() { | ||
| console.log(''); | ||
| for (const stats of this.setResults) { | ||
| const effective = stats.total - stats.skipped; | ||
| const pct = effective > 0 ? ((stats.passed / effective) * 100).toFixed(1) : '0.0'; | ||
| console.log(stats.contributor + ' [' + stats.name + ']: passed=' + stats.passed + ', failed=' + stats.failed + ', skipped=' + stats.skipped + ', total=' + stats.total + ' (' + pct + '%)'); | ||
| } | ||
| const grandEffective = this.grandTotal - this.grandSkipped; | ||
| const totalPct = grandEffective > 0 ? ((this.grandPassed / grandEffective) * 100).toFixed(1) : '0.0'; | ||
| console.log(''); | ||
| console.log('TOTAL: ' + this.grandPassed + '/' + grandEffective + ' (' + totalPct + '%) - Skipped ' + this.grandSkipped + ' contested tests'); | ||
| console.log(''); | ||
| } | ||
| } | ||
| try { | ||
| new XMLSchemaTestSuite().run(); | ||
| } | ||
| catch (error) { | ||
| console.error('Error running XML Schema Test Suite:', error); | ||
| } | ||
| //# sourceMappingURL=XMLSchemaTestSuite.js.map |
| {"version":3,"file":"XMLSchemaTestSuite.js","sourceRoot":"","sources":["../../../ts/tests/XMLSchemaTestSuite.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;iFAUiF;;AAEjF,qCAAkD;AAClD,yCAA6C;AAC7C,oDAA8C;AAC9C,kDAA4C;AAG5C,iEAA2D;AAE3D,+EAAyE;AAEzE,MAAM,UAAU,GAAW,uCAAuC,CAAC;AAEnE,6DAA6D;AAC7D,MAAM,cAAc,GAAW,qCAAqC,CAAC;AAErE,2DAA2D;AAC3D,MAAM,YAAY,GAAW,yCAAyC,CAAC;AAEvE,yEAAyE;AACzE,MAAM,WAAW,GAAW,QAAQ,CAAC;AAErC,iEAAiE;AACjE,MAAM,YAAY,GAAW,SAAS,CAAC;AAWvC,MAAM,kBAAkB;IAEZ,UAAU,GAAW,CAAC,CAAC;IACvB,WAAW,GAAW,CAAC,CAAC;IACxB,WAAW,GAAW,CAAC,CAAC;IACxB,YAAY,GAAW,CAAC,CAAC;IACzB,UAAU,GAAe,EAAE,CAAC;IAEpC;QACI,IAAI,CAAC,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,UAAU,CAAC,CAAC;QACxE,CAAC;IACL,CAAC;IAED,GAAG;QACC,MAAM,QAAQ,GAAW,IAAA,mBAAO,EAAC,IAAA,mBAAO,EAAC,UAAU,CAAC,CAAC,CAAC;QAEtD,qCAAqC;QACrC,MAAM,UAAU,GAAW,IAAA,mBAAO,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC7D,IAAI,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YACzB,MAAM,KAAK,GAAa,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC;QACvC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,6BAA6B,GAAG,UAAU,CAAC,CAAC;QAC7D,CAAC;QAED,mCAAmC;QACnC,MAAM,QAAQ,GAAW,IAAA,mBAAO,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACzD,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;YACjC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC;QACvC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,2BAA2B,GAAG,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,8DAA8D;QAC9D,MAAM,SAAS,GAAW,IAAA,mBAAO,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzD,IAAI,IAAA,oBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAa,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACxH,MAAM,OAAO,GAAa,IAAA,qBAAW,EAAC,SAAS,CAAC;iBAC3C,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;iBAC7C,IAAI,EAAE,CAAC;YACZ,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAW,IAAA,mBAAO,EAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;YACnC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;YACnC,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,sCAAsC,GAAG,SAAS,CAAC,CAAC;QACrE,CAAC;QAED,oCAAoC;QACpC,MAAM,UAAU,GAAW,IAAA,mBAAO,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC3D,IAAI,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAa,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACpH,MAAM,QAAQ,GAAa,IAAA,qBAAW,EAAC,UAAU,CAAC;iBAC7C,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;iBAC7C,IAAI,EAAE,CAAC;YACZ,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAW,IAAA,mBAAO,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACrD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC;YACpC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC;YACpC,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,OAAO,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,gCAAgC,GAAG,UAAU,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,EAAE;IACF,2CAA2C;IAC3C,8EAA8E;IAC9E,EAAE;IACF,SAAS;IACT,2EAA2E;IAC3E,mEAAmE;IACnE,EAAE;IACF,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,8EAA8E;IAC9E,2CAA2C;IAC3C,EAAE;IACF,2EAA2E;IAC3E,gEAAgE;IAChE,4EAA4E;IACpE,mBAAmB,CAAC,WAAmB,EAAE,KAAe;QAC5D,MAAM,UAAU,GAAW,IAAA,mBAAO,EAAC,WAAW,CAAC,CAAC;QAEhD,MAAM,GAAG,GAA4B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,6BAA6B,GAAG,WAAW,CAAC,CAAC;YAC1D,OAAO;QACX,CAAC;QACD,MAAM,IAAI,GAA2B,GAAG,CAAC,OAAO,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;QACX,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC;gBACxD,SAAS;YACb,CAAC;YACD,MAAM,SAAS,GAAW,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAE7E,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC5C,MAAM,cAAc,GAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE/D,uBAAuB;gBACvB,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;oBAClC,MAAM,WAAW,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;oBAC/F,IAAI,CAAC,WAAW,EAAE,CAAC;wBACf,SAAS;oBACb,CAAC;oBACD,MAAM,IAAI,GAAuB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBAChE,IAAI,CAAC,IAAI,EAAE,CAAC;wBACR,SAAS;oBACb,CAAC;oBACD,MAAM,UAAU,GAAW,IAAA,mBAAO,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACrD,IAAI,CAAC,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;wBAC1B,SAAS;oBACb,CAAC;oBACD,MAAM,UAAU,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;oBACxF,MAAM,QAAQ,GAAW,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC;oBACrF,MAAM,QAAQ,GAAW,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,SAAS,CAAC;oBAE7E,IAAI,MAAc,CAAC;oBACnB,IAAI,CAAC;wBACD,MAAM,MAAM,GAAc,IAAI,wBAAS,EAAE,CAAC;wBAC1C,MAAM,OAAO,GAAe,IAAI,0BAAU,EAAE,CAAC;wBAC7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;wBAClC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;wBAC7B,MAAM,UAAU,GAA2B,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;wBAC5E,IAAI,UAAU,EAAE,CAAC;4BACb,8CAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAC9C,CAAC;wBACD,MAAM,OAAO,GAAkB,IAAI,gCAAa,EAAE,CAAC;wBACnD,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;wBACjC,MAAM,GAAG,OAAO,CAAC;oBACrB,CAAC;oBAAC,OAAO,EAAE,EAAE,CAAC;wBACV,MAAM,GAAG,SAAS,CAAC;oBACvB,CAAC;oBAED,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACtB,KAAK,CAAC,MAAM,EAAE,CAAC;oBACnB,CAAC;yBAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;wBACjC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACpB,CAAC;yBAAM,CAAC;wBACJ,KAAK,CAAC,MAAM,EAAE,CAAC;wBACf,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;oBAC9G,CAAC;oBACD,SAAS;gBACb,CAAC;gBAED,yBAAyB;gBACzB,2EAA2E;gBAC3E,IAAI,cAAc,KAAK,cAAc,EAAE,CAAC;oBACpC,SAAS;gBACb,CAAC;gBACD,MAAM,aAAa,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACnG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,SAAS;gBACb,CAAC;gBACD,MAAM,IAAI,GAAuB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBAClE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,SAAS;gBACb,CAAC;gBACD,MAAM,YAAY,GAAW,IAAA,mBAAO,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACvD,IAAI,CAAC,IAAA,oBAAU,EAAC,YAAY,CAAC,EAAE,CAAC;oBAC5B,SAAS;gBACb,CAAC;gBACD,MAAM,UAAU,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACxF,MAAM,QAAQ,GAAW,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC;gBACrF,MAAM,QAAQ,GAAW,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,SAAS,CAAC;gBAE7E,IAAI,MAAc,CAAC;gBACnB,IAAI,CAAC;oBACD,MAAM,MAAM,GAAc,IAAI,wBAAS,EAAE,CAAC;oBAC1C,MAAM,OAAO,GAAe,IAAI,0BAAU,EAAE,CAAC;oBAC7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAClC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;oBAC/B,MAAM,GAAG,OAAO,CAAC;gBACrB,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACV,MAAM,GAAG,SAAS,CAAC;gBACvB,CAAC;gBAED,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACtB,KAAK,CAAC,MAAM,EAAE,CAAC;gBACnB,CAAC;qBAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACJ,KAAK,CAAC,MAAM,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;gBAChH,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,cAAc;IACd,EAAE;IACF,4CAA4C;IAC5C,iFAAiF;IACjF,8EAA8E;IAC9E,EAAE;IACF,iDAAiD;IACjD,wEAAwE;IACxE,2EAA2E;IAC3E,6DAA6D;IAC7D,iEAAiE;IACjE,EAAE;IACF,mEAAmE;IACnE,mEAAmE;IACnE,EAAE;IACF,oEAAoE;IACpE,6DAA6D;IAC7D,yEAAyE;IACzE,EAAE;IACF,oEAAoE;IACpE,4EAA4E;IACpE,aAAa,CAAC,WAAmB,EAAE,KAAe;QACtD,MAAM,UAAU,GAAW,IAAA,mBAAO,EAAC,WAAW,CAAC,CAAC;QAEhD,MAAM,GAAG,GAA4B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,uBAAuB,GAAG,WAAW,CAAC,CAAC;YACpD,OAAO;QACX,CAAC;QACD,MAAM,IAAI,GAA2B,GAAG,CAAC,OAAO,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;QACX,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC;gBACxD,SAAS;YACb,CAAC;YACD,MAAM,SAAS,GAAW,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAE7E,mEAAmE;YACnE,4DAA4D;YAC5D,IAAI,kBAA6C,CAAC;YAClD,MAAM,aAAa,GAAiB,WAAW,CAAC,WAAW,EAAE,CAAC;YAE9D,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBAChC,MAAM,cAAc,GAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE/D,uBAAuB;gBACvB,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;oBAClC,MAAM,WAAW,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;oBAC/F,IAAI,CAAC,WAAW,EAAE,CAAC;wBACf,SAAS;oBACb,CAAC;oBACD,MAAM,IAAI,GAAuB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBAChE,IAAI,CAAC,IAAI,EAAE,CAAC;wBACR,SAAS;oBACb,CAAC;oBACD,MAAM,UAAU,GAAW,IAAA,mBAAO,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACrD,IAAI,CAAC,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;wBAC1B,SAAS;oBACb,CAAC;oBACD,MAAM,UAAU,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;oBACxF,MAAM,QAAQ,GAAW,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC;oBACrF,MAAM,QAAQ,GAAW,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,SAAS,CAAC;oBAE7E,IAAI,MAAc,CAAC;oBACnB,IAAI,CAAC;wBACD,MAAM,MAAM,GAAc,IAAI,wBAAS,EAAE,CAAC;wBAC1C,MAAM,OAAO,GAAe,IAAI,0BAAU,EAAE,CAAC;wBAC7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;wBAClC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;wBAC7B,MAAM,UAAU,GAA2B,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;wBAC5E,IAAI,UAAU,EAAE,CAAC;4BACb,8CAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAC9C,CAAC;wBACD,MAAM,OAAO,GAAkB,IAAI,gCAAa,EAAE,CAAC;wBACnD,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;wBACtD,MAAM,GAAG,OAAO,CAAC;oBACrB,CAAC;oBAAC,OAAO,EAAE,EAAE,CAAC;wBACV,kBAAkB,GAAG,SAAS,CAAC;wBAC/B,MAAM,GAAG,SAAS,CAAC;oBACvB,CAAC;oBAED,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACtB,KAAK,CAAC,MAAM,EAAE,CAAC;oBACnB,CAAC;yBAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;wBACjC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACpB,CAAC;yBAAM,CAAC;wBACJ,KAAK,CAAC,MAAM,EAAE,CAAC;wBACf,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;oBAC9G,CAAC;oBACD,SAAS;gBACb,CAAC;gBAED,yBAAyB;gBACzB,gEAAgE;gBAChE,iEAAiE;gBACjE,kEAAkE;gBAClE,0CAA0C;gBAC1C,IAAI,cAAc,KAAK,cAAc,EAAE,CAAC;oBACpC,SAAS;gBACb,CAAC;gBACD,MAAM,aAAa,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACnG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,SAAS;gBACb,CAAC;gBACD,MAAM,IAAI,GAAuB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBAClE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,SAAS;gBACb,CAAC;gBACD,MAAM,YAAY,GAAW,IAAA,mBAAO,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACvD,IAAI,CAAC,IAAA,oBAAU,EAAC,YAAY,CAAC,EAAE,CAAC;oBAC5B,SAAS;gBACb,CAAC;gBACD,MAAM,UAAU,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACxF,MAAM,QAAQ,GAAW,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC;gBACrF,MAAM,QAAQ,GAAW,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,SAAS,CAAC;gBAE7E,IAAI,MAAc,CAAC;gBACnB,IAAI,CAAC;oBACD,MAAM,MAAM,GAAc,IAAI,wBAAS,EAAE,CAAC;oBAC1C,MAAM,OAAO,GAAe,IAAI,0BAAU,EAAE,CAAC;oBAC7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAClC,IAAI,kBAAkB,EAAE,CAAC;wBACrB,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;oBAC3C,CAAC;oBACD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;oBAC/B,MAAM,GAAG,OAAO,CAAC;gBACrB,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACV,MAAM,GAAG,SAAS,CAAC;gBACvB,CAAC;gBAED,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACtB,KAAK,CAAC,MAAM,EAAE,CAAC;gBACnB,CAAC;qBAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACJ,KAAK,CAAC,MAAM,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;gBAChH,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,eAAe;IACf,EAAE;IACF,sDAAsD;IACtD,+DAA+D;IAC/D,EAAE;IACF,SAAS;IACT,2EAA2E;IAC3E,mEAAmE;IACnE,EAAE;IACF,4EAA4E;IAC5E,0EAA0E;IAC1E,uEAAuE;IACvE,4EAA4E;IACpE,cAAc,CAAC,WAAmB;QACtC,MAAM,UAAU,GAAW,IAAA,mBAAO,EAAC,WAAW,CAAC,CAAC;QAChD,MAAM,KAAK,GAAa,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAEpH,MAAM,GAAG,GAA4B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,wBAAwB,GAAG,WAAW,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,GAA2B,GAAG,CAAC,OAAO,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC;gBACxD,SAAS;YACb,CAAC;YACD,MAAM,SAAS,GAAW,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAE7E,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC5C,MAAM,cAAc,GAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE/D,uBAAuB;gBACvB,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;oBAClC,MAAM,WAAW,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;oBAC/F,IAAI,CAAC,WAAW,EAAE,CAAC;wBACf,SAAS;oBACb,CAAC;oBACD,MAAM,IAAI,GAAuB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBAChE,IAAI,CAAC,IAAI,EAAE,CAAC;wBACR,SAAS;oBACb,CAAC;oBACD,MAAM,UAAU,GAAW,IAAA,mBAAO,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACrD,IAAI,CAAC,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;wBAC1B,SAAS;oBACb,CAAC;oBACD,MAAM,UAAU,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;oBACxF,MAAM,QAAQ,GAAW,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC;oBACrF,MAAM,QAAQ,GAAW,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,SAAS,CAAC;oBAE7E,IAAI,MAAc,CAAC;oBACnB,IAAI,CAAC;wBACD,MAAM,MAAM,GAAc,IAAI,wBAAS,EAAE,CAAC;wBAC1C,MAAM,OAAO,GAAe,IAAI,0BAAU,EAAE,CAAC;wBAC7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;wBAClC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;wBAC7B,MAAM,UAAU,GAA2B,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;wBAC5E,IAAI,UAAU,EAAE,CAAC;4BACb,8CAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAC9C,CAAC;wBACD,MAAM,GAAG,OAAO,CAAC;oBACrB,CAAC;oBAAC,OAAO,EAAE,EAAE,CAAC;wBACV,MAAM,GAAG,SAAS,CAAC;oBACvB,CAAC;oBAED,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACtB,KAAK,CAAC,MAAM,EAAE,CAAC;oBACnB,CAAC;yBAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;wBACjC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACpB,CAAC;yBAAM,CAAC;wBACJ,KAAK,CAAC,MAAM,EAAE,CAAC;wBACf,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;oBAC9G,CAAC;oBACD,SAAS;gBACb,CAAC;gBAED,yBAAyB;gBACzB,oEAAoE;gBACpE,IAAI,cAAc,KAAK,cAAc,EAAE,CAAC;oBACpC,SAAS;gBACb,CAAC;gBACD,MAAM,aAAa,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACnG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,SAAS;gBACb,CAAC;gBACD,MAAM,IAAI,GAAuB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBAClE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,SAAS;gBACb,CAAC;gBACD,MAAM,YAAY,GAAW,IAAA,mBAAO,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACvD,IAAI,CAAC,IAAA,oBAAU,EAAC,YAAY,CAAC,EAAE,CAAC;oBAC5B,SAAS;gBACb,CAAC;gBACD,MAAM,UAAU,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACxF,MAAM,QAAQ,GAAW,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC;gBACrF,MAAM,QAAQ,GAAW,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,SAAS,CAAC;gBAE7E,IAAI,MAAc,CAAC;gBACnB,IAAI,CAAC;oBACD,MAAM,MAAM,GAAc,IAAI,wBAAS,EAAE,CAAC;oBAC1C,MAAM,OAAO,GAAe,IAAI,0BAAU,EAAE,CAAC;oBAC7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAClC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;oBAC/B,MAAM,GAAG,OAAO,CAAC;gBACrB,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACV,MAAM,GAAG,SAAS,CAAC;gBACvB,CAAC;gBAED,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACtB,KAAK,CAAC,MAAM,EAAE,CAAC;gBACnB,CAAC;qBAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACJ,KAAK,CAAC,MAAM,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;gBAChH,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,EAAE;IACF,kDAAkD;IAClD,2CAA2C;IAC3C,EAAE;IACF,SAAS;IACT,wEAAwE;IACxE,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,EAAE;IACF,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IACpE,gBAAgB,CAAC,WAAmB;QACxC,MAAM,UAAU,GAAW,IAAA,mBAAO,EAAC,WAAW,CAAC,CAAC;QAChD,MAAM,KAAK,GAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAE1H,MAAM,GAAG,GAA4B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,0BAA0B,GAAG,WAAW,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,GAA2B,GAAG,CAAC,OAAO,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC;gBACxD,SAAS;YACb,CAAC;YACD,MAAM,SAAS,GAAW,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAE7E,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC5C,MAAM,cAAc,GAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE/D,uBAAuB;gBACvB,yDAAyD;gBACzD,8DAA8D;gBAC9D,gEAAgE;gBAChE,4DAA4D;gBAC5D,0DAA0D;gBAC1D,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;oBAClC,MAAM,UAAU,GAAiB,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;oBACvF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC1B,SAAS;oBACb,CAAC;oBACD,MAAM,UAAU,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;oBACxF,MAAM,QAAQ,GAAW,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC;oBACrF,MAAM,QAAQ,GAAW,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,SAAS,CAAC;oBAE7E,IAAI,MAAM,GAAW,OAAO,CAAC;oBAC7B,KAAK,EAAE,IAAI,CAAC;wBACR,KAAK,MAAM,WAAW,IAAI,UAAU,EAAE,CAAC;4BACnC,MAAM,IAAI,GAAuB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;4BAChE,IAAI,CAAC,IAAI,EAAE,CAAC;gCACR,SAAS;4BACb,CAAC;4BACD,MAAM,UAAU,GAAW,IAAA,mBAAO,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;4BACrD,IAAI,CAAC,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;gCAC1B,SAAS;4BACb,CAAC;4BACD,MAAM,MAAM,GAAc,IAAI,wBAAS,EAAE,CAAC;4BAC1C,MAAM,OAAO,GAAe,IAAI,0BAAU,EAAE,CAAC;4BAC7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;4BAClC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;4BAC7B,MAAM,UAAU,GAA2B,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;4BAC5E,IAAI,UAAU,EAAE,CAAC;gCACb,8CAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;4BAC9C,CAAC;wBACL,CAAC;oBACL,CAAC;oBAAC,OAAO,EAAE,EAAE,CAAC;wBACV,MAAM,GAAG,SAAS,CAAC;oBACvB,CAAC;oBAED,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACtB,KAAK,CAAC,MAAM,EAAE,CAAC;oBACnB,CAAC;yBAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;wBACjC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACpB,CAAC;yBAAM,CAAC;wBACJ,KAAK,CAAC,MAAM,EAAE,CAAC;wBACf,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC;oBACpF,CAAC;oBACD,SAAS;gBACb,CAAC;gBAED,yBAAyB;gBACzB,kDAAkD;gBAClD,4DAA4D;gBAC5D,0DAA0D;gBAC1D,8DAA8D;gBAC9D,IAAI,cAAc,KAAK,cAAc,EAAE,CAAC;oBACpC,SAAS;gBACb,CAAC;gBACD,MAAM,aAAa,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACnG,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,SAAS;gBACb,CAAC;gBACD,MAAM,IAAI,GAAuB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBAClE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,SAAS;gBACb,CAAC;gBACD,MAAM,YAAY,GAAW,IAAA,mBAAO,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACvD,IAAI,CAAC,IAAA,oBAAU,EAAC,YAAY,CAAC,EAAE,CAAC;oBAC5B,SAAS;gBACb,CAAC;gBACD,MAAM,UAAU,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACxF,MAAM,QAAQ,GAAW,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC;gBACrF,MAAM,QAAQ,GAAW,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,SAAS,CAAC;gBAE7E,IAAI,MAAc,CAAC;gBACnB,IAAI,CAAC;oBACD,MAAM,MAAM,GAAc,IAAI,wBAAS,EAAE,CAAC;oBAC1C,MAAM,OAAO,GAAe,IAAI,0BAAU,EAAE,CAAC;oBAC7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAClC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;oBAC/B,MAAM,GAAG,OAAO,CAAC;gBACrB,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACV,MAAM,GAAG,SAAS,CAAC;gBACvB,CAAC;gBAED,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACtB,KAAK,CAAC,MAAM,EAAE,CAAC;gBACnB,CAAC;qBAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACJ,KAAK,CAAC,MAAM,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC;gBAChH,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,QAAQ,CAAC,QAAgB;QAC7B,IAAI,CAAC;YACD,MAAM,MAAM,GAAc,IAAI,wBAAS,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAe,IAAI,0BAAU,EAAE,CAAC;YAC7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAClC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC3B,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,IAAY;QAC1B,MAAM,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAEO,UAAU,CAAC,KAAiB;QAChC,MAAM,SAAS,GAA2B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACtF,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAuB,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;QAChF,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,UAAU,CAAC;IACzD,CAAC;IAEO,YAAY,CAAC,EAAc;QAC/B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAW,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,oBAAoB,CAAC,EAAc,EAAE,SAAiB;QAC1D,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,uBAAuB,CAAC,EAAc,EAAE,SAAiB;QAC7D,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,WAAW;QACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,SAAS,GAAW,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;YACtD,MAAM,GAAG,GAAW,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC1F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,YAAY,GAAG,KAAK,CAAC,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;QAChM,CAAC;QAED,MAAM,cAAc,GAAW,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QACnE,MAAM,QAAQ,GAAW,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,cAAc,GAAG,IAAI,GAAG,QAAQ,GAAG,eAAe,GAAG,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC,CAAC;QAC9I,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;CACJ;AAED,IAAI,CAAC;IACD,IAAI,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC;AACnC,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export declare class SchemaAll extends SchemaParticle { | ||
| particles: SchemaParticle[]; | ||
| constructor(particles: SchemaParticle[], minOccurs?: number, maxOccurs?: number | 'unbounded'); | ||
| matchOnce(children: string[], pos: number, nsMap?: Map<string, string>): number[]; | ||
| private matchRemaining; | ||
| } |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export class SchemaAll extends SchemaParticle { | ||
| particles; | ||
| constructor(particles, minOccurs = 1, maxOccurs = 1) { | ||
| super(minOccurs, maxOccurs); | ||
| this.particles = particles; | ||
| } | ||
| matchOnce(children, pos, nsMap) { | ||
| const indices = []; | ||
| for (let i = 0; i < this.particles.length; i++) { | ||
| indices.push(i); | ||
| } | ||
| return this.matchRemaining(children, pos, indices, nsMap); | ||
| } | ||
| matchRemaining(children, pos, remaining, nsMap) { | ||
| const results = new Set(); | ||
| // All remaining particles optional → current position is a valid end. | ||
| let allOptional = true; | ||
| for (let i = 0; i < remaining.length; i++) { | ||
| if (this.particles[remaining[i]].minOccurs > 0) { | ||
| allOptional = false; | ||
| break; | ||
| } | ||
| } | ||
| if (allOptional || remaining.length === 0) { | ||
| results.add(pos); | ||
| } | ||
| if (pos >= children.length || remaining.length === 0) { | ||
| return Array.from(results); | ||
| } | ||
| for (let i = 0; i < remaining.length; i++) { | ||
| const idx = remaining[i]; | ||
| const particle = this.particles[idx]; | ||
| const matched = particle.matchRepeated(children, pos, nsMap); | ||
| for (const nextPos of matched) { | ||
| if (nextPos > pos) { | ||
| // Remove slot i from remaining and recurse. | ||
| const newRemaining = []; | ||
| for (let j = 0; j < remaining.length; j++) { | ||
| if (j !== i) { | ||
| newRemaining.push(remaining[j]); | ||
| } | ||
| } | ||
| const further = this.matchRemaining(children, nextPos, newRemaining, nsMap); | ||
| for (const p of further) { | ||
| results.add(p); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| return Array.from(results); | ||
| } | ||
| } | ||
| //# sourceMappingURL=SchemaAll.js.map |
| {"version":3,"file":"SchemaAll.js","sourceRoot":"","sources":["../../../ts/schema/SchemaAll.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { AttributeInfo, AttributeUse } from '../grammar/Grammar.js'; | ||
| import { SchemaFacets } from './SchemaTypeValidator.js'; | ||
| export declare class SchemaAttributeDecl { | ||
| private name; | ||
| private namespace; | ||
| private type; | ||
| private use; | ||
| private defaultValue; | ||
| private fixedValue; | ||
| private facets; | ||
| private unionAlternatives; | ||
| constructor(name: string, type?: string, use?: AttributeUse, defaultValue?: string, fixedValue?: string, namespace?: string); | ||
| getName(): string; | ||
| getNamespace(): string | undefined; | ||
| getType(): string; | ||
| getUse(): AttributeUse; | ||
| getDefaultValue(): string | undefined; | ||
| getFixedValue(): string | undefined; | ||
| setEnumeration(values: string[]): void; | ||
| getEnumeration(): string[]; | ||
| setPatterns(values: string[][]): void; | ||
| setMinInclusive(value: string): void; | ||
| setMaxInclusive(value: string): void; | ||
| setMinExclusive(value: string): void; | ||
| setMaxExclusive(value: string): void; | ||
| setLength(value: number): void; | ||
| setMinLength(value: number): void; | ||
| setMaxLength(value: number): void; | ||
| setTotalDigits(value: number): void; | ||
| setFractionDigits(value: number): void; | ||
| setWhiteSpace(value: string): void; | ||
| setIsList(value: boolean): void; | ||
| setUnionAlternatives(alts: Array<{ | ||
| facets: SchemaFacets; | ||
| baseType: string; | ||
| }>): void; | ||
| isValid(value: string): boolean; | ||
| toAttributeInfo(): AttributeInfo; | ||
| } |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { AttributeInfo, AttributeUse } from '../grammar/Grammar.js'; | ||
| import { SchemaTypeValidator } from './SchemaTypeValidator.js'; | ||
| export class SchemaAttributeDecl { | ||
| name; | ||
| namespace; | ||
| type; | ||
| use; | ||
| defaultValue; | ||
| fixedValue; | ||
| facets; | ||
| unionAlternatives; | ||
| constructor(name, type = 'string', use = AttributeUse.OPTIONAL, defaultValue, fixedValue, namespace) { | ||
| this.name = name; | ||
| this.namespace = namespace; | ||
| this.type = type; | ||
| this.use = use; | ||
| this.defaultValue = defaultValue; | ||
| this.fixedValue = fixedValue; | ||
| this.facets = {}; | ||
| this.unionAlternatives = []; | ||
| } | ||
| getName() { | ||
| return this.name; | ||
| } | ||
| getNamespace() { | ||
| return this.namespace; | ||
| } | ||
| getType() { | ||
| return this.type; | ||
| } | ||
| getUse() { | ||
| return this.use; | ||
| } | ||
| getDefaultValue() { | ||
| return this.defaultValue; | ||
| } | ||
| getFixedValue() { | ||
| return this.fixedValue; | ||
| } | ||
| setEnumeration(values) { | ||
| this.facets.enumeration = values.slice(); | ||
| } | ||
| getEnumeration() { | ||
| return this.facets.enumeration || []; | ||
| } | ||
| setPatterns(values) { | ||
| this.facets.patterns = values.slice(); | ||
| } | ||
| setMinInclusive(value) { | ||
| this.facets.minInclusive = value; | ||
| } | ||
| setMaxInclusive(value) { | ||
| this.facets.maxInclusive = value; | ||
| } | ||
| setMinExclusive(value) { | ||
| this.facets.minExclusive = value; | ||
| } | ||
| setMaxExclusive(value) { | ||
| this.facets.maxExclusive = value; | ||
| } | ||
| setLength(value) { | ||
| this.facets.length = value; | ||
| } | ||
| setMinLength(value) { | ||
| this.facets.minLength = value; | ||
| } | ||
| setMaxLength(value) { | ||
| this.facets.maxLength = value; | ||
| } | ||
| setTotalDigits(value) { | ||
| this.facets.totalDigits = value; | ||
| } | ||
| setFractionDigits(value) { | ||
| this.facets.fractionDigits = value; | ||
| } | ||
| setWhiteSpace(value) { | ||
| this.facets.whiteSpace = value; | ||
| } | ||
| setIsList(value) { | ||
| this.facets.isList = value; | ||
| } | ||
| setUnionAlternatives(alts) { | ||
| this.unionAlternatives = alts.slice(); | ||
| } | ||
| isValid(value) { | ||
| if (this.fixedValue !== undefined && value !== this.fixedValue) { | ||
| return false; | ||
| } | ||
| if (this.unionAlternatives.length > 0) { | ||
| for (let i = 0; i < this.unionAlternatives.length; i++) { | ||
| const alt = this.unionAlternatives[i]; | ||
| if (SchemaTypeValidator.validate(value, alt.baseType) && SchemaTypeValidator.validateFacets(value, alt.facets, alt.baseType)) { | ||
| return true; | ||
| } | ||
| } | ||
| return false; | ||
| } | ||
| if (!SchemaTypeValidator.validateFacets(value, this.facets, this.type)) { | ||
| return false; | ||
| } | ||
| let normalized = value; | ||
| if (this.facets.whiteSpace === 'replace') { | ||
| normalized = value.replaceAll(/[\t\n\r]/g, ' '); | ||
| } | ||
| else if (this.facets.whiteSpace === 'collapse') { | ||
| normalized = value.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| } | ||
| return SchemaTypeValidator.validate(normalized, this.type); | ||
| } | ||
| toAttributeInfo() { | ||
| return new AttributeInfo(this.name, this.type, this.use, this.defaultValue, this.fixedValue, this.namespace); | ||
| } | ||
| } | ||
| //# sourceMappingURL=SchemaAttributeDecl.js.map |
| {"version":3,"file":"SchemaAttributeDecl.js","sourceRoot":"","sources":["../../../ts/schema/SchemaAttributeDecl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAgB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE7E,MAAM,OAAO,mBAAmB;IAEpB,IAAI,CAAS;IACb,SAAS,CAAqB;IAC9B,IAAI,CAAS;IACb,GAAG,CAAe;IAClB,YAAY,CAAqB;IACjC,UAAU,CAAqB;IAC/B,MAAM,CAAe;IACrB,iBAAiB,CAAkD;IAE3E,YACI,IAAY,EACZ,OAAe,QAAQ,EACvB,MAAoB,YAAY,CAAC,QAAQ,EACzC,YAAqB,EACrB,UAAmB,EACnB,SAAkB;QAElB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,cAAc,CAAC,MAAgB;QAC3B,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7C,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,MAAkB;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,KAAa;QACzB,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,KAAa;QACzB,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,KAAa;QACzB,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,KAAa;QACzB,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;IACrC,CAAC;IAED,SAAS,CAAC,KAAa;QACnB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,KAAa;QACtB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,YAAY,CAAC,KAAa;QACtB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,cAAc,CAAC,KAAa;QACxB,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC3B,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;IACvC,CAAC;IAED,aAAa,CAAC,KAAa;QACvB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,KAAc;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,oBAAoB,CAAC,IAAqD;QACtE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,KAAa;QACjB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7D,MAAM,GAAG,GAA6C,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAChF,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3H,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,UAAU,GAAW,KAAK,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACvC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC/C,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,CAAC;QACD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe;QACX,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,CACjB,CAAC;IACN,CAAC;CACJ"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { Catalog } from '../Catalog.js'; | ||
| import { XMLSchemaParser } from '../XMLSchemaParser.js'; | ||
| import { XMLElement } from '../XMLElement.js'; | ||
| import { SchemaGrammar } from './SchemaGrammar.js'; | ||
| export declare class SchemaBuilder extends XMLSchemaParser { | ||
| private static readonly XSD_BUILT_IN_TYPES; | ||
| private modelGroupDefinitions; | ||
| private substitutionGroups; | ||
| private schemaBlockDefaults; | ||
| private schemaFinalDefaults; | ||
| private schemaFormDefaults; | ||
| private elementFormDefaultMap; | ||
| private earlyTypeHierarchy; | ||
| private schemaPrefixMaps; | ||
| constructor(catalog?: Catalog); | ||
| buildGrammar(schemaPath: string): SchemaGrammar; | ||
| protected registerSchemaComponents(schemaElement: XMLElement, targetNamespace?: string): void; | ||
| private buildElementDecl; | ||
| private buildContentModel; | ||
| private unwrapDerivation; | ||
| private buildParticle; | ||
| private buildParticleList; | ||
| private resolveGroupRef; | ||
| private collectAllAttributes; | ||
| private parseWildcardTokens; | ||
| private intersectNamespaceConstraints; | ||
| private intersectProcessContents; | ||
| private unionProcessContents; | ||
| private unionNamespaceConstraints; | ||
| private combineOwnerNsAfterIntersect; | ||
| private combineOwnerNsAfterUnion; | ||
| private gatherAttributes; | ||
| private buildAttributeDecl; | ||
| private resolveCharRefs; | ||
| private collectFacets; | ||
| private collectEnumeration; | ||
| private collectInlineFacets; | ||
| private collectPatterns; | ||
| private collectUnionAlternatives; | ||
| private applySimpleTypeConstraints; | ||
| private parseOccurs; | ||
| private findChildByLocalName; | ||
| private normalizeXsdType; | ||
| private resolveSimpleTypeBase; | ||
| private extractUnionMemberTypeNames; | ||
| private extractListItemTypeName; | ||
| private findTypeBase; | ||
| private getElementBlockSet; | ||
| private getElementDeclaredType; | ||
| private isMemberTypeBlocked; | ||
| private filterMembersByBlock; | ||
| } |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export declare class SchemaChoice extends SchemaParticle { | ||
| particles: SchemaParticle[]; | ||
| constructor(particles: SchemaParticle[], minOccurs?: number, maxOccurs?: number | 'unbounded'); | ||
| matchOnce(children: string[], pos: number, nsMap?: Map<string, string>): number[]; | ||
| } |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export class SchemaChoice extends SchemaParticle { | ||
| particles; | ||
| constructor(particles, minOccurs = 1, maxOccurs = 1) { | ||
| super(minOccurs, maxOccurs); | ||
| this.particles = particles; | ||
| } | ||
| matchOnce(children, pos, nsMap) { | ||
| const results = new Set(); | ||
| for (const particle of this.particles) { | ||
| const matched = particle.matchRepeated(children, pos, nsMap); | ||
| for (const p of matched) { | ||
| results.add(p); | ||
| } | ||
| } | ||
| return Array.from(results); | ||
| } | ||
| } | ||
| //# sourceMappingURL=SchemaChoice.js.map |
| {"version":3,"file":"SchemaChoice.js","sourceRoot":"","sources":["../../../ts/schema/SchemaChoice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,YAAa,SAAQ,cAAc;IAE5C,SAAS,CAAmB;IAE5B,YAAY,SAA2B,EAAE,YAAoB,CAAC,EAAE,YAAkC,CAAC;QAC/F,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,QAAkB,EAAE,GAAW,EAAE,KAA2B;QAClE,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAU,CAAC;QAC/C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,OAAO,GAAa,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACvE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;CACJ"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { ValidationResult } from '../grammar/Grammar.js'; | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export declare enum SchemaContentModelType { | ||
| EMPTY = "EMPTY", | ||
| ANY = "ANY", | ||
| MIXED = "MIXED", | ||
| ELEMENT = "ELEMENT" | ||
| } | ||
| export declare class SchemaContentModel { | ||
| private type; | ||
| private rootParticle; | ||
| constructor(type: SchemaContentModelType, rootParticle?: SchemaParticle); | ||
| getType(): SchemaContentModelType; | ||
| getRootParticle(): SchemaParticle | undefined; | ||
| static empty(): SchemaContentModel; | ||
| static any(): SchemaContentModel; | ||
| static mixed(rootParticle?: SchemaParticle): SchemaContentModel; | ||
| static element(rootParticle: SchemaParticle): SchemaContentModel; | ||
| findCoveringWildcard(childName: string, nsMap?: Map<string, string>): 'strict' | 'lax' | 'skip' | undefined; | ||
| private static walkParticleForWildcard; | ||
| validateChildren(elementName: string, children: string[], nsMap?: Map<string, string>): ValidationResult; | ||
| } |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { ValidationResult } from '../grammar/Grammar.js'; | ||
| import { SchemaAll } from './SchemaAll.js'; | ||
| import { SchemaChoice } from './SchemaChoice.js'; | ||
| import { SchemaSequence } from './SchemaSequence.js'; | ||
| import { SchemaWildcardParticle } from './SchemaWildcardParticle.js'; | ||
| export var SchemaContentModelType; | ||
| (function (SchemaContentModelType) { | ||
| SchemaContentModelType["EMPTY"] = "EMPTY"; | ||
| SchemaContentModelType["ANY"] = "ANY"; | ||
| SchemaContentModelType["MIXED"] = "MIXED"; | ||
| SchemaContentModelType["ELEMENT"] = "ELEMENT"; | ||
| })(SchemaContentModelType || (SchemaContentModelType = {})); | ||
| export class SchemaContentModel { | ||
| type; | ||
| rootParticle; | ||
| constructor(type, rootParticle) { | ||
| this.type = type; | ||
| this.rootParticle = rootParticle; | ||
| } | ||
| getType() { | ||
| return this.type; | ||
| } | ||
| getRootParticle() { | ||
| return this.rootParticle; | ||
| } | ||
| static empty() { | ||
| return new SchemaContentModel(SchemaContentModelType.EMPTY); | ||
| } | ||
| static any() { | ||
| return new SchemaContentModel(SchemaContentModelType.ANY); | ||
| } | ||
| static mixed(rootParticle) { | ||
| return new SchemaContentModel(SchemaContentModelType.MIXED, rootParticle); | ||
| } | ||
| static element(rootParticle) { | ||
| return new SchemaContentModel(SchemaContentModelType.ELEMENT, rootParticle); | ||
| } | ||
| findCoveringWildcard(childName, nsMap) { | ||
| if (!this.rootParticle) { | ||
| return undefined; | ||
| } | ||
| return SchemaContentModel.walkParticleForWildcard(this.rootParticle, childName, nsMap); | ||
| } | ||
| static walkParticleForWildcard(particle, childName, nsMap) { | ||
| if (particle instanceof SchemaWildcardParticle) { | ||
| const matched = particle.matchOnce([childName], 0, nsMap); | ||
| if (matched.length > 0) { | ||
| return particle.processContents; | ||
| } | ||
| return undefined; | ||
| } | ||
| if (particle instanceof SchemaSequence || particle instanceof SchemaChoice || particle instanceof SchemaAll) { | ||
| for (const child of particle.particles) { | ||
| const result = SchemaContentModel.walkParticleForWildcard(child, childName, nsMap); | ||
| if (result !== undefined) { | ||
| return result; | ||
| } | ||
| } | ||
| } | ||
| return undefined; | ||
| } | ||
| validateChildren(elementName, children, nsMap) { | ||
| if (this.type === SchemaContentModelType.EMPTY) { | ||
| if (children.length > 0) { | ||
| return ValidationResult.error('Element "' + elementName + '" must be empty but contains child elements: ' + children.join(', ')); | ||
| } | ||
| return ValidationResult.success(); | ||
| } | ||
| if (this.type === SchemaContentModelType.ANY) { | ||
| return ValidationResult.success(); | ||
| } | ||
| // MIXED: child elements must conform to the declared particle when one exists. | ||
| // If no particle is present, any children are allowed. | ||
| if (this.type === SchemaContentModelType.MIXED) { | ||
| if (!this.rootParticle || children.length === 0) { | ||
| return ValidationResult.success(); | ||
| } | ||
| } | ||
| if (!this.rootParticle) { | ||
| // ELEMENT type with no particle — treat as EMPTY. | ||
| if (children.length > 0) { | ||
| return ValidationResult.error('Element "' + elementName + '" has no content model but contains child elements: ' + children.join(', ')); | ||
| } | ||
| return ValidationResult.success(); | ||
| } | ||
| // Run the NFA: success when the root particle's matchRepeated can reach | ||
| // exactly children.length (all children consumed). | ||
| const positions = this.rootParticle.matchRepeated(children, 0, nsMap); | ||
| for (const p of positions) { | ||
| if (p === children.length) { | ||
| return ValidationResult.success(); | ||
| } | ||
| } | ||
| return ValidationResult.error('Element "' + elementName + '" has an invalid child element sequence. ' + | ||
| 'Children found: [' + children.join(', ') + ']'); | ||
| } | ||
| } | ||
| //# sourceMappingURL=SchemaContentModel.js.map |
| {"version":3,"file":"SchemaContentModel.js","sourceRoot":"","sources":["../../../ts/schema/SchemaContentModel.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaAttributeDecl } from './SchemaAttributeDecl.js'; | ||
| import { SchemaContentModel } from './SchemaContentModel.js'; | ||
| import { SchemaFacets } from './SchemaTypeValidator.js'; | ||
| export interface IdentityConstraint { | ||
| name: string; | ||
| kind: 'key' | 'keyref' | 'unique'; | ||
| selector: string; | ||
| fields: string[]; | ||
| refer?: string; | ||
| } | ||
| export declare class SchemaElementDecl { | ||
| private name; | ||
| private namespace; | ||
| private contentModel; | ||
| private attributeDecls; | ||
| private anyAttribute; | ||
| private anyAttributeNamespace; | ||
| private anyAttributeProcessContents; | ||
| private anyAttributeOwnerNs; | ||
| private anyAttributeExcludedNamespaces; | ||
| private simpleType; | ||
| private textFacets; | ||
| private declaredTypeName; | ||
| private abstract; | ||
| private blockConstraints; | ||
| private finalConstraints; | ||
| private nillable; | ||
| private unionMemberTypes; | ||
| private unionAlternatives; | ||
| private listItemType; | ||
| private identityConstraints; | ||
| private fixedValue; | ||
| private defaultValue; | ||
| private qualified; | ||
| constructor(name: string, namespace?: string, contentModel?: SchemaContentModel); | ||
| getName(): string; | ||
| getNamespace(): string | undefined; | ||
| getContentModel(): SchemaContentModel; | ||
| setContentModel(model: SchemaContentModel): void; | ||
| addAttributeDecl(decl: SchemaAttributeDecl): void; | ||
| getAttributeDecl(name: string): SchemaAttributeDecl | undefined; | ||
| getAttributeDecls(): Map<string, SchemaAttributeDecl>; | ||
| setSimpleType(type: string): void; | ||
| getSimpleType(): string | undefined; | ||
| setTextFacets(facets: SchemaFacets): void; | ||
| validateText(value: string): boolean; | ||
| hasTextFacets(): boolean; | ||
| setAnyAttribute(namespace?: string, processContents?: string, ownerNs?: string, excludedNamespaces?: string[]): void; | ||
| allowsAnyAttribute(): boolean; | ||
| getAnyAttributeNamespace(): string; | ||
| getAnyAttributeProcessContents(): string; | ||
| getAnyAttributeOwnerNs(): string | undefined; | ||
| getAnyAttributeExcludedNamespaces(): string[] | undefined; | ||
| setDeclaredTypeName(typeName: string): void; | ||
| getDeclaredTypeName(): string | undefined; | ||
| setAbstract(value: boolean): void; | ||
| isAbstractElement(): boolean; | ||
| setBlockConstraints(constraints: Set<string>): void; | ||
| getBlockConstraints(): Set<string>; | ||
| setFinalConstraints(constraints: Set<string>): void; | ||
| getFinalConstraints(): Set<string>; | ||
| setNillable(value: boolean): void; | ||
| isNillable(): boolean; | ||
| setUnionMemberTypes(types: string[]): void; | ||
| getUnionMemberTypes(): string[] | undefined; | ||
| setUnionAlternatives(alts: Array<{ | ||
| facets: SchemaFacets; | ||
| baseType: string; | ||
| }>): void; | ||
| getUnionAlternatives(): Array<{ | ||
| facets: SchemaFacets; | ||
| baseType: string; | ||
| }> | undefined; | ||
| setListItemType(type: string): void; | ||
| getListItemType(): string | undefined; | ||
| addIdentityConstraint(constraint: IdentityConstraint): void; | ||
| getIdentityConstraints(): IdentityConstraint[] | undefined; | ||
| setFixedValue(value: string): void; | ||
| getFixedValue(): string | undefined; | ||
| setDefaultValue(value: string): void; | ||
| getDefaultValue(): string | undefined; | ||
| setQualified(value: boolean): void; | ||
| isQualified(): boolean; | ||
| } |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaContentModel } from './SchemaContentModel.js'; | ||
| import { SchemaTypeValidator } from './SchemaTypeValidator.js'; | ||
| export class SchemaElementDecl { | ||
| name; | ||
| namespace; | ||
| contentModel; | ||
| attributeDecls; | ||
| anyAttribute = false; | ||
| anyAttributeNamespace = '##any'; | ||
| anyAttributeProcessContents = 'strict'; | ||
| anyAttributeOwnerNs; | ||
| anyAttributeExcludedNamespaces; | ||
| simpleType; | ||
| textFacets; | ||
| declaredTypeName; | ||
| abstract = false; | ||
| blockConstraints = new Set(); | ||
| finalConstraints = new Set(); | ||
| nillable = false; | ||
| unionMemberTypes; | ||
| unionAlternatives; | ||
| listItemType; | ||
| identityConstraints; | ||
| fixedValue; | ||
| defaultValue; | ||
| qualified = true; | ||
| constructor(name, namespace, contentModel) { | ||
| this.name = name; | ||
| this.namespace = namespace; | ||
| this.contentModel = contentModel !== undefined ? contentModel : SchemaContentModel.any(); | ||
| this.attributeDecls = new Map(); | ||
| } | ||
| getName() { | ||
| return this.name; | ||
| } | ||
| getNamespace() { | ||
| return this.namespace; | ||
| } | ||
| getContentModel() { | ||
| return this.contentModel; | ||
| } | ||
| setContentModel(model) { | ||
| this.contentModel = model; | ||
| } | ||
| addAttributeDecl(decl) { | ||
| this.attributeDecls.set(decl.getName(), decl); | ||
| } | ||
| getAttributeDecl(name) { | ||
| return this.attributeDecls.get(name); | ||
| } | ||
| getAttributeDecls() { | ||
| return this.attributeDecls; | ||
| } | ||
| setSimpleType(type) { | ||
| this.simpleType = type; | ||
| } | ||
| getSimpleType() { | ||
| return this.simpleType; | ||
| } | ||
| setTextFacets(facets) { | ||
| this.textFacets = facets; | ||
| } | ||
| validateText(value) { | ||
| if (!this.textFacets) { | ||
| return true; | ||
| } | ||
| return SchemaTypeValidator.validateFacets(value, this.textFacets, this.simpleType); | ||
| } | ||
| hasTextFacets() { | ||
| return this.textFacets !== undefined; | ||
| } | ||
| setAnyAttribute(namespace = '##any', processContents = 'strict', ownerNs, excludedNamespaces) { | ||
| this.anyAttribute = true; | ||
| this.anyAttributeNamespace = namespace; | ||
| this.anyAttributeProcessContents = processContents; | ||
| this.anyAttributeOwnerNs = ownerNs; | ||
| this.anyAttributeExcludedNamespaces = excludedNamespaces; | ||
| } | ||
| allowsAnyAttribute() { | ||
| return this.anyAttribute; | ||
| } | ||
| getAnyAttributeNamespace() { | ||
| return this.anyAttributeNamespace; | ||
| } | ||
| getAnyAttributeProcessContents() { | ||
| return this.anyAttributeProcessContents; | ||
| } | ||
| getAnyAttributeOwnerNs() { | ||
| return this.anyAttributeOwnerNs; | ||
| } | ||
| getAnyAttributeExcludedNamespaces() { | ||
| return this.anyAttributeExcludedNamespaces; | ||
| } | ||
| setDeclaredTypeName(typeName) { | ||
| this.declaredTypeName = typeName; | ||
| } | ||
| getDeclaredTypeName() { | ||
| return this.declaredTypeName; | ||
| } | ||
| setAbstract(value) { | ||
| this.abstract = value; | ||
| } | ||
| isAbstractElement() { | ||
| return this.abstract; | ||
| } | ||
| setBlockConstraints(constraints) { | ||
| this.blockConstraints = constraints; | ||
| } | ||
| getBlockConstraints() { | ||
| return this.blockConstraints; | ||
| } | ||
| setFinalConstraints(constraints) { | ||
| this.finalConstraints = constraints; | ||
| } | ||
| getFinalConstraints() { | ||
| return this.finalConstraints; | ||
| } | ||
| setNillable(value) { | ||
| this.nillable = value; | ||
| } | ||
| isNillable() { | ||
| return this.nillable; | ||
| } | ||
| setUnionMemberTypes(types) { | ||
| this.unionMemberTypes = types; | ||
| } | ||
| getUnionMemberTypes() { | ||
| return this.unionMemberTypes; | ||
| } | ||
| setUnionAlternatives(alts) { | ||
| this.unionAlternatives = alts.slice(); | ||
| } | ||
| getUnionAlternatives() { | ||
| return this.unionAlternatives; | ||
| } | ||
| setListItemType(type) { | ||
| this.listItemType = type; | ||
| } | ||
| getListItemType() { | ||
| return this.listItemType; | ||
| } | ||
| addIdentityConstraint(constraint) { | ||
| if (!this.identityConstraints) { | ||
| this.identityConstraints = []; | ||
| } | ||
| this.identityConstraints.push(constraint); | ||
| } | ||
| getIdentityConstraints() { | ||
| return this.identityConstraints; | ||
| } | ||
| setFixedValue(value) { | ||
| this.fixedValue = value; | ||
| } | ||
| getFixedValue() { | ||
| return this.fixedValue; | ||
| } | ||
| setDefaultValue(value) { | ||
| this.defaultValue = value; | ||
| } | ||
| getDefaultValue() { | ||
| return this.defaultValue; | ||
| } | ||
| setQualified(value) { | ||
| this.qualified = value; | ||
| } | ||
| isQualified() { | ||
| return this.qualified; | ||
| } | ||
| } | ||
| //# sourceMappingURL=SchemaElementDecl.js.map |
| {"version":3,"file":"SchemaElementDecl.js","sourceRoot":"","sources":["../../../ts/schema/SchemaElementDecl.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export declare class SchemaElementParticle extends SchemaParticle { | ||
| name: string; | ||
| private additionalNames; | ||
| constructor(name: string, minOccurs?: number, maxOccurs?: number | 'unbounded', additionalNames?: Set<string>); | ||
| matchOnce(children: string[], pos: number, _nsMap?: Map<string, string>): number[]; | ||
| } |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export class SchemaElementParticle extends SchemaParticle { | ||
| name; | ||
| additionalNames; | ||
| constructor(name, minOccurs = 1, maxOccurs = 1, additionalNames) { | ||
| super(minOccurs, maxOccurs); | ||
| this.name = name; | ||
| this.additionalNames = additionalNames !== undefined ? additionalNames : new Set(); | ||
| } | ||
| matchOnce(children, pos, _nsMap) { | ||
| if (pos >= children.length) { | ||
| return []; | ||
| } | ||
| const childName = children[pos]; | ||
| if (childName === this.name) { | ||
| return [pos + 1]; | ||
| } | ||
| // Compare by local name, ignoring any namespace prefix on either side. | ||
| const particleColon = this.name.indexOf(':'); | ||
| const childColon = childName.indexOf(':'); | ||
| const particleLocal = particleColon !== -1 ? this.name.substring(particleColon + 1) : this.name; | ||
| const childLocal = childColon !== -1 ? childName.substring(childColon + 1) : childName; | ||
| if (particleLocal === childLocal) { | ||
| return [pos + 1]; | ||
| } | ||
| // Check substitution group members. | ||
| for (const altName of this.additionalNames) { | ||
| const altColon = altName.indexOf(':'); | ||
| const altLocal = altColon !== -1 ? altName.substring(altColon + 1) : altName; | ||
| if (childLocal === altLocal) { | ||
| return [pos + 1]; | ||
| } | ||
| } | ||
| return []; | ||
| } | ||
| } | ||
| //# sourceMappingURL=SchemaElementParticle.js.map |
| {"version":3,"file":"SchemaElementParticle.js","sourceRoot":"","sources":["../../../ts/schema/SchemaElementParticle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,qBAAsB,SAAQ,cAAc;IAErD,IAAI,CAAS;IACL,eAAe,CAAc;IAErC,YAAY,IAAY,EAAE,YAAoB,CAAC,EAAE,YAAkC,CAAC,EAAE,eAA6B;QAC/G,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;IAC/F,CAAC;IAED,SAAS,CAAC,QAAkB,EAAE,GAAW,EAAE,MAA4B;QACnE,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAW,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,uEAAuE;QACvE,MAAM,aAAa,GAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,UAAU,GAAW,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,aAAa,GAAW,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACxG,MAAM,UAAU,GAAW,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,oCAAoC;QACpC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAW,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAW,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACrF,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACrB,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { AttributeInfo, Grammar, GrammarType, ValidationResult } from '../grammar/Grammar.js'; | ||
| import { SchemaAttributeDecl } from './SchemaAttributeDecl.js'; | ||
| import { SchemaElementDecl } from './SchemaElementDecl.js'; | ||
| export declare class SchemaGrammar implements Grammar { | ||
| private elementDecls; | ||
| private complexTypeDecls; | ||
| private simpleTypeDecls; | ||
| private targetNamespaces; | ||
| private namespaceDeclarations; | ||
| private globalAttributeDecls; | ||
| private importedGrammars; | ||
| private xsiTypeStack; | ||
| private nilStack; | ||
| private typeHierarchy; | ||
| private instanceNsStack; | ||
| private elementPath; | ||
| private activeScopes; | ||
| private completedKeys; | ||
| private lastClosedDepth; | ||
| private lastPoppedXsiType; | ||
| private lastPoppedNil; | ||
| private lastPoppedInstanceNs; | ||
| private seenIds; | ||
| private pendingIdrefs; | ||
| private pendingKeyrefChecks; | ||
| private wildcardModeStack; | ||
| constructor(); | ||
| addTargetNamespace(namespace: string): void; | ||
| addNamespaceDeclaration(prefix: string, uri: string): void; | ||
| addGlobalAttributeDecl(decl: SchemaAttributeDecl): void; | ||
| addImportedGrammar(namespace: string, grammar: SchemaGrammar): void; | ||
| addComplexTypeDecl(typeName: string, decl: SchemaElementDecl): void; | ||
| addSimpleTypeDecl(typeName: string, decl: SchemaElementDecl): void; | ||
| addTypeHierarchyEntry(typeName: string, baseTypeName: string, method: string): void; | ||
| mergeFrom(other: SchemaGrammar): void; | ||
| addElementDecl(decl: SchemaElementDecl): void; | ||
| getElementDecl(name: string): SchemaElementDecl | undefined; | ||
| validateElement(element: string, children: string[], text: string): ValidationResult; | ||
| validateAttributes(element: string, attributes: Map<string, string>): ValidationResult; | ||
| getElementAttributes(element: string): Map<string, AttributeInfo>; | ||
| getDefaultAttributes(element: string): Map<string, string>; | ||
| resolveEntity(_name: string): string | undefined; | ||
| getGrammarType(): GrammarType; | ||
| getTargetNamespaces(): Set<string>; | ||
| getNamespaceDeclarations(): Map<string, string>; | ||
| private anyAttributeCovers; | ||
| private getElementNamespace; | ||
| private resolvePrefix; | ||
| private buildElementKey; | ||
| private validateTokenForType; | ||
| private localName; | ||
| private lookupElementDecl; | ||
| private getFinalBlockedMethod; | ||
| private isTypeDerivedFrom; | ||
| private getPathMethods; | ||
| private parseSelectorSegments; | ||
| private selectorMatches; | ||
| private parseFieldPath; | ||
| private parseFieldAlternatives; | ||
| private collectAttributeFields; | ||
| private collectTextFields; | ||
| private tupleKey; | ||
| private closeConstraintScopes; | ||
| } |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { AttributeUse, GrammarType, ValidationResult } from '../grammar/Grammar.js'; | ||
| import { SchemaContentModelType } from './SchemaContentModel.js'; | ||
| import { SchemaTypeValidator } from './SchemaTypeValidator.js'; | ||
| const BUILTIN_TYPE_HIERARCHY = new Map([ | ||
| ['anySimpleType', 'anyType'], | ||
| ['anyAtomicType', 'anySimpleType'], | ||
| ['string', 'anyAtomicType'], | ||
| ['normalizedString', 'string'], | ||
| ['token', 'normalizedString'], | ||
| ['language', 'token'], | ||
| ['NMTOKEN', 'token'], | ||
| ['Name', 'token'], | ||
| ['NCName', 'Name'], | ||
| ['ID', 'NCName'], | ||
| ['IDREF', 'NCName'], | ||
| ['ENTITY', 'NCName'], | ||
| ['NMTOKENS', 'anySimpleType'], | ||
| ['IDREFS', 'anySimpleType'], | ||
| ['ENTITIES', 'anySimpleType'], | ||
| ['decimal', 'anyAtomicType'], | ||
| ['integer', 'decimal'], | ||
| ['long', 'integer'], | ||
| ['int', 'long'], | ||
| ['short', 'int'], | ||
| ['byte', 'short'], | ||
| ['nonNegativeInteger', 'integer'], | ||
| ['positiveInteger', 'nonNegativeInteger'], | ||
| ['unsignedLong', 'nonNegativeInteger'], | ||
| ['unsignedInt', 'unsignedLong'], | ||
| ['unsignedShort', 'unsignedInt'], | ||
| ['unsignedByte', 'unsignedShort'], | ||
| ['nonPositiveInteger', 'integer'], | ||
| ['negativeInteger', 'nonPositiveInteger'], | ||
| ['float', 'anyAtomicType'], | ||
| ['double', 'anyAtomicType'], | ||
| ['boolean', 'anyAtomicType'], | ||
| ['duration', 'anyAtomicType'], | ||
| ['dayTimeDuration', 'duration'], | ||
| ['yearMonthDuration', 'duration'], | ||
| ['dateTime', 'anyAtomicType'], | ||
| ['dateTimeStamp', 'dateTime'], | ||
| ['date', 'anyAtomicType'], | ||
| ['time', 'anyAtomicType'], | ||
| ['gYearMonth', 'anyAtomicType'], | ||
| ['gYear', 'anyAtomicType'], | ||
| ['gMonthDay', 'anyAtomicType'], | ||
| ['gDay', 'anyAtomicType'], | ||
| ['gMonth', 'anyAtomicType'], | ||
| ['hexBinary', 'anyAtomicType'], | ||
| ['base64Binary', 'anyAtomicType'], | ||
| ['anyURI', 'anyAtomicType'], | ||
| ['QName', 'anyAtomicType'], | ||
| ['NOTATION', 'anyAtomicType'], | ||
| ]); | ||
| export class SchemaGrammar { | ||
| elementDecls; | ||
| complexTypeDecls; | ||
| simpleTypeDecls; | ||
| targetNamespaces; | ||
| namespaceDeclarations; | ||
| globalAttributeDecls; | ||
| importedGrammars; | ||
| xsiTypeStack; | ||
| nilStack; | ||
| typeHierarchy; | ||
| instanceNsStack; | ||
| elementPath; | ||
| activeScopes; | ||
| completedKeys; | ||
| lastClosedDepth; | ||
| lastPoppedXsiType; | ||
| lastPoppedNil; | ||
| lastPoppedInstanceNs; | ||
| seenIds; | ||
| pendingIdrefs; | ||
| pendingKeyrefChecks; | ||
| wildcardModeStack; | ||
| constructor() { | ||
| this.elementDecls = new Map(); | ||
| this.complexTypeDecls = new Map(); | ||
| this.simpleTypeDecls = new Map(); | ||
| this.targetNamespaces = new Set(); | ||
| this.namespaceDeclarations = new Map(); | ||
| this.globalAttributeDecls = new Map(); | ||
| this.importedGrammars = new Map(); | ||
| this.xsiTypeStack = []; | ||
| this.nilStack = []; | ||
| this.typeHierarchy = new Map(); | ||
| this.instanceNsStack = []; | ||
| this.elementPath = []; | ||
| this.activeScopes = []; | ||
| this.completedKeys = new Map(); | ||
| this.lastClosedDepth = -1; | ||
| this.lastPoppedXsiType = undefined; | ||
| this.lastPoppedNil = false; | ||
| this.seenIds = new Set(); | ||
| this.pendingIdrefs = []; | ||
| this.pendingKeyrefChecks = []; | ||
| this.wildcardModeStack = []; | ||
| } | ||
| addTargetNamespace(namespace) { | ||
| this.targetNamespaces.add(namespace); | ||
| } | ||
| addNamespaceDeclaration(prefix, uri) { | ||
| this.namespaceDeclarations.set(prefix, uri); | ||
| } | ||
| addGlobalAttributeDecl(decl) { | ||
| this.globalAttributeDecls.set(decl.getName(), decl); | ||
| } | ||
| addImportedGrammar(namespace, grammar) { | ||
| this.importedGrammars.set(namespace, grammar); | ||
| } | ||
| addComplexTypeDecl(typeName, decl) { | ||
| this.complexTypeDecls.set(typeName, decl); | ||
| } | ||
| addSimpleTypeDecl(typeName, decl) { | ||
| this.simpleTypeDecls.set(typeName, decl); | ||
| } | ||
| addTypeHierarchyEntry(typeName, baseTypeName, method) { | ||
| this.typeHierarchy.set(typeName, { base: baseTypeName, method: method }); | ||
| } | ||
| mergeFrom(other) { | ||
| for (const [, decl] of other.elementDecls) { | ||
| this.addElementDecl(decl); | ||
| } | ||
| for (const [typeName, decl] of other.complexTypeDecls) { | ||
| if (!this.complexTypeDecls.has(typeName)) { | ||
| this.complexTypeDecls.set(typeName, decl); | ||
| } | ||
| } | ||
| for (const [typeName, decl] of other.simpleTypeDecls) { | ||
| if (!this.simpleTypeDecls.has(typeName)) { | ||
| this.simpleTypeDecls.set(typeName, decl); | ||
| } | ||
| } | ||
| for (const ns of other.targetNamespaces) { | ||
| this.targetNamespaces.add(ns); | ||
| } | ||
| for (const [name, decl] of other.globalAttributeDecls) { | ||
| if (!this.globalAttributeDecls.has(name)) { | ||
| this.globalAttributeDecls.set(name, decl); | ||
| } | ||
| } | ||
| for (const [ns, grammar] of other.importedGrammars) { | ||
| if (!this.importedGrammars.has(ns)) { | ||
| this.importedGrammars.set(ns, grammar); | ||
| } | ||
| } | ||
| for (const [typeName, entry] of other.typeHierarchy) { | ||
| if (!this.typeHierarchy.has(typeName)) { | ||
| this.typeHierarchy.set(typeName, entry); | ||
| } | ||
| } | ||
| } | ||
| addElementDecl(decl) { | ||
| const key = this.buildElementKey(decl.getName(), decl.getNamespace()); | ||
| this.elementDecls.set(key, decl); | ||
| } | ||
| getElementDecl(name) { | ||
| return this.lookupElementDecl(name); | ||
| } | ||
| validateElement(element, children, text) { | ||
| const xsiType = this.xsiTypeStack.length > 0 ? this.xsiTypeStack.pop() : undefined; | ||
| this.lastPoppedXsiType = xsiType; | ||
| const isNilled = this.nilStack.length > 0 ? (this.nilStack.pop() ?? false) : false; | ||
| this.lastPoppedNil = isNilled; | ||
| if (this.instanceNsStack.length > 0) { | ||
| this.lastPoppedInstanceNs = this.instanceNsStack.pop(); | ||
| } | ||
| else { | ||
| this.lastPoppedInstanceNs = undefined; | ||
| } | ||
| this.lastClosedDepth = this.elementPath.length - 1; | ||
| const wildcardMode = this.wildcardModeStack.length > 0 ? this.wildcardModeStack.pop() : undefined; | ||
| if (wildcardMode === 'skip') { | ||
| if (this.elementPath.length > 0) { | ||
| this.elementPath.pop(); | ||
| } | ||
| return ValidationResult.success(); | ||
| } | ||
| if (this.activeScopes.length > 0 && !isNilled) { | ||
| const closingDepth = this.lastClosedDepth; | ||
| const idLocalName = this.localName(element); | ||
| for (const scope of this.activeScopes) { | ||
| if (scope.pendingStack.length === 0) { | ||
| continue; | ||
| } | ||
| const top = scope.pendingStack[scope.pendingStack.length - 1]; | ||
| if (!top.nil) { | ||
| if (closingDepth === top.depth) { | ||
| this.collectTextFields(scope, idLocalName, text, true, this.lastPoppedInstanceNs, xsiType); | ||
| } | ||
| else { | ||
| const hasDescendantField = scope.constraint.fields.some((f) => f.split('|').some((alt) => alt.trim().startsWith('.//'))); | ||
| const depthMatches = hasDescendantField | ||
| ? closingDepth > top.depth | ||
| : closingDepth === top.depth + 1; | ||
| if (depthMatches) { | ||
| this.collectTextFields(scope, idLocalName, text, false, this.lastPoppedInstanceNs, xsiType); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| const constraintError = this.closeConstraintScopes(); | ||
| if (this.elementPath.length > 0) { | ||
| this.elementPath.pop(); | ||
| } | ||
| if (wildcardMode === 'lax') { | ||
| return ValidationResult.success(); | ||
| } | ||
| const substitutedDecl = xsiType !== undefined ? this.complexTypeDecls.get(xsiType) : undefined; | ||
| const decl = this.lookupElementDecl(element); | ||
| if (!decl) { | ||
| return ValidationResult.error('Element "' + element + '" is not declared in the schema'); | ||
| } | ||
| // Per spec §2.6.2: a nilled element must have no element or text children. | ||
| if (isNilled) { | ||
| if (children.length > 0) { | ||
| return ValidationResult.error('Element "' + element + '" has xsi:nil="true" but contains child elements'); | ||
| } | ||
| if (text.trim().length > 0) { | ||
| return ValidationResult.error('Element "' + element + '" has xsi:nil="true" but contains text content'); | ||
| } | ||
| if (constraintError !== undefined) { | ||
| return ValidationResult.error(constraintError); | ||
| } | ||
| return ValidationResult.success(); | ||
| } | ||
| // Per the spec, an abstract element cannot appear directly in an instance. | ||
| if (decl.isAbstractElement() && xsiType === undefined) { | ||
| return ValidationResult.error('Element "' + element + '" is declared abstract and cannot appear directly in an instance'); | ||
| } | ||
| const effectiveDecl = substitutedDecl !== undefined ? substitutedDecl : decl; | ||
| const contentResult = effectiveDecl.getContentModel().validateChildren(element, children, this.lastPoppedInstanceNs); | ||
| if (!contentResult.isValid) { | ||
| return contentResult; | ||
| } | ||
| if (constraintError !== undefined) { | ||
| return ValidationResult.error(constraintError); | ||
| } | ||
| const xsiTypeDecl = xsiType !== undefined | ||
| ? (this.complexTypeDecls.get(xsiType) ?? this.simpleTypeDecls.get(xsiType)) | ||
| : undefined; | ||
| const textDecl = xsiTypeDecl !== undefined ? xsiTypeDecl : decl; | ||
| const instanceNs = this.lastPoppedInstanceNs; | ||
| const elementDefaultValue = textDecl.getDefaultValue(); | ||
| const effectiveText = text.trim() === '' && elementDefaultValue !== undefined ? elementDefaultValue : text; | ||
| let textError = undefined; | ||
| const fixedValue = textDecl.getFixedValue(); | ||
| if (fixedValue !== undefined) { | ||
| const normalizedText = text.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| if (normalizedText !== fixedValue) { | ||
| textError = 'Element "' + element + '" has a fixed value "' + fixedValue + '" but got "' + normalizedText + '"'; | ||
| } | ||
| } | ||
| if (textError === undefined) { | ||
| const simpleType = textDecl.getSimpleType(); | ||
| if (simpleType !== undefined) { | ||
| const normalizedText = effectiveText.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| if (!SchemaTypeValidator.validate(normalizedText, simpleType, instanceNs)) { | ||
| textError = 'Invalid text content "' + effectiveText + '" for element "' + element + '": expected type ' + simpleType; | ||
| } | ||
| else if (textDecl.hasTextFacets() && !textDecl.validateText(effectiveText)) { | ||
| textError = 'Text content "' + effectiveText + '" of element "' + element + '" violates facet constraints'; | ||
| } | ||
| else { | ||
| const simpleTypeLocal = this.localName(simpleType); | ||
| if (simpleTypeLocal === 'ID' || this.isTypeDerivedFrom(simpleTypeLocal, 'ID')) { | ||
| if (this.seenIds.has(normalizedText)) { | ||
| textError = 'Duplicate xs:ID value "' + normalizedText + '" in element "' + element + '"'; | ||
| } | ||
| else { | ||
| this.seenIds.add(normalizedText); | ||
| } | ||
| } | ||
| else if (simpleTypeLocal === 'IDREF' || this.isTypeDerivedFrom(simpleTypeLocal, 'IDREF')) { | ||
| this.pendingIdrefs.push(normalizedText); | ||
| } | ||
| else if (simpleTypeLocal === 'IDREFS' || this.isTypeDerivedFrom(simpleTypeLocal, 'IDREFS')) { | ||
| for (const token of normalizedText.split(/\s+/)) { | ||
| if (token.length > 0) { | ||
| this.pendingIdrefs.push(token); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| else { | ||
| const unionAlternatives = textDecl.getUnionAlternatives(); | ||
| const unionMemberTypes = textDecl.getUnionMemberTypes(); | ||
| if (unionAlternatives !== undefined && unionAlternatives.length > 0) { | ||
| const normalizedText = effectiveText.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| let valid = false; | ||
| for (const alt of unionAlternatives) { | ||
| if (SchemaTypeValidator.validate(normalizedText, alt.baseType, instanceNs) && SchemaTypeValidator.validateFacets(normalizedText, alt.facets, alt.baseType)) { | ||
| valid = true; | ||
| break; | ||
| } | ||
| } | ||
| if (!valid) { | ||
| textError = 'Invalid text content "' + effectiveText + '" for element "' + element + '": does not match any union member type'; | ||
| } | ||
| } | ||
| else if (unionMemberTypes !== undefined && unionMemberTypes.length > 0) { | ||
| const normalizedText = effectiveText.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| let valid = false; | ||
| for (const memberType of unionMemberTypes) { | ||
| if (this.validateTokenForType(normalizedText, memberType, instanceNs)) { | ||
| valid = true; | ||
| break; | ||
| } | ||
| } | ||
| if (!valid) { | ||
| textError = 'Invalid text content "' + effectiveText + '" for element "' + element + '": does not match any union member type'; | ||
| } | ||
| } | ||
| else { | ||
| const listItemType = textDecl.getListItemType(); | ||
| if (listItemType !== undefined) { | ||
| const normalizedText = effectiveText.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| const tokens = normalizedText.length === 0 ? [] : normalizedText.split(/\s+/); | ||
| for (const token of tokens) { | ||
| if (!this.validateTokenForType(token, listItemType, instanceNs)) { | ||
| textError = 'Invalid list item "' + token + '" for element "' + element + '": expected type ' + listItemType; | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| else if (decl.getContentModel().getType() === SchemaContentModelType.ELEMENT | ||
| || decl.getContentModel().getType() === SchemaContentModelType.EMPTY) { | ||
| if (effectiveText.trim().length > 0) { | ||
| textError = 'Element "' + element + '" has element-only content but contains text: "' + effectiveText + '"'; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| if (this.elementPath.length === 0) { | ||
| for (const ref of this.pendingIdrefs) { | ||
| if (!this.seenIds.has(ref)) { | ||
| return ValidationResult.error('xs:IDREF value "' + ref + '" does not match any xs:ID in the document'); | ||
| } | ||
| } | ||
| } | ||
| if (textError !== undefined) { | ||
| return ValidationResult.error(textError); | ||
| } | ||
| return contentResult; | ||
| } | ||
| validateAttributes(element, attributes) { | ||
| if (this.elementPath.length === 0) { | ||
| this.completedKeys = new Map(); | ||
| this.activeScopes = []; | ||
| this.seenIds = new Set(); | ||
| this.pendingIdrefs = []; | ||
| this.pendingKeyrefChecks = []; | ||
| this.wildcardModeStack = []; | ||
| } | ||
| this.elementPath.push(this.localName(element)); | ||
| const currentDepth = this.elementPath.length - 1; | ||
| let isNilTrue = false; | ||
| let isNilPresent = false; | ||
| for (const [attrName, attrValue] of attributes) { | ||
| let isNilAttr = attrName === 'xsi:nil'; | ||
| if (!isNilAttr && attrName.endsWith(':nil') && attrName.indexOf(':') !== -1) { | ||
| const nilCheckPrefix = attrName.substring(0, attrName.indexOf(':')); | ||
| const nilCheckNs = this.resolvePrefix(nilCheckPrefix); | ||
| if (nilCheckNs === 'http://www.w3.org/2001/XMLSchema-instance') { | ||
| isNilAttr = true; | ||
| } | ||
| } | ||
| if (isNilAttr) { | ||
| isNilPresent = true; | ||
| if (attrValue === 'true' || attrValue === '1') { | ||
| isNilTrue = true; | ||
| } | ||
| break; | ||
| } | ||
| } | ||
| for (const scope of this.activeScopes) { | ||
| if (scope.pendingStack.length > 0 && scope.pendingStack[scope.pendingStack.length - 1].depth === currentDepth) { | ||
| continue; | ||
| } | ||
| const relativePath = this.elementPath.slice(scope.rootDepth + 1); | ||
| let selectorMatched = false; | ||
| for (const alt of scope.selectorAlternatives) { | ||
| if (alt.descendant) { | ||
| if (currentDepth >= scope.rootDepth + alt.segments.length | ||
| && relativePath.length >= alt.segments.length | ||
| && this.selectorMatches(alt.segments, relativePath.slice(relativePath.length - alt.segments.length))) { | ||
| selectorMatched = true; | ||
| break; | ||
| } | ||
| } | ||
| else if (currentDepth === scope.rootDepth + alt.segments.length | ||
| && this.selectorMatches(alt.segments, relativePath)) { | ||
| selectorMatched = true; | ||
| break; | ||
| } | ||
| } | ||
| if (selectorMatched) { | ||
| scope.pendingStack.push({ | ||
| tuple: new Array(scope.constraint.fields.length).fill(undefined), | ||
| depth: currentDepth, | ||
| overflow: false, | ||
| nil: isNilTrue | ||
| }); | ||
| this.collectAttributeFields(scope, attributes, this.localName(element)); | ||
| } | ||
| } | ||
| // Detect xsi:type for content-model substitution and push to stack. | ||
| let xsiTypeLocalName = undefined; | ||
| for (const [attrName, attrValue] of attributes) { | ||
| if (attrName === 'xsi:type') { | ||
| xsiTypeLocalName = this.localName(attrValue); | ||
| break; | ||
| } | ||
| if (attrName.endsWith(':type') && attrName.indexOf(':') !== -1) { | ||
| const prefix = attrName.substring(0, attrName.indexOf(':')); | ||
| const ns = this.resolvePrefix(prefix); | ||
| if (ns === 'http://www.w3.org/2001/XMLSchema-instance') { | ||
| xsiTypeLocalName = this.localName(attrValue); | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| this.xsiTypeStack.push(xsiTypeLocalName); | ||
| // Detect xsi:nil and push to nil stack. | ||
| this.nilStack.push(isNilTrue); | ||
| // Build instance namespace scope for this element (inherits from parent scope). | ||
| const instanceNs = new Map(); | ||
| if (this.instanceNsStack.length > 0) { | ||
| for (const [p, u] of this.instanceNsStack[this.instanceNsStack.length - 1]) { | ||
| instanceNs.set(p, u); | ||
| } | ||
| } | ||
| for (const [attrName, attrValue] of attributes) { | ||
| if (attrName === 'xmlns') { | ||
| instanceNs.set('', attrValue); | ||
| } | ||
| else if (attrName.startsWith('xmlns:')) { | ||
| instanceNs.set(attrName.substring(6), attrValue); | ||
| } | ||
| } | ||
| this.instanceNsStack.push(instanceNs); | ||
| const parentMode = this.wildcardModeStack.length > 0 ? this.wildcardModeStack[this.wildcardModeStack.length - 1] : undefined; | ||
| if (parentMode === 'skip') { | ||
| this.wildcardModeStack.push('skip'); | ||
| return ValidationResult.success(); | ||
| } | ||
| const decl = this.lookupElementDecl(element); | ||
| if (!decl) { | ||
| if (parentMode === 'lax') { | ||
| this.wildcardModeStack.push('lax'); | ||
| return ValidationResult.success(); | ||
| } | ||
| if (this.elementPath.length >= 2) { | ||
| const parentName = this.elementPath[this.elementPath.length - 2]; | ||
| const parentDecl = this.lookupElementDecl(parentName); | ||
| if (parentDecl !== undefined) { | ||
| if (parentDecl.getContentModel().getType() === SchemaContentModelType.ANY) { | ||
| this.wildcardModeStack.push('skip'); | ||
| return ValidationResult.success(); | ||
| } | ||
| const currentNs = this.instanceNsStack.length > 0 ? this.instanceNsStack[this.instanceNsStack.length - 1] : undefined; | ||
| const pc = parentDecl.getContentModel().findCoveringWildcard(element, currentNs); | ||
| if (pc === 'lax') { | ||
| this.wildcardModeStack.push('lax'); | ||
| return ValidationResult.success(); | ||
| } | ||
| if (pc === 'skip') { | ||
| this.wildcardModeStack.push('skip'); | ||
| return ValidationResult.success(); | ||
| } | ||
| } | ||
| } | ||
| return ValidationResult.error('Element "' + element + '" is not declared in the schema'); | ||
| } | ||
| this.wildcardModeStack.push('normal'); | ||
| // Enforce elementFormDefault / form per XSD §3.3.1 / §2.6.3. | ||
| // Use instanceNsStack (which already includes xmlns= declared on this element) | ||
| // rather than resolvePrefix(), which only reads the static namespaceDeclarations map. | ||
| const colonIdx = element.indexOf(':'); | ||
| const elemPrefix = colonIdx !== -1 ? element.substring(0, colonIdx) : ''; | ||
| const currentInstanceNs = this.instanceNsStack.length > 0 ? this.instanceNsStack[this.instanceNsStack.length - 1] : undefined; | ||
| const resolvedElemNs = currentInstanceNs !== undefined ? currentInstanceNs.get(elemPrefix) : undefined; | ||
| if (decl.isQualified()) { | ||
| const declNs = decl.getNamespace(); | ||
| if (declNs !== undefined && resolvedElemNs !== declNs) { | ||
| return ValidationResult.error('Element "' + element + '" must be namespace-qualified with namespace "' + declNs + '"'); | ||
| } | ||
| } | ||
| else { | ||
| if (resolvedElemNs !== undefined && resolvedElemNs !== '') { | ||
| return ValidationResult.error('Element "' + element + '" must not be namespace-qualified (elementFormDefault is unqualified)'); | ||
| } | ||
| } | ||
| // Per spec §3.3.4 cvc-elt 3.2.1: xsi:nil is only allowed when the element declaration has nillable="true". | ||
| if (isNilPresent && !decl.isNillable()) { | ||
| return ValidationResult.error('Element "' + element + '" is not nillable but xsi:nil was specified'); | ||
| } | ||
| if (xsiTypeLocalName === undefined) { | ||
| const declaredTypeName = decl.getDeclaredTypeName(); | ||
| if (declaredTypeName !== undefined) { | ||
| const declaredTypeDecl = this.complexTypeDecls.get(declaredTypeName); | ||
| if (declaredTypeDecl !== undefined && declaredTypeDecl.isAbstractElement()) { | ||
| return ValidationResult.error('Element "' + element + '" has abstract type "' + declaredTypeName + | ||
| '" and must use xsi:type to specify a concrete type'); | ||
| } | ||
| } | ||
| } | ||
| // Per the spec (§3.9.4), xsi:type must name a type validly derived from the element's declared type. | ||
| if (xsiTypeLocalName !== undefined) { | ||
| const xsiTypeDecl = this.complexTypeDecls.get(xsiTypeLocalName); | ||
| if (xsiTypeDecl !== undefined && xsiTypeDecl.isAbstractElement()) { | ||
| return ValidationResult.error('xsi:type "' + xsiTypeLocalName + '" is abstract and cannot be used for element instantiation'); | ||
| } | ||
| const declaredTypeName = decl.getDeclaredTypeName(); | ||
| if (declaredTypeName !== undefined) { | ||
| if (!this.isTypeDerivedFrom(xsiTypeLocalName, declaredTypeName)) { | ||
| return ValidationResult.error('xsi:type "' + xsiTypeLocalName + '" is not derived from the declared type "' + | ||
| declaredTypeName + '" of element "' + element + '"'); | ||
| } | ||
| const finalBlockedMethod = this.getFinalBlockedMethod(xsiTypeLocalName, declaredTypeName); | ||
| if (finalBlockedMethod !== undefined) { | ||
| return ValidationResult.error('xsi:type "' + xsiTypeLocalName + '" is not validly derived: type "' + | ||
| declaredTypeName + '" has final="' + finalBlockedMethod + '"'); | ||
| } | ||
| // Effective block is union of element's {disallowed substitutions} and | ||
| // the declared type's {prohibited substitutions} — spec §3.9.4 / §3.3.4. | ||
| const typeDecl = this.complexTypeDecls.get(declaredTypeName); | ||
| const elementBlock = decl.getBlockConstraints(); | ||
| const typeBlock = typeDecl !== undefined ? typeDecl.getBlockConstraints() : new Set(); | ||
| const effectiveBlock = new Set([...elementBlock, ...typeBlock]); | ||
| if (effectiveBlock.size > 0) { | ||
| const blocksAll = effectiveBlock.has('#all'); | ||
| if (blocksAll || effectiveBlock.has('extension') || effectiveBlock.has('restriction')) { | ||
| const pathMethods = this.getPathMethods(xsiTypeLocalName, declaredTypeName); | ||
| if (pathMethods.size > 0) { | ||
| if (blocksAll) { | ||
| return ValidationResult.error('xsi:type "' + xsiTypeLocalName + '" is blocked by type "' + | ||
| declaredTypeName + '"'); | ||
| } | ||
| for (const m of pathMethods) { | ||
| if (effectiveBlock.has(m)) { | ||
| return ValidationResult.error('xsi:type "' + xsiTypeLocalName + '" is blocked: derivation by "' + | ||
| m + '" is prohibited'); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| // If xsi:type is present, also use the substituted type's attribute declarations | ||
| // so that derived-type attributes (e.g. exportCode on UKAddress) are accepted. | ||
| const substitutedDecl = xsiTypeLocalName !== undefined | ||
| ? this.complexTypeDecls.get(xsiTypeLocalName) | ||
| : undefined; | ||
| const baseAttributes = decl.getAttributeDecls(); | ||
| const declaredAttributes = substitutedDecl !== undefined | ||
| ? substitutedDecl.getAttributeDecls() | ||
| : baseAttributes; | ||
| // Check provided attributes. | ||
| for (const [attrName, attrValue] of attributes) { | ||
| // Namespace declarations are not XML attributes in the data model. | ||
| if (attrName === 'xmlns' || attrName.startsWith('xmlns:')) { | ||
| continue; | ||
| } | ||
| // XML Schema instance attributes (xsi:*) are always permitted on any element. | ||
| if (attrName.startsWith('xsi:')) { | ||
| continue; | ||
| } | ||
| const colonIndex = attrName.indexOf(':'); | ||
| if (colonIndex !== -1) { | ||
| const prefix0 = attrName.substring(0, colonIndex); | ||
| const ns0 = this.resolvePrefix(prefix0); | ||
| if (ns0 === 'http://www.w3.org/2001/XMLSchema-instance') { | ||
| continue; | ||
| } | ||
| } | ||
| const attrLocalName = colonIndex !== -1 ? attrName.substring(colonIndex + 1) : attrName; | ||
| const attrDecl = declaredAttributes.get(attrName) !== undefined | ||
| ? declaredAttributes.get(attrName) | ||
| : declaredAttributes.get(attrLocalName); | ||
| if (attrDecl) { | ||
| if (!attrDecl.isValid(attrValue)) { | ||
| return ValidationResult.error('Invalid value "' + attrValue + '" for attribute "' + attrName + | ||
| '" of type "' + attrDecl.getType() + '" in element "' + element + '"'); | ||
| } | ||
| const attrTypeLocal = this.localName(attrDecl.getType()); | ||
| if (attrTypeLocal === 'ID' || this.isTypeDerivedFrom(attrTypeLocal, 'ID')) { | ||
| if (this.seenIds.has(attrValue)) { | ||
| return ValidationResult.error('Duplicate xs:ID value "' + attrValue + '" on attribute "' + attrName + | ||
| '" of element "' + element + '"'); | ||
| } | ||
| this.seenIds.add(attrValue); | ||
| } | ||
| else if (attrTypeLocal === 'IDREF' || this.isTypeDerivedFrom(attrTypeLocal, 'IDREF')) { | ||
| this.pendingIdrefs.push(attrValue); | ||
| } | ||
| else if (attrTypeLocal === 'IDREFS' || this.isTypeDerivedFrom(attrTypeLocal, 'IDREFS')) { | ||
| for (const token of attrValue.trim().split(/\s+/)) { | ||
| if (token.length > 0) { | ||
| this.pendingIdrefs.push(token); | ||
| } | ||
| } | ||
| } | ||
| continue; | ||
| } | ||
| // anyAttribute wildcard takes priority over imported-grammar lookups. | ||
| // The wildcard namespace constraint (e.g. ##other) may explicitly exclude | ||
| // certain namespaces, so it must be evaluated before any global-attribute | ||
| // fallback that would bypass that restriction. | ||
| if (decl.allowsAnyAttribute()) { | ||
| const anyNs = decl.getAnyAttributeNamespace(); | ||
| const anyPc = decl.getAnyAttributeProcessContents(); | ||
| const anyOwnerNs = decl.getAnyAttributeOwnerNs(); | ||
| const anyExcludedNs = decl.getAnyAttributeExcludedNamespaces(); | ||
| if (this.anyAttributeCovers(anyNs, anyPc, anyOwnerNs, anyExcludedNs, attrName, attrValue, element)) { | ||
| continue; | ||
| } | ||
| return ValidationResult.error('Attribute "' + attrName + '" is not permitted by the anyAttribute wildcard on element "' + element + '"'); | ||
| } | ||
| // No anyAttribute — try imported namespace grammars as a fallback. | ||
| if (colonIndex !== -1) { | ||
| const prefix = attrName.substring(0, colonIndex); | ||
| const namespaceUri = this.resolvePrefix(prefix); | ||
| if (namespaceUri === undefined) { | ||
| return ValidationResult.error('Undeclared namespace prefix "' + prefix + '" on attribute "' + attrName + '"'); | ||
| } | ||
| const importedGrammar = this.importedGrammars.get(namespaceUri); | ||
| if (importedGrammar) { | ||
| const globalDecl = importedGrammar.globalAttributeDecls.get(attrLocalName); | ||
| if (globalDecl) { | ||
| if (!globalDecl.isValid(attrValue)) { | ||
| return ValidationResult.error('Invalid value "' + attrValue + '" for attribute "' + attrName + | ||
| '" of type "' + globalDecl.getType() + '" in element "' + element + '"'); | ||
| } | ||
| continue; | ||
| } | ||
| } | ||
| } | ||
| if (decl.getContentModel().getType() === SchemaContentModelType.ANY) { | ||
| continue; | ||
| } | ||
| return ValidationResult.error('Attribute "' + attrName + '" is not declared for element "' + element + '"'); | ||
| } | ||
| // Check required attributes are present. | ||
| for (const [, attrDecl] of declaredAttributes) { | ||
| if (attrDecl.getUse() !== AttributeUse.REQUIRED) { | ||
| continue; | ||
| } | ||
| const declaredName = attrDecl.getName(); | ||
| if (attributes.has(declaredName)) { | ||
| continue; | ||
| } | ||
| // Also accept a prefixed variant (prefix:localName) of the same local name. | ||
| let found = false; | ||
| for (const attrName of attributes.keys()) { | ||
| if (this.localName(attrName) === declaredName) { | ||
| found = true; | ||
| break; | ||
| } | ||
| } | ||
| if (!found) { | ||
| return ValidationResult.error('Required attribute "' + declaredName + '" is missing from element "' + element + '"'); | ||
| } | ||
| } | ||
| const identityConstraints = decl.getIdentityConstraints(); | ||
| if (identityConstraints !== undefined) { | ||
| for (const constraint of identityConstraints) { | ||
| const selectorAlternatives = this.parseSelectorSegments(constraint.selector); | ||
| const scope = { | ||
| constraint, | ||
| rootDepth: currentDepth, | ||
| selectorAlternatives, | ||
| pendingStack: [], | ||
| lastCommittedTuple: undefined, | ||
| lastCommittedDepth: -1, | ||
| tuples: [], | ||
| }; | ||
| if (selectorAlternatives.some((alt) => alt.segments.length === 0)) { | ||
| scope.pendingStack.push({ | ||
| tuple: new Array(constraint.fields.length).fill(undefined), | ||
| depth: currentDepth, | ||
| overflow: false, | ||
| nil: isNilTrue | ||
| }); | ||
| this.collectAttributeFields(scope, attributes, this.localName(element)); | ||
| } | ||
| this.activeScopes.push(scope); | ||
| } | ||
| } | ||
| return ValidationResult.success(); | ||
| } | ||
| getElementAttributes(element) { | ||
| const result = new Map(); | ||
| const decl = this.lookupElementDecl(element); | ||
| if (!decl) { | ||
| return result; | ||
| } | ||
| for (const [name, attrDecl] of decl.getAttributeDecls()) { | ||
| result.set(name, attrDecl.toAttributeInfo()); | ||
| } | ||
| return result; | ||
| } | ||
| getDefaultAttributes(element) { | ||
| const result = new Map(); | ||
| const decl = this.lookupElementDecl(element); | ||
| if (!decl) { | ||
| return result; | ||
| } | ||
| for (const [name, attrDecl] of decl.getAttributeDecls()) { | ||
| const defaultValue = attrDecl.getDefaultValue(); | ||
| const fixedValue = attrDecl.getFixedValue(); | ||
| if (defaultValue !== undefined) { | ||
| result.set(name, defaultValue); | ||
| } | ||
| else if (fixedValue !== undefined) { | ||
| result.set(name, fixedValue); | ||
| } | ||
| } | ||
| return result; | ||
| } | ||
| resolveEntity(_name) { | ||
| return undefined; | ||
| } | ||
| getGrammarType() { | ||
| return GrammarType.XML_SCHEMA; | ||
| } | ||
| getTargetNamespaces() { | ||
| return this.targetNamespaces; | ||
| } | ||
| getNamespaceDeclarations() { | ||
| return this.namespaceDeclarations; | ||
| } | ||
| anyAttributeCovers(anyNs, processContents, ownerNs, excludedNs, attrName, attrValue, elementName) { | ||
| if (anyNs === '##empty') { | ||
| return false; | ||
| } | ||
| const colonIndex = attrName.indexOf(':'); | ||
| const attrPrefix = colonIndex !== -1 ? attrName.substring(0, colonIndex) : undefined; | ||
| const attrLocalName = colonIndex !== -1 ? attrName.substring(colonIndex + 1) : attrName; | ||
| const attrNs = attrPrefix ? this.resolvePrefix(attrPrefix) : undefined; | ||
| // Check if the attribute's namespace is covered by the wildcard constraint. | ||
| let covered = false; | ||
| if (anyNs === '##any') { | ||
| covered = true; | ||
| } | ||
| else if (anyNs === '##local') { | ||
| covered = attrPrefix === undefined; | ||
| } | ||
| else if (anyNs === '##other') { | ||
| // Per XSD spec §3.10.1: ##other means any non-absent namespace that is | ||
| // not the target namespace of the schema owning the anyAttribute. | ||
| if (excludedNs !== undefined && excludedNs.length > 0) { | ||
| covered = attrNs !== undefined && !excludedNs.includes(attrNs); | ||
| } | ||
| else { | ||
| covered = attrNs !== undefined && (ownerNs === undefined || attrNs !== ownerNs); | ||
| } | ||
| } | ||
| else { | ||
| // Space-separated list of URIs, ##local, ##targetNamespace. | ||
| const tokens = anyNs.split(/\s+/); | ||
| for (const token of tokens) { | ||
| if (token === '##local' && attrPrefix === undefined) { | ||
| covered = true; | ||
| break; | ||
| } | ||
| if (token === '##targetNamespace') { | ||
| if (attrNs !== undefined && attrNs === ownerNs) { | ||
| covered = true; | ||
| break; | ||
| } | ||
| } | ||
| if (token === attrNs) { | ||
| covered = true; | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| if (!covered) { | ||
| return false; | ||
| } | ||
| // Enforce processContents. | ||
| if (processContents === 'skip') { | ||
| return true; | ||
| } | ||
| // For 'strict' or 'lax', look up the attribute declaration in the imported grammar. | ||
| if (attrNs !== undefined) { | ||
| const importedGrammar = this.importedGrammars.get(attrNs); | ||
| if (importedGrammar) { | ||
| const globalDecl = importedGrammar.globalAttributeDecls.get(attrLocalName); | ||
| if (globalDecl) { | ||
| // Declaration found — validate the value. | ||
| return globalDecl.isValid(attrValue); | ||
| } | ||
| } | ||
| // No imported grammar or no declaration found. | ||
| if (processContents === 'strict') { | ||
| return false; // strict requires a declaration | ||
| } | ||
| return true; // lax: silently accept if no declaration | ||
| } | ||
| // Unqualified attribute with no namespace. | ||
| if (processContents === 'strict') { | ||
| return false; // strict requires a declaration; none found for unqualified attr | ||
| } | ||
| return true; // lax: accept | ||
| } | ||
| getElementNamespace(elementName) { | ||
| const decl = this.lookupElementDecl(elementName); | ||
| return decl ? decl.getNamespace() : undefined; | ||
| } | ||
| resolvePrefix(prefix) { | ||
| // 'xml' is always bound to this URI per the XML Namespaces specification. | ||
| if (prefix === 'xml') { | ||
| return 'http://www.w3.org/XML/1998/namespace'; | ||
| } | ||
| return this.namespaceDeclarations.get(prefix); | ||
| } | ||
| buildElementKey(name, namespace) { | ||
| if (namespace) { | ||
| return namespace + '|' + name; | ||
| } | ||
| return name; | ||
| } | ||
| validateTokenForType(token, typeName, instanceNs) { | ||
| const localTypeName = this.localName(typeName); | ||
| const typeDecl = this.simpleTypeDecls.get(localTypeName); | ||
| if (typeDecl !== undefined) { | ||
| const baseType = typeDecl.getSimpleType(); | ||
| if (baseType !== undefined) { | ||
| if (!SchemaTypeValidator.validate(token, baseType, instanceNs)) { | ||
| return false; | ||
| } | ||
| if (typeDecl.hasTextFacets() && !typeDecl.validateText(token)) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| } | ||
| return SchemaTypeValidator.validate(token, typeName, instanceNs); | ||
| } | ||
| localName(qname) { | ||
| const colonIndex = qname.indexOf(':'); | ||
| return colonIndex !== -1 ? qname.substring(colonIndex + 1) : qname; | ||
| } | ||
| lookupElementDecl(elementName) { | ||
| // 1. Exact key match. | ||
| let decl = this.elementDecls.get(elementName); | ||
| if (decl) { | ||
| return decl; | ||
| } | ||
| // 2. Strip namespace prefix; try local name only. | ||
| // A prefixed element cannot match an unqualified local declaration, so only return here | ||
| // when the found decl is qualified or the element itself carries no prefix. | ||
| const local = this.localName(elementName); | ||
| if (local !== elementName) { | ||
| decl = this.elementDecls.get(local); | ||
| if (decl && decl.isQualified()) { | ||
| return decl; | ||
| } | ||
| decl = undefined; | ||
| } | ||
| // 2b. Resolve the element's actual namespace from namespaceDeclarations and try that key first. | ||
| // Also consult instanceNsStack for prefixes declared in the instance document. | ||
| const colonIndex = elementName.indexOf(':'); | ||
| const prefix = colonIndex !== -1 ? elementName.substring(0, colonIndex) : ''; | ||
| const instanceNsTop = this.instanceNsStack.length > 0 ? this.instanceNsStack[this.instanceNsStack.length - 1] : undefined; | ||
| const resolvedNs = this.resolvePrefix(prefix) ?? instanceNsTop?.get(prefix); | ||
| if (resolvedNs) { | ||
| const nsKey = this.buildElementKey(local, resolvedNs); | ||
| decl = this.elementDecls.get(nsKey); | ||
| if (decl) { | ||
| return decl; | ||
| } | ||
| } | ||
| // 3. Try each known target namespace. | ||
| for (const ns of this.targetNamespaces) { | ||
| const nsKey = this.buildElementKey(local, ns); | ||
| decl = this.elementDecls.get(nsKey); | ||
| if (decl) { | ||
| return decl; | ||
| } | ||
| } | ||
| // 4. Linear scan matching local-name portion of any stored key, | ||
| // but only when the resolved namespace matches the stored key's namespace (or both are absent). | ||
| for (const [key, value] of this.elementDecls) { | ||
| const pipeIndex = key.indexOf('|'); | ||
| const keyLocal = pipeIndex !== -1 ? key.substring(pipeIndex + 1) : key; | ||
| if (keyLocal !== local) { | ||
| continue; | ||
| } | ||
| const keyNs = pipeIndex !== -1 ? key.substring(0, pipeIndex) : undefined; | ||
| if (keyNs === resolvedNs) { | ||
| return value; | ||
| } | ||
| } | ||
| return undefined; | ||
| } | ||
| getFinalBlockedMethod(candidate, required) { | ||
| const requiredDecl = this.complexTypeDecls.get(required) ?? this.simpleTypeDecls.get(required); | ||
| if (requiredDecl === undefined) { | ||
| return undefined; | ||
| } | ||
| const finalSet = requiredDecl.getFinalConstraints(); | ||
| if (finalSet.size === 0) { | ||
| return undefined; | ||
| } | ||
| let current = candidate; | ||
| const visited = new Set(); | ||
| while (current !== undefined && current !== required) { | ||
| if (visited.has(current)) { | ||
| break; | ||
| } | ||
| visited.add(current); | ||
| const entry = this.typeHierarchy.get(current); | ||
| if (!entry) { | ||
| break; | ||
| } | ||
| if (finalSet.has('#all') || finalSet.has(entry.method)) { | ||
| return entry.method; | ||
| } | ||
| current = entry.base; | ||
| } | ||
| return undefined; | ||
| } | ||
| isTypeDerivedFrom(candidate, required) { | ||
| if (candidate === required) { | ||
| return true; | ||
| } | ||
| // xs:anyType is the root of all types. | ||
| if (required === 'anyType') { | ||
| return true; | ||
| } | ||
| let current = candidate; | ||
| const visited = new Set(); | ||
| while (current !== undefined) { | ||
| if (current === required) { | ||
| return true; | ||
| } | ||
| if (visited.has(current)) { | ||
| break; | ||
| } | ||
| visited.add(current); | ||
| const entry = this.typeHierarchy.get(current); | ||
| current = entry ? entry.base : BUILTIN_TYPE_HIERARCHY.get(current); | ||
| } | ||
| return false; | ||
| } | ||
| getPathMethods(candidate, required) { | ||
| if (candidate === required) { | ||
| return new Set(); | ||
| } | ||
| let current = candidate; | ||
| const visited = new Set(); | ||
| const methods = new Set(); | ||
| while (current !== undefined) { | ||
| if (current === required) { | ||
| return methods; | ||
| } | ||
| if (visited.has(current)) { | ||
| break; | ||
| } | ||
| visited.add(current); | ||
| const entry = this.typeHierarchy.get(current); | ||
| if (entry) { | ||
| methods.add(entry.method); | ||
| current = entry.base; | ||
| } | ||
| else { | ||
| const builtinBase = BUILTIN_TYPE_HIERARCHY.get(current); | ||
| if (builtinBase) { | ||
| methods.add('restriction'); | ||
| current = builtinBase; | ||
| } | ||
| else { | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| // Did not reach required — type is not derived; return empty set. | ||
| return new Set(); | ||
| } | ||
| parseSelectorSegments(selector) { | ||
| return selector.split('|').map((alt) => { | ||
| const trimmed = alt.trim(); | ||
| const descendant = trimmed.includes('//'); | ||
| const relative = trimmed.startsWith('./') ? trimmed.substring(2) : trimmed; | ||
| if (relative === '.' || relative === '') { | ||
| return { segments: [], descendant }; | ||
| } | ||
| const steps = relative.split('/'); | ||
| const segments = []; | ||
| for (const step of steps) { | ||
| const s = step.trim(); | ||
| if (s === '' || s === '.') { | ||
| continue; | ||
| } | ||
| if (s === '*') { | ||
| segments.push('*'); | ||
| } | ||
| else { | ||
| const step = s.startsWith('child::') ? s.substring(7) : s; | ||
| const colonIdx = step.indexOf(':'); | ||
| segments.push(colonIdx !== -1 ? step.substring(colonIdx + 1) : step); | ||
| } | ||
| } | ||
| return { segments, descendant }; | ||
| }); | ||
| } | ||
| selectorMatches(segments, relativePath) { | ||
| if (segments.length !== relativePath.length) { | ||
| return false; | ||
| } | ||
| for (let i = 0; i < segments.length; i++) { | ||
| if (segments[i] !== '*' && segments[i] !== relativePath[i]) { | ||
| return false; | ||
| } | ||
| } | ||
| return true; | ||
| } | ||
| parseFieldPath(field) { | ||
| const trimmed = field.trim(); | ||
| const descendant = trimmed.startsWith('.//'); | ||
| const withoutSelf = descendant ? trimmed.substring(3) : (trimmed.startsWith('./') ? trimmed.substring(2) : (trimmed === '.' ? '' : trimmed)); | ||
| const withoutAxis = withoutSelf.startsWith('child::') ? withoutSelf.substring(7) : withoutSelf; | ||
| if (withoutAxis.startsWith('@') || withoutAxis.startsWith('attribute::')) { | ||
| const atName = withoutAxis.startsWith('attribute::') ? withoutAxis.substring(11) : withoutAxis.substring(1); | ||
| const colonIdx = atName.indexOf(':'); | ||
| return { isAttribute: true, localName: colonIdx !== -1 ? atName.substring(colonIdx + 1) : atName, descendant }; | ||
| } | ||
| const colonIdx = withoutAxis.indexOf(':'); | ||
| return { isAttribute: false, localName: colonIdx !== -1 ? withoutAxis.substring(colonIdx + 1) : withoutAxis, descendant }; | ||
| } | ||
| parseFieldAlternatives(field) { | ||
| return field.split('|').map((alt) => this.parseFieldPath(alt)); | ||
| } | ||
| collectAttributeFields(scope, attributes, elementLocalName) { | ||
| if (scope.pendingStack.length === 0) { | ||
| return; | ||
| } | ||
| const pendingTop = scope.pendingStack[scope.pendingStack.length - 1]; | ||
| const attrNs = new Map(); | ||
| if (this.instanceNsStack.length > 0) { | ||
| for (const [p, u] of this.instanceNsStack[this.instanceNsStack.length - 1]) { | ||
| attrNs.set(p, u); | ||
| } | ||
| } | ||
| for (const [attrName, attrValue] of attributes) { | ||
| if (attrName === 'xmlns') { | ||
| attrNs.set('', attrValue); | ||
| } | ||
| else if (attrName.startsWith('xmlns:')) { | ||
| attrNs.set(attrName.substring(6), attrValue); | ||
| } | ||
| } | ||
| const declaredDecl = this.lookupElementDecl(elementLocalName); | ||
| let xsiTypeLocal = undefined; | ||
| for (const [attrName, attrValue] of attributes) { | ||
| if (attrName === 'xsi:type' || (attrName.endsWith(':type') && attrName.indexOf(':') !== -1)) { | ||
| xsiTypeLocal = this.localName(attrValue); | ||
| break; | ||
| } | ||
| } | ||
| const effectiveDecl = xsiTypeLocal !== undefined | ||
| ? (this.complexTypeDecls.get(xsiTypeLocal) ?? this.simpleTypeDecls.get(xsiTypeLocal) ?? declaredDecl) | ||
| : declaredDecl; | ||
| for (let i = 0; i < scope.constraint.fields.length; i++) { | ||
| const alternatives = this.parseFieldAlternatives(scope.constraint.fields[i]); | ||
| for (const alt of alternatives) { | ||
| if (!alt.isAttribute) { | ||
| continue; | ||
| } | ||
| for (const [attrName, attrValue] of attributes) { | ||
| const attrLocal = this.localName(attrName); | ||
| if (attrLocal === alt.localName) { | ||
| const attrDecl = effectiveDecl?.getAttributeDecl(attrName) ?? effectiveDecl?.getAttributeDecl(attrLocal); | ||
| const attrType = attrDecl !== undefined ? attrDecl.getType() : 'string'; | ||
| pendingTop.tuple[i] = attrType + '\x02' + SchemaTypeValidator.canonicalize(attrValue, attrType, attrNs); | ||
| break; | ||
| } | ||
| } | ||
| if (pendingTop.tuple[i] !== undefined) { | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| collectTextFields(scope, elementLocalName, text, isSelf, nsMap, xsiTypeLocalName) { | ||
| if (scope.pendingStack.length === 0) { | ||
| return; | ||
| } | ||
| const textTop = scope.pendingStack[scope.pendingStack.length - 1]; | ||
| const tuple = textTop.tuple; | ||
| const fields = scope.constraint.fields; | ||
| for (let i = 0; i < fields.length; i++) { | ||
| const alternatives = this.parseFieldAlternatives(fields[i]); | ||
| for (const alt of alternatives) { | ||
| if (alt.isAttribute) { | ||
| continue; | ||
| } | ||
| const matches = isSelf | ||
| ? (alt.localName === '' || alt.localName === '.') | ||
| : (alt.localName === elementLocalName || (alt.descendant && alt.localName === '*')); | ||
| if (matches) { | ||
| if (tuple[i] !== undefined) { | ||
| if (!isSelf) { | ||
| textTop.overflow = true; | ||
| } | ||
| } | ||
| else { | ||
| const declaredDecl = this.lookupElementDecl(elementLocalName); | ||
| const effectiveDecl = xsiTypeLocalName !== undefined | ||
| ? (this.complexTypeDecls.get(xsiTypeLocalName) ?? this.simpleTypeDecls.get(xsiTypeLocalName) ?? declaredDecl) | ||
| : declaredDecl; | ||
| const simpleType = effectiveDecl?.getSimpleType(); | ||
| const raw = text.trim(); | ||
| const canonicalized = simpleType !== undefined ? SchemaTypeValidator.canonicalize(raw, simpleType, nsMap) : raw; | ||
| tuple[i] = (simpleType ?? 'string') + '\x02' + canonicalized; | ||
| } | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| tupleKey(tuple) { | ||
| return tuple.map(v => v === undefined ? '\x00' : v).join('\x01'); | ||
| } | ||
| closeConstraintScopes() { | ||
| const closingDepth = this.lastClosedDepth; | ||
| let errorMessage = undefined; | ||
| for (const scope of this.activeScopes) { | ||
| if (scope.pendingStack.length > 0 && scope.pendingStack[scope.pendingStack.length - 1].depth === closingDepth) { | ||
| const committedEntry = scope.pendingStack[scope.pendingStack.length - 1]; | ||
| const tuple = committedEntry.tuple; | ||
| scope.lastCommittedTuple = tuple; | ||
| scope.lastCommittedDepth = committedEntry.depth; | ||
| scope.pendingStack.pop(); | ||
| const wasNil = committedEntry.nil; | ||
| if (wasNil) { | ||
| if (scope.constraint.kind === 'key') { | ||
| if (errorMessage === undefined) { | ||
| errorMessage = 'xs:key "' + scope.constraint.name + '": nilled element in key target node set'; | ||
| } | ||
| } | ||
| continue; | ||
| } | ||
| if (committedEntry.overflow) { | ||
| if (scope.constraint.kind === 'key') { | ||
| if (errorMessage === undefined) { | ||
| errorMessage = 'xs:key "' + scope.constraint.name + '": selected node has multiple values for a field'; | ||
| } | ||
| scope.tuples.push(tuple); | ||
| } | ||
| continue; | ||
| } | ||
| const allAbsent = tuple.every(v => v === undefined); | ||
| if (allAbsent) { | ||
| if (scope.constraint.kind === 'key') { | ||
| if (errorMessage === undefined) { | ||
| errorMessage = 'xs:key "' + scope.constraint.name + '": selected node is missing one or more key field values'; | ||
| } | ||
| } | ||
| scope.tuples.push(tuple); | ||
| continue; | ||
| } | ||
| const anyAbsent = tuple.some(v => v === undefined); | ||
| if (anyAbsent && scope.constraint.kind === 'key') { | ||
| if (errorMessage === undefined) { | ||
| errorMessage = 'xs:key "' + scope.constraint.name + '": selected node is missing one or more key field values'; | ||
| } | ||
| } | ||
| scope.tuples.push(tuple); | ||
| } | ||
| } | ||
| const removedScopes = []; | ||
| let i = this.activeScopes.length - 1; | ||
| while (i >= 0) { | ||
| const scope = this.activeScopes[i]; | ||
| if (scope.rootDepth === closingDepth) { | ||
| this.activeScopes.splice(i, 1); | ||
| removedScopes.push(scope); | ||
| } | ||
| i--; | ||
| } | ||
| for (const scope of removedScopes) { | ||
| if (errorMessage !== undefined) { | ||
| break; | ||
| } | ||
| if (scope.constraint.kind === 'key' || scope.constraint.kind === 'unique') { | ||
| const seen = new Set(); | ||
| for (const tuple of scope.tuples) { | ||
| const allPresent = tuple.every(v => v !== undefined); | ||
| if (!allPresent) { | ||
| continue; | ||
| } | ||
| const key = this.tupleKey(tuple); | ||
| if (seen.has(key)) { | ||
| errorMessage = 'xs:' + scope.constraint.kind + ' "' + scope.constraint.name + '": duplicate key value ' + JSON.stringify(key); | ||
| break; | ||
| } | ||
| seen.add(key); | ||
| } | ||
| if (scope.constraint.kind === 'key' || scope.constraint.kind === 'unique') { | ||
| this.completedKeys.set(scope.constraint.name, scope.tuples); | ||
| let ci = this.pendingKeyrefChecks.length - 1; | ||
| while (ci >= 0) { | ||
| const check = this.pendingKeyrefChecks[ci]; | ||
| if (check.refer === scope.constraint.name) { | ||
| this.pendingKeyrefChecks.splice(ci, 1); | ||
| if (errorMessage === undefined) { | ||
| const keySet = new Set(); | ||
| for (const kt of scope.tuples) { | ||
| keySet.add(this.tupleKey(kt)); | ||
| } | ||
| for (const tuple of check.tuples) { | ||
| const allPresent = tuple.every(v => v !== undefined); | ||
| if (!allPresent) { | ||
| continue; | ||
| } | ||
| const key = this.tupleKey(tuple); | ||
| if (!keySet.has(key)) { | ||
| errorMessage = 'xs:keyref "' + check.constraintName + '": value ' + JSON.stringify(key) + ' has no matching xs:key "' + scope.constraint.name + '"'; | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| ci--; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| for (const scope of removedScopes) { | ||
| if (errorMessage !== undefined) { | ||
| break; | ||
| } | ||
| if (scope.constraint.kind === 'keyref') { | ||
| const referName = scope.constraint.refer; | ||
| if (referName !== undefined) { | ||
| const keyTuples = this.completedKeys.get(referName); | ||
| if (keyTuples !== undefined) { | ||
| const keySet = new Set(); | ||
| for (const kt of keyTuples) { | ||
| keySet.add(this.tupleKey(kt)); | ||
| } | ||
| for (const tuple of scope.tuples) { | ||
| const allPresent = tuple.every(v => v !== undefined); | ||
| if (!allPresent) { | ||
| continue; | ||
| } | ||
| const key = this.tupleKey(tuple); | ||
| if (!keySet.has(key)) { | ||
| errorMessage = 'xs:keyref "' + scope.constraint.name + '": value ' + JSON.stringify(key) + ' has no matching xs:key "' + referName + '"'; | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| else { | ||
| this.pendingKeyrefChecks.push({ constraintName: scope.constraint.name, refer: referName, tuples: scope.tuples }); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| if (closingDepth === 0 && this.pendingKeyrefChecks.length > 0) { | ||
| if (errorMessage === undefined) { | ||
| const check = this.pendingKeyrefChecks[0]; | ||
| errorMessage = 'xs:keyref "' + check.constraintName + '": referred key/unique "' + check.refer + '" was not found in the document'; | ||
| } | ||
| this.pendingKeyrefChecks = []; | ||
| } | ||
| return errorMessage; | ||
| } | ||
| } | ||
| //# sourceMappingURL=SchemaGrammar.js.map |
| {"version":3,"file":"SchemaGrammar.js","sourceRoot":"","sources":["../../../ts/schema/SchemaGrammar.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| export declare abstract class SchemaParticle { | ||
| minOccurs: number; | ||
| maxOccurs: number | 'unbounded'; | ||
| constructor(minOccurs?: number, maxOccurs?: number | 'unbounded'); | ||
| abstract matchOnce(children: string[], pos: number, nsMap?: Map<string, string>): number[]; | ||
| matchRepeated(children: string[], startPos: number, nsMap?: Map<string, string>): number[]; | ||
| } |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| export class SchemaParticle { | ||
| minOccurs; | ||
| maxOccurs; | ||
| constructor(minOccurs = 1, maxOccurs = 1) { | ||
| this.minOccurs = minOccurs; | ||
| this.maxOccurs = maxOccurs; | ||
| } | ||
| matchRepeated(children, startPos, nsMap) { | ||
| const max = this.maxOccurs === 'unbounded' ? children.length + 1 : this.maxOccurs; | ||
| let currentPositions = new Set([startPos]); | ||
| const results = new Set(); | ||
| if (this.minOccurs === 0) { | ||
| results.add(startPos); | ||
| } | ||
| for (let count = 1; count <= max; count++) { | ||
| const nextPositions = new Set(); | ||
| for (const pos of currentPositions) { | ||
| const matched = this.matchOnce(children, pos, nsMap); | ||
| for (const p of matched) { | ||
| nextPositions.add(p); | ||
| } | ||
| } | ||
| if (nextPositions.size === 0) { | ||
| break; | ||
| } | ||
| if (count >= this.minOccurs) { | ||
| for (const p of nextPositions) { | ||
| results.add(p); | ||
| } | ||
| } | ||
| // Only carry positions that made forward progress to avoid | ||
| // infinite loops when a particle can match zero children. | ||
| const advancingPositions = new Set(); | ||
| for (const p of nextPositions) { | ||
| let isNew = true; | ||
| for (const cp of currentPositions) { | ||
| if (cp === p) { | ||
| isNew = false; | ||
| break; | ||
| } | ||
| } | ||
| if (isNew) { | ||
| advancingPositions.add(p); | ||
| } | ||
| } | ||
| if (advancingPositions.size === 0) { | ||
| break; | ||
| } | ||
| currentPositions = advancingPositions; | ||
| } | ||
| return Array.from(results); | ||
| } | ||
| } | ||
| //# sourceMappingURL=SchemaParticle.js.map |
| {"version":3,"file":"SchemaParticle.js","sourceRoot":"","sources":["../../../ts/schema/SchemaParticle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,MAAM,OAAgB,cAAc;IAEhC,SAAS,CAAS;IAClB,SAAS,CAAuB;IAEhC,YAAY,YAAoB,CAAC,EAAE,YAAkC,CAAC;QAClE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAID,aAAa,CAAC,QAAkB,EAAE,QAAgB,EAAE,KAA2B;QAC3E,MAAM,GAAG,GAAW,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1F,IAAI,gBAAgB,GAAgB,IAAI,GAAG,CAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChE,MAAM,OAAO,GAAgB,IAAI,GAAG,EAAU,CAAC;QAE/C,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;YAChD,MAAM,aAAa,GAAgB,IAAI,GAAG,EAAU,CAAC;YACrD,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAa,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC/D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACtB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;YACD,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM;YACV,CAAC;YACD,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC1B,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;YACL,CAAC;YACD,2DAA2D;YAC3D,0DAA0D;YAC1D,MAAM,kBAAkB,GAAgB,IAAI,GAAG,EAAU,CAAC;YAC1D,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC5B,IAAI,KAAK,GAAY,IAAI,CAAC;gBAC1B,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;oBAChC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;wBACX,KAAK,GAAG,KAAK,CAAC;wBACd,MAAM;oBACV,CAAC;gBACL,CAAC;gBACD,IAAI,KAAK,EAAE,CAAC;oBACR,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC;YACL,CAAC;YACD,IAAI,kBAAkB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM;YACV,CAAC;YACD,gBAAgB,GAAG,kBAAkB,CAAC;QAC1C,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;CACJ"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export declare class SchemaSequence extends SchemaParticle { | ||
| particles: SchemaParticle[]; | ||
| constructor(particles: SchemaParticle[], minOccurs?: number, maxOccurs?: number | 'unbounded'); | ||
| matchOnce(children: string[], pos: number, nsMap?: Map<string, string>): number[]; | ||
| } |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export class SchemaSequence extends SchemaParticle { | ||
| particles; | ||
| constructor(particles, minOccurs = 1, maxOccurs = 1) { | ||
| super(minOccurs, maxOccurs); | ||
| this.particles = particles; | ||
| } | ||
| matchOnce(children, pos, nsMap) { | ||
| let positions = new Set([pos]); | ||
| for (const particle of this.particles) { | ||
| const nextPositions = new Set(); | ||
| for (const p of positions) { | ||
| const matched = particle.matchRepeated(children, p, nsMap); | ||
| for (const m of matched) { | ||
| nextPositions.add(m); | ||
| } | ||
| } | ||
| positions = nextPositions; | ||
| if (positions.size === 0) { | ||
| break; | ||
| } | ||
| } | ||
| return Array.from(positions); | ||
| } | ||
| } | ||
| //# sourceMappingURL=SchemaSequence.js.map |
| {"version":3,"file":"SchemaSequence.js","sourceRoot":"","sources":["../../../ts/schema/SchemaSequence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,cAAe,SAAQ,cAAc;IAE9C,SAAS,CAAmB;IAE5B,YAAY,SAA2B,EAAE,YAAoB,CAAC,EAAE,YAAkC,CAAC;QAC/F,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,QAAkB,EAAE,GAAW,EAAE,KAA2B;QAClE,IAAI,SAAS,GAAgB,IAAI,GAAG,CAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,aAAa,GAAgB,IAAI,GAAG,EAAU,CAAC;YACrD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAa,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACrE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACtB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC;YACL,CAAC;YACD,SAAS,GAAG,aAAa,CAAC;YAC1B,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;CACJ"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| export interface SchemaFacets { | ||
| enumeration?: string[]; | ||
| patterns?: string[][]; | ||
| minExclusive?: string; | ||
| maxExclusive?: string; | ||
| minInclusive?: string; | ||
| maxInclusive?: string; | ||
| length?: number; | ||
| minLength?: number; | ||
| maxLength?: number; | ||
| totalDigits?: number; | ||
| fractionDigits?: number; | ||
| whiteSpace?: string; | ||
| isList?: boolean; | ||
| } | ||
| export declare class SchemaTypeValidator { | ||
| static validateFacets(value: string, facets: SchemaFacets, typeName?: string): boolean; | ||
| static validate(value: string, typeName: string, instanceNs?: Map<string, string>): boolean; | ||
| private static isAnyURI; | ||
| private static isBoolean; | ||
| private static isDecimal; | ||
| private static isFloat; | ||
| private static isInteger; | ||
| private static isValidTimezone; | ||
| private static isLeapYear; | ||
| private static daysInMonth; | ||
| private static isDateTimeStamp; | ||
| private static isDayTimeDuration; | ||
| private static isYearMonthDuration; | ||
| private static isDateTime; | ||
| private static isDate; | ||
| private static isTime; | ||
| private static isDuration; | ||
| private static isGYear; | ||
| private static isGYearMonth; | ||
| private static isGMonth; | ||
| private static isGMonthDay; | ||
| private static isGDay; | ||
| private static isLanguage; | ||
| private static isQName; | ||
| private static isWhitespaceList; | ||
| static getCompareFunction(typeName?: string): (a: string, b: string) => number; | ||
| private static dateTimeToMs; | ||
| private static dateToMs; | ||
| private static timeToMs; | ||
| private static compareDateTimes; | ||
| private static compareDates; | ||
| private static compareTimes; | ||
| private static compareGYears; | ||
| private static compareGYearMonths; | ||
| private static compareGMonthDays; | ||
| private static compareGMonths; | ||
| private static compareGDays; | ||
| private static parseDuration; | ||
| private static durationToSeconds; | ||
| private static compareDurations; | ||
| private static compareNumericOrLexicographic; | ||
| static canonicalize(value: string, typeName: string, nsMap?: Map<string, string>): string; | ||
| private static canonicalDecimal; | ||
| private static canonicalInteger; | ||
| private static canonicalFloat; | ||
| private static canonicalizeTemporal; | ||
| } |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { XMLUtils } from '../XMLUtils.js'; | ||
| import { XsdRegexTranslator } from './XsdRegexTranslator.js'; | ||
| export class SchemaTypeValidator { | ||
| static validateFacets(value, facets, typeName) { | ||
| if (facets.whiteSpace === 'replace') { | ||
| value = value.replaceAll(/[\t\n\r]/g, ' '); | ||
| } | ||
| else if (facets.whiteSpace === 'collapse') { | ||
| value = value.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| } | ||
| if (facets.enumeration && facets.enumeration.length > 0) { | ||
| if (facets.enumeration.indexOf(value) === -1) { | ||
| return false; | ||
| } | ||
| } | ||
| if (facets.patterns && facets.patterns.length > 0) { | ||
| for (let g = 0; g < facets.patterns.length; g++) { | ||
| const group = facets.patterns[g]; | ||
| let groupMatched = false; | ||
| for (let i = 0; i < group.length; i++) { | ||
| if (XsdRegexTranslator.toRegExp(group[i]).test(value)) { | ||
| groupMatched = true; | ||
| break; | ||
| } | ||
| } | ||
| if (!groupMatched) { | ||
| return false; | ||
| } | ||
| } | ||
| } | ||
| if (facets.minExclusive !== undefined || facets.maxExclusive !== undefined || | ||
| facets.minInclusive !== undefined || facets.maxInclusive !== undefined) { | ||
| const localTypeForRange = typeName !== undefined | ||
| ? (typeName.indexOf(':') !== -1 ? typeName.substring(typeName.indexOf(':') + 1) : typeName) | ||
| : ''; | ||
| if (localTypeForRange === 'duration') { | ||
| if (facets.minExclusive !== undefined && | ||
| SchemaTypeValidator.compareDurations(value, facets.minExclusive) !== null && | ||
| SchemaTypeValidator.compareDurations(value, facets.minExclusive) <= 0) { | ||
| return false; | ||
| } | ||
| if (facets.maxExclusive !== undefined && | ||
| SchemaTypeValidator.compareDurations(value, facets.maxExclusive) !== null && | ||
| SchemaTypeValidator.compareDurations(value, facets.maxExclusive) >= 0) { | ||
| return false; | ||
| } | ||
| if (facets.minInclusive !== undefined && | ||
| SchemaTypeValidator.compareDurations(value, facets.minInclusive) !== null && | ||
| SchemaTypeValidator.compareDurations(value, facets.minInclusive) < 0) { | ||
| return false; | ||
| } | ||
| if (facets.maxInclusive !== undefined && | ||
| SchemaTypeValidator.compareDurations(value, facets.maxInclusive) !== null && | ||
| SchemaTypeValidator.compareDurations(value, facets.maxInclusive) > 0) { | ||
| return false; | ||
| } | ||
| } | ||
| else { | ||
| const compare = SchemaTypeValidator.getCompareFunction(typeName); | ||
| if (facets.minExclusive !== undefined && compare(value, facets.minExclusive) <= 0) { | ||
| return false; | ||
| } | ||
| if (facets.maxExclusive !== undefined && compare(value, facets.maxExclusive) >= 0) { | ||
| return false; | ||
| } | ||
| if (facets.minInclusive !== undefined && compare(value, facets.minInclusive) < 0) { | ||
| return false; | ||
| } | ||
| if (facets.maxInclusive !== undefined && compare(value, facets.maxInclusive) > 0) { | ||
| return false; | ||
| } | ||
| } | ||
| } | ||
| const localTypeName = typeName !== undefined | ||
| ? (typeName.indexOf(':') !== -1 ? typeName.substring(typeName.indexOf(':') + 1) : typeName) | ||
| : ''; | ||
| const noLengthFacets = localTypeName === 'QName' || localTypeName === 'NOTATION'; | ||
| if (!noLengthFacets) { | ||
| let effectiveLength; | ||
| if (facets.isList) { | ||
| const trimmed = value.trim(); | ||
| effectiveLength = trimmed.length === 0 ? 0 : trimmed.split(/\s+/).length; | ||
| } | ||
| else if (localTypeName === 'base64Binary') { | ||
| const clean = value.replaceAll(/\s/g, ''); | ||
| let padding = 0; | ||
| for (let i = clean.length - 1; i >= 0 && clean[i] === '='; i--) { | ||
| padding++; | ||
| } | ||
| effectiveLength = Math.floor(clean.length * 3 / 4) - padding; | ||
| } | ||
| else if (localTypeName === 'hexBinary') { | ||
| effectiveLength = Math.floor(value.length / 2); | ||
| } | ||
| else { | ||
| effectiveLength = Array.from(value).length; | ||
| } | ||
| if (facets.length !== undefined && effectiveLength !== facets.length) { | ||
| return false; | ||
| } | ||
| if (facets.minLength !== undefined && effectiveLength < facets.minLength) { | ||
| return false; | ||
| } | ||
| if (facets.maxLength !== undefined && effectiveLength > facets.maxLength) { | ||
| return false; | ||
| } | ||
| } | ||
| if (facets.totalDigits !== undefined || facets.fractionDigits !== undefined) { | ||
| const s = value.startsWith('+') || value.startsWith('-') ? value.substring(1) : value; | ||
| const dotIdx = s.indexOf('.'); | ||
| const rawInt = dotIdx === -1 ? s : s.substring(0, dotIdx); | ||
| const rawFrac = dotIdx === -1 ? '' : s.substring(dotIdx + 1); | ||
| let canonIntStart = 0; | ||
| while (canonIntStart < rawInt.length - 1 && rawInt[canonIntStart] === '0') { | ||
| canonIntStart++; | ||
| } | ||
| const canonInt = rawInt.length === 0 ? '0' : rawInt.substring(canonIntStart); | ||
| let canonFracEnd = rawFrac.length; | ||
| while (canonFracEnd > 0 && rawFrac[canonFracEnd - 1] === '0') { | ||
| canonFracEnd--; | ||
| } | ||
| const canonFrac = rawFrac.substring(0, canonFracEnd); | ||
| const total = canonInt.length + canonFrac.length; | ||
| if (facets.totalDigits !== undefined && total > facets.totalDigits) { | ||
| return false; | ||
| } | ||
| if (facets.fractionDigits !== undefined && canonFrac.length > facets.fractionDigits) { | ||
| return false; | ||
| } | ||
| } | ||
| return true; | ||
| } | ||
| static validate(value, typeName, instanceNs) { | ||
| const colonIndex = typeName.indexOf(':'); | ||
| const localType = colonIndex !== -1 ? typeName.substring(colonIndex + 1) : typeName; | ||
| switch (localType) { | ||
| case 'string': | ||
| return true; | ||
| case 'error': | ||
| return false; | ||
| case 'anyURI': | ||
| return SchemaTypeValidator.isAnyURI(value); | ||
| case 'anySimpleType': | ||
| case 'anyAtomicType': | ||
| return true; | ||
| case 'normalizedString': | ||
| return !/[\t\n\r]/.test(value); | ||
| case 'token': | ||
| return value === value.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| case 'hexBinary': { | ||
| const cleanHex = value.replaceAll(/\s/g, ''); | ||
| return cleanHex.length % 2 === 0 && /^[0-9A-Fa-f]*$/.test(cleanHex); | ||
| } | ||
| case 'base64Binary': { | ||
| const cleanB64 = value.replaceAll(/\s/g, ''); | ||
| if (cleanB64.length % 4 !== 0) { | ||
| return false; | ||
| } | ||
| if (!/^[A-Za-z0-9+/]*={0,2}$/.test(cleanB64)) { | ||
| return false; | ||
| } | ||
| const eqIdx = cleanB64.indexOf('='); | ||
| return eqIdx === -1 || eqIdx >= cleanB64.length - 2; | ||
| } | ||
| case 'boolean': | ||
| return SchemaTypeValidator.isBoolean(value); | ||
| // Decimal/float | ||
| case 'decimal': | ||
| return SchemaTypeValidator.isDecimal(value); | ||
| case 'float': | ||
| case 'double': | ||
| return SchemaTypeValidator.isFloat(value); | ||
| // Integer family | ||
| case 'integer': | ||
| case 'long': | ||
| case 'int': | ||
| case 'short': | ||
| case 'byte': | ||
| case 'unsignedLong': | ||
| case 'unsignedInt': | ||
| case 'unsignedShort': | ||
| case 'unsignedByte': | ||
| case 'nonNegativeInteger': | ||
| case 'positiveInteger': | ||
| case 'nonPositiveInteger': | ||
| case 'negativeInteger': | ||
| return SchemaTypeValidator.isInteger(value, localType); | ||
| // Date/time primitives | ||
| case 'dateTime': | ||
| return SchemaTypeValidator.isDateTime(value); | ||
| case 'dateTimeStamp': | ||
| return SchemaTypeValidator.isDateTimeStamp(value); | ||
| case 'date': | ||
| return SchemaTypeValidator.isDate(value); | ||
| case 'time': | ||
| return SchemaTypeValidator.isTime(value); | ||
| case 'duration': | ||
| return SchemaTypeValidator.isDuration(value); | ||
| case 'dayTimeDuration': | ||
| return SchemaTypeValidator.isDayTimeDuration(value); | ||
| case 'yearMonthDuration': | ||
| return SchemaTypeValidator.isYearMonthDuration(value); | ||
| case 'gYear': | ||
| return SchemaTypeValidator.isGYear(value); | ||
| case 'gYearMonth': | ||
| return SchemaTypeValidator.isGYearMonth(value); | ||
| case 'gMonth': | ||
| return SchemaTypeValidator.isGMonth(value); | ||
| case 'gMonthDay': | ||
| return SchemaTypeValidator.isGMonthDay(value); | ||
| case 'gDay': | ||
| return SchemaTypeValidator.isGDay(value); | ||
| // Name / token types | ||
| case 'Name': | ||
| return XMLUtils.isValidXMLName(value); | ||
| case 'NCName': | ||
| case 'ID': | ||
| case 'IDREF': | ||
| case 'ENTITY': | ||
| return XMLUtils.isValidNCName(value); | ||
| case 'IDREFS': | ||
| case 'ENTITIES': | ||
| return SchemaTypeValidator.isWhitespaceList(value, XMLUtils.isValidNCName); | ||
| case 'NMTOKEN': | ||
| return XMLUtils.isValidNMTOKEN(value); | ||
| case 'NMTOKENS': | ||
| return SchemaTypeValidator.isWhitespaceList(value, XMLUtils.isValidNMTOKEN); | ||
| case 'language': | ||
| return SchemaTypeValidator.isLanguage(value); | ||
| case 'QName': | ||
| case 'NOTATION': | ||
| return SchemaTypeValidator.isQName(value, instanceNs); | ||
| default: | ||
| return true; | ||
| } | ||
| } | ||
| static isAnyURI(value) { | ||
| // XSD anyURI lexical space: any string that is a valid IRI reference per RFC 3987. | ||
| // Reject control characters (U+0000-U+001F, U+007F) which are never allowed in an IRI. | ||
| // Reject unbalanced brackets and fragment-invalid sequences. | ||
| if (/[\x00-\x1F\x7F]/.test(value)) { | ||
| return false; | ||
| } | ||
| // Check balanced square brackets (used only in IPv6 host). | ||
| const opens = (value.match(/\[/g) || []).length; | ||
| const closes = (value.match(/\]/g) || []).length; | ||
| if (opens !== closes) { | ||
| return false; | ||
| } | ||
| // Percent-encoded octets must be well-formed: %XX where X is hex. | ||
| const pct = /%(?![0-9A-Fa-f]{2})/; | ||
| if (pct.test(value)) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isBoolean(value) { | ||
| return value === 'true' || value === 'false' || value === '1' || value === '0'; | ||
| } | ||
| static isDecimal(value) { | ||
| let s = value; | ||
| if (s.startsWith('+') || s.startsWith('-')) { | ||
| s = s.substring(1); | ||
| } | ||
| if (s.length === 0) { | ||
| return false; | ||
| } | ||
| const dot = s.indexOf('.'); | ||
| if (dot === -1) { | ||
| return /^[0-9]+$/.test(s); | ||
| } | ||
| const intPart = s.substring(0, dot); | ||
| const fracPart = s.substring(dot + 1); | ||
| if (intPart.length === 0 && fracPart.length === 0) { | ||
| return false; | ||
| } | ||
| if (intPart.length > 0 && !/^[0-9]+$/.test(intPart)) { | ||
| return false; | ||
| } | ||
| if (fracPart.length > 0 && !/^[0-9]+$/.test(fracPart)) { | ||
| return false; | ||
| } | ||
| return intPart.length > 0 || fracPart.length > 0; | ||
| } | ||
| static isFloat(value) { | ||
| if (value === 'INF' || value === '+INF' || value === '-INF' || value === 'NaN') { | ||
| return true; | ||
| } | ||
| let s = value; | ||
| if (s.startsWith('+') || s.startsWith('-')) { | ||
| s = s.substring(1); | ||
| } | ||
| if (s.length === 0) { | ||
| return false; | ||
| } | ||
| const eIdx = s.search(/[eE]/); | ||
| let mantissa = s; | ||
| if (eIdx !== -1) { | ||
| const exp = s.substring(eIdx + 1); | ||
| mantissa = s.substring(0, eIdx); | ||
| if (exp.length === 0) { | ||
| return false; | ||
| } | ||
| const expDigits = (exp.startsWith('+') || exp.startsWith('-')) ? exp.substring(1) : exp; | ||
| if (expDigits.length === 0 || !/^[0-9]+$/.test(expDigits)) { | ||
| return false; | ||
| } | ||
| } | ||
| if (mantissa.length === 0) { | ||
| return false; | ||
| } | ||
| const dot = mantissa.indexOf('.'); | ||
| if (dot === -1) { | ||
| return /^[0-9]+$/.test(mantissa); | ||
| } | ||
| const intPart = mantissa.substring(0, dot); | ||
| const fracPart = mantissa.substring(dot + 1); | ||
| if (intPart.length === 0 && fracPart.length === 0) { | ||
| return false; | ||
| } | ||
| if (intPart.length > 0 && !/^[0-9]+$/.test(intPart)) { | ||
| return false; | ||
| } | ||
| if (fracPart.length > 0 && !/^[0-9]+$/.test(fracPart)) { | ||
| return false; | ||
| } | ||
| return intPart.length > 0 || fracPart.length > 0; | ||
| } | ||
| static isInteger(value, typeName) { | ||
| if (!/^[+-]?[0-9]+$/.test(value)) { | ||
| return false; | ||
| } | ||
| switch (typeName) { | ||
| case 'nonNegativeInteger': | ||
| return !value.startsWith('-'); | ||
| case 'unsignedLong': { | ||
| if (value.startsWith('-')) { | ||
| return false; | ||
| } | ||
| const n = BigInt(value.replace(/^\+/, '')); | ||
| return n <= BigInt('18446744073709551615'); | ||
| } | ||
| case 'long': { | ||
| const n = BigInt(value.replace(/^\+/, '')); | ||
| return n >= BigInt('-9223372036854775808') && n <= BigInt('9223372036854775807'); | ||
| } | ||
| case 'positiveInteger': | ||
| return !value.startsWith('-') && value.replace(/^\+/, '') !== '0'; | ||
| case 'nonPositiveInteger': { | ||
| if (value.startsWith('-')) { | ||
| return true; | ||
| } | ||
| const stripped = value.replace(/^\+/, ''); | ||
| return stripped === '0'; | ||
| } | ||
| case 'negativeInteger': | ||
| return value.startsWith('-'); | ||
| case 'byte': { | ||
| const n = parseInt(value, 10); | ||
| return n >= -128 && n <= 127; | ||
| } | ||
| case 'short': { | ||
| const n = parseInt(value, 10); | ||
| return n >= -32768 && n <= 32767; | ||
| } | ||
| case 'int': { | ||
| const n = parseInt(value, 10); | ||
| return n >= -2147483648 && n <= 2147483647; | ||
| } | ||
| case 'unsignedByte': { | ||
| const n = parseInt(value, 10); | ||
| return n >= 0 && n <= 255; | ||
| } | ||
| case 'unsignedShort': { | ||
| const n = parseInt(value, 10); | ||
| return n >= 0 && n <= 65535; | ||
| } | ||
| case 'unsignedInt': { | ||
| const n = parseInt(value, 10); | ||
| return n >= 0 && n <= 4294967295; | ||
| } | ||
| default: | ||
| return true; | ||
| } | ||
| } | ||
| static isValidTimezone(tz) { | ||
| if (tz === undefined || tz === 'Z') { | ||
| return true; | ||
| } | ||
| const tzM = tz.match(/^([+-])([0-9]{2}):([0-9]{2})$/); | ||
| if (!tzM) { | ||
| return false; | ||
| } | ||
| const offsetMinutes = parseInt(tzM[2], 10) * 60 + parseInt(tzM[3], 10); | ||
| return offsetMinutes <= 840; | ||
| } | ||
| static isLeapYear(year) { | ||
| return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; | ||
| } | ||
| static daysInMonth(year, month) { | ||
| const days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; | ||
| if (month === 2 && SchemaTypeValidator.isLeapYear(year)) { | ||
| return 29; | ||
| } | ||
| return days[month]; | ||
| } | ||
| static isDateTimeStamp(value) { | ||
| const m = value.match(/^(-?)([0-9]{4,})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (parseInt(m[2], 10) === 0) { | ||
| return false; | ||
| } | ||
| const year = parseInt(m[2], 10) * (m[1] === '-' ? -1 : 1); | ||
| const month = parseInt(m[3], 10); | ||
| const day = parseInt(m[4], 10); | ||
| const hour = parseInt(m[5], 10); | ||
| const minute = parseInt(m[6], 10); | ||
| const second = parseFloat(m[7]); | ||
| if (month < 1 || month > 12) { | ||
| return false; | ||
| } | ||
| if (day < 1 || day > SchemaTypeValidator.daysInMonth(year, month)) { | ||
| return false; | ||
| } | ||
| if (hour === 24) { | ||
| if (minute !== 0 || second !== 0) { | ||
| return false; | ||
| } | ||
| } | ||
| else if (hour > 23) { | ||
| return false; | ||
| } | ||
| if (minute > 59 || second >= 60) { | ||
| return false; | ||
| } | ||
| return SchemaTypeValidator.isValidTimezone(m[9]); | ||
| } | ||
| static isDayTimeDuration(value) { | ||
| if (value === 'P' || value === '-P') { | ||
| return false; | ||
| } | ||
| const m = value.match(/^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\.[0-9]+)?S)?)?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (m[2] !== undefined && !m[3] && !m[4] && !m[5]) { | ||
| return false; | ||
| } | ||
| if (!m[1] && !m[2]) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isYearMonthDuration(value) { | ||
| if (value === 'P' || value === '-P') { | ||
| return false; | ||
| } | ||
| const m = value.match(/^-?P([0-9]+Y)?([0-9]+M)?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (!m[1] && !m[2]) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isDateTime(value) { | ||
| const m = value.match(/^(-?)([0-9]{4,})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (parseInt(m[2], 10) === 0) { | ||
| return false; | ||
| } | ||
| const year = parseInt(m[2], 10) * (m[1] === '-' ? -1 : 1); | ||
| const month = parseInt(m[3], 10); | ||
| const day = parseInt(m[4], 10); | ||
| const hour = parseInt(m[5], 10); | ||
| const minute = parseInt(m[6], 10); | ||
| const second = parseFloat(m[7]); | ||
| if (month < 1 || month > 12) { | ||
| return false; | ||
| } | ||
| if (day < 1 || day > SchemaTypeValidator.daysInMonth(year, month)) { | ||
| return false; | ||
| } | ||
| if (hour === 24) { | ||
| if (minute !== 0 || second !== 0) { | ||
| return false; | ||
| } | ||
| } | ||
| else if (hour > 23) { | ||
| return false; | ||
| } | ||
| if (minute > 59 || second >= 60) { | ||
| return false; | ||
| } | ||
| if (!SchemaTypeValidator.isValidTimezone(m[9])) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isDate(value) { | ||
| const m = value.match(/^(-?)([0-9]{4,})-([0-9]{2})-([0-9]{2})(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (parseInt(m[2], 10) === 0) { | ||
| return false; | ||
| } | ||
| const year = parseInt(m[2], 10) * (m[1] === '-' ? -1 : 1); | ||
| const month = parseInt(m[3], 10); | ||
| const day = parseInt(m[4], 10); | ||
| if (month < 1 || month > 12) { | ||
| return false; | ||
| } | ||
| if (day < 1 || day > SchemaTypeValidator.daysInMonth(year, month)) { | ||
| return false; | ||
| } | ||
| if (!SchemaTypeValidator.isValidTimezone(m[5])) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isTime(value) { | ||
| const m = value.match(/^([0-9]{2}):([0-9]{2}):([0-9]{2})(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| const hour = parseInt(m[1], 10); | ||
| const minute = parseInt(m[2], 10); | ||
| const second = parseFloat(m[3]); | ||
| if (hour === 24) { | ||
| if (minute !== 0 || second !== 0) { | ||
| return false; | ||
| } | ||
| } | ||
| else if (hour > 23) { | ||
| return false; | ||
| } | ||
| if (minute > 59 || second >= 60) { | ||
| return false; | ||
| } | ||
| if (!SchemaTypeValidator.isValidTimezone(m[5])) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isDuration(value) { | ||
| if (value === 'P' || value === '-P') { | ||
| return false; | ||
| } | ||
| const m = value.match(/^-?P([0-9]+Y)?([0-9]+M)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\.[0-9]+)?S)?)?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (m[4] !== undefined && !m[5] && !m[6] && !m[7]) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| static isGYear(value) { | ||
| const m = value.match(/^(-?)([0-9]{4,})(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (parseInt(m[2], 10) === 0) { | ||
| return false; | ||
| } | ||
| return SchemaTypeValidator.isValidTimezone(m[3]); | ||
| } | ||
| static isGYearMonth(value) { | ||
| const m = value.match(/^(-?)([0-9]{4,})-([0-9]{2})(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| if (parseInt(m[2], 10) === 0) { | ||
| return false; | ||
| } | ||
| const month = parseInt(m[3], 10); | ||
| if (month < 1 || month > 12) { | ||
| return false; | ||
| } | ||
| return SchemaTypeValidator.isValidTimezone(m[4]); | ||
| } | ||
| static isGMonth(value) { | ||
| const m = value.match(/^--([0-9]{2})(--)?(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| const month = parseInt(m[1], 10); | ||
| if (month < 1 || month > 12) { | ||
| return false; | ||
| } | ||
| return SchemaTypeValidator.isValidTimezone(m[3]); | ||
| } | ||
| static isGMonthDay(value) { | ||
| const m = value.match(/^--([0-9]{2})-([0-9]{2})(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| const month = parseInt(m[1], 10); | ||
| const day = parseInt(m[2], 10); | ||
| if (month < 1 || month > 12) { | ||
| return false; | ||
| } | ||
| if (day < 1 || day > SchemaTypeValidator.daysInMonth(2000, month)) { | ||
| return false; | ||
| } | ||
| return SchemaTypeValidator.isValidTimezone(m[3]); | ||
| } | ||
| static isGDay(value) { | ||
| const m = value.match(/^---([0-9]{2})(Z|[+-][0-9]{2}:[0-9]{2})?$/); | ||
| if (!m) { | ||
| return false; | ||
| } | ||
| const day = parseInt(m[1], 10); | ||
| if (day < 1 || day > 31) { | ||
| return false; | ||
| } | ||
| return SchemaTypeValidator.isValidTimezone(m[2]); | ||
| } | ||
| static isLanguage(value) { | ||
| return /^[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*$/.test(value); | ||
| } | ||
| static isQName(value, instanceNs) { | ||
| const parts = value.split(':'); | ||
| if (parts.length === 1) { | ||
| return XMLUtils.isValidNCName(parts[0]); | ||
| } | ||
| if (parts.length === 2) { | ||
| if (!XMLUtils.isValidNCName(parts[0]) || !XMLUtils.isValidNCName(parts[1])) { | ||
| return false; | ||
| } | ||
| if (instanceNs !== undefined && !instanceNs.has(parts[0])) { | ||
| return false; | ||
| } | ||
| return true; | ||
| } | ||
| return false; | ||
| } | ||
| static isWhitespaceList(value, checker) { | ||
| const trimmed = value.trim(); | ||
| if (trimmed.length === 0) { | ||
| return false; | ||
| } | ||
| const tokens = trimmed.split(/\s+/); | ||
| for (const token of tokens) { | ||
| if (!checker(token)) { | ||
| return false; | ||
| } | ||
| } | ||
| return true; | ||
| } | ||
| static getCompareFunction(typeName) { | ||
| const colonIndex = typeName ? typeName.indexOf(':') : -1; | ||
| const local = typeName ? (colonIndex !== -1 ? typeName.substring(colonIndex + 1) : typeName) : ''; | ||
| switch (local) { | ||
| case 'dateTime': return SchemaTypeValidator.compareDateTimes; | ||
| case 'date': return SchemaTypeValidator.compareDates; | ||
| case 'time': return SchemaTypeValidator.compareTimes; | ||
| case 'gYear': return SchemaTypeValidator.compareGYears; | ||
| case 'gYearMonth': return SchemaTypeValidator.compareGYearMonths; | ||
| case 'gMonthDay': return SchemaTypeValidator.compareGMonthDays; | ||
| case 'gMonth': return SchemaTypeValidator.compareGMonths; | ||
| case 'gDay': return SchemaTypeValidator.compareGDays; | ||
| default: return SchemaTypeValidator.compareNumericOrLexicographic; | ||
| } | ||
| } | ||
| static dateTimeToMs(s) { | ||
| const negative = s.startsWith('-'); | ||
| const abs = negative ? s.substring(1) : s; | ||
| const tIndex = abs.indexOf('T'); | ||
| if (tIndex === -1) { | ||
| return NaN; | ||
| } | ||
| const datePart = abs.substring(0, tIndex); | ||
| let rest = abs.substring(tIndex + 1); | ||
| let tzOffsetMs = 0; | ||
| if (rest.endsWith('Z')) { | ||
| rest = rest.substring(0, rest.length - 1); | ||
| } | ||
| else { | ||
| const tzMatch = rest.match(/([+-])([0-9]{2}):([0-9]{2})$/); | ||
| if (tzMatch) { | ||
| rest = rest.substring(0, rest.length - tzMatch[0].length); | ||
| const sign = tzMatch[1] === '+' ? 1 : -1; | ||
| tzOffsetMs = sign * (parseInt(tzMatch[2], 10) * 60 + parseInt(tzMatch[3], 10)) * 60000; | ||
| } | ||
| } | ||
| const dateParts = datePart.split('-'); | ||
| const year = parseInt(dateParts[0], 10) * (negative ? -1 : 1); | ||
| const month = parseInt(dateParts[1], 10) - 1; | ||
| const day = parseInt(dateParts[2], 10); | ||
| const c1 = rest.indexOf(':'); | ||
| const c2 = rest.indexOf(':', c1 + 1); | ||
| const hours = parseInt(rest.substring(0, c1), 10); | ||
| const minutes = parseInt(rest.substring(c1 + 1, c2), 10); | ||
| const secFloat = parseFloat(rest.substring(c2 + 1)); | ||
| const secInt = Math.floor(secFloat); | ||
| const ms = Math.round((secFloat - secInt) * 1000); | ||
| const d = new Date(Date.UTC(year, month, day, hours, minutes, secInt, ms)); | ||
| if (isNaN(d.getTime())) { | ||
| return NaN; | ||
| } | ||
| // Subtract tzOffsetMs: a value of +05:00 means local = UTC+5, so UTC = local - 5 h. | ||
| return d.getTime() - tzOffsetMs; | ||
| } | ||
| static dateToMs(s) { | ||
| const negative = s.startsWith('-'); | ||
| let abs = negative ? s.substring(1) : s; | ||
| let tzOffsetMs = 0; | ||
| if (abs.endsWith('Z')) { | ||
| abs = abs.substring(0, abs.length - 1); | ||
| } | ||
| else { | ||
| const tzMatch = abs.match(/([+-])([0-9]{2}):([0-9]{2})$/); | ||
| if (tzMatch) { | ||
| abs = abs.substring(0, abs.length - tzMatch[0].length); | ||
| const sign = tzMatch[1] === '+' ? 1 : -1; | ||
| tzOffsetMs = sign * (parseInt(tzMatch[2], 10) * 60 + parseInt(tzMatch[3], 10)) * 60000; | ||
| } | ||
| } | ||
| const parts = abs.split('-'); | ||
| const year = parseInt(parts[0], 10) * (negative ? -1 : 1); | ||
| const month = parseInt(parts[1], 10) - 1; | ||
| const day = parseInt(parts[2], 10); | ||
| const d = new Date(Date.UTC(year, month, day, 0, 0, 0, 0)); | ||
| if (isNaN(d.getTime())) { | ||
| return NaN; | ||
| } | ||
| return d.getTime() - tzOffsetMs; | ||
| } | ||
| static timeToMs(s) { | ||
| let rest = s; | ||
| let tzOffsetMs = 0; | ||
| if (rest.endsWith('Z')) { | ||
| rest = rest.substring(0, rest.length - 1); | ||
| } | ||
| else { | ||
| const tzMatch = rest.match(/([+-])([0-9]{2}):([0-9]{2})$/); | ||
| if (tzMatch) { | ||
| rest = rest.substring(0, rest.length - tzMatch[0].length); | ||
| const sign = tzMatch[1] === '+' ? 1 : -1; | ||
| tzOffsetMs = sign * (parseInt(tzMatch[2], 10) * 60 + parseInt(tzMatch[3], 10)) * 60000; | ||
| } | ||
| } | ||
| const c1 = rest.indexOf(':'); | ||
| const c2 = rest.indexOf(':', c1 + 1); | ||
| const hours = parseInt(rest.substring(0, c1), 10); | ||
| const minutes = parseInt(rest.substring(c1 + 1, c2), 10); | ||
| const secFloat = parseFloat(rest.substring(c2 + 1)); | ||
| const secInt = Math.floor(secFloat); | ||
| const ms = Math.round((secFloat - secInt) * 1000); | ||
| return (hours * 3600 + minutes * 60 + secInt) * 1000 + ms - tzOffsetMs; | ||
| } | ||
| static compareDateTimes(a, b) { | ||
| const msA = SchemaTypeValidator.dateTimeToMs(a); | ||
| const msB = SchemaTypeValidator.dateTimeToMs(b); | ||
| if (isNaN(msA) || isNaN(msB)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return msA < msB ? -1 : msA > msB ? 1 : 0; | ||
| } | ||
| static compareDates(a, b) { | ||
| const msA = SchemaTypeValidator.dateToMs(a); | ||
| const msB = SchemaTypeValidator.dateToMs(b); | ||
| if (isNaN(msA) || isNaN(msB)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return msA < msB ? -1 : msA > msB ? 1 : 0; | ||
| } | ||
| static compareTimes(a, b) { | ||
| const msA = SchemaTypeValidator.timeToMs(a); | ||
| const msB = SchemaTypeValidator.timeToMs(b); | ||
| if (isNaN(msA) || isNaN(msB)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return msA < msB ? -1 : msA > msB ? 1 : 0; | ||
| } | ||
| static compareGYears(a, b) { | ||
| const parseYear = (s) => { | ||
| const m = s.match(/^(-?)([0-9]{4,})/); | ||
| if (!m) { | ||
| return NaN; | ||
| } | ||
| return parseInt(m[2], 10) * (m[1] === '-' ? -1 : 1); | ||
| }; | ||
| const ya = parseYear(a); | ||
| const yb = parseYear(b); | ||
| if (isNaN(ya) || isNaN(yb)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return ya < yb ? -1 : ya > yb ? 1 : 0; | ||
| } | ||
| static compareGYearMonths(a, b) { | ||
| const parseYM = (s) => { | ||
| const m = s.match(/^(-?)([0-9]{4,})-([0-9]{2})/); | ||
| if (!m) { | ||
| return NaN; | ||
| } | ||
| const year = parseInt(m[2], 10) * (m[1] === '-' ? -1 : 1); | ||
| return year * 12 + parseInt(m[3], 10); | ||
| }; | ||
| const va = parseYM(a); | ||
| const vb = parseYM(b); | ||
| if (isNaN(va) || isNaN(vb)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return va < vb ? -1 : va > vb ? 1 : 0; | ||
| } | ||
| static compareGMonthDays(a, b) { | ||
| const parseMD = (s) => { | ||
| const m = s.match(/^--([0-9]{2})-([0-9]{2})/); | ||
| if (!m) { | ||
| return NaN; | ||
| } | ||
| return parseInt(m[1], 10) * 100 + parseInt(m[2], 10); | ||
| }; | ||
| const va = parseMD(a); | ||
| const vb = parseMD(b); | ||
| if (isNaN(va) || isNaN(vb)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return va < vb ? -1 : va > vb ? 1 : 0; | ||
| } | ||
| static compareGMonths(a, b) { | ||
| const parseM = (s) => { | ||
| const m = s.match(/^--([0-9]{2})/); | ||
| if (!m) { | ||
| return NaN; | ||
| } | ||
| return parseInt(m[1], 10); | ||
| }; | ||
| const va = parseM(a); | ||
| const vb = parseM(b); | ||
| if (isNaN(va) || isNaN(vb)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return va < vb ? -1 : va > vb ? 1 : 0; | ||
| } | ||
| static compareGDays(a, b) { | ||
| const parseD = (s) => { | ||
| const m = s.match(/^---([0-9]{2})/); | ||
| if (!m) { | ||
| return NaN; | ||
| } | ||
| return parseInt(m[1], 10); | ||
| }; | ||
| const va = parseD(a); | ||
| const vb = parseD(b); | ||
| if (isNaN(va) || isNaN(vb)) { | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| return va < vb ? -1 : va > vb ? 1 : 0; | ||
| } | ||
| static parseDuration(s) { | ||
| const m = s.match(/^(-?)P(?:([0-9]+)Y)?(?:([0-9]+)M)?(?:([0-9]+)D)?(?:T(?:([0-9]+)H)?(?:([0-9]+)M)?(?:([0-9]+(?:\.[0-9]+)?)S)?)?$/); | ||
| if (!m) { | ||
| return null; | ||
| } | ||
| const negative = m[1] === '-'; | ||
| const years = m[2] ? parseInt(m[2], 10) : 0; | ||
| const months = m[3] ? parseInt(m[3], 10) : 0; | ||
| const days = m[4] ? parseInt(m[4], 10) : 0; | ||
| const hours = m[5] ? parseInt(m[5], 10) : 0; | ||
| const minutes = m[6] ? parseInt(m[6], 10) : 0; | ||
| const seconds = m[7] ? parseFloat(m[7]) : 0; | ||
| const totalMonths = years * 12 + months; | ||
| const totalSeconds = days * 86400 + hours * 3600 + minutes * 60 + seconds; | ||
| return { negative, months: totalMonths, seconds: totalSeconds }; | ||
| } | ||
| static durationToSeconds(d, refMonthSecs) { | ||
| const raw = d.months * refMonthSecs + d.seconds; | ||
| return d.negative ? -raw : raw; | ||
| } | ||
| static compareDurations(a, b) { | ||
| const dA = SchemaTypeValidator.parseDuration(a); | ||
| const dB = SchemaTypeValidator.parseDuration(b); | ||
| if (!dA || !dB) { | ||
| return null; | ||
| } | ||
| const refPoints = [ | ||
| 28 * 86400, | ||
| 29 * 86400, | ||
| 30 * 86400, | ||
| 31 * 86400 | ||
| ]; | ||
| let result = null; | ||
| for (const ref of refPoints) { | ||
| const sA = SchemaTypeValidator.durationToSeconds(dA, ref); | ||
| const sB = SchemaTypeValidator.durationToSeconds(dB, ref); | ||
| const cmp = sA < sB ? -1 : sA > sB ? 1 : 0; | ||
| if (result === null) { | ||
| result = cmp; | ||
| } | ||
| else if (result !== cmp) { | ||
| return null; | ||
| } | ||
| } | ||
| return result; | ||
| } | ||
| static compareNumericOrLexicographic(a, b) { | ||
| const decimalPattern = /^-?[0-9]+(\.[0-9]+)?$/; | ||
| if (decimalPattern.test(a) && decimalPattern.test(b)) { | ||
| try { | ||
| const parseDecimal = (s) => { | ||
| const negative = s.startsWith('-'); | ||
| const abs = negative ? s.substring(1) : s; | ||
| const dotIndex = abs.indexOf('.'); | ||
| const intPart = dotIndex === -1 ? abs : abs.substring(0, dotIndex); | ||
| const fracPart = dotIndex === -1 ? '' : abs.substring(dotIndex + 1); | ||
| return { negative, integer: BigInt(intPart), fraction: fracPart }; | ||
| }; | ||
| const padFraction = (frac, len) => BigInt(frac.padEnd(len, '0').substring(0, len)); | ||
| const dA = parseDecimal(a); | ||
| const dB = parseDecimal(b); | ||
| const fracLen = Math.max(dA.fraction.length, dB.fraction.length); | ||
| const scaleA = dA.integer * BigInt(10 ** fracLen) + padFraction(dA.fraction, fracLen); | ||
| const scaleB = dB.integer * BigInt(10 ** fracLen) + padFraction(dB.fraction, fracLen); | ||
| const signedA = dA.negative ? -scaleA : scaleA; | ||
| const signedB = dB.negative ? -scaleB : scaleB; | ||
| return signedA < signedB ? -1 : signedA > signedB ? 1 : 0; | ||
| } | ||
| catch (e) { | ||
| // Fall through to float comparison. | ||
| } | ||
| } | ||
| const numA = parseFloat(a); | ||
| const numB = parseFloat(b); | ||
| if (!isNaN(numA) && !isNaN(numB)) { | ||
| return numA < numB ? -1 : numA > numB ? 1 : 0; | ||
| } | ||
| return a < b ? -1 : a > b ? 1 : 0; | ||
| } | ||
| static canonicalize(value, typeName, nsMap) { | ||
| const colonIndex = typeName.indexOf(':'); | ||
| const localType = colonIndex !== -1 ? typeName.substring(colonIndex + 1) : typeName; | ||
| switch (localType) { | ||
| case 'decimal': | ||
| return SchemaTypeValidator.canonicalDecimal(value); | ||
| case 'integer': | ||
| case 'long': | ||
| case 'int': | ||
| case 'short': | ||
| case 'byte': | ||
| case 'nonNegativeInteger': | ||
| case 'positiveInteger': | ||
| case 'unsignedLong': | ||
| case 'unsignedInt': | ||
| case 'unsignedShort': | ||
| case 'unsignedByte': | ||
| case 'nonPositiveInteger': | ||
| case 'negativeInteger': | ||
| return SchemaTypeValidator.canonicalInteger(value); | ||
| case 'float': | ||
| case 'double': | ||
| return SchemaTypeValidator.canonicalFloat(value); | ||
| case 'boolean': | ||
| if (value === '1') { | ||
| return 'true'; | ||
| } | ||
| if (value === '0') { | ||
| return 'false'; | ||
| } | ||
| return value; | ||
| case 'normalizedString': | ||
| return value.replaceAll(/[\t\n\r]/g, ' '); | ||
| case 'token': | ||
| case 'language': | ||
| case 'Name': | ||
| case 'NCName': | ||
| case 'ID': | ||
| case 'IDREF': | ||
| case 'ENTITY': | ||
| case 'NMTOKEN': | ||
| case 'anyURI': | ||
| case 'IDREFS': | ||
| case 'ENTITIES': | ||
| case 'NMTOKENS': | ||
| return value.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| case 'QName': { | ||
| const normalized = value.replaceAll(/[\t\n\r ]+/g, ' ').trim(); | ||
| if (nsMap !== undefined) { | ||
| const qColon = normalized.indexOf(':'); | ||
| if (qColon !== -1) { | ||
| const prefix = normalized.substring(0, qColon); | ||
| const localPart = normalized.substring(qColon + 1); | ||
| const nsUri = nsMap.get(prefix); | ||
| if (nsUri !== undefined) { | ||
| return '{' + nsUri + '}' + localPart; | ||
| } | ||
| } | ||
| else { | ||
| const defaultNs = nsMap.get(''); | ||
| if (defaultNs !== undefined) { | ||
| return '{' + defaultNs + '}' + normalized; | ||
| } | ||
| } | ||
| } | ||
| return normalized; | ||
| } | ||
| case 'hexBinary': | ||
| return value.replaceAll(/\s/g, '').toUpperCase(); | ||
| case 'base64Binary': | ||
| return value.replaceAll(/\s/g, ''); | ||
| case 'dateTime': | ||
| case 'date': | ||
| case 'time': | ||
| case 'gYear': | ||
| case 'gYearMonth': | ||
| case 'gMonth': | ||
| case 'gMonthDay': | ||
| case 'gDay': | ||
| case 'dateTimeStamp': | ||
| case 'duration': | ||
| case 'dayTimeDuration': | ||
| case 'yearMonthDuration': | ||
| return SchemaTypeValidator.canonicalizeTemporal(value); | ||
| default: | ||
| return value; | ||
| } | ||
| } | ||
| static canonicalDecimal(value) { | ||
| const s = value.trim(); | ||
| const negative = s.startsWith('-'); | ||
| const unsigned = (s.startsWith('+') || s.startsWith('-')) ? s.substring(1) : s; | ||
| const dotIndex = unsigned.indexOf('.'); | ||
| let intPart = dotIndex === -1 ? unsigned : unsigned.substring(0, dotIndex); | ||
| let fracPart = dotIndex === -1 ? '0' : unsigned.substring(dotIndex + 1); | ||
| let intStart = 0; | ||
| while (intStart < intPart.length - 1 && intPart[intStart] === '0') { | ||
| intStart++; | ||
| } | ||
| intPart = intPart.length === 0 ? '0' : intPart.substring(intStart); | ||
| let fracEnd = fracPart.length; | ||
| while (fracEnd > 0 && fracPart[fracEnd - 1] === '0') { | ||
| fracEnd--; | ||
| } | ||
| fracPart = fracEnd === 0 ? '0' : fracPart.substring(0, fracEnd); | ||
| const isZero = intPart === '0' && /^0*$/.test(fracPart); | ||
| if (isZero) { | ||
| return '0.0'; | ||
| } | ||
| return (negative ? '-' : '') + intPart + '.' + fracPart; | ||
| } | ||
| static canonicalInteger(value) { | ||
| const s = value.trim(); | ||
| const negative = s.startsWith('-'); | ||
| const unsigned = (s.startsWith('+') || s.startsWith('-')) ? s.substring(1) : s; | ||
| const stripped = unsigned.replace(/^0+/, '') || '0'; | ||
| if (stripped === '0') { | ||
| return '0'; | ||
| } | ||
| return (negative ? '-' : '') + stripped; | ||
| } | ||
| static canonicalFloat(value) { | ||
| const trimmed = value.trim(); | ||
| if (trimmed === 'INF' || trimmed === '+INF') { | ||
| return 'INF'; | ||
| } | ||
| if (trimmed === '-INF') { | ||
| return '-INF'; | ||
| } | ||
| if (trimmed === 'NaN') { | ||
| return 'NaN'; | ||
| } | ||
| return String(parseFloat(trimmed)); | ||
| } | ||
| static canonicalizeTemporal(value) { | ||
| // Normalize timezone: +00:00 → Z. | ||
| let v = value.trim().replace(/\+00:00$/, 'Z'); | ||
| // Strip trailing zeros from fractional seconds, e.g. .100 → .1, .000 → remove. | ||
| const dotIdx = v.indexOf('.'); | ||
| if (dotIdx !== -1) { | ||
| let fracEnd = dotIdx + 1; | ||
| while (fracEnd < v.length && v[fracEnd] >= '0' && v[fracEnd] <= '9') { | ||
| fracEnd++; | ||
| } | ||
| const suffix = v.substring(fracEnd); | ||
| let trimEnd = fracEnd; | ||
| while (trimEnd > dotIdx + 1 && v[trimEnd - 1] === '0') { | ||
| trimEnd--; | ||
| } | ||
| const frac = trimEnd === dotIdx + 1 ? '' : v.substring(dotIdx, trimEnd); | ||
| v = v.substring(0, dotIdx) + frac + suffix; | ||
| } | ||
| return v; | ||
| } | ||
| } | ||
| //# sourceMappingURL=SchemaTypeValidator.js.map |
| {"version":3,"file":"SchemaTypeValidator.js","sourceRoot":"","sources":["../../../ts/schema/SchemaTypeValidator.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export declare class SchemaWildcardParticle extends SchemaParticle { | ||
| namespace: string; | ||
| processContents: 'strict' | 'lax' | 'skip'; | ||
| private schemaTargetNamespace; | ||
| constructor(namespace?: string, processContents?: 'strict' | 'lax' | 'skip', minOccurs?: number, maxOccurs?: number | 'unbounded', schemaTargetNamespace?: string); | ||
| matchOnce(children: string[], pos: number, nsMap?: Map<string, string>): number[]; | ||
| } |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { SchemaParticle } from './SchemaParticle.js'; | ||
| export class SchemaWildcardParticle extends SchemaParticle { | ||
| namespace; | ||
| processContents; | ||
| schemaTargetNamespace; | ||
| constructor(namespace = '##any', processContents = 'strict', minOccurs = 1, maxOccurs = 1, schemaTargetNamespace) { | ||
| super(minOccurs, maxOccurs); | ||
| this.namespace = namespace; | ||
| this.processContents = processContents; | ||
| this.schemaTargetNamespace = schemaTargetNamespace; | ||
| } | ||
| matchOnce(children, pos, nsMap) { | ||
| if (pos >= children.length) { | ||
| return []; | ||
| } | ||
| if (this.namespace === '##any') { | ||
| return [pos + 1]; | ||
| } | ||
| const childName = children[pos]; | ||
| const colonIdx = childName.indexOf(':'); | ||
| const prefix = colonIdx !== -1 ? childName.substring(0, colonIdx) : undefined; | ||
| let childNs; | ||
| if (prefix !== undefined) { | ||
| childNs = nsMap ? nsMap.get(prefix) : undefined; | ||
| } | ||
| else { | ||
| const defaultNs = nsMap ? nsMap.get('') : undefined; | ||
| childNs = defaultNs !== '' ? defaultNs : undefined; | ||
| } | ||
| if (this.namespace === '##local') { | ||
| return (childNs === undefined || childNs === '') ? [pos + 1] : []; | ||
| } | ||
| if (this.namespace === '##other') { | ||
| const inTarget = this.schemaTargetNamespace !== undefined && childNs === this.schemaTargetNamespace; | ||
| return (childNs !== undefined && childNs !== '' && !inTarget) ? [pos + 1] : []; | ||
| } | ||
| const tokens = this.namespace.split(/\s+/); | ||
| for (const token of tokens) { | ||
| if (token === '##local' && (childNs === undefined || childNs === '')) { | ||
| return [pos + 1]; | ||
| } | ||
| if (token === '##targetNamespace' && childNs !== undefined && childNs === this.schemaTargetNamespace) { | ||
| return [pos + 1]; | ||
| } | ||
| if (token === childNs) { | ||
| return [pos + 1]; | ||
| } | ||
| } | ||
| return []; | ||
| } | ||
| } | ||
| //# sourceMappingURL=SchemaWildcardParticle.js.map |
| {"version":3,"file":"SchemaWildcardParticle.js","sourceRoot":"","sources":["../../../ts/schema/SchemaWildcardParticle.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| export declare class XsdRegexTranslator { | ||
| private static readonly NAME_START_CHAR; | ||
| private static readonly NAME_CHAR; | ||
| private static readonly XSD_DIGITS; | ||
| private static readonly XSD_W_EXCLUDES; | ||
| private static readonly CATEGORY_MAP; | ||
| private static readonly BLOCK_MAP; | ||
| static toRegExp(xsdPattern: string): RegExp; | ||
| static translate(xsdPattern: string): string; | ||
| private static parseExpression; | ||
| private static parseEscape; | ||
| private static parseCharClass; | ||
| private static emitCharClass; | ||
| private static parseEscapeInsideClass; | ||
| private static translateCategory; | ||
| private static resolveClassContent; | ||
| private static readBracedName; | ||
| } |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| class CharClassItem { | ||
| isComplement; | ||
| content; | ||
| constructor(isComplement, content) { | ||
| this.isComplement = isComplement; | ||
| this.content = content; | ||
| } | ||
| } | ||
| export class XsdRegexTranslator { | ||
| // \i — NameStartChar (XML 1.0 Second Edition, Appendix B, productions [84][85][86]) | ||
| static NAME_START_CHAR = ':A-Z_a-z' + | ||
| '\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF' + | ||
| '\u0100-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E' + | ||
| '\u0180-\u01C3\u01CD-\u01F0\u01F4-\u01F5\u01FA-\u0217' + | ||
| '\u0250-\u02A8\u02BB-\u02C1' + | ||
| '\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE' + | ||
| '\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3' + | ||
| '\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481' + | ||
| '\u0490-\u04C4\u04C7-\u04C8\u04CB-\u04CC\u04D0-\u04EB' + | ||
| '\u04EE-\u04F5\u04F8-\u04F9' + | ||
| '\u0531-\u0556\u0559\u0561-\u0586' + | ||
| '\u05D0-\u05EA\u05F0-\u05F2' + | ||
| '\u0621-\u063A\u0641-\u064A' + | ||
| '\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5-\u06E6' + | ||
| '\u0905-\u0939\u093D\u0958-\u0961' + | ||
| '\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9' + | ||
| '\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1' + | ||
| '\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30' + | ||
| '\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74' + | ||
| '\u0A85-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0' + | ||
| '\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0' + | ||
| '\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30' + | ||
| '\u0B32-\u0B33\u0B36-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61' + | ||
| '\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C' + | ||
| '\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9' + | ||
| '\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60-\u0C61' + | ||
| '\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0-\u0CE1' + | ||
| '\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60-\u0D61' + | ||
| '\u0E01-\u0E2E\u0E30\u0E32-\u0E33\u0E40-\u0E45' + | ||
| '\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D' + | ||
| '\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB' + | ||
| '\u0EAD-\u0EAE\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4' + | ||
| '\u0F40-\u0F47\u0F49-\u0F69' + | ||
| '\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102-\u1103\u1105-\u1107\u1109' + | ||
| '\u110B-\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150' + | ||
| '\u1154-\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D-\u116E' + | ||
| '\u1172-\u1173\u1175\u119E\u11A8\u11AB\u11AE-\u11AF\u11B7-\u11B8\u11BA' + | ||
| '\u11BC-\u11C2\u11EB\u11F0\u11F9' + | ||
| '\u1E00-\u1E9B\u1EA0-\u1EF9' + | ||
| '\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57' + | ||
| '\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE' + | ||
| '\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC' + | ||
| '\u1FF2-\u1FF4\u1FF6-\u1FFC' + | ||
| '\u2126\u212A-\u212B\u212E\u2180-\u2182' + | ||
| '\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\uAC00-\uD7A3' + | ||
| '\u4E00-\u9FA5\u3007\u3021-\u3029'; | ||
| // \c — NameChar (XML 1.0 Second Edition, Appendix B, productions [4][87][88][89]) | ||
| static NAME_CHAR = XsdRegexTranslator.NAME_START_CHAR + | ||
| '\\-\\.0-9' + | ||
| '\u0660-\u0669\u06F0-\u06F9\u0966-\u096F\u09E6-\u09EF' + | ||
| '\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE7-\u0BEF' + | ||
| '\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59' + | ||
| '\u0ED0-\u0ED9\u0F20-\u0F29' + | ||
| '\u0300-\u0345\u0360-\u0361\u0483-\u0486\u0591-\u05A1' + | ||
| '\u05A3-\u05B9\u05BB-\u05BD\u05BF\u05C1-\u05C2\u05C4' + | ||
| '\u064B-\u0652\u0670\u06D6-\u06DC\u06DD-\u06DF\u06E0-\u06E4' + | ||
| '\u06E7-\u06E8\u06EA-\u06ED\u0901-\u0903\u093C\u093E-\u094C' + | ||
| '\u094D\u0951-\u0954\u0962-\u0963\u0981-\u0983\u09BC\u09BE' + | ||
| '\u09BF\u09C0-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09E2-\u09E3' + | ||
| '\u0A02\u0A3C\u0A3E\u0A3F\u0A40-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D' + | ||
| '\u0A70-\u0A71\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD' + | ||
| '\u0B01-\u0B03\u0B3C\u0B3E-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D' + | ||
| '\u0B56-\u0B57\u0B82-\u0B83\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD' + | ||
| '\u0BD7\u0C01-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56' + | ||
| '\u0C82-\u0C83\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6' + | ||
| '\u0D02-\u0D03\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57' + | ||
| '\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC' + | ||
| '\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F' + | ||
| '\u0F71-\u0F84\u0F86-\u0F8B\u0F90-\u0F95\u0F97\u0F99-\u0FAD' + | ||
| '\u0FB1-\u0FB7\u0FB9\u20D0-\u20DC\u20E1\u302A-\u302F\u3099\u309A' + | ||
| '\u00B7\u02D0\u02D1\u0387\u0640\u0E46\u0EC6\u3005' + | ||
| '\u3031-\u3035\u309D-\u309E\u30FC-\u30FE'; | ||
| // XSD 1.0 \d is a fixed set of 20 decimal-digit ranges frozen at Unicode 3.1. | ||
| // Using \p{Nd} would reflect current Unicode, which diverges: e.g. U+0BE6 was added | ||
| // to Nd after Unicode 3.1, and U+1369-U+1371 were removed in Unicode 6.0. | ||
| static XSD_DIGITS = '\\u0030-\\u0039\\u0660-\\u0669\\u06F0-\\u06F9\\u0966-\\u096F' + | ||
| '\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F' + | ||
| '\\u0BE7-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F' + | ||
| '\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049' + | ||
| '\\u1369-\\u1371\\u17E0-\\u17E9\\u1810-\\u1819\\uFF10-\\uFF19' + | ||
| '\\u{1D7CE}-\\u{1D7FF}'; | ||
| // Characters assigned to L/M/N/S after Unicode 3.1 that must be excluded from \w. | ||
| // XSD 1.0 \w is defined against Unicode 3.1; these were Cn (unassigned) at that time. | ||
| static XSD_W_EXCLUDES = '\\u023F-\\u0240'; | ||
| static CATEGORY_MAP = { | ||
| // Letter | ||
| L: '\\p{L}', Lu: '\\p{Lu}', Ll: '\\p{Ll}', Lt: '\\p{Lt}', | ||
| Lm: '\\p{Lm}', Lo: '\\p{Lo}', | ||
| // Mark | ||
| M: '\\p{M}', Mn: '\\p{Mn}', Mc: '\\p{Mc}', Me: '\\p{Me}', | ||
| // Number | ||
| N: '\\p{N}', Nd: '\\p{Nd}', Nl: '\\p{Nl}', No: '\\p{No}', | ||
| // Punctuation | ||
| P: '\\p{P}', Pc: '\\p{Pc}', Pd: '\\p{Pd}', Ps: '\\p{Ps}', | ||
| Pe: '\\p{Pe}', Pi: '\\p{Pi}', Pf: '\\p{Pf}', Po: '\\p{Po}', | ||
| // Symbol | ||
| S: '\\p{S}', Sm: '\\p{Sm}', Sc: '\\p{Sc}', Sk: '\\p{Sk}', | ||
| So: '\\p{So}', | ||
| // Separator | ||
| Z: '\\p{Z}', Zs: '\\p{Zs}', Zl: '\\p{Zl}', Zp: '\\p{Zp}', | ||
| // Other | ||
| C: '\\p{C}', Cc: '\\p{Cc}', Cf: '\\p{Cf}', Co: '\\p{Co}', | ||
| Cn: '\\p{Cn}', | ||
| }; | ||
| static BLOCK_MAP = { | ||
| BasicLatin: '\u0000-\u007F', | ||
| Latin1Supplement: '\u0080-\u00FF', | ||
| 'Latin-1Supplement': '\u0080-\u00FF', | ||
| LatinExtendedA: '\u0100-\u017F', | ||
| 'LatinExtended-A': '\u0100-\u017F', | ||
| LatinExtendedB: '\u0180-\u024F', | ||
| 'LatinExtended-B': '\u0180-\u024F', | ||
| IPAExtensions: '\u0250-\u02AF', | ||
| SpacingModifierLetters: '\u02B0-\u02FF', | ||
| CombiningDiacriticalMarks: '\u0300-\u036F', | ||
| Greek: '\u0370-\u03FF', | ||
| GreekandCoptic: '\u0370-\u03FF', | ||
| Cyrillic: '\u0400-\u04FF', | ||
| CyrillicSupplement: '\u0500-\u052F', | ||
| Armenian: '\u0530-\u058F', | ||
| Hebrew: '\u0590-\u05FF', | ||
| Arabic: '\u0600-\u06FF', | ||
| Syriac: '\u0700-\u074F', | ||
| Thaana: '\u0780-\u07BF', | ||
| Devanagari: '\u0900-\u097F', | ||
| Bengali: '\u0980-\u09FF', | ||
| Gurmukhi: '\u0A00-\u0A7F', | ||
| Gujarati: '\u0A80-\u0AFF', | ||
| Oriya: '\u0B00-\u0B7F', | ||
| Tamil: '\u0B80-\u0BFF', | ||
| Telugu: '\u0C00-\u0C7F', | ||
| Kannada: '\u0C80-\u0CFF', | ||
| Malayalam: '\u0D00-\u0D7F', | ||
| Sinhala: '\u0D80-\u0DFF', | ||
| Thai: '\u0E00-\u0E7F', | ||
| Lao: '\u0E80-\u0EFF', | ||
| Tibetan: '\u0F00-\u0FFF', | ||
| Myanmar: '\u1000-\u109F', | ||
| Georgian: '\u10A0-\u10FF', | ||
| HangulJamo: '\u1100-\u11FF', | ||
| Ethiopic: '\u1200-\u137F', | ||
| Cherokee: '\u13A0-\u13FF', | ||
| UnifiedCanadianAboriginalSyllabics: '\u1400-\u167F', | ||
| Ogham: '\u1680-\u169F', | ||
| Runic: '\u16A0-\u16FF', | ||
| Khmer: '\u1780-\u17FF', | ||
| Mongolian: '\u1800-\u18AF', | ||
| LatinExtendedAdditional: '\u1E00-\u1EFF', | ||
| GreekExtended: '\u1F00-\u1FFF', | ||
| GeneralPunctuation: '\u2000-\u206F', | ||
| SuperscriptsandSubscripts: '\u2070-\u209F', | ||
| CurrencySymbols: '\u20A0-\u20CF', | ||
| CombiningMarksforSymbols: '\u20D0-\u20FF', | ||
| LetterlikeSymbols: '\u2100-\u214F', | ||
| NumberForms: '\u2150-\u218F', | ||
| Arrows: '\u2190-\u21FF', | ||
| MathematicalOperators: '\u2200-\u22FF', | ||
| MiscellaneousTechnical: '\u2300-\u23FF', | ||
| ControlPictures: '\u2400-\u243F', | ||
| OpticalCharacterRecognition: '\u2440-\u245F', | ||
| EnclosedAlphanumerics: '\u2460-\u24FF', | ||
| BoxDrawing: '\u2500-\u257F', | ||
| BlockElements: '\u2580-\u259F', | ||
| GeometricShapes: '\u25A0-\u25FF', | ||
| MiscellaneousSymbols: '\u2600-\u26FF', | ||
| Dingbats: '\u2700-\u27BF', | ||
| BraillePatterns: '\u2800-\u28FF', | ||
| CJKRadicalsSupplement: '\u2E80-\u2EFF', | ||
| KangxiRadicals: '\u2F00-\u2FDF', | ||
| IdeographicDescriptionCharacters: '\u2FF0-\u2FFF', | ||
| CJKSymbolsandPunctuation: '\u3000-\u303F', | ||
| Hiragana: '\u3040-\u309F', | ||
| Katakana: '\u30A0-\u30FF', | ||
| Bopomofo: '\u3100-\u312F', | ||
| HangulCompatibilityJamo: '\u3130-\u318F', | ||
| Kanbun: '\u3190-\u319F', | ||
| BopomofoExtended: '\u31A0-\u31BF', | ||
| EnclosedCJKLettersandMonths: '\u3200-\u32FF', | ||
| CJKCompatibility: '\u3300-\u33FF', | ||
| CJKUnifiedIdeographsExtensionA: '\u3400-\u4DBF', | ||
| YijingHexagramSymbols: '\u4DC0-\u4DFF', | ||
| CJKUnifiedIdeographs: '\u4E00-\u9FFF', | ||
| YiSyllables: '\uA000-\uA48F', | ||
| YiRadicals: '\uA490-\uA4CF', | ||
| HangulSyllables: '\uAC00-\uD7AF', | ||
| HighSurrogates: '\uD800-\uDB7F', | ||
| HighPrivateUseSurrogates: '\uDB80-\uDBFF', | ||
| LowSurrogates: '\uDC00-\uDFFF', | ||
| PrivateUse: '\uE000-\uF8FF', | ||
| CJKCompatibilityIdeographs: '\uF900-\uFAFF', | ||
| AlphabeticPresentationForms: '\uFB00-\uFB4F', | ||
| ArabicPresentationFormsA: '\uFB50-\uFDFF', | ||
| 'ArabicPresentationForms-A': '\uFB50-\uFDFF', | ||
| CombiningHalfMarks: '\uFE20-\uFE2F', | ||
| CJKCompatibilityForms: '\uFE30-\uFE4F', | ||
| SmallFormVariants: '\uFE50-\uFE6F', | ||
| ArabicPresentationFormsB: '\uFE70-\uFEFF', | ||
| 'ArabicPresentationForms-B': '\uFE70-\uFEFF', | ||
| Specials: '\uFFF0-\uFFFF', | ||
| HalfwidthandFullwidthForms: '\uFF00-\uFFEF', | ||
| OldItalic: '\u{10300}-\u{1032F}', | ||
| Gothic: '\u{10330}-\u{1034F}', | ||
| Deseret: '\u{10400}-\u{1044F}', | ||
| ByzantineMusicalSymbols: '\u{1D000}-\u{1D0FF}', | ||
| MusicalSymbols: '\u{1D100}-\u{1D1FF}', | ||
| MathematicalAlphanumericSymbols: '\u{1D400}-\u{1D7FF}', | ||
| CJKUnifiedIdeographsExtensionB: '\u{20000}-\u{2A6DF}', | ||
| CJKCompatibilityIdeographsSupplement: '\u{2F800}-\u{2FA1F}', | ||
| Tags: '\u{E0000}-\u{E007F}', | ||
| }; | ||
| static toRegExp(xsdPattern) { | ||
| const jsSource = XsdRegexTranslator.translate(xsdPattern); | ||
| return new RegExp('^(?:' + jsSource + ')$', 'u'); | ||
| } | ||
| static translate(xsdPattern) { | ||
| return XsdRegexTranslator.parseExpression(xsdPattern, 0).result; | ||
| } | ||
| static parseExpression(src, start, stopAt // optional single character that ends the expression | ||
| ) { | ||
| let out = ''; | ||
| let i = start; | ||
| while (i < src.length) { | ||
| const ch = src[i]; | ||
| // Stop character (used when parsing inside groups) | ||
| if (stopAt && ch === stopAt) { | ||
| break; | ||
| } | ||
| if (ch === '\\') { | ||
| const { result, end } = XsdRegexTranslator.parseEscape(src, i); | ||
| out += result; | ||
| i = end; | ||
| continue; | ||
| } | ||
| if (ch === '[') { | ||
| const { result, end } = XsdRegexTranslator.parseCharClass(src, i); | ||
| out += result; | ||
| i = end; | ||
| continue; | ||
| } | ||
| if (ch === '.') { | ||
| // XSD dot: any char except \n \r \x85 \u2028 | ||
| out += '[^\\n\\r\\x85\\u2028]'; | ||
| i++; | ||
| continue; | ||
| } | ||
| if (ch === '(') { | ||
| // Inline .NET flag groups: (?flags:...) where flags may include | ||
| // n (explicit capture — no-op for matching), i, m, s. | ||
| // Map (?n:...) → (?:...) since "n" only suppresses capture numbering. | ||
| // All other inline-flag prefixes are passed through as-is (JS supports them). | ||
| let prefix = '('; | ||
| let bodyStart = i + 1; | ||
| if (src[i + 1] === '?') { | ||
| const flagEnd = src.indexOf(':', i + 2); | ||
| if (flagEnd !== -1) { | ||
| const rawFlags = src.substring(i + 2, flagEnd); | ||
| const flags = rawFlags.startsWith('+') ? rawFlags.slice(1) : rawFlags; | ||
| if (/^[nimsx]+$/.test(flags)) { | ||
| const jsFlags = flags.replaceAll(/n/g, ''); | ||
| prefix = jsFlags.length > 0 ? '(?' + jsFlags + ':' : '(?:'; | ||
| bodyStart = flagEnd + 1; | ||
| } | ||
| } | ||
| } | ||
| const inner = XsdRegexTranslator.parseExpression(src, bodyStart, ')'); | ||
| if (src[inner.end] !== ')') { | ||
| throw new Error('XsdRegexTranslator: unmatched \'(\' at position ' + i); | ||
| } | ||
| out += prefix + inner.result + ')'; | ||
| i = inner.end + 1; | ||
| continue; | ||
| } | ||
| // A '{' is a quantifier only when immediately followed by one or more digits. | ||
| // Otherwise it is a literal character; find the closing '}' and escape both. | ||
| if (ch === '{') { | ||
| if (i + 1 < src.length && src[i + 1] >= '0' && src[i + 1] <= '9') { | ||
| out += '{'; | ||
| i++; | ||
| continue; | ||
| } | ||
| const closeIdx = src.indexOf('}', i + 1); | ||
| if (closeIdx !== -1) { | ||
| out += '\\{' + src.substring(i + 1, closeIdx) + '\\}'; | ||
| i = closeIdx + 1; | ||
| } | ||
| else { | ||
| out += '\\{'; | ||
| i++; | ||
| } | ||
| continue; | ||
| } | ||
| if (ch === ']') { | ||
| out += '\\x5D'; | ||
| i++; | ||
| continue; | ||
| } | ||
| // Quantifiers, alternation, anchors — pass through as-is. | ||
| // XSD has no anchors, but the characters |, *, +, ?, } are | ||
| // the same as in JS. | ||
| out += ch; | ||
| i++; | ||
| } | ||
| return { result: out, end: i }; | ||
| } | ||
| static parseEscape(src, i // points at the '\' | ||
| ) { | ||
| const next = src[i + 1]; | ||
| switch (next) { | ||
| // XSD-specific shorthand classes | ||
| case 'i': return { result: '[' + XsdRegexTranslator.NAME_START_CHAR + ']', end: i + 2 }; | ||
| case 'I': return { result: '[^' + XsdRegexTranslator.NAME_START_CHAR + ']', end: i + 2 }; | ||
| case 'c': return { result: '[' + XsdRegexTranslator.NAME_CHAR + ']', end: i + 2 }; | ||
| case 'C': return { result: '[^' + XsdRegexTranslator.NAME_CHAR + ']', end: i + 2 }; | ||
| // XSD \s is narrower than JS \s — only U+0020, \t, \n, \r | ||
| case 's': return { result: '[\\x20\\t\\n\\r]', end: i + 2 }; | ||
| case 'S': return { result: '[^\\x20\\t\\n\\r]', end: i + 2 }; | ||
| case 'd': return { result: '[' + XsdRegexTranslator.XSD_DIGITS + ']', end: i + 2 }; | ||
| case 'D': return { result: '[^' + XsdRegexTranslator.XSD_DIGITS + ']', end: i + 2 }; | ||
| // XSD \w excludes the characters that \i and \c cover; | ||
| // per spec it is [#x0000-#x10FFFF]-[\p{P}\p{Z}\p{C}] which is | ||
| // equivalent to [\p{L}\p{M}\p{N}\p{S}] | ||
| case 'w': return { result: '(?:(?![' + XsdRegexTranslator.XSD_W_EXCLUDES + '])[\\p{L}\\p{M}\\p{N}\\p{S}])', end: i + 2 }; | ||
| case 'W': return { result: '(?:[^\\p{L}\\p{M}\\p{N}\\p{S}]|[' + XsdRegexTranslator.XSD_W_EXCLUDES + '])', end: i + 2 }; | ||
| // Unicode category / block escapes | ||
| case 'p': { | ||
| const { name, end } = XsdRegexTranslator.readBracedName(src, i + 2); | ||
| return { result: XsdRegexTranslator.translateCategory(name, false), end }; | ||
| } | ||
| case 'P': { | ||
| const { name, end } = XsdRegexTranslator.readBracedName(src, i + 2); | ||
| return { result: XsdRegexTranslator.translateCategory(name, true), end }; | ||
| } | ||
| // \A, \Z and \z are Perl/PCRE string-boundary anchors; toRegExp already | ||
| // wraps the pattern with ^ and $ so all three are no-ops here. | ||
| case 'A': return { result: '', end: i + 2 }; | ||
| case 'Z': return { result: '', end: i + 2 }; | ||
| case 'z': return { result: '', end: i + 2 }; | ||
| // \- is a valid XSD identity escape but not in JS u-mode outside | ||
| // a character class; map it to \x2D (literal hyphen). | ||
| case '-': return { result: '\\x2D', end: i + 2 }; | ||
| // Everything else (including \n \r \t \\ \. etc.) is passed | ||
| // through unchanged — JS understands them identically. | ||
| default: { | ||
| if (next >= '0' && next <= '7') { | ||
| let j = i + 1; | ||
| let octalStr = ''; | ||
| while (j < src.length && j < i + 4 && src[j] >= '0' && src[j] <= '7') { | ||
| octalStr += src[j]; | ||
| j++; | ||
| } | ||
| const code = parseInt(octalStr, 8); | ||
| const hex = code <= 0xFF | ||
| ? '\\x' + code.toString(16).padStart(2, '0') | ||
| : '\\u' + code.toString(16).padStart(4, '0'); | ||
| return { result: hex, end: j }; | ||
| } | ||
| return { result: '\\' + next, end: i + 2 }; | ||
| } | ||
| } | ||
| } | ||
| static parseCharClass(src, start // points at the opening '[' | ||
| ) { | ||
| let i = start + 1; | ||
| const negate = src[i] === '^'; | ||
| if (negate) | ||
| i++; | ||
| if (src[i] === ']') { | ||
| throw new Error('XsdRegexTranslator: empty character class at position ' + start); | ||
| } | ||
| // First pass: collect items as a typed list | ||
| const items = []; | ||
| let subtracted = null; | ||
| while (i < src.length && src[i] !== ']') { | ||
| // Detect -[ at current position: class subtraction | ||
| if (src[i] === '-' && src[i + 1] === '[') { | ||
| const inner = XsdRegexTranslator.parseCharClass(src, i + 1); | ||
| subtracted = inner.result; | ||
| i = inner.end; | ||
| break; | ||
| } | ||
| if (src[i] === '[') { | ||
| if (src[i + 1] === ':') { | ||
| throw new Error('XsdRegexTranslator: POSIX character class not supported at position ' + i); | ||
| } | ||
| items.push(new CharClassItem(false, '\\x5B')); | ||
| i++; | ||
| continue; | ||
| } | ||
| if (src[i] === '\\') { | ||
| const esc = XsdRegexTranslator.parseEscapeInsideClass(src, i); | ||
| items.push(esc.item); | ||
| i = esc.end; | ||
| } | ||
| else { | ||
| items.push(new CharClassItem(false, src[i])); | ||
| i++; | ||
| } | ||
| } | ||
| // Consume closing ']' | ||
| if (src[i] !== ']') { | ||
| throw new Error('XsdRegexTranslator: unterminated character class at position ' + start); | ||
| } | ||
| i++; | ||
| const baseExpr = XsdRegexTranslator.emitCharClass(items, negate); | ||
| if (subtracted === null) { | ||
| return { result: baseExpr, end: i }; | ||
| } | ||
| // Class subtraction: [base-[sub]] | ||
| // JS has no native subtraction syntax, so we implement it via a | ||
| // lookahead: (?![sub])[base] — but that only works outside a class. | ||
| // We therefore convert to: (?:(?!subtracted)[base]) | ||
| // which is semantically equivalent to one code-point matching. | ||
| return { | ||
| result: '(?:(?!' + subtracted + ')' + baseExpr + ')', | ||
| end: i, | ||
| }; | ||
| } | ||
| static emitCharClass(items, negate) { | ||
| const posContent = items.filter(it => !it.isComplement).map(it => it.content).join(''); | ||
| const compContents = items.filter(it => it.isComplement).map(it => it.content); | ||
| if (compContents.length === 0) { | ||
| return '[' + (negate ? '^' : '') + posContent + ']'; | ||
| } | ||
| if (posContent === '' && compContents.length === 1) { | ||
| return negate | ||
| ? '[' + compContents[0] + ']' | ||
| : '[^' + compContents[0] + ']'; | ||
| } | ||
| if (posContent === '') { | ||
| if (negate) { | ||
| // Intersection of complement bases: (?=[c1])(?=[c2])...[cN] | ||
| let result = ''; | ||
| for (let k = 0; k < compContents.length - 1; k++) { | ||
| result += '(?=[' + compContents[k] + '])'; | ||
| } | ||
| return result + '[' + compContents[compContents.length - 1] + ']'; | ||
| } | ||
| // Union of negated: (?:[^c1]|[^c2]|...) | ||
| return '(?:' + compContents.map(c => '[^' + c + ']').join('|') + ')'; | ||
| } | ||
| if (negate) { | ||
| // ¬(P ∪ ¬C) = ¬P ∩ C → lookaheads for each C, then [^P] | ||
| const lookaheads = compContents.map(c => '(?=[' + c + '])').join(''); | ||
| return lookaheads + '[^' + posContent + ']'; | ||
| } | ||
| // P ∪ ¬C → (?:[P]|[^c1]|[^c2]|...) | ||
| const parts = ['[' + posContent + ']']; | ||
| compContents.forEach(c => parts.push('[^' + c + ']')); | ||
| return '(?:' + parts.join('|') + ')'; | ||
| } | ||
| static parseEscapeInsideClass(src, i) { | ||
| const next = src[i + 1]; | ||
| switch (next) { | ||
| case 'i': return { item: new CharClassItem(false, XsdRegexTranslator.NAME_START_CHAR), end: i + 2 }; | ||
| case 'I': return { item: new CharClassItem(true, XsdRegexTranslator.NAME_START_CHAR), end: i + 2 }; | ||
| case 'c': return { item: new CharClassItem(false, XsdRegexTranslator.NAME_CHAR), end: i + 2 }; | ||
| case 'C': return { item: new CharClassItem(true, XsdRegexTranslator.NAME_CHAR), end: i + 2 }; | ||
| case 's': return { item: new CharClassItem(false, '\\x20\\t\\n\\r'), end: i + 2 }; | ||
| case 'S': return { item: new CharClassItem(true, '\\x20\\t\\n\\r'), end: i + 2 }; | ||
| case 'd': return { item: new CharClassItem(false, XsdRegexTranslator.XSD_DIGITS), end: i + 2 }; | ||
| case 'D': return { item: new CharClassItem(true, XsdRegexTranslator.XSD_DIGITS), end: i + 2 }; | ||
| case 'w': return { item: new CharClassItem(false, '\\p{L}\\p{M}\\p{N}\\p{S}'), end: i + 2 }; | ||
| case 'W': return { item: new CharClassItem(true, '\\p{L}\\p{M}\\p{N}\\p{S}'), end: i + 2 }; | ||
| case 'p': { | ||
| const { name, end } = XsdRegexTranslator.readBracedName(src, i + 2); | ||
| return { item: new CharClassItem(false, XsdRegexTranslator.resolveClassContent(name)), end }; | ||
| } | ||
| case 'P': { | ||
| const { name, end } = XsdRegexTranslator.readBracedName(src, i + 2); | ||
| return { item: new CharClassItem(true, XsdRegexTranslator.resolveClassContent(name)), end }; | ||
| } | ||
| case 'A': return { item: new CharClassItem(false, ''), end: i + 2 }; | ||
| case 'Z': return { item: new CharClassItem(false, ''), end: i + 2 }; | ||
| case 'z': return { item: new CharClassItem(false, ''), end: i + 2 }; | ||
| default: { | ||
| if (next >= '0' && next <= '7') { | ||
| let j = i + 1; | ||
| let octalStr = ''; | ||
| while (j < src.length && j < i + 4 && src[j] >= '0' && src[j] <= '7') { | ||
| octalStr += src[j]; | ||
| j++; | ||
| } | ||
| const code = parseInt(octalStr, 8); | ||
| const hex = code <= 0xFF | ||
| ? '\\x' + code.toString(16).padStart(2, '0') | ||
| : '\\u' + code.toString(16).padStart(4, '0'); | ||
| return { item: new CharClassItem(false, hex), end: j }; | ||
| } | ||
| return { item: new CharClassItem(false, '\\' + next), end: i + 2 }; | ||
| } | ||
| } | ||
| } | ||
| static translateCategory(name, negate) { | ||
| // Block escape: \p{IsXxx} | ||
| if (name.startsWith('Is')) { | ||
| const blockName = name.slice(2); | ||
| const range = XsdRegexTranslator.BLOCK_MAP[blockName] | ||
| ?? XsdRegexTranslator.BLOCK_MAP[blockName.replaceAll(/-/g, '')]; | ||
| if (range) { | ||
| return negate ? '[^' + range + ']' : '[' + range + ']'; | ||
| } | ||
| throw new Error('XsdRegexTranslator: unknown Unicode block \'' + name + '\''); | ||
| } | ||
| // Category escape: must be in CATEGORY_MAP | ||
| const mapped = XsdRegexTranslator.CATEGORY_MAP[name]; | ||
| if (mapped) { | ||
| return negate ? mapped.replace('\\p{', '\\P{') : mapped; | ||
| } | ||
| throw new Error('XsdRegexTranslator: unknown Unicode category \'' + name + '\''); | ||
| } | ||
| static resolveClassContent(name) { | ||
| if (name.startsWith('Is')) { | ||
| const blockName = name.slice(2); | ||
| const range = XsdRegexTranslator.BLOCK_MAP[blockName] | ||
| ?? XsdRegexTranslator.BLOCK_MAP[blockName.replaceAll(/-/g, '')]; | ||
| if (range) { | ||
| return range; | ||
| } | ||
| throw new Error('XsdRegexTranslator: unknown Unicode block \'' + name + '\''); | ||
| } | ||
| const mapped = XsdRegexTranslator.CATEGORY_MAP[name]; | ||
| if (mapped) { | ||
| return mapped; | ||
| } | ||
| throw new Error('XsdRegexTranslator: unknown Unicode category \'' + name + '\''); | ||
| } | ||
| static readBracedName(src, i // should point at '{' | ||
| ) { | ||
| if (src[i] !== '{') { | ||
| throw new Error('XsdRegexTranslator: expected \'{\' after \\p/\\P at position ' + i); | ||
| } | ||
| const close = src.indexOf('}', i + 1); | ||
| if (close === -1) { | ||
| throw new Error('XsdRegexTranslator: unterminated \\p{...} starting at position ' + i); | ||
| } | ||
| return { name: src.slice(i + 1, close), end: close + 1 }; | ||
| } | ||
| } | ||
| //# sourceMappingURL=XsdRegexTranslator.js.map |
| {"version":3,"file":"XsdRegexTranslator.js","sourceRoot":"","sources":["../../../ts/schema/XsdRegexTranslator.ts"],"names":[],"mappings":"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"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { XMLElement } from '../XMLElement.js'; | ||
| export declare class XSDSemanticValidator { | ||
| static validate(schemaRoot: XMLElement): void; | ||
| static validateCrossReferences(roots: Array<XMLElement>, allComplexTypes: Map<string, XMLElement>, allSimpleTypes: Map<string, XMLElement>, allTopLevelElements: Set<string>): void; | ||
| private static checkListUnionTypeReferences; | ||
| private static checkQNameSimpleTypeRef; | ||
| private static checkNamedComponents; | ||
| private static checkNotationAttributes; | ||
| private static checkNotationPlacement; | ||
| private static checkNotationRestrictionEnumerations; | ||
| private static checkNotationEnumValues; | ||
| private static checkIdAttributes; | ||
| private static checkAnnotationCount; | ||
| private static checkIncludeRedefine; | ||
| private static checkDuplicateIds; | ||
| private static collectIds; | ||
| private static checkDuplicateTopLevelGroups; | ||
| private static checkDuplicateTopLevelAttributeGroups; | ||
| private static checkDuplicateTopLevelComplexTypes; | ||
| private static checkDuplicateTopLevelElements; | ||
| private static checkDuplicateTopLevelSimpleTypes; | ||
| private static checkDuplicateImports; | ||
| static checkIncludedNamespace(includedRoot: XMLElement, includingNamespace: string | undefined): void; | ||
| private static checkFacetValues; | ||
| private static checkFinalConstraints; | ||
| private static checkFinalBlocks; | ||
| private static collectComplexTypes; | ||
| private static checkComplexTypeFinalConstraints; | ||
| private static getDefaultNs; | ||
| private static checkComplexTypeBaseReferences; | ||
| private static buildPrefixMap; | ||
| private static collectTopLevelElements; | ||
| private static checkElementRefAndTypeReferences; | ||
| private static checkQNameElementRef; | ||
| private static checkQNameTypeRef; | ||
| private static collectSimpleTypes; | ||
| private static getTypeVariety; | ||
| private static getInlineSimpleTypeVariety; | ||
| private static checkSimpleTypeRestrictions; | ||
| private static validateRestrictionFacets; | ||
| private static isIdType; | ||
| private static checkElementRefConstraints; | ||
| private static collectFacetsFromSimpleType; | ||
| private static resolveSimpleType; | ||
| private static isValidForResolvedType; | ||
| private static checkElementValueConstraints; | ||
| private static checkAllNesting; | ||
| private static checkKeyrefReferences; | ||
| private static countFields; | ||
| private static collectKeyUniqueNames; | ||
| private static validateKeyrefRefer; | ||
| private static checkIdentityConstraintPlacement; | ||
| private static gatherAttributeNames; | ||
| private static collectBaseAttributeNames; | ||
| private static findAnyAttributeConstraint; | ||
| private static expandWildcardTokens; | ||
| private static isAnyAttributeSubset; | ||
| private static checkComplexRestrictionAttributes; | ||
| private static isValidNameTest; | ||
| private static validateSelectorXPath; | ||
| private static validateFieldXPath; | ||
| private static checkAttributeUseConstraints; | ||
| private static checkOccurrenceConstraints; | ||
| private static checkSimpleTypeChildren; | ||
| private static checkListUnionConstraints; | ||
| private static checkComplexTypeContentModel; | ||
| private static checkGroupCompositorCount; | ||
| private static localName; | ||
| } |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| export {}; |
| import { DOMBuilder } from '../DOMBuilder.js'; | ||
| import { SAXParser } from '../SAXParser.js'; | ||
| import { SchemaBuilder } from '../schema/SchemaBuilder.js'; | ||
| import { XSDSemanticValidator } from '../schema/XSDSemanticValidator.js'; | ||
| const schemaPath = './tests/xmlschema2006-11-06/sunData/combined/identity/idc006/idc006.nogen.xsd'; | ||
| const instancePath = './tests/xmlschema2006-11-06/sunData/combined/identity/idc006/idc006.nogen.v00.xml'; | ||
| try { | ||
| const schemaParser = new SAXParser(); | ||
| const schemaHandler = new DOMBuilder(); | ||
| schemaParser.setContentHandler(schemaHandler); | ||
| schemaParser.parseFile(schemaPath); | ||
| const schemaRoot = schemaHandler.getDocument()?.getRoot(); | ||
| if (schemaRoot) { | ||
| XSDSemanticValidator.validate(schemaRoot); | ||
| } | ||
| const builder = new SchemaBuilder(); | ||
| const grammar = builder.buildGrammar(schemaPath); | ||
| console.log('Schema loaded OK'); | ||
| const parser = new SAXParser(); | ||
| const handler = new DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| handler.setGrammar(grammar); | ||
| parser.setValidating(true); | ||
| parser.parseFile(instancePath); | ||
| console.log('Instance valid: OK'); | ||
| } | ||
| catch (e) { | ||
| if (e instanceof Error) { | ||
| console.error('ERROR: ' + e.message); | ||
| console.error(e.stack); | ||
| } | ||
| else { | ||
| console.error(e); | ||
| } | ||
| } | ||
| //# sourceMappingURL=DebugIdc006.js.map |
| {"version":3,"file":"DebugIdc006.js","sourceRoot":"","sources":["../../../ts/tests/DebugIdc006.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAGzE,MAAM,UAAU,GAAW,+EAA+E,CAAC;AAC3G,MAAM,YAAY,GAAW,mFAAmF,CAAC;AAEjH,IAAI,CAAC;IACD,MAAM,YAAY,GAAc,IAAI,SAAS,EAAE,CAAC;IAChD,MAAM,aAAa,GAAe,IAAI,UAAU,EAAE,CAAC;IACnD,YAAY,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC9C,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,UAAU,GAA2B,aAAa,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;IAClF,IAAI,UAAU,EAAE,CAAC;QACb,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,OAAO,GAAkB,IAAI,aAAa,EAAE,CAAC;IACnD,MAAM,OAAO,GAAkB,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAc,IAAI,SAAS,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAe,IAAI,UAAU,EAAE,CAAC;IAC7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACtC,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACT,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;AACL,CAAC"} |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| export {}; |
| /******************************************************************************* | ||
| * Copyright (c) 2023-2026 Maxprograms. | ||
| * | ||
| * This program and the accompanying materials | ||
| * are made available under the terms of the Eclipse Public License 1.0 | ||
| * which accompanies this distribution, and is available at | ||
| * https://www.eclipse.org/org/documents/epl-v10.html | ||
| * | ||
| * Contributors: | ||
| * Maxprograms - initial API and implementation | ||
| *******************************************************************************/ | ||
| import { existsSync, readdirSync } from 'node:fs'; | ||
| import { dirname, resolve } from 'node:path'; | ||
| import { DOMBuilder } from '../DOMBuilder.js'; | ||
| import { SAXParser } from '../SAXParser.js'; | ||
| import { SchemaBuilder } from '../schema/SchemaBuilder.js'; | ||
| import { XSDSemanticValidator } from '../schema/XSDSemanticValidator.js'; | ||
| const SUITE_FILE = './tests/xmlschema2006-11-06/suite.xml'; | ||
| // Path to the Boeing testSet file relative to the suite root | ||
| const BOEING_TESTSET = 'boeingMeta/BoeingXSDTestSet.testSet'; | ||
| // Path to the NIST testSet file relative to the suite root | ||
| const NIST_TESTSET = 'nistMeta/NISTXMLSchemaDatatypes.testSet'; | ||
| // Directory containing the Microsoft testSet files (all named *_w3c.xml) | ||
| const MS_META_DIR = 'msMeta'; | ||
| // Directory containing the SUN testSet files (13 .testSet files) | ||
| const SUN_META_DIR = 'sunMeta'; | ||
| class XMLSchemaTestSuite { | ||
| grandTotal = 0; | ||
| grandPassed = 0; | ||
| grandFailed = 0; | ||
| grandSkipped = 0; | ||
| setResults = []; | ||
| constructor() { | ||
| if (!existsSync(SUITE_FILE)) { | ||
| throw new Error('XML Schema Test Suite not found at ' + SUITE_FILE); | ||
| } | ||
| } | ||
| run() { | ||
| const suiteDir = dirname(resolve(SUITE_FILE)); | ||
| // Boeing: one dedicated testSet file | ||
| const boeingPath = resolve(suiteDir, BOEING_TESTSET); | ||
| if (existsSync(boeingPath)) { | ||
| const stats = this.runBoeingTestSet(boeingPath); | ||
| this.setResults.push(stats); | ||
| this.grandTotal += stats.total; | ||
| this.grandPassed += stats.passed; | ||
| this.grandFailed += stats.failed; | ||
| this.grandSkipped += stats.skipped; | ||
| } | ||
| else { | ||
| console.warn('Boeing test set not found: ' + boeingPath); | ||
| } | ||
| // NIST: one dedicated testSet file | ||
| const nistPath = resolve(suiteDir, NIST_TESTSET); | ||
| if (existsSync(nistPath)) { | ||
| const stats = this.runNistTestSet(nistPath); | ||
| this.setResults.push(stats); | ||
| this.grandTotal += stats.total; | ||
| this.grandPassed += stats.passed; | ||
| this.grandFailed += stats.failed; | ||
| this.grandSkipped += stats.skipped; | ||
| } | ||
| else { | ||
| console.warn('NIST test set not found: ' + nistPath); | ||
| } | ||
| // Microsoft: 17 testSet files in msMeta/, all named *_w3c.xml | ||
| const msMetaDir = resolve(suiteDir, MS_META_DIR); | ||
| if (existsSync(msMetaDir)) { | ||
| const msStats = { contributor: 'Microsoft', name: 'MS-XSD-2006', total: 0, passed: 0, failed: 0, skipped: 0 }; | ||
| const msFiles = readdirSync(msMetaDir) | ||
| .filter((f) => f.endsWith('_w3c.xml')) | ||
| .sort(); | ||
| for (const msFile of msFiles) { | ||
| const msPath = resolve(msMetaDir, msFile); | ||
| this.runMicrosoftTestSet(msPath, msStats); | ||
| } | ||
| this.setResults.push(msStats); | ||
| this.grandTotal += msStats.total; | ||
| this.grandPassed += msStats.passed; | ||
| this.grandFailed += msStats.failed; | ||
| this.grandSkipped += msStats.skipped; | ||
| } | ||
| else { | ||
| console.warn('Microsoft meta directory not found: ' + msMetaDir); | ||
| } | ||
| // SUN: 13 testSet files in sunMeta/ | ||
| const sunMetaDir = resolve(suiteDir, SUN_META_DIR); | ||
| if (existsSync(sunMetaDir)) { | ||
| const sunStats = { contributor: 'SUN', name: 'SUN-XSD-2006', total: 0, passed: 0, failed: 0, skipped: 0 }; | ||
| const sunFiles = readdirSync(sunMetaDir) | ||
| .filter((f) => f.endsWith('.testSet')) | ||
| .sort(); | ||
| for (const sunFile of sunFiles) { | ||
| const sunPath = resolve(sunMetaDir, sunFile); | ||
| this.runSunTestSet(sunPath, sunStats); | ||
| } | ||
| this.setResults.push(sunStats); | ||
| this.grandTotal += sunStats.total; | ||
| this.grandPassed += sunStats.passed; | ||
| this.grandFailed += sunStats.failed; | ||
| this.grandSkipped += sunStats.skipped; | ||
| } | ||
| else { | ||
| console.warn('SUN meta directory not found: ' + sunMetaDir); | ||
| } | ||
| this.printReport(); | ||
| } | ||
| // ------------------------------------------------------------------------- | ||
| // Microsoft harness | ||
| // | ||
| // Structure: msMeta/*_w3c.xml (17 files) | ||
| // msData/... (referenced as ../msData/ from testSet files) | ||
| // | ||
| // Rules: | ||
| // schemaTest – exactly one <schemaDocument> per group. Parsed normally; | ||
| // XSDSemanticValidator checks structural validity. | ||
| // | ||
| // instanceTest – each instance carries xsi:schemaLocation. SAXParser with | ||
| // setValidating(true) resolves the grammar automatically. | ||
| // Some groups have instanceTest with no schemaTest — those | ||
| // instances validate against schemas they declare themselves | ||
| // via xsi:schemaLocation. | ||
| // | ||
| // Stats are accumulated into a single SetStats passed by reference so that | ||
| // all 17 files contribute to one Microsoft total in the report. | ||
| // ------------------------------------------------------------------------- | ||
| runMicrosoftTestSet(testSetPath, stats) { | ||
| const testSetDir = dirname(testSetPath); | ||
| const doc = this.parseXML(testSetPath); | ||
| if (!doc) { | ||
| console.warn('Microsoft: could not parse ' + testSetPath); | ||
| return; | ||
| } | ||
| const root = doc.getRoot(); | ||
| if (!root) { | ||
| return; | ||
| } | ||
| for (const testGroupEl of root.getChildren()) { | ||
| if (this.localName(testGroupEl.getName()) !== 'testGroup') { | ||
| continue; | ||
| } | ||
| const groupName = testGroupEl.getAttribute('name')?.getValue() || ''; | ||
| for (const child of testGroupEl.getChildren()) { | ||
| const childLocalName = this.localName(child.getName()); | ||
| // ---- schemaTest ---- | ||
| if (childLocalName === 'schemaTest') { | ||
| const schemaDocEl = this.findChildByLocalName(child, 'schemaDocument'); | ||
| if (!schemaDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(schemaDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const schemaPath = resolve(testSetDir, href); | ||
| if (!existsSync(schemaPath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser(); | ||
| const handler = new DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.parseFile(schemaPath); | ||
| const schemaRoot = handler.getDocument()?.getRoot(); | ||
| if (schemaRoot) { | ||
| XSDSemanticValidator.validate(schemaRoot); | ||
| } | ||
| const builder = new SchemaBuilder(); | ||
| builder.buildGrammar(schemaPath); | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + schemaPath + ']'); | ||
| } | ||
| continue; | ||
| } | ||
| // ---- instanceTest ---- | ||
| // All MS instances carry xsi:schemaLocation — no grammar injection needed. | ||
| if (childLocalName !== 'instanceTest') { | ||
| continue; | ||
| } | ||
| const instanceDocEl = this.findChildByLocalName(child, 'instanceDocument'); | ||
| if (!instanceDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(instanceDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const instancePath = resolve(testSetDir, href); | ||
| if (!existsSync(instancePath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser(); | ||
| const handler = new DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.setValidating(true); | ||
| parser.parseFile(instancePath); | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + instancePath + ']'); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| // ------------------------------------------------------------------------- | ||
| // SUN harness | ||
| // | ||
| // Structure: sunMeta/*.testSet (13 files) | ||
| // sunData/combined/NNN/ — instance tests without xsi:schemaLocation | ||
| // sunData/TOPIC/... — instance tests with xsi:schemaLocation | ||
| // | ||
| // Rules (per AnnotatedTSSchema.xsd section 5.2): | ||
| // Validation must start with no stipulated declaration or definition. | ||
| // The processor must find the schema on its own (via xsi:schemaLocation, | ||
| // xsi:noNamespaceSchemaLocation, or namespace resolution). | ||
| // No grammar injection is permitted for any SUN instance test. | ||
| // | ||
| // schemaTest – one <schemaDocument> per group. Parsed normally; | ||
| // XSDSemanticValidator checks structural validity. | ||
| // | ||
| // instanceTest – setValidating(true); the parser resolves schemas | ||
| // autonomously. combined/ instances have no | ||
| // xsi:schemaLocation (processor starts with no schema). | ||
| // | ||
| // Stats are accumulated into a single SetStats passed by reference. | ||
| // ------------------------------------------------------------------------- | ||
| runSunTestSet(testSetPath, stats) { | ||
| const testSetDir = dirname(testSetPath); | ||
| const doc = this.parseXML(testSetPath); | ||
| if (!doc) { | ||
| console.warn('SUN: could not parse ' + testSetPath); | ||
| return; | ||
| } | ||
| const root = doc.getRoot(); | ||
| if (!root) { | ||
| return; | ||
| } | ||
| for (const testGroupEl of root.getChildren()) { | ||
| if (this.localName(testGroupEl.getName()) !== 'testGroup') { | ||
| continue; | ||
| } | ||
| const groupName = testGroupEl.getAttribute('name')?.getValue() || ''; | ||
| // Build the group's SchemaGrammar from the schemaTest first, so it | ||
| // can be injected into each instanceTest in the same group. | ||
| let groupSchemaGrammar; | ||
| const groupChildren = testGroupEl.getChildren(); | ||
| for (const child of groupChildren) { | ||
| const childLocalName = this.localName(child.getName()); | ||
| // ---- schemaTest ---- | ||
| if (childLocalName === 'schemaTest') { | ||
| const schemaDocEl = this.findChildByLocalName(child, 'schemaDocument'); | ||
| if (!schemaDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(schemaDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const schemaPath = resolve(testSetDir, href); | ||
| if (!existsSync(schemaPath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser(); | ||
| const handler = new DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.parseFile(schemaPath); | ||
| const schemaRoot = handler.getDocument()?.getRoot(); | ||
| if (schemaRoot) { | ||
| XSDSemanticValidator.validate(schemaRoot); | ||
| } | ||
| const builder = new SchemaBuilder(); | ||
| groupSchemaGrammar = builder.buildGrammar(schemaPath); | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| groupSchemaGrammar = undefined; | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + schemaPath + ']'); | ||
| } | ||
| continue; | ||
| } | ||
| // ---- instanceTest ---- | ||
| // Per the TS spec (AnnotatedTSSchema.xsd), the testGroup groups | ||
| // the schema with its instance documents. The schemaTest grammar | ||
| // is injected into the handler so xsi:type values defined in that | ||
| // schema are reachable during validation. | ||
| if (childLocalName !== 'instanceTest') { | ||
| continue; | ||
| } | ||
| const instanceDocEl = this.findChildByLocalName(child, 'instanceDocument'); | ||
| if (!instanceDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(instanceDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const instancePath = resolve(testSetDir, href); | ||
| if (!existsSync(instancePath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser(); | ||
| const handler = new DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| if (groupSchemaGrammar) { | ||
| handler.setGrammar(groupSchemaGrammar); | ||
| } | ||
| parser.setValidating(true); | ||
| parser.parseFile(instancePath); | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + instancePath + ']'); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| // ------------------------------------------------------------------------- | ||
| // NIST harness | ||
| // | ||
| // Structure: nistMeta/NISTXMLSchemaDatatypes.testSet | ||
| // nistData/atomic|list|union/TYPE/Schema+Instance/ | ||
| // | ||
| // Rules: | ||
| // schemaTest – exactly one <schemaDocument> per group. Parsed normally; | ||
| // XSDSemanticValidator checks structural validity. | ||
| // | ||
| // instanceTest – each instance carries xsi:schemaLocation pointing to the | ||
| // .xsd in the same Schema+Instance/ directory. SAXParser | ||
| // with setValidating(true) resolves it automatically. | ||
| // ------------------------------------------------------------------------- | ||
| runNistTestSet(testSetPath) { | ||
| const testSetDir = dirname(testSetPath); | ||
| const stats = { contributor: 'NIST', name: 'NIST2004-01-14', total: 0, passed: 0, failed: 0, skipped: 0 }; | ||
| const doc = this.parseXML(testSetPath); | ||
| if (!doc) { | ||
| console.warn('NIST: could not parse ' + testSetPath); | ||
| return stats; | ||
| } | ||
| const root = doc.getRoot(); | ||
| if (!root) { | ||
| return stats; | ||
| } | ||
| for (const testGroupEl of root.getChildren()) { | ||
| if (this.localName(testGroupEl.getName()) !== 'testGroup') { | ||
| continue; | ||
| } | ||
| const groupName = testGroupEl.getAttribute('name')?.getValue() || ''; | ||
| for (const child of testGroupEl.getChildren()) { | ||
| const childLocalName = this.localName(child.getName()); | ||
| // ---- schemaTest ---- | ||
| if (childLocalName === 'schemaTest') { | ||
| const schemaDocEl = this.findChildByLocalName(child, 'schemaDocument'); | ||
| if (!schemaDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(schemaDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const schemaPath = resolve(testSetDir, href); | ||
| if (!existsSync(schemaPath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser(); | ||
| const handler = new DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.parseFile(schemaPath); | ||
| const schemaRoot = handler.getDocument()?.getRoot(); | ||
| if (schemaRoot) { | ||
| XSDSemanticValidator.validate(schemaRoot); | ||
| } | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + schemaPath + ']'); | ||
| } | ||
| continue; | ||
| } | ||
| // ---- instanceTest ---- | ||
| // Instances carry xsi:schemaLocation — no grammar injection needed. | ||
| if (childLocalName !== 'instanceTest') { | ||
| continue; | ||
| } | ||
| const instanceDocEl = this.findChildByLocalName(child, 'instanceDocument'); | ||
| if (!instanceDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(instanceDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const instancePath = resolve(testSetDir, href); | ||
| if (!existsSync(instancePath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser(); | ||
| const handler = new DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.setValidating(true); | ||
| parser.parseFile(instancePath); | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + instancePath + ']'); | ||
| } | ||
| } | ||
| } | ||
| return stats; | ||
| } | ||
| // ------------------------------------------------------------------------- | ||
| // Boeing harness | ||
| // | ||
| // Structure: boeingMeta/BoeingXSDTestSet.testSet | ||
| // boeingData/ipoN/ (N = 1..6) | ||
| // | ||
| // Rules: | ||
| // schemaTest – one or more <schemaDocument> elements. Each is parsed | ||
| // independently; the XSD file's own xs:import/xs:include | ||
| // declarations are resolved automatically by the parser. | ||
| // XSDSemanticValidator checks the structural validity of | ||
| // each document. One failure fails the whole schemaTest. | ||
| // | ||
| // instanceTest – each instance carries xsi:schemaLocation with a relative | ||
| // path to the schema in the same directory. SAXParser with | ||
| // setValidating(true) resolves and loads it automatically. | ||
| // ------------------------------------------------------------------------- | ||
| runBoeingTestSet(testSetPath) { | ||
| const testSetDir = dirname(testSetPath); | ||
| const stats = { contributor: 'Boeing', name: 'BoeingXSDTestCases', total: 0, passed: 0, failed: 0, skipped: 0 }; | ||
| const doc = this.parseXML(testSetPath); | ||
| if (!doc) { | ||
| console.warn('Boeing: could not parse ' + testSetPath); | ||
| return stats; | ||
| } | ||
| const root = doc.getRoot(); | ||
| if (!root) { | ||
| return stats; | ||
| } | ||
| for (const testGroupEl of root.getChildren()) { | ||
| if (this.localName(testGroupEl.getName()) !== 'testGroup') { | ||
| continue; | ||
| } | ||
| const groupName = testGroupEl.getAttribute('name')?.getValue() || ''; | ||
| for (const child of testGroupEl.getChildren()) { | ||
| const childLocalName = this.localName(child.getName()); | ||
| // ---- schemaTest ---- | ||
| // Each listed schemaDocument is an independent XSD file. | ||
| // Each file carries its own xs:import/xs:include declarations | ||
| // that the parser resolves automatically. We simply parse every | ||
| // listed document and run XSDSemanticValidator on its root. | ||
| // One failure in any document fails the whole schemaTest. | ||
| if (childLocalName === 'schemaTest') { | ||
| const schemaDocs = this.findChildrenByLocalName(child, 'schemaDocument'); | ||
| if (schemaDocs.length === 0) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual = 'valid'; | ||
| outer: try { | ||
| for (const schemaDocEl of schemaDocs) { | ||
| const href = this.getXlinkHref(schemaDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const schemaPath = resolve(testSetDir, href); | ||
| if (!existsSync(schemaPath)) { | ||
| continue; | ||
| } | ||
| const parser = new SAXParser(); | ||
| const handler = new DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.parseFile(schemaPath); | ||
| const schemaRoot = handler.getDocument()?.getRoot(); | ||
| if (schemaRoot) { | ||
| XSDSemanticValidator.validate(schemaRoot); | ||
| } | ||
| } | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual); | ||
| } | ||
| continue; | ||
| } | ||
| // ---- instanceTest ---- | ||
| // Boeing instance files declare their grammar via | ||
| // xsi:schemaLocation with a relative path (e.g. "ipo.xsd"), | ||
| // resolved relative to the instance file's own directory. | ||
| // SAXParser + setValidating(true) handles this automatically. | ||
| if (childLocalName !== 'instanceTest') { | ||
| continue; | ||
| } | ||
| const instanceDocEl = this.findChildByLocalName(child, 'instanceDocument'); | ||
| if (!instanceDocEl) { | ||
| continue; | ||
| } | ||
| const href = this.getXlinkHref(instanceDocEl); | ||
| if (!href) { | ||
| continue; | ||
| } | ||
| const instancePath = resolve(testSetDir, href); | ||
| if (!existsSync(instancePath)) { | ||
| continue; | ||
| } | ||
| const expectedEl = this.findChildByLocalName(child, 'expected'); | ||
| const expected = expectedEl?.getAttribute('validity')?.getValue() || 'valid'; | ||
| const testName = child.getAttribute('name')?.getValue() || groupName; | ||
| let actual; | ||
| try { | ||
| const parser = new SAXParser(); | ||
| const handler = new DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.setValidating(true); | ||
| parser.parseFile(instancePath); | ||
| actual = 'valid'; | ||
| } | ||
| catch (_e) { | ||
| actual = 'invalid'; | ||
| } | ||
| stats.total++; | ||
| if (actual === expected) { | ||
| stats.passed++; | ||
| } | ||
| else if (!this.isAccepted(child)) { | ||
| stats.skipped++; | ||
| } | ||
| else { | ||
| stats.failed++; | ||
| console.log(' -- ' + testName + ': expected=' + expected + ' actual=' + actual + ' [' + instancePath + ']'); | ||
| } | ||
| } | ||
| } | ||
| return stats; | ||
| } | ||
| parseXML(filePath) { | ||
| try { | ||
| const parser = new SAXParser(); | ||
| const handler = new DOMBuilder(); | ||
| parser.setContentHandler(handler); | ||
| parser.parseFile(filePath); | ||
| return handler.getDocument(); | ||
| } | ||
| catch (e) { | ||
| return undefined; | ||
| } | ||
| } | ||
| localName(name) { | ||
| const idx = name.indexOf(':'); | ||
| return idx !== -1 ? name.substring(idx + 1) : name; | ||
| } | ||
| isAccepted(child) { | ||
| const currentEl = this.findChildByLocalName(child, 'current'); | ||
| if (!currentEl) { | ||
| return true; | ||
| } | ||
| const status = currentEl.getAttribute('status')?.getValue(); | ||
| return status === undefined || status === 'accepted'; | ||
| } | ||
| getXlinkHref(el) { | ||
| for (const attr of el.getAttributes()) { | ||
| const attrName = attr.getName(); | ||
| if (attrName === 'xlink:href' || attrName.endsWith(':href')) { | ||
| return attr.getValue(); | ||
| } | ||
| } | ||
| return undefined; | ||
| } | ||
| findChildByLocalName(el, localName) { | ||
| for (const child of el.getChildren()) { | ||
| if (this.localName(child.getName()) === localName) { | ||
| return child; | ||
| } | ||
| } | ||
| return undefined; | ||
| } | ||
| findChildrenByLocalName(el, localName) { | ||
| const result = []; | ||
| for (const child of el.getChildren()) { | ||
| if (this.localName(child.getName()) === localName) { | ||
| result.push(child); | ||
| } | ||
| } | ||
| return result; | ||
| } | ||
| printReport() { | ||
| console.log(''); | ||
| for (const stats of this.setResults) { | ||
| const effective = stats.total - stats.skipped; | ||
| const pct = effective > 0 ? ((stats.passed / effective) * 100).toFixed(1) : '0.0'; | ||
| console.log(stats.contributor + ' [' + stats.name + ']: passed=' + stats.passed + ', failed=' + stats.failed + ', skipped=' + stats.skipped + ', total=' + stats.total + ' (' + pct + '%)'); | ||
| } | ||
| const grandEffective = this.grandTotal - this.grandSkipped; | ||
| const totalPct = grandEffective > 0 ? ((this.grandPassed / grandEffective) * 100).toFixed(1) : '0.0'; | ||
| console.log(''); | ||
| console.log('TOTAL: ' + this.grandPassed + '/' + grandEffective + ' (' + totalPct + '%) - Skipped ' + this.grandSkipped + ' contested tests'); | ||
| console.log(''); | ||
| } | ||
| } | ||
| try { | ||
| new XMLSchemaTestSuite().run(); | ||
| } | ||
| catch (error) { | ||
| console.error('Error running XML Schema Test Suite:', error); | ||
| } | ||
| //# sourceMappingURL=XMLSchemaTestSuite.js.map |
| {"version":3,"file":"XMLSchemaTestSuite.js","sourceRoot":"","sources":["../../../ts/tests/XMLSchemaTestSuite.ts"],"names":[],"mappings":"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"} |
@@ -35,2 +35,3 @@ /******************************************************************************* | ||
| setGrammar(grammar: Grammar | undefined): void; | ||
| getCurrentText(): string; | ||
| } |
@@ -37,2 +37,3 @@ /******************************************************************************* | ||
| endElement(name: string): void; | ||
| getCurrentText(): string; | ||
| internalSubset(declaration: string): void; | ||
@@ -39,0 +40,0 @@ characters(ch: string): void; |
@@ -82,2 +82,8 @@ "use strict"; | ||
| } | ||
| getCurrentText() { | ||
| if (this.stack.length > 0) { | ||
| return this.stack[this.stack.length - 1].pureText(); | ||
| } | ||
| return ''; | ||
| } | ||
| internalSubset(declaration) { | ||
@@ -84,0 +90,0 @@ let docType = this.document?.getDocumentType(); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"DOMBuilder.js","sourceRoot":"","sources":["../../ts/DOMBuilder.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"DOMBuilder.js","sourceRoot":"","sources":["../../ts/DOMBuilder.ts"],"names":[],"mappings":"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"} |
@@ -182,5 +182,5 @@ "use strict"; | ||
| let normalized = value.replaceAll(/\s+/g, ' '); | ||
| normalized = normalized.replaceAll(/\s*\|\s*/g, '|'); | ||
| normalized = normalized.replaceAll(/\(\s*/g, '('); | ||
| normalized = normalized.replaceAll(/\s*\)/g, ')'); | ||
| normalized = normalized.replaceAll(' | ', '|').replaceAll(' |', '|').replaceAll('| ', '|'); | ||
| normalized = normalized.replaceAll('( ', '('); | ||
| normalized = normalized.replaceAll(' )', ')'); | ||
| return normalized.trim(); | ||
@@ -187,0 +187,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"AttListDecl.js","sourceRoot":"","sources":["../../../ts/dtd/AttListDecl.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"AttListDecl.js","sourceRoot":"","sources":["../../../ts/dtd/AttListDecl.ts"],"names":[],"mappings":"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"} |
@@ -42,3 +42,3 @@ /******************************************************************************* | ||
| getElementAttributesMap(element: string): Map<string, AttDecl> | undefined; | ||
| validateElement(element: string, children: string[]): ValidationResult; | ||
| validateElement(element: string, children: string[], text: string): ValidationResult; | ||
| validateAttributes(element: string, attributes: Map<string, string>): ValidationResult; | ||
@@ -53,5 +53,5 @@ private validateAttributeValue; | ||
| getGrammarType(): GrammarType; | ||
| getTargetNamespace(): string | undefined; | ||
| getTargetNamespaces(): Set<string>; | ||
| getNamespaceDeclarations(): Map<string, string>; | ||
| private mapDTDAttributeUse; | ||
| } |
@@ -165,3 +165,3 @@ "use strict"; | ||
| } | ||
| validateElement(element, children) { | ||
| validateElement(element, children, text) { | ||
| const colonIndex = element.indexOf(':'); | ||
@@ -184,2 +184,5 @@ if (colonIndex !== -1) { | ||
| } | ||
| if (text !== '') { | ||
| return Grammar_js_1.ValidationResult.error('Element "' + element + '" is declared as EMPTY but has text content'); | ||
| } | ||
| } | ||
@@ -368,4 +371,4 @@ if (model.getType() === ContentModel_js_1.ContentModelType.ANY) { | ||
| } | ||
| getTargetNamespace() { | ||
| return undefined; | ||
| getTargetNamespaces() { | ||
| return new Set(); | ||
| } | ||
@@ -372,0 +375,0 @@ getNamespaceDeclarations() { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"DTDGrammar.js","sourceRoot":"","sources":["../../../ts/dtd/DTDGrammar.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"DTDGrammar.js","sourceRoot":"","sources":["../../../ts/dtd/DTDGrammar.ts"],"names":[],"mappings":"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"} |
@@ -61,3 +61,3 @@ /******************************************************************************* | ||
| export interface Grammar { | ||
| validateElement(element: string, children: string[]): ValidationResult; | ||
| validateElement(element: string, children: string[], text: string): ValidationResult; | ||
| validateAttributes(element: string, attributes: Map<string, string>): ValidationResult; | ||
@@ -68,4 +68,4 @@ getElementAttributes(element: string): Map<string, AttributeInfo>; | ||
| getGrammarType(): GrammarType; | ||
| getTargetNamespace(): string | undefined; | ||
| getTargetNamespaces(): Set<string>; | ||
| getNamespaceDeclarations(): Map<string, string>; | ||
| } |
+14
-0
@@ -57,3 +57,17 @@ /******************************************************************************* | ||
| export type { Grammar } from "./grammar/Grammar.js"; | ||
| export { SchemaAll } from "./schema/SchemaAll.js"; | ||
| export { SchemaAttributeDecl } from "./schema/SchemaAttributeDecl.js"; | ||
| export { SchemaBuilder } from "./schema/SchemaBuilder.js"; | ||
| export { SchemaChoice } from "./schema/SchemaChoice.js"; | ||
| export { SchemaContentModel, SchemaContentModelType } from "./schema/SchemaContentModel.js"; | ||
| export { SchemaElementDecl } from "./schema/SchemaElementDecl.js"; | ||
| export { SchemaElementParticle } from "./schema/SchemaElementParticle.js"; | ||
| export { SchemaGrammar } from "./schema/SchemaGrammar.js"; | ||
| export { SchemaParticle } from "./schema/SchemaParticle.js"; | ||
| export { SchemaSequence } from "./schema/SchemaSequence.js"; | ||
| export { SchemaTypeValidator } from "./schema/SchemaTypeValidator.js"; | ||
| export type { SchemaFacets } from "./schema/SchemaTypeValidator.js"; | ||
| export { SchemaWildcardParticle } from "./schema/SchemaWildcardParticle.js"; | ||
| export { XSDSemanticValidator } from "./schema/XSDSemanticValidator.js"; | ||
| export type { JsonPrimitive, JsonValue, JsonElementObject, JsonProcessingInstruction, JsonElementContentNode, JsonElementContentTextNode, JsonElementContentCDataNode, JsonElementContentCommentNode, JsonElementContentProcessingInstructionNode, JsonElementContentElementNode, JsonConversionMode, XmlDocumentToJsonOptions, XmlDocumentToJsonSimpleOptions, XmlDocumentToJsonRoundTripOptions, XmlToJsonOptions, XmlToJsonSimpleOptions, XmlToJsonRoundTripOptions, XmlFileToJsonOptions, XmlFileToJsonSimpleOptions, XmlFileToJsonRoundTripOptions, XmlStreamToJsonOptions, XmlStreamToJsonSimpleOptions, XmlStreamToJsonRoundTripOptions, XmlJsonDeclaration, XmlJsonDoctype, JsonCommentNode, JsonProcessingInstructionNode, JsonMiscNode, JsonTextNode, JsonPrologNode, XmlJsonDocument } from "./json/JsonConversion.js"; | ||
| export { xmlStringToJsonObject, xmlFileToJsonObject, xmlStreamToJsonObject, xmlDocumentToJsonObject, xmlStringToJsonFile, xmlFileToJsonFile, xmlStreamToJsonFile, xmlDocumentToJsonFile, jsonObjectToXmlDocument, jsonStringToXmlDocument, jsonFileToXmlDocument, jsonStreamToXmlDocument, jsonObjectToXmlFile, jsonStringToXmlFile, jsonFileToXmlFile, jsonStreamToXmlFile } from "./json/JsonConversion.js"; |
+30
-2
@@ -14,4 +14,4 @@ "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.xmlDocumentToJsonObject = exports.xmlStreamToJsonObject = exports.xmlFileToJsonObject = exports.xmlStringToJsonObject = exports.ValidationWarning = exports.ValidationResult = exports.ValidationError = exports.ValidationContext = exports.GrammarType = exports.AttributeUse = exports.AttributeInfo = exports.ContentParticleType = exports.NotationDecl = exports.EntityDecl = exports.ElementDecl = exports.DTDSequence = exports.DTDSequenceModel = exports.DTDPCData = exports.DTDName = exports.DTDGrammar = exports.DTDElementNameParticle = exports.DTDContentModelTokenizer = exports.DTDContentModelParser = exports.DTDChoiceModel = exports.DTDChoice = exports.DTDParser = exports.ContentModelType = exports.ContentModel = exports.Cardinality = exports.AttListDecl = exports.AttDecl = exports.XMLWriter = exports.XMLUtils = exports.XMLElement = exports.XMLDocumentType = exports.XMLDocument = exports.XMLDeclaration = exports.XMLComment = exports.XMLCanonicalizer = exports.XMLAttribute = exports.TextNode = exports.SAXParser = exports.RelaxNGParser = exports.ProcessingInstruction = exports.Indenter = exports.FileReader = exports.DOMBuilder = exports.Constants = exports.Catalog = exports.CData = void 0; | ||
| exports.jsonStreamToXmlFile = exports.jsonFileToXmlFile = exports.jsonStringToXmlFile = exports.jsonObjectToXmlFile = exports.jsonStreamToXmlDocument = exports.jsonFileToXmlDocument = exports.jsonStringToXmlDocument = exports.jsonObjectToXmlDocument = exports.xmlDocumentToJsonFile = exports.xmlStreamToJsonFile = exports.xmlFileToJsonFile = exports.xmlStringToJsonFile = void 0; | ||
| exports.SchemaChoice = exports.SchemaBuilder = exports.SchemaAttributeDecl = exports.SchemaAll = exports.ValidationWarning = exports.ValidationResult = exports.ValidationError = exports.ValidationContext = exports.GrammarType = exports.AttributeUse = exports.AttributeInfo = exports.ContentParticleType = exports.NotationDecl = exports.EntityDecl = exports.ElementDecl = exports.DTDSequence = exports.DTDSequenceModel = exports.DTDPCData = exports.DTDName = exports.DTDGrammar = exports.DTDElementNameParticle = exports.DTDContentModelTokenizer = exports.DTDContentModelParser = exports.DTDChoiceModel = exports.DTDChoice = exports.DTDParser = exports.ContentModelType = exports.ContentModel = exports.Cardinality = exports.AttListDecl = exports.AttDecl = exports.XMLWriter = exports.XMLUtils = exports.XMLElement = exports.XMLDocumentType = exports.XMLDocument = exports.XMLDeclaration = exports.XMLComment = exports.XMLCanonicalizer = exports.XMLAttribute = exports.TextNode = exports.SAXParser = exports.RelaxNGParser = exports.ProcessingInstruction = exports.Indenter = exports.FileReader = exports.DOMBuilder = exports.Constants = exports.Catalog = exports.CData = void 0; | ||
| exports.jsonStreamToXmlFile = exports.jsonFileToXmlFile = exports.jsonStringToXmlFile = exports.jsonObjectToXmlFile = exports.jsonStreamToXmlDocument = exports.jsonFileToXmlDocument = exports.jsonStringToXmlDocument = exports.jsonObjectToXmlDocument = exports.xmlDocumentToJsonFile = exports.xmlStreamToJsonFile = exports.xmlFileToJsonFile = exports.xmlStringToJsonFile = exports.xmlDocumentToJsonObject = exports.xmlStreamToJsonObject = exports.xmlFileToJsonObject = exports.xmlStringToJsonObject = exports.XSDSemanticValidator = exports.SchemaWildcardParticle = exports.SchemaTypeValidator = exports.SchemaSequence = exports.SchemaParticle = exports.SchemaGrammar = exports.SchemaElementParticle = exports.SchemaElementDecl = exports.SchemaContentModelType = exports.SchemaContentModel = void 0; | ||
| // Core classes | ||
@@ -104,2 +104,30 @@ var CData_js_1 = require("./CData.js"); | ||
| Object.defineProperty(exports, "ValidationWarning", { enumerable: true, get: function () { return Grammar_js_1.ValidationWarning; } }); | ||
| // XML Schema classes | ||
| var SchemaAll_js_1 = require("./schema/SchemaAll.js"); | ||
| Object.defineProperty(exports, "SchemaAll", { enumerable: true, get: function () { return SchemaAll_js_1.SchemaAll; } }); | ||
| var SchemaAttributeDecl_js_1 = require("./schema/SchemaAttributeDecl.js"); | ||
| Object.defineProperty(exports, "SchemaAttributeDecl", { enumerable: true, get: function () { return SchemaAttributeDecl_js_1.SchemaAttributeDecl; } }); | ||
| var SchemaBuilder_js_1 = require("./schema/SchemaBuilder.js"); | ||
| Object.defineProperty(exports, "SchemaBuilder", { enumerable: true, get: function () { return SchemaBuilder_js_1.SchemaBuilder; } }); | ||
| var SchemaChoice_js_1 = require("./schema/SchemaChoice.js"); | ||
| Object.defineProperty(exports, "SchemaChoice", { enumerable: true, get: function () { return SchemaChoice_js_1.SchemaChoice; } }); | ||
| var SchemaContentModel_js_1 = require("./schema/SchemaContentModel.js"); | ||
| Object.defineProperty(exports, "SchemaContentModel", { enumerable: true, get: function () { return SchemaContentModel_js_1.SchemaContentModel; } }); | ||
| Object.defineProperty(exports, "SchemaContentModelType", { enumerable: true, get: function () { return SchemaContentModel_js_1.SchemaContentModelType; } }); | ||
| var SchemaElementDecl_js_1 = require("./schema/SchemaElementDecl.js"); | ||
| Object.defineProperty(exports, "SchemaElementDecl", { enumerable: true, get: function () { return SchemaElementDecl_js_1.SchemaElementDecl; } }); | ||
| var SchemaElementParticle_js_1 = require("./schema/SchemaElementParticle.js"); | ||
| Object.defineProperty(exports, "SchemaElementParticle", { enumerable: true, get: function () { return SchemaElementParticle_js_1.SchemaElementParticle; } }); | ||
| var SchemaGrammar_js_1 = require("./schema/SchemaGrammar.js"); | ||
| Object.defineProperty(exports, "SchemaGrammar", { enumerable: true, get: function () { return SchemaGrammar_js_1.SchemaGrammar; } }); | ||
| var SchemaParticle_js_1 = require("./schema/SchemaParticle.js"); | ||
| Object.defineProperty(exports, "SchemaParticle", { enumerable: true, get: function () { return SchemaParticle_js_1.SchemaParticle; } }); | ||
| var SchemaSequence_js_1 = require("./schema/SchemaSequence.js"); | ||
| Object.defineProperty(exports, "SchemaSequence", { enumerable: true, get: function () { return SchemaSequence_js_1.SchemaSequence; } }); | ||
| var SchemaTypeValidator_js_1 = require("./schema/SchemaTypeValidator.js"); | ||
| Object.defineProperty(exports, "SchemaTypeValidator", { enumerable: true, get: function () { return SchemaTypeValidator_js_1.SchemaTypeValidator; } }); | ||
| var SchemaWildcardParticle_js_1 = require("./schema/SchemaWildcardParticle.js"); | ||
| Object.defineProperty(exports, "SchemaWildcardParticle", { enumerable: true, get: function () { return SchemaWildcardParticle_js_1.SchemaWildcardParticle; } }); | ||
| var XSDSemanticValidator_js_1 = require("./schema/XSDSemanticValidator.js"); | ||
| Object.defineProperty(exports, "XSDSemanticValidator", { enumerable: true, get: function () { return XSDSemanticValidator_js_1.XSDSemanticValidator; } }); | ||
| var JsonConversion_js_1 = require("./json/JsonConversion.js"); | ||
@@ -106,0 +134,0 @@ Object.defineProperty(exports, "xmlStringToJsonObject", { enumerable: true, get: function () { return JsonConversion_js_1.xmlStringToJsonObject; } }); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;iFAUiF;;;;AAEjF,eAAe;AACf,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AACd,2CAAuC;AAA9B,qGAAA,OAAO,OAAA;AAChB,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA;AAC9B,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,6DAAyD;AAAhD,uHAAA,gBAAgB,OAAA;AACzB,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,yDAAqD;AAA5C,mHAAA,cAAc,OAAA;AACvB,mDAA+C;AAAtC,6GAAA,WAAW,OAAA;AACpB,2DAAuD;AAA9C,qHAAA,eAAe,OAAA;AACxB,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AAEnB,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AACjB,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,cAAc;AACd,+CAA2C;AAAlC,qGAAA,OAAO,OAAA;AAChB,uDAAmD;AAA1C,6GAAA,WAAW,OAAA;AACpB,yDAAoF;AAA3E,8GAAA,WAAW,OAAA;AAAE,+GAAA,YAAY,OAAA;AAAE,mHAAA,gBAAgB,OAAA;AACpD,mDAA+C;AAAtC,yGAAA,SAAS,OAAA;AAClB,mDAA+C;AAAtC,yGAAA,SAAS,OAAA;AAClB,6DAAyD;AAAhD,mHAAA,cAAc,OAAA;AAEvB,2EAAuE;AAA9D,iIAAA,qBAAqB,OAAA;AAC9B,iFAA6E;AAApE,uIAAA,wBAAwB,OAAA;AAEjC,6EAAyE;AAAhE,mIAAA,sBAAsB,OAAA;AAC/B,qDAAiD;AAAxC,2GAAA,UAAU,OAAA;AACnB,+CAA2C;AAAlC,qGAAA,OAAO,OAAA;AAChB,mDAA+C;AAAtC,yGAAA,SAAS,OAAA;AAClB,iEAA6D;AAApD,uHAAA,gBAAgB,OAAA;AACzB,uDAAmD;AAA1C,6GAAA,WAAW,OAAA;AACpB,uDAAmD;AAA1C,6GAAA,WAAW,OAAA;AACpB,qDAAiD;AAAxC,2GAAA,UAAU,OAAA;AACnB,yDAAqD;AAA5C,+GAAA,YAAY,OAAA;AACrB,+DAA+D;AAAtD,yHAAA,mBAAmB,OAAA;AAG5B,kBAAkB;AAClB,mDAAyJ;AAAhJ,2GAAA,aAAa,OAAA;AAAE,0GAAA,YAAY,OAAA;AAAE,yGAAA,WAAW,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AAAE,6GAAA,eAAe,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AAqC1H,8DAiBkC;AAhBjC,0HAAA,qBAAqB,OAAA;AACrB,wHAAA,mBAAmB,OAAA;AACnB,0HAAA,qBAAqB,OAAA;AACrB,4HAAA,uBAAuB,OAAA;AACvB,wHAAA,mBAAmB,OAAA;AACnB,sHAAA,iBAAiB,OAAA;AACjB,wHAAA,mBAAmB,OAAA;AACnB,0HAAA,qBAAqB,OAAA;AACrB,4HAAA,uBAAuB,OAAA;AACvB,4HAAA,uBAAuB,OAAA;AACvB,0HAAA,qBAAqB,OAAA;AACrB,4HAAA,uBAAuB,OAAA;AACvB,wHAAA,mBAAmB,OAAA;AACnB,wHAAA,mBAAmB,OAAA;AACnB,sHAAA,iBAAiB,OAAA;AACjB,wHAAA,mBAAmB,OAAA"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/index.ts"],"names":[],"mappings":"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"} |
@@ -26,2 +26,3 @@ /******************************************************************************* | ||
| getGrammar(): Grammar | undefined; | ||
| getCurrentText(): string; | ||
| getEvents(): Array<JsonNodeEvent>; | ||
@@ -28,0 +29,0 @@ startDocument(): void; |
@@ -34,2 +34,5 @@ "use strict"; | ||
| } | ||
| getCurrentText() { | ||
| return ''; | ||
| } | ||
| getEvents() { | ||
@@ -36,0 +39,0 @@ return this.events; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"JsonEventCollector.js","sourceRoot":"","sources":["../../../ts/json/JsonEventCollector.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"JsonEventCollector.js","sourceRoot":"","sources":["../../../ts/json/JsonEventCollector.ts"],"names":[],"mappings":"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"} |
@@ -29,2 +29,3 @@ /******************************************************************************* | ||
| getGrammar(): Grammar | undefined; | ||
| getCurrentText(): string; | ||
| startDocument(): void; | ||
@@ -31,0 +32,0 @@ endDocument(): void; |
@@ -42,2 +42,5 @@ "use strict"; | ||
| } | ||
| getCurrentText() { | ||
| return ''; | ||
| } | ||
| startDocument() { | ||
@@ -44,0 +47,0 @@ this.writeEvent({ type: "startDocument" }); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"JsonEventStreamWriter.js","sourceRoot":"","sources":["../../../ts/json/JsonEventStreamWriter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;iFAUiF;;;AASjF,MAAa,qBAAqB;IAEb,MAAM,CAAW;IAC1B,YAAY,CAAU;IACtB,UAAU,CAAU;IACpB,MAAM,CAAU;IAChB,OAAO,CAAsB;IAC7B,OAAO,CAAsB;IAErC,YAAY,MAAgB;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,UAAU;QACN,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,UAAU,CAAC,OAAgB;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,OAA4B;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,aAAa;QACT,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,WAAW;QACP,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,QAAgB,EAAE,UAA8B;QAC5E,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,UAAU;SACzB,CAAC,CAAC;IACP,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,IAAyB;QAChD,MAAM,UAAU,GAAmC,IAAI,KAAK,EAA2B,CAAC;QACxF,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACvD,MAAM,SAAS,GAAiB,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,UAAU,GAA4B;gBACxC,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE;gBACzB,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;aAC9B,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,UAAU;SACzB,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,IAAY;QACnB,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CAAC,WAAmB;QAC9B,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,WAAW;SAC3B,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,EAAU;QACjB,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB,CAAC,EAAU;QAC1B,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,EAAU;QACd,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB,CAAC,MAAc,EAAE,IAAY;QAC9C,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;IAED,UAAU;QACN,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAgB;QACrD,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC;IACP,CAAC;IAED,MAAM;QACF,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,aAAa,CAAC,IAAY;QACtB,IAAI,CAAC,UAAU,CAAC;YACZ,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;IAEO,UAAU,CAAC,KAAoB;QACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,OAAO,GAAW,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAEO,UAAU;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAEO,kBAAkB;QACtB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;CAEJ;AA3KD,sDA2KC"} | ||
| {"version":3,"file":"JsonEventStreamWriter.js","sourceRoot":"","sources":["../../../ts/json/JsonEventStreamWriter.ts"],"names":[],"mappings":"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"} |
@@ -171,4 +171,4 @@ "use strict"; | ||
| this.offset += 4; | ||
| const codePoint = parseInt(hexDigits, 16); | ||
| return String.fromCharCode(codePoint); | ||
| const codePoint = Number.parseInt(hexDigits, 16); | ||
| return String.fromCodePoint(codePoint); | ||
| } | ||
@@ -175,0 +175,0 @@ readNumber() { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"JsonTokenizer.js","sourceRoot":"","sources":["../../../ts/json/JsonTokenizer.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"JsonTokenizer.js","sourceRoot":"","sources":["../../../ts/json/JsonTokenizer.ts"],"names":[],"mappings":"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"} |
@@ -34,2 +34,3 @@ /******************************************************************************* | ||
| getGrammar(): Grammar | undefined; | ||
| getCurrentText(): string; | ||
| startDocument(): void; | ||
@@ -36,0 +37,0 @@ endDocument(): void; |
@@ -57,2 +57,5 @@ "use strict"; | ||
| } | ||
| getCurrentText() { | ||
| return ''; | ||
| } | ||
| startDocument() { | ||
@@ -59,0 +62,0 @@ return; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"XmlEventStreamWriter.js","sourceRoot":"","sources":["../../../ts/json/XmlEventStreamWriter.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"XmlEventStreamWriter.js","sourceRoot":"","sources":["../../../ts/json/XmlEventStreamWriter.ts"],"names":[],"mappings":"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"} |
@@ -95,2 +95,3 @@ /******************************************************************************* | ||
| protected handleNamespaceDeclarations(attributes: Map<string, string>, namespaceContext: Map<string, string>, previousContext?: Map<string, string>): void; | ||
| private propagateNamespaceToGrammar; | ||
| private handleSchemaLocationAttributes; | ||
@@ -97,0 +98,0 @@ protected tryLoadSchemaForNamespace(namespaceUri: string): void; |
@@ -48,3 +48,4 @@ /******************************************************************************* | ||
| getText(): string; | ||
| pureText(): string; | ||
| getPI(target: string): ProcessingInstruction | undefined; | ||
| } |
@@ -189,2 +189,11 @@ "use strict"; | ||
| } | ||
| pureText() { | ||
| let result = ''; | ||
| this.content.forEach((node) => { | ||
| if (node instanceof TextNode_js_1.TextNode) { | ||
| result += node.getValue(); | ||
| } | ||
| }); | ||
| return result; | ||
| } | ||
| getPI(target) { | ||
@@ -191,0 +200,0 @@ let result = undefined; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"XMLElement.js","sourceRoot":"","sources":["../../ts/XMLElement.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"XMLElement.js","sourceRoot":"","sources":["../../ts/XMLElement.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;iFAUiF;;;AAKjF,yEAAmE;AACnE,+CAAyC;AAEzC,iDAA2C;AAE3C,MAAa,UAAU;IAEX,IAAI,CAAS;IACb,UAAU,CAA4B;IACtC,OAAO,CAAiB;IAEhC,YAAY,IAAY;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,EAAW,CAAC;IACxC,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAChC,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,YAAY,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,YAAY,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,YAAY,CAAC,SAAuB;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,eAAe,CAAC,IAAY;QACxB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,aAAa,CAAC,KAA0B;QACpC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC,SAAuB,EAAE,EAAE;YACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa;QACT,IAAI,MAAM,GAAwB,IAAI,KAAK,EAAE,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,sBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,WAAW,CAAC,IAAc;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,wBAAS,CAAC,SAAS,EAAE,CAAC;YACzG,IAAI,QAAQ,GAAa,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAa,CAAC;YAC3E,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzD,OAAO;QACX,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,IAAgB;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,IAAgB;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,wBAAwB,CAAC,IAA2B;QAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,IAAW;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,OAAuB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,WAAW;QACP,OAAO,wBAAS,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,OAAO;QACH,IAAI,MAAM,GAAW,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAmB,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC;QACd,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClC,CAAC;IAED,QAAQ;QACJ,IAAI,MAAM,GAAW,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAmB,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAa,EAAE,EAAE;gBACnC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAC3C,CAAC;QACD,OAAO,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,IAAa;QAChB,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC1H,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,cAAc,GAAY,IAAI,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAiB,EAAE,GAAW,EAAE,EAAE;gBACvD,IAAI,KAAK,GAA6B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAC7D,cAAc,GAAG,KAAK,CAAC;gBAC3B,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClB,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3C,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,WAAW;QACP,IAAI,MAAM,GAAsB,IAAI,KAAK,EAAc,CAAC;QACxD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAa,EAAE,EAAE;YACnC,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,QAAQ,CAAC,SAAiB;QACtB,IAAI,MAAM,GAA2B,SAAS,CAAC;QAC/C,IAAI,MAAM,GAAW,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACzC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,IAAI,GAAY,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;gBAC7B,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;oBAC/B,MAAM,GAAG,IAAI,CAAC;oBACd,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,WAAW,CAAC,KAAiB;QACzB,IAAI,MAAM,GAAW,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACzC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,IAAI,GAAY,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;gBAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC1B,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO;QACH,IAAI,MAAM,GAAW,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAa,EAAE,EAAE;YACnC,IAAI,IAAI,YAAY,sBAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;gBAC7B,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,QAAQ;QACJ,IAAI,MAAM,GAAW,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAa,EAAE,EAAE;YACnC,IAAI,IAAI,YAAY,sBAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,MAAc;QAChB,IAAI,MAAM,GAAsC,SAAS,CAAC;QAC1D,IAAI,MAAM,GAAW,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACzC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,IAAI,GAAY,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,IAAI,YAAY,gDAAqB,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;oBAC9B,MAAM,GAAG,IAAI,CAAC;oBACd,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AA/ND,gCA+NC"} |
@@ -31,2 +31,3 @@ /******************************************************************************* | ||
| private static instance; | ||
| private static readonly XML_NS; | ||
| private static readonly IGNORED_NAMESPACES; | ||
@@ -38,12 +39,16 @@ catalog: Catalog | undefined; | ||
| complexTypeDefinitions: Map<string, XMLElement>; | ||
| redefineOriginals: Map<string, XMLElement>; | ||
| attributeGroupDefinitions: Map<string, XMLElement>; | ||
| attributeDefinitions: Map<string, AttributeDefinitionInfo>; | ||
| elementDefinitions: Map<string, ElementInfo>; | ||
| simpleTypeDefinitions: Map<string, XMLElement>; | ||
| collectedDefaults: Map<string, Map<string, AttributeDefault>>; | ||
| complexTypeDefaultCache: Map<string, Map<string, AttributeDefault>>; | ||
| attributeGroupDefaultCache: Map<string, Map<string, AttributeDefault>>; | ||
| private constructor(); | ||
| parsedSchemaRoots: Array<XMLElement>; | ||
| protected constructor(catalog?: Catalog); | ||
| static getInstance(catalog?: Catalog): XMLSchemaParser; | ||
| collectDefaultAttributes(schemaPath: string): Map<string, Map<string, AttributeDefault>>; | ||
| protected resetWorkingState(): void; | ||
| private injectXmlNamespaceAttributes; | ||
| protected cloneDefaults(source: Map<string, Map<string, AttributeDefault>>): Map<string, Map<string, AttributeDefault>>; | ||
@@ -59,7 +64,17 @@ protected cloneAttributeDefaultMap(source: Map<string, AttributeDefault>): Map<string, AttributeDefault>; | ||
| protected lookupComplexType(typeName: string): XMLElement | undefined; | ||
| protected lookupOriginalComplexType(typeName: string): XMLElement | undefined; | ||
| protected lookupAttributeGroup(groupName: string): XMLElement | undefined; | ||
| protected lookupAttributeGroupWithNamespace(groupName: string): { | ||
| element: XMLElement; | ||
| namespace: string | undefined; | ||
| } | undefined; | ||
| protected lookupComplexTypeWithNamespace(typeName: string): { | ||
| element: XMLElement; | ||
| namespace: string | undefined; | ||
| } | undefined; | ||
| protected lookupAttribute(name: string, namespace?: string): AttributeDefinitionInfo | undefined; | ||
| protected mergeMaps(target: Map<string, AttributeDefault>, source: Map<string, AttributeDefault>): void; | ||
| protected walkSchema(schemaPath: string): void; | ||
| protected walkSchema(schemaPath: string, includingTargetNamespace?: string | null): void; | ||
| protected processSchemaReferences(schemaElement: XMLElement, baseDir: string): void; | ||
| protected applyRedefinitions(redefineElement: XMLElement, targetNamespace?: string): void; | ||
| static shouldIgnoreNamespace(namespaceUri: string): boolean; | ||
@@ -66,0 +81,0 @@ protected registerSchemaComponents(schemaElement: XMLElement, targetNamespace?: string): void; |
+163
-42
@@ -21,4 +21,8 @@ "use strict"; | ||
| const SAXParser_js_1 = require("./SAXParser.js"); | ||
| const XMLAttribute_js_1 = require("./XMLAttribute.js"); | ||
| const XMLElement_js_1 = require("./XMLElement.js"); | ||
| const XSDSemanticValidator_js_1 = require("./schema/XSDSemanticValidator.js"); | ||
| class XMLSchemaParser { | ||
| static instance; | ||
| static XML_NS = 'http://www.w3.org/XML/1998/namespace'; | ||
| static IGNORED_NAMESPACES = new Set([ | ||
@@ -32,8 +36,11 @@ Constants_js_1.Constants.XML_SCHEMA_INSTANCE_NS_URI | ||
| complexTypeDefinitions; | ||
| redefineOriginals; | ||
| attributeGroupDefinitions; | ||
| attributeDefinitions; | ||
| elementDefinitions; | ||
| simpleTypeDefinitions; | ||
| collectedDefaults; | ||
| complexTypeDefaultCache; | ||
| attributeGroupDefaultCache; | ||
| parsedSchemaRoots; | ||
| constructor(catalog) { | ||
@@ -45,8 +52,11 @@ this.catalog = catalog; | ||
| this.complexTypeDefinitions = new Map(); | ||
| this.redefineOriginals = new Map(); | ||
| this.attributeGroupDefinitions = new Map(); | ||
| this.attributeDefinitions = new Map(); | ||
| this.elementDefinitions = new Map(); | ||
| this.simpleTypeDefinitions = new Map(); | ||
| this.collectedDefaults = new Map(); | ||
| this.complexTypeDefaultCache = new Map(); | ||
| this.attributeGroupDefaultCache = new Map(); | ||
| this.parsedSchemaRoots = []; | ||
| } | ||
@@ -96,9 +106,30 @@ static getInstance(catalog) { | ||
| this.complexTypeDefinitions = new Map(); | ||
| this.redefineOriginals = new Map(); | ||
| this.attributeGroupDefinitions = new Map(); | ||
| this.attributeDefinitions = new Map(); | ||
| this.elementDefinitions = new Map(); | ||
| this.simpleTypeDefinitions = new Map(); | ||
| this.collectedDefaults = new Map(); | ||
| this.complexTypeDefaultCache = new Map(); | ||
| this.attributeGroupDefaultCache = new Map(); | ||
| this.parsedSchemaRoots = []; | ||
| this.injectXmlNamespaceAttributes(); | ||
| } | ||
| injectXmlNamespaceAttributes() { | ||
| const xmlAttrs = [ | ||
| ['lang', 'xs:language'], | ||
| ['space', 'xs:NCName'], | ||
| ['base', 'xs:anyURI'], | ||
| ['id', 'xs:ID'] | ||
| ]; | ||
| for (const [localName, type] of xmlAttrs) { | ||
| const el = new XMLElement_js_1.XMLElement('xs:attribute'); | ||
| el.setAttribute(new XMLAttribute_js_1.XMLAttribute('name', localName)); | ||
| el.setAttribute(new XMLAttribute_js_1.XMLAttribute('type', type)); | ||
| const info = { element: el, namespace: XMLSchemaParser.XML_NS }; | ||
| const key = XMLSchemaParser.XML_NS + '|' + localName; | ||
| this.attributeDefinitions.set(key, info); | ||
| this.attributeDefinitions.set('xml:' + localName, info); | ||
| } | ||
| } | ||
| cloneDefaults(source) { | ||
@@ -347,2 +378,6 @@ const clone = new Map(); | ||
| } | ||
| lookupOriginalComplexType(typeName) { | ||
| const localName = this.getLocalName(typeName); | ||
| return this.redefineOriginals.get(typeName) ?? this.redefineOriginals.get(localName); | ||
| } | ||
| lookupAttributeGroup(groupName) { | ||
@@ -368,2 +403,44 @@ const direct = this.attributeGroupDefinitions.get(groupName); | ||
| } | ||
| lookupAttributeGroupWithNamespace(groupName) { | ||
| const localName = this.getLocalName(groupName); | ||
| const entries = Array.from(this.attributeGroupDefinitions.entries()); | ||
| for (const entry of entries) { | ||
| const key = entry[0]; | ||
| const pipeIdx = key.lastIndexOf('|'); | ||
| if (pipeIdx !== -1 && key.substring(pipeIdx + 1) === localName) { | ||
| const ns = key.substring(0, pipeIdx); | ||
| return { element: entry[1], namespace: ns.length > 0 ? ns : undefined }; | ||
| } | ||
| } | ||
| const direct = this.attributeGroupDefinitions.get(groupName); | ||
| if (direct) { | ||
| return { element: direct, namespace: undefined }; | ||
| } | ||
| const byLocal = this.attributeGroupDefinitions.get(localName); | ||
| if (byLocal) { | ||
| return { element: byLocal, namespace: undefined }; | ||
| } | ||
| return undefined; | ||
| } | ||
| lookupComplexTypeWithNamespace(typeName) { | ||
| const localName = this.getLocalName(typeName); | ||
| const entries = Array.from(this.complexTypeDefinitions.entries()); | ||
| for (const entry of entries) { | ||
| const key = entry[0]; | ||
| const pipeIdx = key.lastIndexOf('|'); | ||
| if (pipeIdx !== -1 && key.substring(pipeIdx + 1) === localName) { | ||
| const ns = key.substring(0, pipeIdx); | ||
| return { element: entry[1], namespace: ns.length > 0 ? ns : undefined }; | ||
| } | ||
| } | ||
| const direct = this.complexTypeDefinitions.get(typeName); | ||
| if (direct) { | ||
| return { element: direct, namespace: undefined }; | ||
| } | ||
| const byLocal = this.complexTypeDefinitions.get(localName); | ||
| if (byLocal) { | ||
| return { element: byLocal, namespace: undefined }; | ||
| } | ||
| return undefined; | ||
| } | ||
| lookupAttribute(name, namespace) { | ||
@@ -399,3 +476,3 @@ const direct = this.attributeDefinitions.get(name); | ||
| } | ||
| walkSchema(schemaPath) { | ||
| walkSchema(schemaPath, includingTargetNamespace) { | ||
| const normalizedPath = this.normalizePath(schemaPath); | ||
@@ -427,2 +504,6 @@ if (this.visitedSchemas.has(normalizedPath)) { | ||
| const targetNamespace = targetNamespaceAttribute ? targetNamespaceAttribute.getValue() : undefined; | ||
| if (includingTargetNamespace !== undefined) { | ||
| XSDSemanticValidator_js_1.XSDSemanticValidator.checkIncludedNamespace(root, includingTargetNamespace !== null ? includingTargetNamespace : undefined); | ||
| } | ||
| this.parsedSchemaRoots.push(root); | ||
| this.registerSchemaComponents(root, targetNamespace); | ||
@@ -448,6 +529,45 @@ this.processSchemaReferences(root, (0, node_path_1.dirname)(normalizedPath)); | ||
| if (resolved) { | ||
| this.walkSchema(resolved); | ||
| if (localName === 'include') { | ||
| const includingNsAttr = schemaElement.getAttribute('targetNamespace'); | ||
| this.walkSchema(resolved, includingNsAttr !== undefined ? includingNsAttr.getValue() : null); | ||
| } | ||
| else { | ||
| this.walkSchema(resolved); | ||
| } | ||
| } | ||
| // For xs:redefine, after loading the base schema apply the redefined components (force-overwrite). | ||
| if (localName === 'redefine') { | ||
| const targetNsAttr = schemaElement.getAttribute('targetNamespace'); | ||
| const targetNamespace = targetNsAttr ? targetNsAttr.getValue() : undefined; | ||
| this.applyRedefinitions(child, targetNamespace); | ||
| } | ||
| } | ||
| } | ||
| applyRedefinitions(redefineElement, targetNamespace) { | ||
| for (const child of redefineElement.getChildren()) { | ||
| const localName = this.getLocalName(child.getName()); | ||
| if (localName === 'complexType') { | ||
| const nameAttr = child.getAttribute('name'); | ||
| if (!nameAttr) { | ||
| continue; | ||
| } | ||
| const typeName = nameAttr.getValue(); | ||
| const nsKey = this.buildTypeKey(typeName, targetNamespace); | ||
| const localKey = this.getLocalName(typeName); | ||
| // Save the original before overwriting so self-extension can resolve it. | ||
| const original = this.complexTypeDefinitions.get(nsKey) | ||
| ?? this.complexTypeDefinitions.get(typeName) | ||
| ?? this.complexTypeDefinitions.get(localKey); | ||
| if (original) { | ||
| this.redefineOriginals.set(typeName, original); | ||
| this.redefineOriginals.set(nsKey, original); | ||
| this.redefineOriginals.set(localKey, original); | ||
| } | ||
| // Force-overwrite with the redefined version. | ||
| this.complexTypeDefinitions.set(nsKey, child); | ||
| this.complexTypeDefinitions.set(typeName, child); | ||
| this.complexTypeDefinitions.set(localKey, child); | ||
| } | ||
| } | ||
| } | ||
| static shouldIgnoreNamespace(namespaceUri) { | ||
@@ -537,46 +657,34 @@ return XMLSchemaParser.IGNORED_NAMESPACES.has(namespaceUri); | ||
| } | ||
| continue; | ||
| } | ||
| } | ||
| } | ||
| resolveReference(location, baseDir, namespaceValue) { | ||
| if (location) { | ||
| if (location.startsWith("file://")) { | ||
| const normalizedFileUrl = (0, node_url_1.fileURLToPath)(location); | ||
| if ((0, node_fs_1.existsSync)(normalizedFileUrl)) { | ||
| return normalizedFileUrl; | ||
| if (localName === "simpleType") { | ||
| const nameAttribute = child.getAttribute("name"); | ||
| if (!nameAttribute) { | ||
| continue; | ||
| } | ||
| } | ||
| else if ((0, node_path_1.isAbsolute)(location)) { | ||
| if ((0, node_fs_1.existsSync)(location)) { | ||
| return location; | ||
| const typeName = nameAttribute.getValue(); | ||
| if (!this.simpleTypeDefinitions.has(typeName)) { | ||
| this.simpleTypeDefinitions.set(typeName, child); | ||
| } | ||
| } | ||
| else if (!location.startsWith("http://") && !location.startsWith("https://")) { | ||
| const resolvedPath = (0, node_path_1.resolve)(baseDir, location); | ||
| if ((0, node_fs_1.existsSync)(resolvedPath)) { | ||
| return resolvedPath; | ||
| } | ||
| } | ||
| if (this.catalog) { | ||
| const catalogCandidates = [ | ||
| this.catalog.matchURI(location), | ||
| this.catalog.matchSystem(location) | ||
| ]; | ||
| for (const candidate of catalogCandidates) { | ||
| if (!candidate) { | ||
| continue; | ||
| if (targetNamespace) { | ||
| const nsKey = targetNamespace + '|' + typeName; | ||
| if (!this.simpleTypeDefinitions.has(nsKey)) { | ||
| this.simpleTypeDefinitions.set(nsKey, child); | ||
| } | ||
| const normalizedCandidate = candidate.startsWith("file://") ? (0, node_url_1.fileURLToPath)(candidate) : candidate; | ||
| if ((0, node_fs_1.existsSync)(normalizedCandidate)) { | ||
| return normalizedCandidate; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| if (namespaceValue && this.catalog) { | ||
| const catalogCandidates = [ | ||
| this.catalog.matchURI(namespaceValue), | ||
| this.catalog.matchSystem(namespaceValue) | ||
| ]; | ||
| for (const candidate of catalogCandidates) { | ||
| } | ||
| resolveReference(location, baseDir, namespaceValue) { | ||
| if (this.catalog) { | ||
| const candidates = []; | ||
| if (location) { | ||
| candidates.push(this.catalog.matchURI(location)); | ||
| candidates.push(this.catalog.matchSystem(location)); | ||
| } | ||
| if (namespaceValue) { | ||
| candidates.push(this.catalog.matchURI(namespaceValue)); | ||
| candidates.push(this.catalog.matchSystem(namespaceValue)); | ||
| } | ||
| for (const candidate of candidates) { | ||
| if (!candidate) { | ||
@@ -597,6 +705,19 @@ continue; | ||
| } | ||
| const resolvedFallback = (0, node_path_1.resolve)(baseDir, location); | ||
| if ((0, node_fs_1.existsSync)(resolvedFallback)) { | ||
| return resolvedFallback; | ||
| if (location.startsWith("file://")) { | ||
| const normalizedFileUrl = (0, node_url_1.fileURLToPath)(location); | ||
| if ((0, node_fs_1.existsSync)(normalizedFileUrl)) { | ||
| return normalizedFileUrl; | ||
| } | ||
| return undefined; | ||
| } | ||
| if ((0, node_path_1.isAbsolute)(location)) { | ||
| if ((0, node_fs_1.existsSync)(location)) { | ||
| return location; | ||
| } | ||
| return undefined; | ||
| } | ||
| const resolvedPath = (0, node_path_1.resolve)(baseDir, location); | ||
| if ((0, node_fs_1.existsSync)(resolvedPath)) { | ||
| return resolvedPath; | ||
| } | ||
| return undefined; | ||
@@ -603,0 +724,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"XMLSchemaParser.js","sourceRoot":"","sources":["../../ts/XMLSchemaParser.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"XMLSchemaParser.js","sourceRoot":"","sources":["../../ts/XMLSchemaParser.ts"],"names":[],"mappings":"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"} |
@@ -35,2 +35,3 @@ /******************************************************************************* | ||
| setGrammar(grammar: Grammar | undefined): void; | ||
| getCurrentText(): string; | ||
| } |
@@ -37,2 +37,3 @@ /******************************************************************************* | ||
| endElement(name: string): void; | ||
| getCurrentText(): string; | ||
| internalSubset(declaration: string): void; | ||
@@ -39,0 +40,0 @@ characters(ch: string): void; |
@@ -79,2 +79,8 @@ /******************************************************************************* | ||
| } | ||
| getCurrentText() { | ||
| if (this.stack.length > 0) { | ||
| return this.stack[this.stack.length - 1].pureText(); | ||
| } | ||
| return ''; | ||
| } | ||
| internalSubset(declaration) { | ||
@@ -81,0 +87,0 @@ let docType = this.document?.getDocumentType(); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"DOMBuilder.js","sourceRoot":"","sources":["../../ts/DOMBuilder.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"DOMBuilder.js","sourceRoot":"","sources":["../../ts/DOMBuilder.ts"],"names":[],"mappings":"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"} |
@@ -179,5 +179,5 @@ /******************************************************************************* | ||
| let normalized = value.replaceAll(/\s+/g, ' '); | ||
| normalized = normalized.replaceAll(/\s*\|\s*/g, '|'); | ||
| normalized = normalized.replaceAll(/\(\s*/g, '('); | ||
| normalized = normalized.replaceAll(/\s*\)/g, ')'); | ||
| normalized = normalized.replaceAll(' | ', '|').replaceAll(' |', '|').replaceAll('| ', '|'); | ||
| normalized = normalized.replaceAll('( ', '('); | ||
| normalized = normalized.replaceAll(' )', ')'); | ||
| return normalized.trim(); | ||
@@ -184,0 +184,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"AttListDecl.js","sourceRoot":"","sources":["../../../ts/dtd/AttListDecl.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"AttListDecl.js","sourceRoot":"","sources":["../../../ts/dtd/AttListDecl.ts"],"names":[],"mappings":"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"} |
@@ -42,3 +42,3 @@ /******************************************************************************* | ||
| getElementAttributesMap(element: string): Map<string, AttDecl> | undefined; | ||
| validateElement(element: string, children: string[]): ValidationResult; | ||
| validateElement(element: string, children: string[], text: string): ValidationResult; | ||
| validateAttributes(element: string, attributes: Map<string, string>): ValidationResult; | ||
@@ -53,5 +53,5 @@ private validateAttributeValue; | ||
| getGrammarType(): GrammarType; | ||
| getTargetNamespace(): string | undefined; | ||
| getTargetNamespaces(): Set<string>; | ||
| getNamespaceDeclarations(): Map<string, string>; | ||
| private mapDTDAttributeUse; | ||
| } |
@@ -162,3 +162,3 @@ /******************************************************************************* | ||
| } | ||
| validateElement(element, children) { | ||
| validateElement(element, children, text) { | ||
| const colonIndex = element.indexOf(':'); | ||
@@ -181,2 +181,5 @@ if (colonIndex !== -1) { | ||
| } | ||
| if (text !== '') { | ||
| return ValidationResult.error('Element "' + element + '" is declared as EMPTY but has text content'); | ||
| } | ||
| } | ||
@@ -365,4 +368,4 @@ if (model.getType() === ContentModelType.ANY) { | ||
| } | ||
| getTargetNamespace() { | ||
| return undefined; | ||
| getTargetNamespaces() { | ||
| return new Set(); | ||
| } | ||
@@ -369,0 +372,0 @@ getNamespaceDeclarations() { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"DTDGrammar.js","sourceRoot":"","sources":["../../../ts/dtd/DTDGrammar.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"DTDGrammar.js","sourceRoot":"","sources":["../../../ts/dtd/DTDGrammar.ts"],"names":[],"mappings":"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"} |
@@ -61,3 +61,3 @@ /******************************************************************************* | ||
| export interface Grammar { | ||
| validateElement(element: string, children: string[]): ValidationResult; | ||
| validateElement(element: string, children: string[], text: string): ValidationResult; | ||
| validateAttributes(element: string, attributes: Map<string, string>): ValidationResult; | ||
@@ -68,4 +68,4 @@ getElementAttributes(element: string): Map<string, AttributeInfo>; | ||
| getGrammarType(): GrammarType; | ||
| getTargetNamespace(): string | undefined; | ||
| getTargetNamespaces(): Set<string>; | ||
| getNamespaceDeclarations(): Map<string, string>; | ||
| } |
+14
-0
@@ -57,3 +57,17 @@ /******************************************************************************* | ||
| export type { Grammar } from "./grammar/Grammar.js"; | ||
| export { SchemaAll } from "./schema/SchemaAll.js"; | ||
| export { SchemaAttributeDecl } from "./schema/SchemaAttributeDecl.js"; | ||
| export { SchemaBuilder } from "./schema/SchemaBuilder.js"; | ||
| export { SchemaChoice } from "./schema/SchemaChoice.js"; | ||
| export { SchemaContentModel, SchemaContentModelType } from "./schema/SchemaContentModel.js"; | ||
| export { SchemaElementDecl } from "./schema/SchemaElementDecl.js"; | ||
| export { SchemaElementParticle } from "./schema/SchemaElementParticle.js"; | ||
| export { SchemaGrammar } from "./schema/SchemaGrammar.js"; | ||
| export { SchemaParticle } from "./schema/SchemaParticle.js"; | ||
| export { SchemaSequence } from "./schema/SchemaSequence.js"; | ||
| export { SchemaTypeValidator } from "./schema/SchemaTypeValidator.js"; | ||
| export type { SchemaFacets } from "./schema/SchemaTypeValidator.js"; | ||
| export { SchemaWildcardParticle } from "./schema/SchemaWildcardParticle.js"; | ||
| export { XSDSemanticValidator } from "./schema/XSDSemanticValidator.js"; | ||
| export type { JsonPrimitive, JsonValue, JsonElementObject, JsonProcessingInstruction, JsonElementContentNode, JsonElementContentTextNode, JsonElementContentCDataNode, JsonElementContentCommentNode, JsonElementContentProcessingInstructionNode, JsonElementContentElementNode, JsonConversionMode, XmlDocumentToJsonOptions, XmlDocumentToJsonSimpleOptions, XmlDocumentToJsonRoundTripOptions, XmlToJsonOptions, XmlToJsonSimpleOptions, XmlToJsonRoundTripOptions, XmlFileToJsonOptions, XmlFileToJsonSimpleOptions, XmlFileToJsonRoundTripOptions, XmlStreamToJsonOptions, XmlStreamToJsonSimpleOptions, XmlStreamToJsonRoundTripOptions, XmlJsonDeclaration, XmlJsonDoctype, JsonCommentNode, JsonProcessingInstructionNode, JsonMiscNode, JsonTextNode, JsonPrologNode, XmlJsonDocument } from "./json/JsonConversion.js"; | ||
| export { xmlStringToJsonObject, xmlFileToJsonObject, xmlStreamToJsonObject, xmlDocumentToJsonObject, xmlStringToJsonFile, xmlFileToJsonFile, xmlStreamToJsonFile, xmlDocumentToJsonFile, jsonObjectToXmlDocument, jsonStringToXmlDocument, jsonFileToXmlDocument, jsonStreamToXmlDocument, jsonObjectToXmlFile, jsonStringToXmlFile, jsonFileToXmlFile, jsonStreamToXmlFile } from "./json/JsonConversion.js"; |
+14
-0
@@ -53,3 +53,17 @@ /******************************************************************************* | ||
| export { AttributeInfo, AttributeUse, GrammarType, ValidationContext, ValidationError, ValidationResult, ValidationWarning } from "./grammar/Grammar.js"; | ||
| // XML Schema classes | ||
| export { SchemaAll } from "./schema/SchemaAll.js"; | ||
| export { SchemaAttributeDecl } from "./schema/SchemaAttributeDecl.js"; | ||
| export { SchemaBuilder } from "./schema/SchemaBuilder.js"; | ||
| export { SchemaChoice } from "./schema/SchemaChoice.js"; | ||
| export { SchemaContentModel, SchemaContentModelType } from "./schema/SchemaContentModel.js"; | ||
| export { SchemaElementDecl } from "./schema/SchemaElementDecl.js"; | ||
| export { SchemaElementParticle } from "./schema/SchemaElementParticle.js"; | ||
| export { SchemaGrammar } from "./schema/SchemaGrammar.js"; | ||
| export { SchemaParticle } from "./schema/SchemaParticle.js"; | ||
| export { SchemaSequence } from "./schema/SchemaSequence.js"; | ||
| export { SchemaTypeValidator } from "./schema/SchemaTypeValidator.js"; | ||
| export { SchemaWildcardParticle } from "./schema/SchemaWildcardParticle.js"; | ||
| export { XSDSemanticValidator } from "./schema/XSDSemanticValidator.js"; | ||
| export { xmlStringToJsonObject, xmlFileToJsonObject, xmlStreamToJsonObject, xmlDocumentToJsonObject, xmlStringToJsonFile, xmlFileToJsonFile, xmlStreamToJsonFile, xmlDocumentToJsonFile, jsonObjectToXmlDocument, jsonStringToXmlDocument, jsonFileToXmlDocument, jsonStreamToXmlDocument, jsonObjectToXmlFile, jsonStringToXmlFile, jsonFileToXmlFile, jsonStreamToXmlFile } from "./json/JsonConversion.js"; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/index.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/index.ts"],"names":[],"mappings":"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"} |
@@ -26,2 +26,3 @@ /******************************************************************************* | ||
| getGrammar(): Grammar | undefined; | ||
| getCurrentText(): string; | ||
| getEvents(): Array<JsonNodeEvent>; | ||
@@ -28,0 +29,0 @@ startDocument(): void; |
@@ -31,2 +31,5 @@ /******************************************************************************* | ||
| } | ||
| getCurrentText() { | ||
| return ''; | ||
| } | ||
| getEvents() { | ||
@@ -33,0 +36,0 @@ return this.events; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"JsonEventCollector.js","sourceRoot":"","sources":["../../../ts/json/JsonEventCollector.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"JsonEventCollector.js","sourceRoot":"","sources":["../../../ts/json/JsonEventCollector.ts"],"names":[],"mappings":"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"} |
@@ -29,2 +29,3 @@ /******************************************************************************* | ||
| getGrammar(): Grammar | undefined; | ||
| getCurrentText(): string; | ||
| startDocument(): void; | ||
@@ -31,0 +32,0 @@ endDocument(): void; |
@@ -39,2 +39,5 @@ /******************************************************************************* | ||
| } | ||
| getCurrentText() { | ||
| return ''; | ||
| } | ||
| startDocument() { | ||
@@ -41,0 +44,0 @@ this.writeEvent({ type: "startDocument" }); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"JsonEventStreamWriter.js","sourceRoot":"","sources":["../../../ts/json/JsonEventStreamWriter.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"JsonEventStreamWriter.js","sourceRoot":"","sources":["../../../ts/json/JsonEventStreamWriter.ts"],"names":[],"mappings":"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"} |
@@ -169,3 +169,3 @@ /******************************************************************************* | ||
| const codePoint = parseInt(hexDigits, 16); | ||
| return String.fromCharCode(codePoint); | ||
| return String.fromCodePoint(codePoint); | ||
| } | ||
@@ -172,0 +172,0 @@ readNumber() { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"JsonTokenizer.js","sourceRoot":"","sources":["../../../ts/json/JsonTokenizer.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"JsonTokenizer.js","sourceRoot":"","sources":["../../../ts/json/JsonTokenizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAe5D,MAAM,OAAO,aAAa;IAEd,MAAM,GAAW,EAAE,CAAC;IACpB,MAAM,GAAW,CAAC,CAAC;IACnB,QAAQ,GAAY,KAAK,CAAC;IAC1B,SAAS,CAAwB;IAEzC,OAAO,CAAC,KAAa;QACjB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IACzB,CAAC;IAED,YAAY;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,KAAK,GAAc,IAAI,CAAC,SAAS,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC5B,CAAC;IAED,SAAS;QACL,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEO,SAAS;QACb,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAClC,CAAC;QACD,MAAM,IAAI,GAAW,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,GAAG;gBACJ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YACjC,KAAK,GAAG;gBACJ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;YAClC,KAAK,GAAG;gBACJ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACnC,KAAK,GAAG;gBACJ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;YACpC,KAAK,GAAG;gBACJ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC7B,KAAK,GAAG;gBACJ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC7B,KAAK,GAAG;gBACJ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAClC,KAAK,GAAG;gBACJ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACzB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC5C,KAAK,GAAG;gBACJ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC7C,KAAK,GAAG;gBACJ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBACzB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC5B;gBACI,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,MAAM,KAAK,GAAW,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;gBACrC,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,IAAI,CAAC,CAAC;QACxE,CAAC;IACL,CAAC;IAEO,eAAe;QACnB,MAAM,aAAa,GAAW,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,IAAI,MAAM,GAAW,EAAE,CAAC;QACxB,IAAI,QAAQ,GAAY,KAAK,CAAC;QAC9B,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBACnD,CAAC;gBACD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;gBAC5B,MAAM,IAAI,iBAAiB,EAAE,CAAC;YAClC,CAAC;YACD,MAAM,IAAI,GAAW,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,QAAQ,EAAE,CAAC;gBACX,QAAQ,GAAG,KAAK,CAAC;gBACjB,QAAQ,IAAI,EAAE,CAAC;oBACX,KAAK,GAAG;wBACJ,MAAM,IAAI,GAAG,CAAC;wBACd,MAAM;oBACV,KAAK,IAAI;wBACL,MAAM,IAAI,IAAI,CAAC;wBACf,MAAM;oBACV,KAAK,GAAG;wBACJ,MAAM,IAAI,GAAG,CAAC;wBACd,MAAM;oBACV,KAAK,GAAG;wBACJ,MAAM,IAAI,IAAI,CAAC;wBACf,MAAM;oBACV,KAAK,GAAG;wBACJ,MAAM,IAAI,IAAI,CAAC;wBACf,MAAM;oBACV,KAAK,GAAG;wBACJ,MAAM,IAAI,IAAI,CAAC;wBACf,MAAM;oBACV,KAAK,GAAG;wBACJ,MAAM,IAAI,IAAI,CAAC;wBACf,MAAM;oBACV,KAAK,GAAG;wBACJ,MAAM,IAAI,IAAI,CAAC;wBACf,MAAM;oBACV,KAAK,GAAG;wBACJ,MAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;wBAChD,MAAM;oBACV;wBACI,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBACrE,CAAC;gBACD,SAAS;YACb,CAAC;YACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChB,QAAQ,GAAG,IAAI,CAAC;gBAChB,SAAS;YACb,CAAC;YACD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YAC7C,CAAC;YACD,MAAM,IAAI,IAAI,CAAC;QACnB,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,WAAmB;QACzC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;YAC1B,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAClC,CAAC;QACD,MAAM,SAAS,GAAW,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,SAAS,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,MAAM,SAAS,GAAW,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAClD,OAAO,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAEO,UAAU;QACd,MAAM,WAAW,GAAW,IAAI,CAAC,MAAM,CAAC;QACxC,IAAI,KAAK,GAAW,IAAI,CAAC,MAAM,CAAC;QAEhC,MAAM,MAAM,GAAG,CAAC,QAAgB,EAAsB,EAAE;YACpD,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChB,OAAO,SAAS,CAAC;gBACrB,CAAC;gBACD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;gBAC1B,MAAM,IAAI,iBAAiB,EAAE,CAAC;YAClC,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC;QAEF,MAAM,SAAS,GAAuB,MAAM,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACpB,KAAK,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAuB,MAAM,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;YACvB,KAAK,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACJ,GAAG,CAAC;gBACA,KAAK,EAAE,CAAC;gBACR,MAAM,QAAQ,GAAuB,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpD,MAAM;gBACV,CAAC;YACL,CAAC,QAAQ,IAAI,EAAE;QACnB,CAAC;QAED,MAAM,iBAAiB,GAAuB,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,iBAAiB,KAAK,GAAG,EAAE,CAAC;YAC5B,KAAK,EAAE,CAAC;YACR,MAAM,aAAa,GAAuB,MAAM,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACjE,CAAC;YACD,GAAG,CAAC;gBACA,KAAK,EAAE,CAAC;gBACR,MAAM,QAAQ,GAAuB,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpD,MAAM;gBACV,CAAC;YACL,CAAC,QAAQ,IAAI,EAAE;QACnB,CAAC;QAED,MAAM,iBAAiB,GAAuB,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,iBAAiB,KAAK,GAAG,IAAI,iBAAiB,KAAK,GAAG,EAAE,CAAC;YACzD,KAAK,EAAE,CAAC;YACR,MAAM,QAAQ,GAAuB,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACvC,KAAK,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,aAAa,GAAuB,MAAM,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC1D,CAAC;YACD,GAAG,CAAC;gBACA,KAAK,EAAE,CAAC;gBACR,MAAM,QAAQ,GAAuB,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpD,MAAM;gBACV,CAAC;YACL,CAAC,QAAQ,IAAI,EAAE;QACnB,CAAC;QAED,MAAM,QAAQ,GAAW,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,KAAK,GAAW,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,QAAQ,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,WAAW,CAAC,QAAgB;QAChC,MAAM,WAAW,GAAW,IAAI,CAAC,MAAM,CAAC;QACxC,MAAM,SAAS,GAAW,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QACxD,OAAO,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;YAC1B,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAClC,CAAC;QACD,MAAM,QAAQ,GAAW,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACvE,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,QAAQ,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAEO,cAAc;QAClB,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,GAAW,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,SAAS;YACb,CAAC;YACD,MAAM;QACV,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAEO,OAAO,CAAC,IAAY;QACxB,OAAO,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;IACtC,CAAC;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;CACJ"} |
@@ -34,2 +34,3 @@ /******************************************************************************* | ||
| getGrammar(): Grammar | undefined; | ||
| getCurrentText(): string; | ||
| startDocument(): void; | ||
@@ -36,0 +37,0 @@ endDocument(): void; |
@@ -54,2 +54,5 @@ /******************************************************************************* | ||
| } | ||
| getCurrentText() { | ||
| return ''; | ||
| } | ||
| startDocument() { | ||
@@ -56,0 +59,0 @@ return; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"XmlEventStreamWriter.js","sourceRoot":"","sources":["../../../ts/json/XmlEventStreamWriter.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"XmlEventStreamWriter.js","sourceRoot":"","sources":["../../../ts/json/XmlEventStreamWriter.ts"],"names":[],"mappings":"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"} |
@@ -95,2 +95,3 @@ /******************************************************************************* | ||
| protected handleNamespaceDeclarations(attributes: Map<string, string>, namespaceContext: Map<string, string>, previousContext?: Map<string, string>): void; | ||
| private propagateNamespaceToGrammar; | ||
| private handleSchemaLocationAttributes; | ||
@@ -97,0 +98,0 @@ protected tryLoadSchemaForNamespace(namespaceUri: string): void; |
@@ -48,3 +48,4 @@ /******************************************************************************* | ||
| getText(): string; | ||
| pureText(): string; | ||
| getPI(target: string): ProcessingInstruction | undefined; | ||
| } |
@@ -186,2 +186,11 @@ /******************************************************************************* | ||
| } | ||
| pureText() { | ||
| let result = ''; | ||
| this.content.forEach((node) => { | ||
| if (node instanceof TextNode) { | ||
| result += node.getValue(); | ||
| } | ||
| }); | ||
| return result; | ||
| } | ||
| getPI(target) { | ||
@@ -188,0 +197,0 @@ let result = undefined; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"XMLElement.js","sourceRoot":"","sources":["../../ts/XMLElement.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"XMLElement.js","sourceRoot":"","sources":["../../ts/XMLElement.ts"],"names":[],"mappings":"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"} |
@@ -31,2 +31,3 @@ /******************************************************************************* | ||
| private static instance; | ||
| private static readonly XML_NS; | ||
| private static readonly IGNORED_NAMESPACES; | ||
@@ -38,12 +39,16 @@ catalog: Catalog | undefined; | ||
| complexTypeDefinitions: Map<string, XMLElement>; | ||
| redefineOriginals: Map<string, XMLElement>; | ||
| attributeGroupDefinitions: Map<string, XMLElement>; | ||
| attributeDefinitions: Map<string, AttributeDefinitionInfo>; | ||
| elementDefinitions: Map<string, ElementInfo>; | ||
| simpleTypeDefinitions: Map<string, XMLElement>; | ||
| collectedDefaults: Map<string, Map<string, AttributeDefault>>; | ||
| complexTypeDefaultCache: Map<string, Map<string, AttributeDefault>>; | ||
| attributeGroupDefaultCache: Map<string, Map<string, AttributeDefault>>; | ||
| private constructor(); | ||
| parsedSchemaRoots: Array<XMLElement>; | ||
| protected constructor(catalog?: Catalog); | ||
| static getInstance(catalog?: Catalog): XMLSchemaParser; | ||
| collectDefaultAttributes(schemaPath: string): Map<string, Map<string, AttributeDefault>>; | ||
| protected resetWorkingState(): void; | ||
| private injectXmlNamespaceAttributes; | ||
| protected cloneDefaults(source: Map<string, Map<string, AttributeDefault>>): Map<string, Map<string, AttributeDefault>>; | ||
@@ -59,7 +64,17 @@ protected cloneAttributeDefaultMap(source: Map<string, AttributeDefault>): Map<string, AttributeDefault>; | ||
| protected lookupComplexType(typeName: string): XMLElement | undefined; | ||
| protected lookupOriginalComplexType(typeName: string): XMLElement | undefined; | ||
| protected lookupAttributeGroup(groupName: string): XMLElement | undefined; | ||
| protected lookupAttributeGroupWithNamespace(groupName: string): { | ||
| element: XMLElement; | ||
| namespace: string | undefined; | ||
| } | undefined; | ||
| protected lookupComplexTypeWithNamespace(typeName: string): { | ||
| element: XMLElement; | ||
| namespace: string | undefined; | ||
| } | undefined; | ||
| protected lookupAttribute(name: string, namespace?: string): AttributeDefinitionInfo | undefined; | ||
| protected mergeMaps(target: Map<string, AttributeDefault>, source: Map<string, AttributeDefault>): void; | ||
| protected walkSchema(schemaPath: string): void; | ||
| protected walkSchema(schemaPath: string, includingTargetNamespace?: string | null): void; | ||
| protected processSchemaReferences(schemaElement: XMLElement, baseDir: string): void; | ||
| protected applyRedefinitions(redefineElement: XMLElement, targetNamespace?: string): void; | ||
| static shouldIgnoreNamespace(namespaceUri: string): boolean; | ||
@@ -66,0 +81,0 @@ protected registerSchemaComponents(schemaElement: XMLElement, targetNamespace?: string): void; |
+163
-42
@@ -18,4 +18,8 @@ /******************************************************************************* | ||
| import { SAXParser } from "./SAXParser.js"; | ||
| import { XMLAttribute } from "./XMLAttribute.js"; | ||
| import { XMLElement } from "./XMLElement.js"; | ||
| import { XSDSemanticValidator } from "./schema/XSDSemanticValidator.js"; | ||
| export class XMLSchemaParser { | ||
| static instance; | ||
| static XML_NS = 'http://www.w3.org/XML/1998/namespace'; | ||
| static IGNORED_NAMESPACES = new Set([ | ||
@@ -29,8 +33,11 @@ Constants.XML_SCHEMA_INSTANCE_NS_URI | ||
| complexTypeDefinitions; | ||
| redefineOriginals; | ||
| attributeGroupDefinitions; | ||
| attributeDefinitions; | ||
| elementDefinitions; | ||
| simpleTypeDefinitions; | ||
| collectedDefaults; | ||
| complexTypeDefaultCache; | ||
| attributeGroupDefaultCache; | ||
| parsedSchemaRoots; | ||
| constructor(catalog) { | ||
@@ -42,8 +49,11 @@ this.catalog = catalog; | ||
| this.complexTypeDefinitions = new Map(); | ||
| this.redefineOriginals = new Map(); | ||
| this.attributeGroupDefinitions = new Map(); | ||
| this.attributeDefinitions = new Map(); | ||
| this.elementDefinitions = new Map(); | ||
| this.simpleTypeDefinitions = new Map(); | ||
| this.collectedDefaults = new Map(); | ||
| this.complexTypeDefaultCache = new Map(); | ||
| this.attributeGroupDefaultCache = new Map(); | ||
| this.parsedSchemaRoots = []; | ||
| } | ||
@@ -93,9 +103,30 @@ static getInstance(catalog) { | ||
| this.complexTypeDefinitions = new Map(); | ||
| this.redefineOriginals = new Map(); | ||
| this.attributeGroupDefinitions = new Map(); | ||
| this.attributeDefinitions = new Map(); | ||
| this.elementDefinitions = new Map(); | ||
| this.simpleTypeDefinitions = new Map(); | ||
| this.collectedDefaults = new Map(); | ||
| this.complexTypeDefaultCache = new Map(); | ||
| this.attributeGroupDefaultCache = new Map(); | ||
| this.parsedSchemaRoots = []; | ||
| this.injectXmlNamespaceAttributes(); | ||
| } | ||
| injectXmlNamespaceAttributes() { | ||
| const xmlAttrs = [ | ||
| ['lang', 'xs:language'], | ||
| ['space', 'xs:NCName'], | ||
| ['base', 'xs:anyURI'], | ||
| ['id', 'xs:ID'] | ||
| ]; | ||
| for (const [localName, type] of xmlAttrs) { | ||
| const el = new XMLElement('xs:attribute'); | ||
| el.setAttribute(new XMLAttribute('name', localName)); | ||
| el.setAttribute(new XMLAttribute('type', type)); | ||
| const info = { element: el, namespace: XMLSchemaParser.XML_NS }; | ||
| const key = XMLSchemaParser.XML_NS + '|' + localName; | ||
| this.attributeDefinitions.set(key, info); | ||
| this.attributeDefinitions.set('xml:' + localName, info); | ||
| } | ||
| } | ||
| cloneDefaults(source) { | ||
@@ -344,2 +375,6 @@ const clone = new Map(); | ||
| } | ||
| lookupOriginalComplexType(typeName) { | ||
| const localName = this.getLocalName(typeName); | ||
| return this.redefineOriginals.get(typeName) ?? this.redefineOriginals.get(localName); | ||
| } | ||
| lookupAttributeGroup(groupName) { | ||
@@ -365,2 +400,44 @@ const direct = this.attributeGroupDefinitions.get(groupName); | ||
| } | ||
| lookupAttributeGroupWithNamespace(groupName) { | ||
| const localName = this.getLocalName(groupName); | ||
| const entries = Array.from(this.attributeGroupDefinitions.entries()); | ||
| for (const entry of entries) { | ||
| const key = entry[0]; | ||
| const pipeIdx = key.lastIndexOf('|'); | ||
| if (pipeIdx !== -1 && key.substring(pipeIdx + 1) === localName) { | ||
| const ns = key.substring(0, pipeIdx); | ||
| return { element: entry[1], namespace: ns.length > 0 ? ns : undefined }; | ||
| } | ||
| } | ||
| const direct = this.attributeGroupDefinitions.get(groupName); | ||
| if (direct) { | ||
| return { element: direct, namespace: undefined }; | ||
| } | ||
| const byLocal = this.attributeGroupDefinitions.get(localName); | ||
| if (byLocal) { | ||
| return { element: byLocal, namespace: undefined }; | ||
| } | ||
| return undefined; | ||
| } | ||
| lookupComplexTypeWithNamespace(typeName) { | ||
| const localName = this.getLocalName(typeName); | ||
| const entries = Array.from(this.complexTypeDefinitions.entries()); | ||
| for (const entry of entries) { | ||
| const key = entry[0]; | ||
| const pipeIdx = key.lastIndexOf('|'); | ||
| if (pipeIdx !== -1 && key.substring(pipeIdx + 1) === localName) { | ||
| const ns = key.substring(0, pipeIdx); | ||
| return { element: entry[1], namespace: ns.length > 0 ? ns : undefined }; | ||
| } | ||
| } | ||
| const direct = this.complexTypeDefinitions.get(typeName); | ||
| if (direct) { | ||
| return { element: direct, namespace: undefined }; | ||
| } | ||
| const byLocal = this.complexTypeDefinitions.get(localName); | ||
| if (byLocal) { | ||
| return { element: byLocal, namespace: undefined }; | ||
| } | ||
| return undefined; | ||
| } | ||
| lookupAttribute(name, namespace) { | ||
@@ -396,3 +473,3 @@ const direct = this.attributeDefinitions.get(name); | ||
| } | ||
| walkSchema(schemaPath) { | ||
| walkSchema(schemaPath, includingTargetNamespace) { | ||
| const normalizedPath = this.normalizePath(schemaPath); | ||
@@ -424,2 +501,6 @@ if (this.visitedSchemas.has(normalizedPath)) { | ||
| const targetNamespace = targetNamespaceAttribute ? targetNamespaceAttribute.getValue() : undefined; | ||
| if (includingTargetNamespace !== undefined) { | ||
| XSDSemanticValidator.checkIncludedNamespace(root, includingTargetNamespace !== null ? includingTargetNamespace : undefined); | ||
| } | ||
| this.parsedSchemaRoots.push(root); | ||
| this.registerSchemaComponents(root, targetNamespace); | ||
@@ -445,6 +526,45 @@ this.processSchemaReferences(root, dirname(normalizedPath)); | ||
| if (resolved) { | ||
| this.walkSchema(resolved); | ||
| if (localName === 'include') { | ||
| const includingNsAttr = schemaElement.getAttribute('targetNamespace'); | ||
| this.walkSchema(resolved, includingNsAttr !== undefined ? includingNsAttr.getValue() : null); | ||
| } | ||
| else { | ||
| this.walkSchema(resolved); | ||
| } | ||
| } | ||
| // For xs:redefine, after loading the base schema apply the redefined components (force-overwrite). | ||
| if (localName === 'redefine') { | ||
| const targetNsAttr = schemaElement.getAttribute('targetNamespace'); | ||
| const targetNamespace = targetNsAttr ? targetNsAttr.getValue() : undefined; | ||
| this.applyRedefinitions(child, targetNamespace); | ||
| } | ||
| } | ||
| } | ||
| applyRedefinitions(redefineElement, targetNamespace) { | ||
| for (const child of redefineElement.getChildren()) { | ||
| const localName = this.getLocalName(child.getName()); | ||
| if (localName === 'complexType') { | ||
| const nameAttr = child.getAttribute('name'); | ||
| if (!nameAttr) { | ||
| continue; | ||
| } | ||
| const typeName = nameAttr.getValue(); | ||
| const nsKey = this.buildTypeKey(typeName, targetNamespace); | ||
| const localKey = this.getLocalName(typeName); | ||
| // Save the original before overwriting so self-extension can resolve it. | ||
| const original = this.complexTypeDefinitions.get(nsKey) | ||
| ?? this.complexTypeDefinitions.get(typeName) | ||
| ?? this.complexTypeDefinitions.get(localKey); | ||
| if (original) { | ||
| this.redefineOriginals.set(typeName, original); | ||
| this.redefineOriginals.set(nsKey, original); | ||
| this.redefineOriginals.set(localKey, original); | ||
| } | ||
| // Force-overwrite with the redefined version. | ||
| this.complexTypeDefinitions.set(nsKey, child); | ||
| this.complexTypeDefinitions.set(typeName, child); | ||
| this.complexTypeDefinitions.set(localKey, child); | ||
| } | ||
| } | ||
| } | ||
| static shouldIgnoreNamespace(namespaceUri) { | ||
@@ -534,46 +654,34 @@ return XMLSchemaParser.IGNORED_NAMESPACES.has(namespaceUri); | ||
| } | ||
| continue; | ||
| } | ||
| } | ||
| } | ||
| resolveReference(location, baseDir, namespaceValue) { | ||
| if (location) { | ||
| if (location.startsWith("file://")) { | ||
| const normalizedFileUrl = fileURLToPath(location); | ||
| if (existsSync(normalizedFileUrl)) { | ||
| return normalizedFileUrl; | ||
| if (localName === "simpleType") { | ||
| const nameAttribute = child.getAttribute("name"); | ||
| if (!nameAttribute) { | ||
| continue; | ||
| } | ||
| } | ||
| else if (isAbsolute(location)) { | ||
| if (existsSync(location)) { | ||
| return location; | ||
| const typeName = nameAttribute.getValue(); | ||
| if (!this.simpleTypeDefinitions.has(typeName)) { | ||
| this.simpleTypeDefinitions.set(typeName, child); | ||
| } | ||
| } | ||
| else if (!location.startsWith("http://") && !location.startsWith("https://")) { | ||
| const resolvedPath = resolve(baseDir, location); | ||
| if (existsSync(resolvedPath)) { | ||
| return resolvedPath; | ||
| } | ||
| } | ||
| if (this.catalog) { | ||
| const catalogCandidates = [ | ||
| this.catalog.matchURI(location), | ||
| this.catalog.matchSystem(location) | ||
| ]; | ||
| for (const candidate of catalogCandidates) { | ||
| if (!candidate) { | ||
| continue; | ||
| if (targetNamespace) { | ||
| const nsKey = targetNamespace + '|' + typeName; | ||
| if (!this.simpleTypeDefinitions.has(nsKey)) { | ||
| this.simpleTypeDefinitions.set(nsKey, child); | ||
| } | ||
| const normalizedCandidate = candidate.startsWith("file://") ? fileURLToPath(candidate) : candidate; | ||
| if (existsSync(normalizedCandidate)) { | ||
| return normalizedCandidate; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| if (namespaceValue && this.catalog) { | ||
| const catalogCandidates = [ | ||
| this.catalog.matchURI(namespaceValue), | ||
| this.catalog.matchSystem(namespaceValue) | ||
| ]; | ||
| for (const candidate of catalogCandidates) { | ||
| } | ||
| resolveReference(location, baseDir, namespaceValue) { | ||
| if (this.catalog) { | ||
| const candidates = []; | ||
| if (location) { | ||
| candidates.push(this.catalog.matchURI(location)); | ||
| candidates.push(this.catalog.matchSystem(location)); | ||
| } | ||
| if (namespaceValue) { | ||
| candidates.push(this.catalog.matchURI(namespaceValue)); | ||
| candidates.push(this.catalog.matchSystem(namespaceValue)); | ||
| } | ||
| for (const candidate of candidates) { | ||
| if (!candidate) { | ||
@@ -594,6 +702,19 @@ continue; | ||
| } | ||
| const resolvedFallback = resolve(baseDir, location); | ||
| if (existsSync(resolvedFallback)) { | ||
| return resolvedFallback; | ||
| if (location.startsWith("file://")) { | ||
| const normalizedFileUrl = fileURLToPath(location); | ||
| if (existsSync(normalizedFileUrl)) { | ||
| return normalizedFileUrl; | ||
| } | ||
| return undefined; | ||
| } | ||
| if (isAbsolute(location)) { | ||
| if (existsSync(location)) { | ||
| return location; | ||
| } | ||
| return undefined; | ||
| } | ||
| const resolvedPath = resolve(baseDir, location); | ||
| if (existsSync(resolvedPath)) { | ||
| return resolvedPath; | ||
| } | ||
| return undefined; | ||
@@ -600,0 +721,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"XMLSchemaParser.js","sourceRoot":"","sources":["../../ts/XMLSchemaParser.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"XMLSchemaParser.js","sourceRoot":"","sources":["../../ts/XMLSchemaParser.ts"],"names":[],"mappings":"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"} |
+6
-3
| { | ||
| "name": "typesxml", | ||
| "productName": "TypesXML", | ||
| "version": "1.19.0", | ||
| "version": "2.0.0", | ||
| "description": "Open source XML library written in TypeScript", | ||
@@ -12,2 +12,4 @@ "keywords": [ | ||
| "DTD", | ||
| "XML Schema", | ||
| "Validation", | ||
| "Default attributes", | ||
@@ -22,3 +24,4 @@ "TypeScript", | ||
| "testDtd": "npm run build:cjs && node dist/cjs/tests/DTDTestSuite.js", | ||
| "testJson": "npm run build:cjs && node dist/cjs/tests/JsonConversionTest.js" | ||
| "testJson": "npm run build:cjs && node dist/cjs/tests/JsonConversionTest.js", | ||
| "testXmlSchema": "npm run build:cjs && node dist/cjs/tests/XMLSchemaTestSuite.js" | ||
| }, | ||
@@ -53,4 +56,4 @@ "author": { | ||
| "@types/node": "^24.12.2", | ||
| "typescript": "^6.0.2" | ||
| "typescript": "^6.0.3" | ||
| } | ||
| } |
+25
-4
@@ -7,3 +7,3 @@ # TypesXML | ||
| TypesXML is a native TypeScript XML library and processing toolkit — there are no bindings to C/C++ libraries or other native layers. It ships first-class DOM and SAX pipelines, validates full DTD grammars, resolves entities through OASIS XML Catalogs, and passes 100% of the W3C XML Conformance Test Suite for DTD-driven documents. | ||
| TypesXML is a native TypeScript XML library and processing toolkit — there are no bindings to C/C++ libraries or other native layers. It ships first-class DOM and SAX pipelines, full DTD and XML Schema 1.0 validation, and OASIS XML Catalog resolution. It passes 100% of the W3C XML Conformance Test Suite for DTD grammars and 95.8% of the W3C XML Schema Test Suite — the only native TypeScript implementation verified against both official suites. | ||
@@ -18,2 +18,3 @@ ## Features | ||
| - Passes 100% of the test cases in the official W3C XML Conformance Test Suite for DTD grammars (valid, invalid, not-wf, external entity cases). | ||
| - Implements strict validation for files that use XML Schema 1.0 grammars, including built-in datatypes and user-defined types with complex content models — passing 95.8% of the official W3C XML Schema Test Suite (2006 edition). | ||
| - Canonical XML renderer compatible with the W3C XML Test Suite rules. | ||
@@ -34,3 +35,3 @@ - Strict character validation for XML 1.0/1.1 and optional DTD-validating mode. | ||
| endDocument(): void; | ||
| xmlDeclaration(version: string, encoding: string, standalone: string): void; | ||
| xmlDeclaration(version: string, encoding: string, standalone: string | undefined): void; | ||
| startElement(name: string, atts: XMLAttribute[]): void; | ||
@@ -48,2 +49,5 @@ endElement(name: string): void; | ||
| skippedEntity(name: string): void; | ||
| getGrammar(): Grammar | undefined; | ||
| setGrammar(grammar: Grammar | undefined): void; | ||
| getCurrentText(): string; | ||
| } | ||
@@ -85,3 +89,3 @@ ``` | ||
| parser.setCatalog(myCatalog); | ||
| parser.setValidating(true); // Turns on DTD validation only. | ||
| parser.setValidating(true); // Turns on DTD and XML Schema validation | ||
| ``` | ||
@@ -163,4 +167,6 @@ | ||
| The repository includes a harness that runs against the official W3C XML Conformance Test Suite for DTD grammars. To execute it locally: | ||
| The repository includes code that runs the official W3C XML Conformance Test Suite for DTD and XML Schema grammars. | ||
| ### DTD | ||
| 1. Download the latest archive from the [W3C XML Test Suite](https://www.w3.org/XML/Test/) (e.g., `xmlts20080827.zip`). | ||
@@ -176,1 +182,16 @@ 2. Extract the archive into `./tests/xmltest` so the `valid`, `invalid`, and `not-wf` folders sit under that path. | ||
| The script compiles the TypeScript sources and executes `ts/tests/DTDTestSuite.ts`, reporting any conformance failures. | ||
| ### XML Schema | ||
| TypesXML currently passes **95.8%** of the W3C XML Schema Test Suite (2006 edition, ~40,000 tests), the only native TypeScript implementation of XML Schema 1.0 validated against the official W3C test suite. | ||
| 1. Download the latest archive from the [XML Schema Version 1.0, 2nd Edition](https://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2006-11-06/xsts-2007-06-20.tar.gz). | ||
| 2. Extract the archive into `./tests/` so the test cases are available under `./tests/xmlschema2006-11-06`. | ||
| 3. Install dependencies if needed: `npm install`. | ||
| 4. Run the suite: | ||
| ```bash | ||
| npm run testXmlSchema | ||
| ``` | ||
| The script compiles the TypeScript sources and executes `ts/tests/XmlSchemaTestSuite.ts`, reporting any conformance failures. |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
3391987
73.83%437
28.53%46766
63.15%191
12.35%81
42.11%