import { IObjectDefinition, IResource, IObjectDefinitionRegistry } from '../../interfaces'; import { ObjectConfiguration } from '../../base/configuration'; import { IXmlParser, IParserContext, IObjectDefinitionParser } from './interface'; import { XmlObjectElementParser } from './xmlObjectElementParser'; export declare class ParserContext extends Map implements IParserContext { defaults: IObjectDefinition; parser: XmlObjectDefinitionParser; currentResource: IResource; constructor(defaults: IObjectDefinition, parser: XmlObjectDefinitionParser); } export declare class XmlObjectDefinitionParser implements IXmlParser { private parsers; objectElementParser: XmlObjectElementParser; baseDir: string; registry: IObjectDefinitionRegistry; configuration: ObjectConfiguration; constructor(baseDir: string, registry: IObjectDefinitionRegistry); registerParser(parser: IObjectDefinitionParser): void; removeParser(parser: IObjectDefinitionParser): void; hasParser(name: string): boolean; getParser(name: string): IObjectDefinitionParser; registerDefinition(definition: IObjectDefinition): void; parse(root: Element, context: IParserContext): void; /** * 用于外部继承实现parse custom element内部使用 * @param definition 当前definition * @param ele xml elemnt * @param context see ParserContext */ parseElementNodes(definition: IObjectDefinition, ele: Element, context: IParserContext): void; parseObjectsElement(ele: Element, context: IParserContext): void; parseObjectElement(ele: Element, context: IParserContext): void; parseImportElement(ele: Element, context: IParserContext): void; parseConfigurationElement(ele: Element, context: IParserContext): void; parseCustomElement(ele: Element, context: IParserContext): void; load(res: IResource): void; _createResource(path: string, external: boolean, context: IParserContext): IResource; }