You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
372 lines
13 KiB
372 lines
13 KiB
// https://gist.github.com/13xforever/cb24b9e2f3335c296eb2
|
|
declare module ActiveX {
|
|
export interface IXMLDOMNode {
|
|
attributes: IXMLDOMNamedNodeMap;
|
|
baseName?: string;
|
|
childNodes: IXMLDOMNodeList;
|
|
dataType?: string;
|
|
definition?: IXMLDOMNode;
|
|
firstChild: IXMLDOMNode;
|
|
lastChild: IXMLDOMNode;
|
|
namespaceURI?: string;
|
|
nextSibling: IXMLDOMNode;
|
|
nodeName: string;
|
|
nodeType: IXMLDOMNodeType;
|
|
nodeTypedValue?: any;
|
|
nodeTypeString?: string;
|
|
nodeValue: any;
|
|
ownerDocument: IXMLDOMDocument;
|
|
parentNode: IXMLDOMNode;
|
|
parsed?: boolean;
|
|
prefix?: string;
|
|
previousSibling: IXMLDOMNode;
|
|
specified?: boolean;
|
|
text?: string;
|
|
xml?: string;
|
|
|
|
appendChild(newChild: IXMLDOMNode): IXMLDOMNode;
|
|
cloneNode(deep: boolean): IXMLDOMNode;
|
|
hasChildNodes(): boolean;
|
|
insertBefore(newChild: IXMLDOMNode, refChild: IXMLDOMNode): IXMLDOMNode; //todo: refChild supposed to be variant
|
|
removeChild(childNode: IXMLDOMNode): IXMLDOMNode;
|
|
replaceChild(newChild: IXMLDOMNode, oldChild: IXMLDOMNode): IXMLDOMNode;
|
|
save?(destination: any): void;
|
|
selectNodes?(expression: string): IXMLDOMNodeList;
|
|
selectSingleNode?(query: string): IXMLDOMNode;
|
|
transformNode?(stylesheet: IXMLDOMNode): string;
|
|
transformNodeToObject?(stylesheet: IXMLDOMNode, outputObject: any): void;
|
|
}
|
|
|
|
export interface IXMLDOMDocument extends IXMLDOMNode {
|
|
async?: boolean;
|
|
doctype: IXMLDOMDocumentType;
|
|
documentElement: IXMLDOMElement;
|
|
implementation: IXMLDOMImplementation;
|
|
parseError?: IXMLDOMParseError;
|
|
preserveWhiteSpace?: boolean;
|
|
readyState?: XmlDocumentReadyState;
|
|
resolveExternals?: boolean;
|
|
url?: string;
|
|
validateOnParse?: boolean;
|
|
|
|
abort?(): void;
|
|
createAttribute(name: string): IXMLDOMAttribute;
|
|
createCDATASection(data: string): IXMLDOMCDATASection;
|
|
createComment(data: string): IXMLDOMComment;
|
|
createDocumentFragment(): IXMLDOMDocumentFragment;
|
|
createElement(tagName: string): IXMLDOMElement;
|
|
createEntityReference(name: string): IXMLDOMEntityReference;
|
|
createNode?(type: IXMLDOMNodeType|string, name: string, namespaceURI: string): IXMLDOMNode;
|
|
createProcessingInstruction(target: string, data: string): IXMLDOMProcessingInstruction;
|
|
createTextNode(data: string): IXMLDOMText;
|
|
getElementsByTagName(tagName: string): IXMLDOMNodeList;
|
|
load?(xmlSource: any): boolean;
|
|
loadXML?(bstrXML: string): boolean;
|
|
nodeFromID?(idString: string): IXMLDOMNode;
|
|
|
|
ondataavailable?: () => void;
|
|
onreadystatechange?: () => void;
|
|
ontransformnode?: (nodeCode: IXMLDOMNode, nodeData: IXMLDOMNode) => boolean;
|
|
}
|
|
|
|
export interface IXMLDOMElement extends IXMLDOMNode {
|
|
tagName: string;
|
|
|
|
getAttribute(name: string): string;
|
|
getAttributeNode(name: string): IXMLDOMAttribute;
|
|
getElementsByTagName(tagName: string): IXMLDOMNodeList;
|
|
normalize(): void;
|
|
removeAttribute(name: string): void;
|
|
removeAttributeNode(attribute: IXMLDOMAttribute): IXMLDOMAttribute;
|
|
setAttribute(name: string, value: any): void;
|
|
setAttributeNode(attribute: IXMLDOMAttribute): IXMLDOMAttribute;
|
|
}
|
|
|
|
export interface IXMLDOMCharacterData extends IXMLDOMNode {
|
|
data: string;
|
|
length: number;
|
|
|
|
appendData(data: string): void;
|
|
deleteData(offset: number, count: number): void;
|
|
insertData(offset: number, data: string): void;
|
|
replaceData(offset: number, count: number, data: string): void;
|
|
substringData(offset: number, count: number): string;
|
|
}
|
|
|
|
export interface IXMLDOMDocumentType extends IXMLDOMNode {
|
|
entities: IXMLDOMNamedNodeMap;
|
|
name: string;
|
|
notations: IXMLDOMNamedNodeMap;
|
|
}
|
|
|
|
export interface IXMLDOMAttribute extends IXMLDOMNode {
|
|
name: string;
|
|
value: any;
|
|
}
|
|
|
|
export interface IXMLDOMProcessingInstruction extends IXMLDOMNode {
|
|
data: string;
|
|
target: string;
|
|
}
|
|
|
|
export interface IXMLDOMDocumentFragment extends IXMLDOMNode {
|
|
}
|
|
|
|
export interface IXMLDOMEntityReference extends IXMLDOMNode {
|
|
}
|
|
|
|
export interface IXMLDOMDocument2 extends IXMLDOMDocument {
|
|
namespaces: IXMLDOMSchemaCollection;
|
|
schemas: IXMLDOMSchemaCollection;
|
|
|
|
getProperty(name: string): any;
|
|
setProperty(name: string, value: any): void;
|
|
validate(): IXMLDOMParseError;
|
|
}
|
|
|
|
export interface IXMLDOMText extends IXMLDOMCharacterData {
|
|
splitText(offset: number): IXMLDOMText;
|
|
}
|
|
|
|
export interface IXMLDOMComment extends IXMLDOMCharacterData {
|
|
}
|
|
|
|
export interface IXMLDOMCDATASection extends IXMLDOMText {
|
|
}
|
|
|
|
export interface IXMLDOMNodeList {
|
|
length: number;
|
|
|
|
item(index: number): IXMLDOMNode;
|
|
nextNode?(): IXMLDOMNode;
|
|
reset?(): void;
|
|
}
|
|
|
|
export interface IXMLDOMNamedNodeMap {
|
|
length: number;
|
|
|
|
getNamedItem(name: string): IXMLDOMNode;
|
|
getQualifiedItem?(baseName: string, namespaceURI: string): IXMLDOMNode;
|
|
item(index: number): IXMLDOMNode;
|
|
nextNode?(): IXMLDOMNode;
|
|
removeNamedItem(name: string): IXMLDOMNode;
|
|
removeQualifiedItem(baseName: string, namespaceURI: string): IXMLDOMNode;
|
|
reset(): void;
|
|
setNamedItem(newItem: IXMLDOMNode): IXMLDOMNode;
|
|
}
|
|
|
|
export interface IXMLDOMImplementation {
|
|
hasFeature(feature: string, version: string): boolean;
|
|
}
|
|
|
|
export interface IXMLDOMParseError {
|
|
errorCode: number;
|
|
filepos: number;
|
|
line: number;
|
|
linepos: number;
|
|
reason: string;
|
|
srcText: string;
|
|
url: string;
|
|
}
|
|
|
|
export interface IXMLDOMSchemaCollection {
|
|
length: number;
|
|
namespaceURI(index: number): string;
|
|
validateOnLoad: boolean;
|
|
|
|
add(namespaceURI: string, schema: string|IXMLDOMNode): void;
|
|
addCollection(collection: IXMLDOMSchemaCollection): void;
|
|
get(namespaceURI: string): IXMLDOMNode;
|
|
getDeclaration(node: IXMLDOMNode): ISchemaItem;
|
|
getSchema(namespaceURI: string): ISchema;
|
|
remove(namespaceURI: string): void;
|
|
validate(): void;
|
|
}
|
|
|
|
export interface IXMLDOMSchemaCollection2 extends IXMLDOMSchemaCollection {
|
|
validate(): boolean;
|
|
}
|
|
|
|
export interface ISchema {
|
|
attributeGroups: ISchemaItemCollection;
|
|
attributes: ISchemaItemCollection;
|
|
elements: ISchemaItemCollection;
|
|
modelGroups: ISchemaItemCollection;
|
|
notations: ISchemaItemCollection;
|
|
schemaLocations: ISchemaStringCollection;
|
|
targetNamespace: string;
|
|
types: ISchemaItemCollection;
|
|
version: string;
|
|
}
|
|
|
|
export interface ISchemaItem {
|
|
id: string;
|
|
itemType: SOMItemType;
|
|
name: string;
|
|
namespaceURI: string;
|
|
schema: ISchema;
|
|
unhandledAttributes: ISAXAttributes;
|
|
|
|
writeAnnotation(...annotationSink: any[]): boolean;
|
|
}
|
|
|
|
export interface ISchemaItemCollection {
|
|
item(index: number): ISchemaItem;
|
|
length: number;
|
|
|
|
itemByName(name: string): ISchemaItem;
|
|
itemByQName(name: string, namespaceURI: string): ISchemaItem;
|
|
}
|
|
|
|
export interface ISchemaStringCollection {
|
|
item(index: number): string;
|
|
length: number;
|
|
}
|
|
|
|
export interface ISAXAttributes {
|
|
length: number;
|
|
|
|
getIndexFromName(uri: string, localName: string): number;
|
|
getIndexFromQName(qName: string): number;
|
|
getLength(): number;
|
|
getLocalName(index: number): string;
|
|
getName(index: number): any; //uri, localName, qName
|
|
getQName(index: number): string;
|
|
getType(index: number): string;
|
|
getTypeFromName(uri: string, localName: string): string;
|
|
getTypeFromQName(qName: string): string;
|
|
getURI(index: number): string;
|
|
getValue(index: number): string;
|
|
getValueFromName(uri: string, localName: string): string;
|
|
getValueFromQName(qName: string): string;
|
|
}
|
|
|
|
export interface IXSLProcessor {
|
|
input: any;
|
|
output: any;
|
|
readyState: XslProcessorReadyState;
|
|
startMode: string;
|
|
startModeURI: string;
|
|
stylesheet: IXMLDOMNode;
|
|
ownerTemplate: IXSLTemplate;
|
|
|
|
addObject(obj: any, namespaceURI: string): void;
|
|
addParameter(baseName: string, parameter: number|boolean|string|IXMLDOMNode|IXMLDOMNodeList, namespaceURI?: string): void;
|
|
reset(): void;
|
|
setStartMode(mode: string, namespaceURI?: string): void;
|
|
transform(): boolean;
|
|
}
|
|
|
|
export interface IXSLTemplate {
|
|
stylesheet: IXMLDOMNode;
|
|
createProcessor(): IXSLProcessor;
|
|
}
|
|
|
|
export const enum XmlDocumentReadyState {
|
|
Loading = 1,
|
|
Loaded = 2,
|
|
Interactive = 3,
|
|
Completed = 4,
|
|
}
|
|
|
|
export const enum IXMLDOMNodeType {
|
|
NODE_ELEMENT = 1, //element
|
|
NODE_ATTRIBUTE = 2, //attribute
|
|
NODE_TEXT = 3, //text
|
|
NODE_CDATA_SECTION = 4, //cdatasection
|
|
NODE_ENTITY_REFERENCE = 5, //entityreference
|
|
NODE_ENTITY = 6, //entity
|
|
NODE_PROCESSING_INSTRUCTION = 7, //processinginstruction
|
|
NODE_COMMENT = 8, //comment
|
|
NODE_DOCUMENT = 9, //document
|
|
NODE_DOCUMENT_TYPE = 10, //documenttype
|
|
NODE_DOCUMENT_FRAGMENT = 11, //documentfragment
|
|
NODE_NOTATION = 12, //notation
|
|
}
|
|
|
|
export const enum SOMItemType {
|
|
SOMITEM_SCHEMA = 0x1000,
|
|
SOMITEM_ATTRIBUTE = 0x1001,
|
|
SOMITEM_ATTRIBUTEGROUP = 0x1002,
|
|
SOMITEM_NOTATION = 0x1003,
|
|
|
|
//Identity Constraints
|
|
SOMITEM_IDENTITYCONSTRAINT = 0x1100,
|
|
SOMITEM_KEY = 0x1101,
|
|
SOMITEM_KEYREF = 0x1102,
|
|
SOMITEM_UNIQUE = 0x1103,
|
|
|
|
//Types
|
|
SOMITEM_ANYTYPE = 0x2000, // also type mask
|
|
SOMITEM_DATATYPE = 0x2100, // built-in type mask
|
|
SOMITEM_DATATYPE_ANYTYPE = 0x2101,
|
|
SOMITEM_DATATYPE_ANYURI = 0x2102,
|
|
SOMITEM_DATATYPE_BASE64BINARY = 0x2103,
|
|
SOMITEM_DATATYPE_BOOLEAN = 0x2104,
|
|
SOMITEM_DATATYPE_BYTE = 0x2105,
|
|
SOMITEM_DATATYPE_DATE = 0x2106,
|
|
SOMITEM_DATATYPE_DATETIME = 0x2107,
|
|
SOMITEM_DATATYPE_DAY = 0x2108,
|
|
SOMITEM_DATATYPE_DECIMAL = 0x2109,
|
|
SOMITEM_DATATYPE_DOUBLE = 0x210A,
|
|
SOMITEM_DATATYPE_DURATION = 0x210B,
|
|
SOMITEM_DATATYPE_ENTITIES = 0x210C,
|
|
SOMITEM_DATATYPE_ENTITY = 0x210D,
|
|
SOMITEM_DATATYPE_FLOAT = 0x210E,
|
|
SOMITEM_DATATYPE_HEXBINARY = 0x210F,
|
|
SOMITEM_DATATYPE_ID = 0x2110,
|
|
SOMITEM_DATATYPE_IDREF = 0x2111,
|
|
SOMITEM_DATATYPE_IDREFS = 0x2112,
|
|
SOMITEM_DATATYPE_INT = 0x2113,
|
|
SOMITEM_DATATYPE_INTEGER = 0x2114,
|
|
SOMITEM_DATATYPE_LANGUAGE = 0x2115,
|
|
SOMITEM_DATATYPE_LONG = 0x2116,
|
|
SOMITEM_DATATYPE_MONTH = 0x2117,
|
|
SOMITEM_DATATYPE_MONTHDAY = 0x2118,
|
|
SOMITEM_DATATYPE_NAME = 0x2119,
|
|
SOMITEM_DATATYPE_NCNAME = 0x211A,
|
|
SOMITEM_DATATYPE_NEGATIVEINTEGER = 0x211B,
|
|
SOMITEM_DATATYPE_NMTOKEN = 0x211C,
|
|
SOMITEM_DATATYPE_NMTOKENS = 0x211D,
|
|
SOMITEM_DATATYPE_NONNEGATIVEINTEGER = 0x211E,
|
|
SOMITEM_DATATYPE_NONPOSITIVEINTEGER = 0x211F,
|
|
SOMITEM_DATATYPE_NORMALIZEDSTRING = 0x2120,
|
|
SOMITEM_DATATYPE_NOTATION = 0x2121,
|
|
SOMITEM_DATATYPE_POSITIVEINTEGER = 0x2122,
|
|
SOMITEM_DATATYPE_QNAME = 0x2123,
|
|
SOMITEM_DATATYPE_SHORT = 0x2124,
|
|
SOMITEM_DATATYPE_STRING = 0x2125,
|
|
SOMITEM_DATATYPE_TIME = 0x2126,
|
|
SOMITEM_DATATYPE_TOKEN = 0x2127,
|
|
SOMITEM_DATATYPE_UNSIGNEDBYTE = 0x2128,
|
|
SOMITEM_DATATYPE_UNSIGNEDINT = 0x2129,
|
|
SOMITEM_DATATYPE_UNSIGNEDLONG = 0x212A,
|
|
SOMITEM_DATATYPE_UNSIGNEDSHORT = 0x212B,
|
|
SOMITEM_DATATYPE_YEAR = 0x212C,
|
|
SOMITEM_DATATYPE_YEARMONTH = 0x212D,
|
|
SOMITEM_SIMPLETYPE = 0x2200,
|
|
SOMITEM_COMPLEXTYPE = 0x2400,
|
|
SOMITEM_PARTICLE = 0x4000, // particle mask
|
|
SOMITEM_ANY = 0x4001,
|
|
SOMITEM_ANYATTRIBUTE = 0x4002,
|
|
SOMITEM_ELEMENT = 0x4003,
|
|
SOMITEM_GROUP = 0x4100, // group mask
|
|
SOMITEM_ALL = 0x4101,
|
|
SOMITEM_CHOICE = 0x4102,
|
|
SOMITEM_SEQUENCE = 0x4103,
|
|
SOMITEM_EMPTYPARTICLE = 0x4104,
|
|
SOMITEM_NULL = 0x0800, // null items
|
|
SOMITEM_NULL_TYPE = 0x2800,
|
|
SOMITEM_NULL_ANY = 0x4801,
|
|
SOMITEM_NULL_ANYATTRIBUTE = 0x4802,
|
|
SOMITEM_NULL_ELEMENT = 0x4803,
|
|
}
|
|
|
|
export const enum XslProcessorReadyState {
|
|
READYSTATE_UNINITIALIZED = 0,
|
|
READYSTATE_LOADING = 1,
|
|
READYSTATE_LOADED = 2,
|
|
READYSTATE_INTERACTIVE = 3,
|
|
READYSTATE_COMPLETE = 4,
|
|
}
|
|
} |