🚨 Active Supply Chain Attack:node-ipc Package Compromised.Learn More
Socket
Book a DemoSign in
Socket

typesxml

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typesxml - npm Package Compare versions

Comparing version
1.19.0
to
2.0.0
+18
dist/cjs/schema/SchemaAll.d.ts
/*******************************************************************************
* 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":";AAAA;;;;;;;;;;iFAUiF;;;AAEjF,sDAAoE;AACpE,qEAA6E;AAE7E,MAAa,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,yBAAY,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,4CAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,4CAAmB,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,4CAAmB,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,4CAAmB,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,eAAe;QACX,OAAO,IAAI,0BAAa,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;AApJD,kDAoJC"}
/*******************************************************************************
* 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":"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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[];
}
"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":"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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;
}
"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":";AAAA;;;;;;;;;;iFAUiF;;;AAEjF,MAAM,aAAa;IACf,YAAY,CAAU;IACtB,OAAO,CAAS;IAEhB,YAAY,YAAqB,EAAE,OAAe;QAC9C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ;AAED,MAAa,kBAAkB;IAE3B,oFAAoF;IAC5E,MAAM,CAAU,eAAe,GACnC,UAAU;QACV,yCAAyC;QACzC,sDAAsD;QACtD,sDAAsD;QACtD,4BAA4B;QAC5B,qDAAqD;QACrD,oDAAoD;QACpD,sDAAsD;QACtD,sDAAsD;QACtD,4BAA4B;QAC5B,kCAAkC;QAClC,4BAA4B;QAC5B,4BAA4B;QAC5B,yEAAyE;QACzE,kCAAkC;QAClC,yEAAyE;QACzE,yCAAyC;QACzC,sDAAsD;QACtD,yEAAyE;QACzE,4DAA4D;QAC5D,wCAAwC;QACxC,sDAAsD;QACtD,4DAA4D;QAC5D,4DAA4D;QAC5D,mEAAmE;QACnE,gFAAgF;QAChF,sFAAsF;QACtF,mEAAmE;QACnE,+CAA+C;QAC/C,8CAA8C;QAC9C,kEAAkE;QAClE,qDAAqD;QACrD,4BAA4B;QAC5B,kEAAkE;QAClE,gEAAgE;QAChE,uEAAuE;QACvE,uEAAuE;QACvE,iCAAiC;QACjC,4BAA4B;QAC5B,mEAAmE;QACnE,iEAAiE;QACjE,mEAAmE;QACnE,4BAA4B;QAC5B,wCAAwC;QACxC,sDAAsD;QACtD,kCAAkC,CAAC;IAEvC,kFAAkF;IAC1E,MAAM,CAAU,SAAS,GAAG,kBAAkB,CAAC,eAAe;QAClE,WAAW;QACX,sDAAsD;QACtD,sDAAsD;QACtD,sDAAsD;QACtD,4BAA4B;QAC5B,sDAAsD;QACtD,qDAAqD;QACrD,4DAA4D;QAC5D,4DAA4D;QAC5D,2DAA2D;QAC3D,kEAAkE;QAClE,iEAAiE;QACjE,yEAAyE;QACzE,4DAA4D;QAC5D,mEAAmE;QACnE,yEAAyE;QACzE,mEAAmE;QACnE,4DAA4D;QAC5D,kEAAkE;QAClE,0DAA0D;QAC1D,4DAA4D;QAC5D,iEAAiE;QACjE,kDAAkD;QAClD,yCAAyC,CAAC;IAE9C,8EAA8E;IAC9E,oFAAoF;IACpF,0EAA0E;IAClE,MAAM,CAAU,UAAU,GAC9B,8DAA8D;QAC9D,8DAA8D;QAC9D,8DAA8D;QAC9D,8DAA8D;QAC9D,8DAA8D;QAC9D,uBAAuB,CAAC;IAE5B,kFAAkF;IAClF,sFAAsF;IAC9E,MAAM,CAAU,cAAc,GAAG,iBAAiB,CAAC;IAEnD,MAAM,CAAU,YAAY,GAA2B;QAC3D,SAAS;QACT,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QAC5B,OAAO;QACP,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,SAAS;QACT,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,cAAc;QACd,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QAC1D,SAAS;QACT,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,EAAE,EAAE,SAAS;QACb,YAAY;QACZ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,QAAQ;QACR,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,EAAE,EAAE,SAAS;KAChB,CAAC;IAEM,MAAM,CAAU,SAAS,GAA2B;QACxD,UAAU,EAAE,eAAe;QAC3B,gBAAgB,EAAE,eAAe;QACjC,mBAAmB,EAAE,eAAe;QACpC,cAAc,EAAE,eAAe;QAC/B,iBAAiB,EAAE,eAAe;QAClC,cAAc,EAAE,eAAe;QAC/B,iBAAiB,EAAE,eAAe;QAClC,aAAa,EAAE,eAAe;QAC9B,sBAAsB,EAAE,eAAe;QACvC,yBAAyB,EAAE,eAAe;QAC1C,KAAK,EAAE,eAAe;QACtB,cAAc,EAAE,eAAe;QAC/B,QAAQ,EAAE,eAAe;QACzB,kBAAkB,EAAE,eAAe;QACnC,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,eAAe;QACxB,SAAS,EAAE,eAAe;QAC1B,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,eAAe;QACpB,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,eAAe;QACzB,UAAU,EAAE,eAAe;QAC3B,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,eAAe;QACzB,kCAAkC,EAAE,eAAe;QACnD,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,eAAe;QAC1B,uBAAuB,EAAE,eAAe;QACxC,aAAa,EAAE,eAAe;QAC9B,kBAAkB,EAAE,eAAe;QACnC,yBAAyB,EAAE,eAAe;QAC1C,eAAe,EAAE,eAAe;QAChC,wBAAwB,EAAE,eAAe;QACzC,iBAAiB,EAAE,eAAe;QAClC,WAAW,EAAE,eAAe;QAC5B,MAAM,EAAE,eAAe;QACvB,qBAAqB,EAAE,eAAe;QACtC,sBAAsB,EAAE,eAAe;QACvC,eAAe,EAAE,eAAe;QAChC,2BAA2B,EAAE,eAAe;QAC5C,qBAAqB,EAAE,eAAe;QACtC,UAAU,EAAE,eAAe;QAC3B,aAAa,EAAE,eAAe;QAC9B,eAAe,EAAE,eAAe;QAChC,oBAAoB,EAAE,eAAe;QACrC,QAAQ,EAAE,eAAe;QACzB,eAAe,EAAE,eAAe;QAChC,qBAAqB,EAAE,eAAe;QACtC,cAAc,EAAE,eAAe;QAC/B,gCAAgC,EAAE,eAAe;QACjD,wBAAwB,EAAE,eAAe;QACzC,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,eAAe;QACzB,uBAAuB,EAAE,eAAe;QACxC,MAAM,EAAE,eAAe;QACvB,gBAAgB,EAAE,eAAe;QACjC,2BAA2B,EAAE,eAAe;QAC5C,gBAAgB,EAAE,eAAe;QACjC,8BAA8B,EAAE,eAAe;QAC/C,qBAAqB,EAAE,eAAe;QACtC,oBAAoB,EAAE,eAAe;QACrC,WAAW,EAAE,eAAe;QAC5B,UAAU,EAAE,eAAe;QAC3B,eAAe,EAAE,eAAe;QAChC,cAAc,EAAE,eAAe;QAC/B,wBAAwB,EAAE,eAAe;QACzC,aAAa,EAAE,eAAe;QAC9B,UAAU,EAAE,eAAe;QAC3B,0BAA0B,EAAE,eAAe;QAC3C,2BAA2B,EAAE,eAAe;QAC5C,wBAAwB,EAAE,eAAe;QACzC,2BAA2B,EAAE,eAAe;QAC5C,kBAAkB,EAAE,eAAe;QACnC,qBAAqB,EAAE,eAAe;QACtC,iBAAiB,EAAE,eAAe;QAClC,wBAAwB,EAAE,eAAe;QACzC,2BAA2B,EAAE,eAAe;QAC5C,QAAQ,EAAE,eAAe;QACzB,0BAA0B,EAAE,eAAe;QAC3C,SAAS,EAAE,qBAAqB;QAChC,MAAM,EAAE,qBAAqB;QAC7B,OAAO,EAAE,qBAAqB;QAC9B,uBAAuB,EAAE,qBAAqB;QAC9C,cAAc,EAAE,qBAAqB;QACrC,+BAA+B,EAAE,qBAAqB;QACtD,8BAA8B,EAAE,qBAAqB;QACrD,oCAAoC,EAAE,qBAAqB;QAC3D,IAAI,EAAE,qBAAqB;KAC9B,CAAC;IAEK,MAAM,CAAC,QAAQ,CAAC,UAAkB;QACrC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1D,OAAO,IAAI,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,UAAkB;QACtC,OAAO,kBAAkB,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACpE,CAAC;IAEO,MAAM,CAAC,eAAe,CAC1B,GAAW,EACX,KAAa,EACb,MAAe,CAAG,qDAAqD;;QAEvE,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,KAAK,CAAC;QAEd,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAElB,mDAAmD;YACnD,IAAI,MAAM,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM;YACV,CAAC;YAED,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBACd,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/D,GAAG,IAAI,MAAM,CAAC;gBACd,CAAC,GAAG,GAAG,CAAC;gBACR,SAAS;YACb,CAAC;YAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACb,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAClE,GAAG,IAAI,MAAM,CAAC;gBACd,CAAC,GAAG,GAAG,CAAC;gBACR,SAAS;YACb,CAAC;YAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACb,6CAA6C;gBAC7C,GAAG,IAAI,uBAAuB,CAAC;gBAC/B,CAAC,EAAE,CAAC;gBACJ,SAAS;YACb,CAAC;YAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACb,gEAAgE;gBAChE,sDAAsD;gBACtD,sEAAsE;gBACtE,8EAA8E;gBAC9E,IAAI,MAAM,GAAG,GAAG,CAAC;gBACjB,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACrB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;wBACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;wBAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;wBACtE,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;4BAC3C,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;4BAC3D,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC;wBAC5B,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,MAAM,KAAK,GAAG,kBAAkB,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;gBACtE,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,GAAG,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;gBACnC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;gBAClB,SAAS;YACb,CAAC;YAED,8EAA8E;YAC9E,6EAA6E;YAC7E,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;oBAC/D,GAAG,IAAI,GAAG,CAAC;oBACX,CAAC,EAAE,CAAC;oBACJ,SAAS;gBACb,CAAC;gBACD,MAAM,QAAQ,GAAW,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;oBAClB,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;oBACtD,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACJ,GAAG,IAAI,KAAK,CAAC;oBACb,CAAC,EAAE,CAAC;gBACR,CAAC;gBACD,SAAS;YACb,CAAC;YAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACb,GAAG,IAAI,OAAO,CAAC;gBACf,CAAC,EAAE,CAAC;gBACJ,SAAS;YACb,CAAC;YAED,0DAA0D;YAC1D,2DAA2D;YAC3D,qBAAqB;YACrB,GAAG,IAAI,EAAE,CAAC;YACV,CAAC,EAAE,CAAC;QACR,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACnC,CAAC;IAEO,MAAM,CAAC,WAAW,CACtB,GAAW,EACX,CAAS,CAAG,oBAAoB;;QAEhC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAExB,QAAQ,IAAI,EAAE,CAAC;YACX,iCAAiC;YACjC,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,kBAAkB,CAAC,eAAe,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACxF,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,kBAAkB,CAAC,eAAe,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzF,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,kBAAkB,CAAC,SAAS,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAClF,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,kBAAkB,CAAC,SAAS,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAEnF,0DAA0D;YAC1D,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAE7D,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,kBAAkB,CAAC,UAAU,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACnF,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,kBAAkB,CAAC,UAAU,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAEpF,uDAAuD;YACvD,8DAA8D;YAC9D,uCAAuC;YACvC,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,kBAAkB,CAAC,cAAc,GAAG,+BAA+B,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzH,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,kCAAkC,GAAG,kBAAkB,CAAC,cAAc,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAEvH,mCAAmC;YACnC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACP,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;YAC9E,CAAC;YACD,KAAK,GAAG,CAAC,CAAC,CAAC;gBACP,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YAC7E,CAAC;YAED,wEAAwE;YACxE,+DAA+D;YAC/D,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAE5C,iEAAiE;YACjE,sDAAsD;YACtD,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAEjD,4DAA4D;YAC5D,uDAAuD;YACvD,OAAO,CAAC,CAAC,CAAC;gBACN,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;oBAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,QAAQ,GAAG,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;wBACnE,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;wBACnB,CAAC,EAAE,CAAC;oBACR,CAAC;oBACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI;wBACpB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;wBAC5C,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACjD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBACnC,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,CAAC;QACL,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,cAAc,CACzB,GAAW,EACX,KAAa,CAAG,4BAA4B;;QAE5C,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;QAC9B,IAAI,MAAM;YAAE,CAAC,EAAE,CAAC;QAEhB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,wDAAwD,GAAG,KAAK,CAAC,CAAC;QACtF,CAAC;QAED,4CAA4C;QAC5C,MAAM,KAAK,GAAoB,EAAE,CAAC;QAClC,IAAI,UAAU,GAAkB,IAAI,CAAC;QAErC,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACtC,qDAAqD;YACrD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5D,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC1B,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;gBACd,MAAM;YACV,CAAC;YAED,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACjB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,sEAAsE,GAAG,CAAC,CAAC,CAAC;gBAChG,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC9C,CAAC,EAAE,CAAC;gBACJ,SAAS;YACb,CAAC;YAED,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC9D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACJ,KAAK,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,CAAC,EAAE,CAAC;YACR,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+DAA+D,GAAG,KAAK,CAAC,CAAC;QAC7F,CAAC;QACD,CAAC,EAAE,CAAC;QAEJ,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEjE,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACxC,CAAC;QAED,mCAAmC;QACnC,gEAAgE;QAChE,qEAAqE;QACrE,qDAAqD;QACrD,+DAA+D;QAC/D,OAAO;YACH,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG;YACpD,GAAG,EAAE,CAAC;SACT,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,KAAsB,EAAE,MAAe;QAChE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvF,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAE/E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC;QACxD,CAAC;QAED,IAAI,UAAU,KAAK,EAAE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,MAAM;gBACT,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG;gBAC7B,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACvC,CAAC;QAED,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;YACpB,IAAI,MAAM,EAAE,CAAC;gBACT,4DAA4D;gBAC5D,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,MAAM,IAAI,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC9C,CAAC;gBACD,OAAO,MAAM,GAAG,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YACtE,CAAC;YACD,wCAAwC;YACxC,OAAO,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACzE,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,0DAA0D;YAC1D,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrE,OAAO,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,GAAG,CAAC;QAChD,CAAC;QACD,qCAAqC;QACrC,MAAM,KAAK,GAAa,CAAC,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;QACjD,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACtD,OAAO,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACzC,CAAC;IAEO,MAAM,CAAC,sBAAsB,CACjC,GAAW,EACX,CAAS;QAET,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAExB,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACpG,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAG,kBAAkB,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACpG,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9F,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAG,kBAAkB,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9F,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAClF,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAG,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAClF,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/F,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAG,kBAAkB,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/F,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,0BAA0B,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5F,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAG,0BAA0B,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5F,KAAK,GAAG,CAAC,CAAC,CAAC;gBACP,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;YACjG,CAAC;YACD,KAAK,GAAG,CAAC,CAAC,CAAC;gBACP,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAG,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;YACjG,CAAC;YACD,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACpE,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACpE,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACpE,OAAO,CAAC,CAAC,CAAC;gBACN,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;oBAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,QAAQ,GAAG,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;wBACnE,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;wBACnB,CAAC,EAAE,CAAC;oBACR,CAAC;oBACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI;wBACpB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;wBAC5C,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACjD,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAC3D,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACvE,CAAC;QACL,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,IAAY,EAAE,MAAe;QAC1D,0BAA0B;QAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC;mBAC9C,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;YAC3D,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QAClF,CAAC;QAED,2CAA2C;QAC3C,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IACrF,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,IAAY;QAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC;mBAC9C,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IACrF,CAAC;IAEO,MAAM,CAAC,cAAc,CACzB,GAAW,EACX,CAAS,CAAG,sBAAsB;;QAElC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACX,+DAA+D,GAAG,CAAC,CACtE,CAAC;QACN,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACX,iEAAiE,GAAG,CAAC,CACxE,CAAC;QACN,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;IAC7D,CAAC;;AA3lBL,gDA4lBC"}
/*******************************************************************************
* 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

"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"}
/*******************************************************************************
* 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":"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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 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":"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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[];
}
/*******************************************************************************
* 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":"AAAA;;;;;;;;;;iFAUiF;AAEjF,MAAM,aAAa;IACf,YAAY,CAAU;IACtB,OAAO,CAAS;IAEhB,YAAY,YAAqB,EAAE,OAAe;QAC9C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ;AAED,MAAM,OAAO,kBAAkB;IAE3B,oFAAoF;IAC5E,MAAM,CAAU,eAAe,GACnC,UAAU;QACV,yCAAyC;QACzC,sDAAsD;QACtD,sDAAsD;QACtD,4BAA4B;QAC5B,qDAAqD;QACrD,oDAAoD;QACpD,sDAAsD;QACtD,sDAAsD;QACtD,4BAA4B;QAC5B,kCAAkC;QAClC,4BAA4B;QAC5B,4BAA4B;QAC5B,yEAAyE;QACzE,kCAAkC;QAClC,yEAAyE;QACzE,yCAAyC;QACzC,sDAAsD;QACtD,yEAAyE;QACzE,4DAA4D;QAC5D,wCAAwC;QACxC,sDAAsD;QACtD,4DAA4D;QAC5D,4DAA4D;QAC5D,mEAAmE;QACnE,gFAAgF;QAChF,sFAAsF;QACtF,mEAAmE;QACnE,+CAA+C;QAC/C,8CAA8C;QAC9C,kEAAkE;QAClE,qDAAqD;QACrD,4BAA4B;QAC5B,kEAAkE;QAClE,gEAAgE;QAChE,uEAAuE;QACvE,uEAAuE;QACvE,iCAAiC;QACjC,4BAA4B;QAC5B,mEAAmE;QACnE,iEAAiE;QACjE,mEAAmE;QACnE,4BAA4B;QAC5B,wCAAwC;QACxC,sDAAsD;QACtD,kCAAkC,CAAC;IAEvC,kFAAkF;IAC1E,MAAM,CAAU,SAAS,GAAG,kBAAkB,CAAC,eAAe;QAClE,WAAW;QACX,sDAAsD;QACtD,sDAAsD;QACtD,sDAAsD;QACtD,4BAA4B;QAC5B,sDAAsD;QACtD,qDAAqD;QACrD,4DAA4D;QAC5D,4DAA4D;QAC5D,2DAA2D;QAC3D,kEAAkE;QAClE,iEAAiE;QACjE,yEAAyE;QACzE,4DAA4D;QAC5D,mEAAmE;QACnE,yEAAyE;QACzE,mEAAmE;QACnE,4DAA4D;QAC5D,kEAAkE;QAClE,0DAA0D;QAC1D,4DAA4D;QAC5D,iEAAiE;QACjE,kDAAkD;QAClD,yCAAyC,CAAC;IAE9C,8EAA8E;IAC9E,oFAAoF;IACpF,0EAA0E;IAClE,MAAM,CAAU,UAAU,GAC9B,8DAA8D;QAC9D,8DAA8D;QAC9D,8DAA8D;QAC9D,8DAA8D;QAC9D,8DAA8D;QAC9D,uBAAuB,CAAC;IAE5B,kFAAkF;IAClF,sFAAsF;IAC9E,MAAM,CAAU,cAAc,GAAG,iBAAiB,CAAC;IAEnD,MAAM,CAAU,YAAY,GAA2B;QAC3D,SAAS;QACT,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QAC5B,OAAO;QACP,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,SAAS;QACT,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,cAAc;QACd,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QAC1D,SAAS;QACT,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,EAAE,EAAE,SAAS;QACb,YAAY;QACZ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,QAAQ;QACR,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS;QACxD,EAAE,EAAE,SAAS;KAChB,CAAC;IAEM,MAAM,CAAU,SAAS,GAA2B;QACxD,UAAU,EAAE,eAAe;QAC3B,gBAAgB,EAAE,eAAe;QACjC,mBAAmB,EAAE,eAAe;QACpC,cAAc,EAAE,eAAe;QAC/B,iBAAiB,EAAE,eAAe;QAClC,cAAc,EAAE,eAAe;QAC/B,iBAAiB,EAAE,eAAe;QAClC,aAAa,EAAE,eAAe;QAC9B,sBAAsB,EAAE,eAAe;QACvC,yBAAyB,EAAE,eAAe;QAC1C,KAAK,EAAE,eAAe;QACtB,cAAc,EAAE,eAAe;QAC/B,QAAQ,EAAE,eAAe;QACzB,kBAAkB,EAAE,eAAe;QACnC,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,eAAe;QACvB,UAAU,EAAE,eAAe;QAC3B,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,eAAe;QACxB,SAAS,EAAE,eAAe;QAC1B,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,eAAe;QACpB,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,eAAe;QACzB,UAAU,EAAE,eAAe;QAC3B,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,eAAe;QACzB,kCAAkC,EAAE,eAAe;QACnD,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,eAAe;QAC1B,uBAAuB,EAAE,eAAe;QACxC,aAAa,EAAE,eAAe;QAC9B,kBAAkB,EAAE,eAAe;QACnC,yBAAyB,EAAE,eAAe;QAC1C,eAAe,EAAE,eAAe;QAChC,wBAAwB,EAAE,eAAe;QACzC,iBAAiB,EAAE,eAAe;QAClC,WAAW,EAAE,eAAe;QAC5B,MAAM,EAAE,eAAe;QACvB,qBAAqB,EAAE,eAAe;QACtC,sBAAsB,EAAE,eAAe;QACvC,eAAe,EAAE,eAAe;QAChC,2BAA2B,EAAE,eAAe;QAC5C,qBAAqB,EAAE,eAAe;QACtC,UAAU,EAAE,eAAe;QAC3B,aAAa,EAAE,eAAe;QAC9B,eAAe,EAAE,eAAe;QAChC,oBAAoB,EAAE,eAAe;QACrC,QAAQ,EAAE,eAAe;QACzB,eAAe,EAAE,eAAe;QAChC,qBAAqB,EAAE,eAAe;QACtC,cAAc,EAAE,eAAe;QAC/B,gCAAgC,EAAE,eAAe;QACjD,wBAAwB,EAAE,eAAe;QACzC,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,eAAe;QACzB,uBAAuB,EAAE,eAAe;QACxC,MAAM,EAAE,eAAe;QACvB,gBAAgB,EAAE,eAAe;QACjC,2BAA2B,EAAE,eAAe;QAC5C,gBAAgB,EAAE,eAAe;QACjC,8BAA8B,EAAE,eAAe;QAC/C,qBAAqB,EAAE,eAAe;QACtC,oBAAoB,EAAE,eAAe;QACrC,WAAW,EAAE,eAAe;QAC5B,UAAU,EAAE,eAAe;QAC3B,eAAe,EAAE,eAAe;QAChC,cAAc,EAAE,eAAe;QAC/B,wBAAwB,EAAE,eAAe;QACzC,aAAa,EAAE,eAAe;QAC9B,UAAU,EAAE,eAAe;QAC3B,0BAA0B,EAAE,eAAe;QAC3C,2BAA2B,EAAE,eAAe;QAC5C,wBAAwB,EAAE,eAAe;QACzC,2BAA2B,EAAE,eAAe;QAC5C,kBAAkB,EAAE,eAAe;QACnC,qBAAqB,EAAE,eAAe;QACtC,iBAAiB,EAAE,eAAe;QAClC,wBAAwB,EAAE,eAAe;QACzC,2BAA2B,EAAE,eAAe;QAC5C,QAAQ,EAAE,eAAe;QACzB,0BAA0B,EAAE,eAAe;QAC3C,SAAS,EAAE,qBAAqB;QAChC,MAAM,EAAE,qBAAqB;QAC7B,OAAO,EAAE,qBAAqB;QAC9B,uBAAuB,EAAE,qBAAqB;QAC9C,cAAc,EAAE,qBAAqB;QACrC,+BAA+B,EAAE,qBAAqB;QACtD,8BAA8B,EAAE,qBAAqB;QACrD,oCAAoC,EAAE,qBAAqB;QAC3D,IAAI,EAAE,qBAAqB;KAC9B,CAAC;IAEK,MAAM,CAAC,QAAQ,CAAC,UAAkB;QACrC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1D,OAAO,IAAI,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,UAAkB;QACtC,OAAO,kBAAkB,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACpE,CAAC;IAEO,MAAM,CAAC,eAAe,CAC1B,GAAW,EACX,KAAa,EACb,MAAe,CAAG,qDAAqD;;QAEvE,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,KAAK,CAAC;QAEd,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAElB,mDAAmD;YACnD,IAAI,MAAM,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM;YACV,CAAC;YAED,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBACd,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/D,GAAG,IAAI,MAAM,CAAC;gBACd,CAAC,GAAG,GAAG,CAAC;gBACR,SAAS;YACb,CAAC;YAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACb,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAClE,GAAG,IAAI,MAAM,CAAC;gBACd,CAAC,GAAG,GAAG,CAAC;gBACR,SAAS;YACb,CAAC;YAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACb,6CAA6C;gBAC7C,GAAG,IAAI,uBAAuB,CAAC;gBAC/B,CAAC,EAAE,CAAC;gBACJ,SAAS;YACb,CAAC;YAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACb,gEAAgE;gBAChE,sDAAsD;gBACtD,sEAAsE;gBACtE,8EAA8E;gBAC9E,IAAI,MAAM,GAAG,GAAG,CAAC;gBACjB,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACrB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;wBACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;wBAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;wBACtE,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;4BAC3C,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;4BAC3D,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC;wBAC5B,CAAC;oBACL,CAAC;gBACL,CAAC;gBACD,MAAM,KAAK,GAAG,kBAAkB,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;gBACtE,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,GAAG,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;gBACnC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;gBAClB,SAAS;YACb,CAAC;YAED,8EAA8E;YAC9E,6EAA6E;YAC7E,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;oBAC/D,GAAG,IAAI,GAAG,CAAC;oBACX,CAAC,EAAE,CAAC;oBACJ,SAAS;gBACb,CAAC;gBACD,MAAM,QAAQ,GAAW,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;oBAClB,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;oBACtD,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACJ,GAAG,IAAI,KAAK,CAAC;oBACb,CAAC,EAAE,CAAC;gBACR,CAAC;gBACD,SAAS;YACb,CAAC;YAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACb,GAAG,IAAI,OAAO,CAAC;gBACf,CAAC,EAAE,CAAC;gBACJ,SAAS;YACb,CAAC;YAED,0DAA0D;YAC1D,2DAA2D;YAC3D,qBAAqB;YACrB,GAAG,IAAI,EAAE,CAAC;YACV,CAAC,EAAE,CAAC;QACR,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACnC,CAAC;IAEO,MAAM,CAAC,WAAW,CACtB,GAAW,EACX,CAAS,CAAG,oBAAoB;;QAEhC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAExB,QAAQ,IAAI,EAAE,CAAC;YACX,iCAAiC;YACjC,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,kBAAkB,CAAC,eAAe,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACxF,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,kBAAkB,CAAC,eAAe,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzF,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,kBAAkB,CAAC,SAAS,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAClF,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,kBAAkB,CAAC,SAAS,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAEnF,0DAA0D;YAC1D,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAE7D,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,kBAAkB,CAAC,UAAU,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACnF,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,kBAAkB,CAAC,UAAU,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAEpF,uDAAuD;YACvD,8DAA8D;YAC9D,uCAAuC;YACvC,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,kBAAkB,CAAC,cAAc,GAAG,+BAA+B,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzH,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,kCAAkC,GAAG,kBAAkB,CAAC,cAAc,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAEvH,mCAAmC;YACnC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACP,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;YAC9E,CAAC;YACD,KAAK,GAAG,CAAC,CAAC,CAAC;gBACP,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YAC7E,CAAC;YAED,wEAAwE;YACxE,+DAA+D;YAC/D,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAE5C,iEAAiE;YACjE,sDAAsD;YACtD,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAEjD,4DAA4D;YAC5D,uDAAuD;YACvD,OAAO,CAAC,CAAC,CAAC;gBACN,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;oBAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,QAAQ,GAAG,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;wBACnE,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;wBACnB,CAAC,EAAE,CAAC;oBACR,CAAC;oBACD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACnC,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI;wBACpB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;wBAC5C,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACjD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBACnC,CAAC;gBACD,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,CAAC;QACL,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,cAAc,CACzB,GAAW,EACX,KAAa,CAAG,4BAA4B;;QAE5C,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;QAC9B,IAAI,MAAM;YAAE,CAAC,EAAE,CAAC;QAEhB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,wDAAwD,GAAG,KAAK,CAAC,CAAC;QACtF,CAAC;QAED,4CAA4C;QAC5C,MAAM,KAAK,GAAoB,EAAE,CAAC;QAClC,IAAI,UAAU,GAAkB,IAAI,CAAC;QAErC,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACtC,qDAAqD;YACrD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5D,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC1B,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;gBACd,MAAM;YACV,CAAC;YAED,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACjB,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,sEAAsE,GAAG,CAAC,CAAC,CAAC;gBAChG,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC9C,CAAC,EAAE,CAAC;gBACJ,SAAS;YACb,CAAC;YAED,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC9D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACJ,KAAK,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,CAAC,EAAE,CAAC;YACR,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+DAA+D,GAAG,KAAK,CAAC,CAAC;QAC7F,CAAC;QACD,CAAC,EAAE,CAAC;QAEJ,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEjE,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACxC,CAAC;QAED,mCAAmC;QACnC,gEAAgE;QAChE,qEAAqE;QACrE,qDAAqD;QACrD,+DAA+D;QAC/D,OAAO;YACH,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG;YACpD,GAAG,EAAE,CAAC;SACT,CAAC;IACN,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,KAAsB,EAAE,MAAe;QAChE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvF,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAE/E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC;QACxD,CAAC;QAED,IAAI,UAAU,KAAK,EAAE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,MAAM;gBACT,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG;gBAC7B,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACvC,CAAC;QAED,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;YACpB,IAAI,MAAM,EAAE,CAAC;gBACT,4DAA4D;gBAC5D,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,MAAM,IAAI,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC9C,CAAC;gBACD,OAAO,MAAM,GAAG,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YACtE,CAAC;YACD,wCAAwC;YACxC,OAAO,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACzE,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,0DAA0D;YAC1D,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrE,OAAO,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,GAAG,CAAC;QAChD,CAAC;QACD,qCAAqC;QACrC,MAAM,KAAK,GAAa,CAAC,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;QACjD,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACtD,OAAO,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACzC,CAAC;IAEO,MAAM,CAAC,sBAAsB,CACjC,GAAW,EACX,CAAS;QAET,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAExB,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACpG,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAG,kBAAkB,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACpG,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9F,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAG,kBAAkB,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9F,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAClF,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAG,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAClF,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/F,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAG,kBAAkB,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/F,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,0BAA0B,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5F,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAG,0BAA0B,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5F,KAAK,GAAG,CAAC,CAAC,CAAC;gBACP,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;YACjG,CAAC;YACD,KAAK,GAAG,CAAC,CAAC,CAAC;gBACP,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,IAAI,EAAG,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;YACjG,CAAC;YACD,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACpE,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACpE,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACpE,OAAO,CAAC,CAAC,CAAC;gBACN,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;oBAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI,QAAQ,GAAG,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;wBACnE,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;wBACnB,CAAC,EAAE,CAAC;oBACR,CAAC;oBACD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACnC,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI;wBACpB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;wBAC5C,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACjD,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAC3D,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACvE,CAAC;QACL,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,IAAY,EAAE,MAAe;QAC1D,0BAA0B;QAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC;mBAC9C,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;YAC3D,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QAClF,CAAC;QAED,2CAA2C;QAC3C,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IACrF,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,IAAY;QAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC;mBAC9C,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IACrF,CAAC;IAEO,MAAM,CAAC,cAAc,CACzB,GAAW,EACX,CAAS,CAAG,sBAAsB;;QAElC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACX,+DAA+D,GAAG,CAAC,CACtE,CAAC;QACN,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACX,iEAAiE,GAAG,CAAC,CACxE,CAAC;QACN,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;IAC7D,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 { 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

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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"}
+1
-0

@@ -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

@@ -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>;
}

@@ -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,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":"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"}
{"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,cAAc;QACV,OAAO,EAAE,CAAC;IACd,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;AA/KD,sDA+KC"}

@@ -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":"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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;

@@ -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":";AAAA;;;;;;;;;;iFAUiF;;;AAEjF,qCAAqC;AACrC,yCAAyD;AACzD,uCAAyC;AAEzC,iDAA2C;AAC3C,mDAA6C;AAC7C,iDAA2C;AAC3C,uDAAiD;AAEjD,mDAA6C;AAC7C,8EAAwE;AAoBxE,MAAa,eAAe;IAEhB,MAAM,CAAC,QAAQ,CAA8B;IAC7C,MAAM,CAAU,MAAM,GAAW,sCAAsC,CAAC;IACxE,MAAM,CAAU,kBAAkB,GAAgB,IAAI,GAAG,CAAS;QACtE,wBAAS,CAAC,0BAA0B;KACvC,CAAC,CAAC;IACH,OAAO,CAAsB;IACrB,WAAW,CAA0D;IACrE,qBAAqB,CAAc;IAC3C,cAAc,CAAc;IAC5B,sBAAsB,CAA0B;IAChD,iBAAiB,CAA0B;IAC3C,yBAAyB,CAA0B;IACnD,oBAAoB,CAAuC;IAC3D,kBAAkB,CAA2B;IAC7C,qBAAqB,CAA0B;IAC/C,iBAAiB,CAA6C;IAC9D,uBAAuB,CAA6C;IACpE,0BAA0B,CAA6C;IACvE,iBAAiB,CAAoB;IAErC,YAAsB,OAAiB;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAsD,CAAC;QACjF,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,IAAI,CAAC,sBAAsB,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC5D,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAsB,CAAC;QACvD,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC/D,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAmC,CAAC;QACvE,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAuB,CAAC;QACzD,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC3D,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAyC,CAAC;QAC1E,IAAI,CAAC,uBAAuB,GAAG,IAAI,GAAG,EAAyC,CAAC;QAChF,IAAI,CAAC,0BAA0B,GAAG,IAAI,GAAG,EAAyC,CAAC;QACnF,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAiB;QAChC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC5B,eAAe,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACjB,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/C,CAAC;QACD,OAAO,eAAe,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED,wBAAwB,CAAC,UAAkB;QACvC,MAAM,cAAc,GAAW,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC9D,MAAM,MAAM,GAA2D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5G,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YACjD,OAAO,IAAI,GAAG,EAAyC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,CAAC;YACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAChC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAiB,EAAE,GAAW,EAAE,EAAE;gBAC/D,MAAM,QAAQ,GAAkC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBACrF,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAO;gBACX,CAAC;gBACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACzE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACxF,CAAC;YACL,CAAC,CAAC,CAAC;YACH,MAAM,QAAQ,GAA+C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACxG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAES,iBAAiB;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,IAAI,CAAC,sBAAsB,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC5D,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAsB,CAAC;QACvD,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC/D,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAmC,CAAC;QACvE,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAuB,CAAC;QACzD,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC3D,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAyC,CAAC;QAC1E,IAAI,CAAC,uBAAuB,GAAG,IAAI,GAAG,EAAyC,CAAC;QAChF,IAAI,CAAC,0BAA0B,GAAG,IAAI,GAAG,EAAyC,CAAC;QACnF,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACxC,CAAC;IAEO,4BAA4B;QAChC,MAAM,QAAQ,GAA4B;YACtC,CAAC,MAAM,EAAG,aAAa,CAAC;YACxB,CAAC,OAAO,EAAE,WAAW,CAAC;YACtB,CAAC,MAAM,EAAG,WAAW,CAAC;YACtB,CAAC,IAAI,EAAK,OAAO,CAAC;SACrB,CAAC;QACF,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;YACvC,MAAM,EAAE,GAAe,IAAI,0BAAU,CAAC,cAAc,CAAC,CAAC;YACtD,EAAE,CAAC,YAAY,CAAC,IAAI,8BAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YACrD,EAAE,CAAC,YAAY,CAAC,IAAI,8BAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YAChD,MAAM,IAAI,GAA4B,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC;YACzF,MAAM,GAAG,GAAW,eAAe,CAAC,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC;YAC7D,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IAES,aAAa,CAAC,MAAkD;QACtE,MAAM,KAAK,GAA+C,IAAI,GAAG,EAAyC,CAAC;QAC3G,MAAM,CAAC,OAAO,CAAC,CAAC,KAAoC,EAAE,GAAW,EAAE,EAAE;YACjE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,wBAAwB,CAAC,MAAqC;QACpE,MAAM,KAAK,GAAkC,IAAI,GAAG,EAA4B,CAAC;QACjF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAuB,EAAE,GAAW,EAAE,EAAE;YACpD,MAAM,IAAI,GAAqB;gBAC3B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;aACrB,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,yBAAyB,CAAC,IAAiB;QACjD,MAAM,QAAQ,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,MAAM,MAAM,GAA8C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/F,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAA4B,CAAC;QAChG,CAAC;QACD,MAAM,WAAW,GAAkC,IAAI,GAAG,EAA4B,CAAC;QACvF,MAAM,YAAY,GAAgB,IAAI,GAAG,EAAU,CAAC;QACpD,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACpG,OAAO,WAAW,CAAC;IACvB,CAAC;IAES,qCAAqC,CAAC,OAAmB,EAAE,WAA0C,EAAE,YAAyB,EAAE,SAAkB;QAC1J,MAAM,QAAQ,GAAsB,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1D,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAe,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,SAAS,KAAK,mBAAmB,EAAE,CAAC;gBACpC,+CAA+C;gBAC/C,IAAI,CAAC,qCAAqC,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;YAC5F,CAAC;QACL,CAAC;QACD,MAAM,QAAQ,GAA6B,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,QAAQ,GAAkC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACvH,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAES,8BAA8B,CAAC,WAAuB,EAAE,WAA0C,EAAE,YAAyB,EAAE,SAAkB;QACvJ,MAAM,aAAa,GAA6B,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACjF,IAAI,aAAa,EAAE,CAAC;YAChB,MAAM,OAAO,GAAW,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;YAC/E,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,OAAO;YACX,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,qCAAqC,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAClG,CAAC;IAES,qCAAqC,CAAC,SAAqB,EAAE,WAA0C,EAAE,YAAyB,EAAE,SAAkB;QAC5J,MAAM,QAAQ,GAAsB,SAAS,CAAC,WAAW,EAAE,CAAC;QAC5D,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAe,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC3D,SAAS;YACb,CAAC;YACD,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;gBACjC,MAAM,YAAY,GAA6B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACzE,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChB,SAAS;gBACb,CAAC;gBACD,MAAM,aAAa,GAAkC,IAAI,CAAC,6BAA6B,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;gBAC5H,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;gBAC3C,SAAS;YACb,CAAC;YACD,IAAI,SAAS,KAAK,mBAAmB,EAAE,CAAC;gBACpC,mFAAmF;gBACnF,IAAI,CAAC,qCAAqC,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;gBACxF,SAAS;YACb,CAAC;YACD,qIAAqI;YACrI,IAAI,SAAS,KAAK,gBAAgB,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;gBAClE,IAAI,CAAC,qCAAqC,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;gBACxF,SAAS;YACb,CAAC;YACD,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;gBAC3D,MAAM,aAAa,GAA6B,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC3E,IAAI,aAAa,EAAE,CAAC;oBAChB,MAAM,YAAY,GAAkC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;oBAChI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gBAC9C,CAAC;gBACD,IAAI,CAAC,qCAAqC,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;gBACxF,SAAS;YACb,CAAC;YACD,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;YACrF,CAAC;QACL,CAAC;IACL,CAAC;IAES,sBAAsB,CAAC,gBAA4B,EAAE,WAA0C,EAAE,SAAkB;QACzH,MAAM,gBAAgB,GAA6B,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5F,MAAM,cAAc,GAA6B,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACxF,IAAI,cAAc,GAA6B,gBAAgB,IAAI,cAAc,CAAC;QAClF,MAAM,aAAa,GAA6B,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACtF,MAAM,YAAY,GAA6B,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpF,MAAM,YAAY,GAA6B,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpF,MAAM,oBAAoB,GAAwC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtJ,MAAM,iBAAiB,GAA2B,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAClH,IAAI,kBAAkB,GAAuB,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/G,IAAI,WAAW,GAAuB,SAAS,CAAC;QAChD,IAAI,kBAAkB,GAAuB,SAAS,CAAC;QACvD,IAAI,YAAY,EAAE,CAAC;YACf,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YACtC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,aAAa,EAAE,CAAC;YACvB,kBAAkB,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC9C,WAAW,GAAG,kBAAkB,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,kBAAkB,IAAI,iBAAiB,EAAE,CAAC;YAC3C,MAAM,cAAc,GAA6B,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACxF,IAAI,cAAc,EAAE,CAAC;gBACjB,kBAAkB,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC/C,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC5C,CAAC;QACL,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,MAAM,aAAa,GAA6B,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACtF,IAAI,aAAa,IAAI,aAAa,CAAC,QAAQ,EAAE,KAAK,WAAW,EAAE,CAAC;gBAC5D,kBAAkB,GAAG,SAAS,CAAC;YACnC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAC;YACrC,WAAW,GAAG,kBAAkB,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QACD,IAAI,YAAY,IAAI,YAAY,CAAC,QAAQ,EAAE,KAAK,YAAY,EAAE,CAAC;YAC3D,MAAM,aAAa,GAAW,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;YAC7F,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,kBAAkB,EAAE,CAAC;gBACrB,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO;QACX,CAAC;QACD,IAAI,CAAC,cAAc,IAAI,iBAAiB,EAAE,CAAC;YACvC,MAAM,eAAe,GAA6B,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC1F,MAAM,iBAAiB,GAA6B,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9F,cAAc,GAAG,iBAAiB,IAAI,eAAe,IAAI,SAAS,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,OAAO;QACX,CAAC;QACD,MAAM,WAAW,GAAqB;YAClC,SAAS,EAAE,kBAAkB;YAC7B,SAAS,EAAE,kBAAkB;YAC7B,WAAW,EAAE,WAAW,IAAI,kBAAkB;YAC9C,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE;SACnC,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IAES,mBAAmB,CAAC,QAAgB,EAAE,SAAkB,EAAE,YAA0B;QAC1F,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,GAAG,GAAW,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,MAAM,GAA8C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChG,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,UAAU,GAA2B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,IAAI,GAAG,EAA4B,CAAC;QAC/C,CAAC;QACD,MAAM,OAAO,GAAgB,YAAY,CAAC,CAAC,CAAC,IAAI,GAAG,CAAS,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QAC9F,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,IAAI,GAAG,EAA4B,CAAC;QAC/C,CAAC;QACD,MAAM,WAAW,GAAkC,IAAI,GAAG,EAA4B,CAAC;QACvF,IAAI,CAAC,8BAA8B,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACjF,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC;QAClF,OAAO,WAAW,CAAC;IACvB,CAAC;IAES,6BAA6B,CAAC,SAAiB,EAAE,SAAkB,EAAE,aAA2B;QACtG,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,GAAG,GAAW,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,MAAM,GAA8C,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnG,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,UAAU,GAA2B,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,IAAI,GAAG,EAA4B,CAAC;QAC/C,CAAC;QACD,MAAM,OAAO,GAAgB,aAAa,CAAC,CAAC,CAAC,IAAI,GAAG,CAAS,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QAChG,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,IAAI,GAAG,EAA4B,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,WAAW,GAAkC,IAAI,GAAG,EAA4B,CAAC;QACvF,MAAM,QAAQ,GAAsB,UAAU,CAAC,WAAW,EAAE,CAAC;QAC7D,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAe,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,cAAc,GAAW,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;gBACjC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC3D,SAAS;YACb,CAAC;YACD,IAAI,cAAc,KAAK,gBAAgB,EAAE,CAAC;gBACtC,MAAM,YAAY,GAA6B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACzE,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChB,SAAS;gBACb,CAAC;gBACD,MAAM,cAAc,GAAkC,IAAI,CAAC,6BAA6B,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBACtI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;QACD,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC;QACrF,OAAO,WAAW,CAAC;IACvB,CAAC;IAES,iBAAiB,CAAC,QAAgB;QACxC,MAAM,MAAM,GAA2B,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjF,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,OAAO,GAA2B,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnF,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAAgC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/F,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAyB,OAAO,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,YAAY,GAAW,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBACvE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,yBAAyB,CAAC,QAAgB;QAChD,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;IAES,oBAAoB,CAAC,SAAiB;QAC5C,MAAM,MAAM,GAA2B,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrF,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,OAAO,GAA2B,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtF,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAAgC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC,CAAC;QAClG,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAyB,OAAO,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,YAAY,GAAW,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBACvE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,iCAAiC,CAAC,SAAiB;QACzD,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,OAAO,GAAgC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,CAAC,CAAC;QAClG,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAW,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAW,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7D,MAAM,EAAE,GAAW,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC5E,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAA2B,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrF,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QACrD,CAAC;QACD,MAAM,OAAO,GAA2B,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtF,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QACtD,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,8BAA8B,CAAC,QAAgB;QACrD,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,OAAO,GAAgC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/F,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAW,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAW,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7D,MAAM,EAAE,GAAW,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC7C,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC5E,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAA2B,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjF,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QACrD,CAAC;QACD,MAAM,OAAO,GAA2B,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnF,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QACtD,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,eAAe,CAAC,IAAY,EAAE,SAAkB;QACtD,MAAM,MAAM,GAAwC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxF,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,aAAa,GAAW,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAwC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtG,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,WAAW,CAAC;QACvB,CAAC;QACD,MAAM,OAAO,GAAwC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9F,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,OAAO,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAA6C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1G,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAsC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,YAAY,GAAW,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,SAAS,CAAC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBACvE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,SAAS,CAAC,MAAqC,EAAE,MAAqC;QAC5F,MAAM,CAAC,OAAO,CAAC,CAAC,KAAuB,EAAE,EAAE;YACvC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC;IAES,UAAU,CAAC,UAAkB,EAAE,wBAAwC;QAC7E,MAAM,cAAc,GAAW,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,OAAO;QACX,CAAC;QACD,IAAI,CAAC,IAAA,oBAAU,EAAC,cAAc,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACxC,MAAM,UAAU,GAAe,IAAI,0BAAU,EAAE,CAAC;QAChD,MAAM,MAAM,GAAc,IAAI,wBAAS,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACjC,MAAM,QAAQ,GAA4B,UAAU,CAAC,WAAW,EAAE,CAAC;QACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO;QACX,CAAC;QACD,MAAM,IAAI,GAA2B,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;QACX,CAAC;QACD,MAAM,wBAAwB,GAA6B,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAChG,MAAM,eAAe,GAAuB,wBAAwB,CAAC,CAAC,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACvH,IAAI,wBAAwB,KAAK,SAAS,EAAE,CAAC;YACzC,8CAAoB,CAAC,sBAAsB,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChI,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACrD,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,IAAA,mBAAO,EAAC,cAAc,CAAC,CAAC,CAAC;IAChE,CAAC;IAES,uBAAuB,CAAC,aAAyB,EAAE,OAAe;QACxE,MAAM,QAAQ,GAAsB,aAAa,CAAC,WAAW,EAAE,CAAC;QAChE,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAe,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAChF,SAAS;YACb,CAAC;YACD,MAAM,iBAAiB,GAA6B,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YACzF,MAAM,kBAAkB,GAA6B,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACrF,MAAM,QAAQ,GAAuB,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAClG,MAAM,cAAc,GAAuB,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1G,IAAI,cAAc,IAAI,eAAe,CAAC,qBAAqB,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC1E,SAAS;YACb,CAAC;YACD,MAAM,QAAQ,GAAuB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YAC9F,IAAI,QAAQ,EAAE,CAAC;gBACX,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC1B,MAAM,eAAe,GAA6B,aAAa,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;oBAChG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjG,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;YACL,CAAC;YACD,mGAAmG;YACnG,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC3B,MAAM,YAAY,GAA6B,aAAa,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;gBAC7F,MAAM,eAAe,GAAuB,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/F,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;IACL,CAAC;IAES,kBAAkB,CAAC,eAA2B,EAAE,eAAwB;QAC9E,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;YAChD,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAA6B,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBAC5B,MAAM,QAAQ,GAAW,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;gBACnE,MAAM,QAAQ,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACrD,yEAAyE;gBACzE,MAAM,QAAQ,GACV,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC;uBACnC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC;uBACzC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACjD,IAAI,QAAQ,EAAE,CAAC;oBACX,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAC/C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAC5C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACnD,CAAC;gBACD,8CAA8C;gBAC9C,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACjD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,YAAoB;QAC7C,OAAO,eAAe,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChE,CAAC;IAES,wBAAwB,CAAC,aAAyB,EAAE,eAAwB;QAClF,MAAM,QAAQ,GAAsB,aAAa,CAAC,WAAW,EAAE,CAAC;QAChE,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAe,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,aAAa,GAA6B,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC3E,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,SAAS;gBACb,CAAC;gBACD,MAAM,WAAW,GAAW,aAAa,CAAC,QAAQ,EAAE,CAAC;gBACrD,MAAM,GAAG,GAAW,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;gBACvE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpC,MAAM,IAAI,GAAgB;wBACtB,OAAO,EAAE,KAAK;wBACd,SAAS,EAAE,eAAe;wBAC1B,SAAS,EAAE,WAAW;qBACzB,CAAC;oBACF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC3C,CAAC;gBACD,SAAS;YACb,CAAC;YACD,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;gBAC9B,MAAM,aAAa,GAA6B,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC3E,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,SAAS;gBACb,CAAC;gBACD,MAAM,QAAQ,GAAW,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAClD,MAAM,GAAG,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;gBACjE,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAChD,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM,QAAQ,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACrD,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACrD,CAAC;gBACD,SAAS;YACb,CAAC;YACD,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;gBACjC,MAAM,aAAa,GAA6B,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC3E,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,SAAS;gBACb,CAAC;gBACD,MAAM,SAAS,GAAW,aAAa,CAAC,QAAQ,EAAE,CAAC;gBACnD,MAAM,GAAG,GAAW,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;gBAClE,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3C,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACnD,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACjD,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM,QAAQ,GAAW,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChD,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACxD,CAAC;gBACD,SAAS;YACb,CAAC;YACD,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;gBAC5B,MAAM,aAAa,GAA6B,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC3E,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,SAAS;gBACb,CAAC;gBACD,MAAM,aAAa,GAAW,aAAa,CAAC,QAAQ,EAAE,CAAC;gBACvD,MAAM,GAAG,GAAW,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;gBAC3E,MAAM,IAAI,GAA4B;oBAClC,OAAO,EAAE,KAAK;oBACd,SAAS,EAAE,eAAe;iBAC7B,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC7C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;oBAChD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACvD,CAAC;gBACD,MAAM,QAAQ,GAAW,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC1D,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAClD,CAAC;gBACD,SAAS;YACb,CAAC;YACD,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;gBAC7B,MAAM,aAAa,GAA6B,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC3E,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,SAAS;gBACb,CAAC;gBACD,MAAM,QAAQ,GAAW,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACpD,CAAC;gBACD,IAAI,eAAe,EAAE,CAAC;oBAClB,MAAM,KAAK,GAAW,eAAe,GAAG,GAAG,GAAG,QAAQ,CAAC;oBACvD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACjD,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAES,gBAAgB,CAAC,QAA4B,EAAE,OAAe,EAAE,cAAuB;QAC7F,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,UAAU,GAA8B,EAAE,CAAC;YACjD,IAAI,QAAQ,EAAE,CAAC;gBACX,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,cAAc,EAAE,CAAC;gBACjB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;gBACvD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACjC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACb,SAAS;gBACb,CAAC;gBACD,MAAM,mBAAmB,GAAW,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC3G,IAAI,IAAA,oBAAU,EAAC,mBAAmB,CAAC,EAAE,CAAC;oBAClC,OAAO,mBAAmB,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACpE,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,MAAM,iBAAiB,GAAW,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC;YAC1D,IAAI,IAAA,oBAAU,EAAC,iBAAiB,CAAC,EAAE,CAAC;gBAChC,OAAO,iBAAiB,CAAC;YAC7B,CAAC;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,IAAA,sBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,IAAI,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACvB,OAAO,QAAQ,CAAC;YACpB,CAAC;YACD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,YAAY,GAAW,IAAA,mBAAO,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,IAAA,oBAAU,EAAC,YAAY,CAAC,EAAE,CAAC;YAC3B,OAAO,YAAY,CAAC;QACxB,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,aAAa,CAAC,QAAgB;QACpC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,OAAO,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,IAAA,sBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,OAAO,QAAQ,CAAC;QACpB,CAAC;QACD,OAAO,IAAA,mBAAO,EAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAES,YAAY,CAAC,IAAY;QAC/B,MAAM,cAAc,GAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IAES,eAAe,CAAC,IAAY,EAAE,SAAkB;QACtD,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,YAAY,CAAC,IAAY,EAAE,SAAkB;QACnD,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,GAAG,SAAS,IAAI,SAAS,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,iBAAiB,CAAC,IAAY,EAAE,SAAkB;QACxD,MAAM,SAAS,GAAW,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC;QACvC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,mBAAmB,CAAC,MAAqC,EAAE,KAAuB;QACxF,MAAM,GAAG,GAAW,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAkB,EAAE,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,CAAC,QAA0B,EAAE,WAAmB,EAAE,EAAE;YAC/D,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;gBACzC,OAAO;YACX,CAAC;YACD,MAAM,aAAa,GAAY,QAAQ,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC;YACtE,IAAI,aAAa,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;gBACvC,OAAO;YACX,CAAC;YACD,IAAI,aAAa,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5D,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,KAAK,IAAI,KAAK,GAAW,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/D,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,MAAM,GAAqB;YAC7B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;SACrB,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC;;AA5wBL,0CA8wBC"}

@@ -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>;
}

@@ -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";

@@ -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":"AAAA;;;;;;;;;;iFAUiF;AAQjF,MAAM,OAAO,kBAAkB;IAEnB,MAAM,CAAuB;IAC7B,OAAO,CAAsB;IAC7B,OAAO,CAAsB;IAErC;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAiB,CAAC;IAC7C,CAAC;IAED,UAAU;QACN,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAiB,CAAC;IAC7C,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,cAAc;QACV,OAAO,EAAE,CAAC;IACd,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,aAAa;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,WAAW;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,QAAgB,EAAE,UAA8B;QAC5E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,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,MAAM,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,UAAU;SACzB,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,IAAY;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CAAC,WAAmB;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,WAAW;SAC3B,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CAAC,EAAU;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB,CAAC,EAAU;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,EAAU;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB,CAAC,MAAc,EAAE,IAAY;QAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;IAED,UAAU;QACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAgB;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,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,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,aAAa,CAAC,IAAY;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,IAAI;SACb,CAAC,CAAC;IACP,CAAC;CACJ"}

@@ -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":"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"}

@@ -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;

@@ -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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"}
{
"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"
}
}

@@ -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