diff --git a/libxmljs/libxmljs-tests.ts b/libxmljs/libxmljs-tests.ts index bf73a6d98d..fbc8628185 100644 --- a/libxmljs/libxmljs-tests.ts +++ b/libxmljs/libxmljs-tests.ts @@ -10,7 +10,7 @@ var xml = '' + 'with content!' + ''; -var xmlDoc = libxmljs.parseXmlString(xml); +var xmlDoc = libxmljs.parseXml(xml); // xpath queries var gchild = xmlDoc.get('//grandchild'); diff --git a/libxmljs/libxmljs.d.ts b/libxmljs/libxmljs.d.ts index bb0f5ba292..045e43f103 100644 --- a/libxmljs/libxmljs.d.ts +++ b/libxmljs/libxmljs.d.ts @@ -1,9 +1,16 @@ -// Type definitions for Libxmljs +// Type definitions for Libxmljs v0.14.2 // Project: https://github.com/polotek/libxmljs // Definitions by: François de Campredon // Definitions: https://github.com/borisyankov/DefinitelyTyped +/// + declare module "libxmljs" { + + import events = require('events'); + + export function parseXml(source:string):XMLDocument; + export function parseHtml(source:string):HTMLDocument; export function parseXmlString(source:string):XMLDocument; export function parseHtmlString(source:string):HTMLDocument; @@ -20,6 +27,8 @@ declare module "libxmljs" { node(name:string, content:string):Element; root():Element; toString():string; + validate(xsdDoc:XMLDocument): boolean; + validationErrors: XmlError[]; version():Number; } @@ -34,25 +43,25 @@ declare module "libxmljs" { name(newName:string):void; text():string; attr(name:string):string; - attr(attr:Attribute); + attr(attr:Attribute):void; attr(attrObject:{[key:string]:string;}):void; attrs():Attribute[]; parent():Element; doc():XMLDocument; child(idx:number):Element; childNodes():Element[]; - addChild(child:Element); + addChild(child:Element):Element; nextSibling():Element; nextElement():Element; addNextSibling(siblingNode:Element):Element; prevSibling():Element; prevElement():Element; - addPrevSibling(siblingNode:Element); + addPrevSibling(siblingNode:Element):Element; find(xpath:string):Element[]; find(xpath:string, ns_uri:string):Element[]; get(xpath:string, ns_uri:string):Element; find(xpath:string, namespaces:{[key:string]:string;}):Element[]; - get(xpath, ns_uri:{[key:string]:string;}):Element; + get(xpath:string, ns_uri:{[key:string]:string;}):Element; defineNamespace(href:string):Namespace; defineNamespace(prefix:string, href:string):Namespace; namespace():Namespace; @@ -84,28 +93,22 @@ declare module "libxmljs" { prefix():string; } - export class SaxParser { + export class SaxParser extends events.EventEmitter { parseString(source:string):boolean; - addListener(event: string, listener: Function); - on(event: string, listener: Function): any; - once(event: string, listener: Function): void; - removeListener(event: string, listener: Function): void; - removeAllListener(event: string): void; - setMaxListeners(n: number): void; - listeners(event: string): { Function; }[]; - emit(event: string, arg1?: any, arg2?: any): void; } - export class SaxPushParser { + export class SaxPushParser extends events.EventEmitter { push(source:string):boolean; - addListener(event: string, listener: Function); - on(event: string, listener: Function): any; - once(event: string, listener: Function): void; - removeListener(event: string, listener: Function): void; - removeAllListener(event: string): void; - setMaxListeners(n: number): void; - listeners(event: string): { Function; }[]; - emit(event: string, arg1?: any, arg2?: any): void; } -} \ No newline at end of file + + export interface XmlError { + domain: number; + code: number; + message: string; + level: number; + file?: string; + column: number; + line: number; + } +}