UNPKG

typesxml

Version:

Open source XML library written in TypeScript

129 lines (128 loc) 5.31 kB
/******************************************************************************* * Copyright (c) 2023-2026 Maxprograms. * * This program and the accompanying materials * are made available under the terms of the Eclipse 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 { Readable } from "node:stream"; import { Catalog } from "./Catalog.js"; import { ContentHandler } from "./ContentHandler.js"; import { FileReader } from "./FileReader.js"; import { StreamReader } from "./StreamReader.js"; import { StringReader } from "./StringReader.js"; import { XMLAttribute } from "./XMLAttribute.js"; import { type AttributeDefault } from "./XMLSchemaParser.js"; export interface ParseSourceOptions { basePath?: string; pseudoFileName?: string; virtualPath?: string; } export interface StreamParseOptions extends ParseSourceOptions { encoding?: BufferEncoding; } export type ParserInputSource = FileReader | StringReader | StreamReader; type SchemaAttributeDefault = AttributeDefault; export declare class SAXParser { private static readonly SUPPORTED_ENCODINGS; private static readonly ENCODING_NAME_PATTERN; contentHandler: ContentHandler | undefined; reader: ParserInputSource | undefined; pointer: number; buffer: string; elementStack: number; elementNameStack: string[]; childrenNames: Array<string[]>; characterRun: string; rootParsed: boolean; xmlVersion: string; currentFile: string | undefined; catalog: Catalog | undefined; validating: boolean; relaxNGDefaultAttributes: Map<string, Map<string, SchemaAttributeDefault>>; schemaDefaultAttributes: Map<string, Map<string, SchemaAttributeDefault>>; processedSchemaLocations: Set<string>; failedSchemaLocations: Set<string>; namespaceContextStack: Array<Map<string, string>>; processedNamespaces: Set<string>; failedNamespaces: Set<string>; isRelaxNG: boolean; static readonly DEFAULT_VIRTUAL_FILENAME: string; streamingMode: boolean; sourceEnded: boolean; documentStarted: boolean; documentEnded: boolean; inCDATASection: boolean; pendingCR: boolean; readingFromFile: boolean; internalSubsetApplied: boolean; xmlDeclarationParsed: boolean; leadingContentBeforeXmlDeclaration: boolean; schemaLoadingEnabled: boolean; constructor(); setContentHandler(contentHandler: ContentHandler): void; setCatalog(catalog: Catalog): void; setValidating(validating: boolean): void; setSchemaLoadingEnabled(enabled: boolean): void; parseFile(path: string, encoding?: BufferEncoding): void; parseString(data: string, options?: ParseSourceOptions): void; parseStream(stream: Readable, options?: StreamParseOptions): Promise<void>; initializeParsing(reader: ParserInputSource, currentFilePath: string): void; processSynchronous(): void; processStreaming(finalizing: boolean): void; resolveVirtualPath(options?: ParseSourceOptions): string; tryReadMore(): boolean; private appendToBuffer; private flushPendingCR; ensureDocumentClosed(): void; ensureLookahead(minRemaining: number): void; readDocument(): void; parseEntityReference(): void; startElement(): void; endElement(): void; validateElement(name: string, namespace: string): void; getDefaultAttributes(elementName: string, attributes: Array<XMLAttribute>): Array<XMLAttribute>; private appendSchemaDefaultsForElement; private resolveSchemaAttributeQualifiedName; private findNamespacePrefix; private buildSchemaAttributeKey; private buildNamespaceContext; protected handleNamespaceDeclarations(attributes: Map<string, string>, namespaceContext: Map<string, string>, previousContext?: Map<string, string>): void; private propagateNamespaceToGrammar; private handleSchemaLocationAttributes; protected tryLoadSchemaForNamespace(namespaceUri: string): void; private processSchemaReference; protected loadSchemaDefaults(resolvedPath: string, identifier: string): boolean; private resolveSchemaLocation; resolveHttp(url: string): string | undefined; private mergeSchemaDefaults; private splitQualifiedName; protected getNamespaceUriForElement(elementName: string): string | undefined; cleanCharacterRun(): void; parseComment(): void; parseProcessingInstruction(): void; parseRelaxNG(href: string): void; private processInternalSubset; parseDoctype(): void; private processExternalSubset; private resolveExternalSubsetLocation; parsePublicDeclaration(): string[]; parseSystemDeclaration(): string; parseXMLDeclaration(): void; lookingAt(text: string): boolean; private parseAttributePairs; parseAttributes(text: string): Map<string, string>; private validateEncodingValue; private normalizeDTDAttributes; private normalizeAttributeValue; private containsNumericCharReference; private decodeAttributeEntities; private expandEntityReplacement; startCDATA(): void; endCDATA(): void; } export {};