@wikipathways/cxml
Version:
Advanced schema-aware streaming XML parser
29 lines • 5.27 kB
JavaScript
;
// This file is part of cxml, copyright (c) 2016 BusFaster Ltd.
// Released under the MIT license, see LICENSE.
Object.defineProperty(exports, "__esModule", { value: true });
/** Base class inherited by all schema type classes, not defining custom hooks. */
var Member = /** @class */ (function () {
function Member() {
}
return Member;
}());
exports.Member = Member;
/** Parser rule, defines a handler class, valid attributes and children
* for an XSD tag. */
var Rule = /** @class */ (function () {
function Rule(handler) {
/** Table of allowed attributes. */
this.attributeTbl = {};
this.handler = handler;
}
Rule.prototype.addAttribute = function (ref) {
this.attributeTbl[ref.member.namespace.getPrefix() + ref.member.name] = ref;
};
Rule.prototype.addChild = function (ref) {
this.childTbl[ref.member.namespace.getPrefix() + ref.member.name] = ref;
};
return Rule;
}());
exports.Rule = Rule;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXIvUnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0RBQStEO0FBQy9ELCtDQUErQzs7QUFvQi9DLGtGQUFrRjtBQUVsRjtJQUFBO0lBT0EsQ0FBQztJQUFELGFBQUM7QUFBRCxDQUFDLEFBUEQsSUFPQztBQVBZLHdCQUFNO0FBeUJuQjtzQkFDc0I7QUFFdEI7SUFDQyxjQUFZLE9BQWtCO1FBaUI5QixtQ0FBbUM7UUFDbkMsaUJBQVksR0FBaUMsRUFBRSxDQUFDO1FBakIvQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsMkJBQVksR0FBWixVQUFhLEdBQWM7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUM3RSxDQUFDO0lBRUQsdUJBQVEsR0FBUixVQUFTLEdBQWM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN6RSxDQUFDO0lBdUJGLFdBQUM7QUFBRCxDQUFDLEFBbENELElBa0NDO0FBbENZLG9CQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBmaWxlIGlzIHBhcnQgb2YgY3htbCwgY29weXJpZ2h0IChjKSAyMDE2IEJ1c0Zhc3RlciBMdGQuXG4vLyBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UsIHNlZSBMSUNFTlNFLlxuXG5pbXBvcnQge05hbWVzcGFjZX0gZnJvbSAnLi4veG1sL05hbWVzcGFjZSc7XG5pbXBvcnQge01lbWJlclJlZn0gZnJvbSAnLi4veG1sL01lbWJlclJlZic7XG5cbi8qKiBJbnRlcmZhY2UgaW1wbGVtZW50ZWQgYnkgc2NoZW1hIHR5cGUgY2xhc3NlcywgYWxsb3dpbmcgY3VzdG9tIGhvb2tzLiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIEhhbmRsZXJJbnN0YW5jZSB7XG5cdFtrZXk6IHN0cmluZ106IGFueTtcblxuXHRjb250ZW50PzogYW55O1xuXHRfZXhpc3RzOiBib29sZWFuO1xuXHRfbmFtZXNwYWNlOiBzdHJpbmc7XG5cdF9wYXJlbnQ/OiBIYW5kbGVySW5zdGFuY2U7XG5cdF9uYW1lPzogc3RyaW5nO1xuXG5cdF9iZWZvcmU/KCk6IHZvaWQ7XG5cdF9hZnRlcj8oKTogdm9pZDtcbn1cblxuLyoqIEJhc2UgY2xhc3MgaW5oZXJpdGVkIGJ5IGFsbCBzY2hlbWEgdHlwZSBjbGFzc2VzLCBub3QgZGVmaW5pbmcgY3VzdG9tIGhvb2tzLiAqL1xuXG5leHBvcnQgY2xhc3MgTWVtYmVyIGltcGxlbWVudHMgSGFuZGxlckluc3RhbmNlIHtcblx0LyoqIE5hbWUgb2YgdGhlIHR5cGUsIHBvaW50aW5nIHRvIHRoZSBuYW1lIG9mIHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbi5cblx0ICAqIE1pZ2h0IGNvbnRhaW4gZ2FyYmFnZS4uLiAqL1xuXHQvLyBzdGF0aWMgbmFtZTogc3RyaW5nO1xuXHQvLyBzdGF0aWMgdHlwZTogVHlwZTtcblx0X2V4aXN0czogYm9vbGVhbjtcblx0X25hbWVzcGFjZTogc3RyaW5nO1xufVxuXG4vKiogQ2xhc3MgdHlwZSBjb21wYXRpYmxlIHdpdGggc2NoZW1hIHR5cGUgY2xhc3Nlcy4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBSdWxlQ2xhc3Mge1xuXHRuZXcoKTogTWVtYmVyO1xuXG5cdHJ1bGU/OiBSdWxlO1xufVxuXG4vKiogQ2xhc3MgdHlwZSBjb21wYXRpYmxlIHdpdGggc2NoZW1hIHR5cGUgY2xhc3NlcywgYWxsb3dpbmcgY3VzdG9tIGhvb2tzLiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIEhhbmRsZXJDbGFzcyBleHRlbmRzIFJ1bGVDbGFzcyB7XG5cdG5ldygpOiBIYW5kbGVySW5zdGFuY2U7XG5cblx0X2N1c3RvbT86IGJvb2xlYW47XG59XG5cbi8qKiBQYXJzZXIgcnVsZSwgZGVmaW5lcyBhIGhhbmRsZXIgY2xhc3MsIHZhbGlkIGF0dHJpYnV0ZXMgYW5kIGNoaWxkcmVuXG4gICogZm9yIGFuIFhTRCB0YWcuICovXG5cbmV4cG9ydCBjbGFzcyBSdWxlIHtcblx0Y29uc3RydWN0b3IoaGFuZGxlcjogUnVsZUNsYXNzKSB7XG5cdFx0dGhpcy5oYW5kbGVyID0gaGFuZGxlcjtcblx0fVxuXG5cdGFkZEF0dHJpYnV0ZShyZWY6IE1lbWJlclJlZikge1xuXHRcdHRoaXMuYXR0cmlidXRlVGJsW3JlZi5tZW1iZXIubmFtZXNwYWNlLmdldFByZWZpeCgpICsgcmVmLm1lbWJlci5uYW1lXSA9IHJlZjtcblx0fVxuXG5cdGFkZENoaWxkKHJlZjogTWVtYmVyUmVmKSB7XG5cdFx0dGhpcy5jaGlsZFRibFtyZWYubWVtYmVyLm5hbWVzcGFjZS5nZXRQcmVmaXgoKSArIHJlZi5tZW1iZXIubmFtZV0gPSByZWY7XG5cdH1cblxuXHRuYW1lc3BhY2U6IE5hbWVzcGFjZTtcblxuXHQvKiogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIG9iamVjdHMgaGFuZGxpbmcgYW5kIHJlcHJlc2VudGluZyB0aGUgcmVzdWx0cyBvZiB0aGlzIHBhcnNpbmcgcnVsZS4gKi9cblx0aGFuZGxlcjogSGFuZGxlckNsYXNzO1xuXG5cdC8qKiBUYWJsZSBvZiBhbGxvd2VkIGF0dHJpYnV0ZXMuICovXG5cdGF0dHJpYnV0ZVRibDogeyBba2V5OiBzdHJpbmddOiBNZW1iZXJSZWYgfSA9IHt9O1xuXG5cdC8qKiBUYWJsZSBtYXBwaW5nIHRoZSBuYW1lcyBvZiBhbGxvd2VkIGNoaWxkIHRhZ3MsIHRvIHRoZWlyIHBhcnNpbmcgcnVsZXMuICovXG5cdGNoaWxkVGJsOiB7IFtrZXk6IHN0cmluZ106IE1lbWJlclJlZiB9O1xuXG5cdC8qKiBUeXBlIGhhcyB0ZXh0IGNvbnRlbnQgcmVwcmVzZW50YWJsZSBhcyBKYXZhU2NyaXB0IHByaW1pdGl2ZXMuICovXG5cdGlzUHJpbWl0aXZlOiBib29sZWFuO1xuXHQvKiogUHJpbWl0aXZlIHR5cGUgaXMgaW5oZXJpdGVkIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgYXR0cmlidXRlc1xuXHQgICogb3IgY2hpbGRyZW4sIHNvIGlzIGNhbiBiZSByZXByZXNlbnRlZCBhcyBhIEphdmFTY3JpcHQgcHJpbWl0aXZlLiAqL1xuXHRpc1BsYWluUHJpbWl0aXZlOiBib29sZWFuO1xuXHQvKiogVGV4dCBjb250ZW50IGlzIGEgd2hpdGVzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBwcmltaXRpdmUgdHlwZXMuICovXG5cdGlzTGlzdDogYm9vbGVhbjtcblxuXHQvKiogSmF2YVNjcmlwdCBwcmltaXRpdmUgdHlwZSB0aGF0IGNhbiByZXByZXNlbnQgdGhlIHRleHQgY29udGVudC4gKi9cblx0cHJpbWl0aXZlVHlwZTogc3RyaW5nO1xufVxuIl19