📄 webserviced.htc
字号:
if (i-4 < l)
ai = decb64hlp(a, ai, ca, i-3, l-1);
if (!fStr)
return a;
var r = '';
try
{
r = String.fromCharCode.apply(element, a);
}
catch (E)
{
for (i = 0; i < a.length; i++)
r += String.fromCharCode(a[i]);
}
return r;
}
function ensureWsdlUrl(szService)
{
if (szService.length == 0)
return;
if (szService.indexOf("://") > 0)
return szService;
var baseUrl = element.document.URL;
if (szService.charAt(0) == "/")
{
var hosti = baseUrl.indexOf("://");
if (hosti > 0)
{
var host = baseUrl.substr(hosti + 3, baseUrl.length-1);
hosti = host.indexOf("/");
if (hosti < 0)
return baseUrl + szService;
hosti = baseUrl.indexOf(host) + hosti;
return baseUrl.substr(0, hosti) + szService;
}
}
var qi = baseUrl.lastIndexOf("?");
var url2 = qi > 0 ? baseUrl.substr(0, qi) : baseUrl;
return url2.substr(0, baseUrl.lastIndexOf("/"))
+ "/" + szService + (szService.indexOf(".")>=0 ? "" : ".asmx?wsdl");
}
function allocCall()
{
var o = new Object();
o.fDone = false;
o.next = null;
o.id = _nextId;
_nextId++;
return o;
}
function fnShowProgress()
{
if (_mProg == null)
{
var s = "<MARQUEE WIDTH=160 HEIGHT=20 BEHAVIOR=alternate SCROLLDELAY=1"
+ " STYLE='background:lightblue;position:absolute;top:0;left:0'>"
+ "</MARQUEE>";
_mProg = element.document.createElement(s);
_mProg.innerHTML = L_InProgress_Text;
}
if (_mProg.parentElement == null)
element.document.body.insertAdjacentElement("beforeEnd",_mProg);
}
function isSimpleType(os, oschm, t)
{
return oschm == null || oschm.sTypes[t.type]!=null;
}
function isPrimitive(os, t)
{
return os.ns[t.ns] == os.ns["xsd"];
}
function getWsdl()
{
var szService = null;
for (var aService in _sdl)
{
if (_sdl[aService] == null)
continue;
var xmlisld = _sdl[aService]._oXml;
if (xmlisld == null)
continue;
if ( _sdl[aService].fPending
&& xmlisld.XMLDocument.readyState == 4)
{
_sdl[aService].fPending = false;
szService = aService;
break;
}
}
if (szService == null)
return;
dbgPrint("WSDL : " + szService + " received\n");
var oS = _sdl[szService];
var fImportDone = loadImports(oS);
if (fImportDone)
processService(oS);
}
function processService(oS)
{
var xmlSdl = oS._oXml.documentElement;
try
{
parseWsdl(oS, xmlSdl);
}
catch(e)
{
xmlSdl = null;
}
var evt = createEventObject();
evt.serviceUrl = oS.url;
evt.userName = oS._oXml.service;
evt.serviceAvailable = xmlSdl != null;
evt.WSDL = xmlSdl;
oS._oXml.removeNode(true);
oS._oXml = null;
dbgPrint(oS.url+(xmlSdl==null ? " not" : "")+" available\n");
if (xmlSdl == null)
{
for (var nc = oS.nextCall; nc != null; nc = nc.next)
returnError(nc, 1);
_sdl[oS.url] = null;
eventService.fire(evt);
return;
}
eventService.fire(evt);
dbgRunPendingTests(oS);
if (oS.fSeq)
return callNext(oS);
while (oS.nextCall != null)
{
var nc = oS.nextCall;
oS.nextCall = oS.nextCall.next;
_invoke(nc);
}
}
function onImportLoaded(oS)
{
for (var i = 0; i < oS.imports.length; i++)
{
if ( oS.imports[i] == null
|| !oS.imports[i].fPending
|| oS.imports[i].XMLDocument.readyState!=4)
continue;
var oImp = oS.imports[i].documentElement;
if (oImp == null)
continue;
oS.imports[i].fPending = false;
oS.cImporting --;
var xmlSdl = oS._oXml.documentElement;
switch (oImp.baseName)
{
case "definitions" :
for (var j = 0; j < oImp.attributes.length; j++)
{
var oAtt = oImp.attributes.item(j);
if (oAtt.name == "xmlns")
continue;
var ii = oAtt.name.indexOf("xmlns:");
if (ii != 0)
continue;
var nsn = oAtt.name.substring(6, oAtt.name.length);
if (oS.ns[nsn] != null)
continue;
oS.ns[nsn] = oAtt.value;
oS.nsalias[oAtt.value] = nsn;
}
for (var j = oImp.childNodes.length - 1; j >= 0; j --)
xmlSdl.appendChild(oImp.childNodes[j]);
break;
case "types" :
case "message" :
case "portType" :
case "binding" :
case "service" :
xmlSdl.appendChild(oImp);
break;
default :
var nsq = getQualifier(xmlSdl.nodeName);
nsq = nsq.length == 0 ? "" : (nsq + ":");
var nt = oS._oXml.XMLDocument.createElement(nsq + "types");
xmlSdl.appendChild(nt);
nt.appendChild(oImp);
}
dbgPrint("Imported (" + i + ");" + oS.cImporting + " left\n");
oS.imports[i].removeNode(true);
oS.imports[i] = null;
if (oS.cImporting == 0)
{
dbgPrint(oS._oXml.documentElement.xml + "\n");
processService(oS);
return;
}
}
}
function loadImports(oS)
{
var xmlSdl = oS._oXml.documentElement;
if (xmlSdl == null)
return true;
var nsq = getQualifier(xmlSdl.nodeName);
nsq = nsq.length == 0 ? "" : (nsq + ":");
var nImp = xmlSdl.selectNodes(nsq + "import");
if (nImp.length == 0)
return true;
dbgPrint("loading imports\n");
oS.imports = new Array();
oS.cImporting = 0;
for (var i = 0; i < nImp.length; i++)
{
var oImp = document.createElement("XML");
document.body.appendChild(oImp);
oImp.fPending = true;
oS.imports[i] = oImp;
oImp.onreadystatechange = function() {onImportLoaded(oS)};
var impUrl = getAttrib(nImp[i], "location");
if (impUrl == null)
continue;
oS.cImporting ++;
dbgPrint("loading import " + impUrl + "\n");
oImp.src = impUrl;
}
return false;
}
function invokeNext(svcName)
{
dbgPrint("calling next in " + svcName + "\n");
var oS = _sdl[svcName];
if (oS == null)
return;
var oC = oS.nextCall;
if (oC == null)
return null;
dbgPrint(oC.id + " will be called\n");
oS.nextCall = oC.next;
if (oS.nextCall == null)
oS.lastCall = null;
_invoke(oC);
}
function callNext(oS)
{
dbgPrint("reuseConnection(" + (oS.fSeq ? "on" : "off") + ") call next\n");
if (oS.fSeq)
setTimeout(element.uniqueID + '.invokeNext("' + oS.url + '")', 0);
}
function getAttrib(o, sAName)
{
if (o.attributes == null)
return null;
var a = o.attributes.getNamedItem(sAName);
if (a != null)
return a.value;
return null;
}
function getBaseName(str)
{
var a = str.split(":");
if (a.length > 1)
return a[1];
return str;
}
function getQualifier(str)
{
var a = str.split(":");
if (a.length > 1)
return a[0];
return '';
}
function getNextNsq(oS)
{
var nsq1;
do
{
nsq1 = "mswsb" + _nextNsQ;
_nextNsQ ++;
}
while (oS.ns[nsq1] != null)
return nsq1;
}
function getUniqueNsq(oS, o, litNsq)
{
if (litNsq == null)
return litNsq;
var nsuri = null;
if (litNsq == '')
nsuri = o.namespaceURI;
else
{
var o1 = o;
while (o1 != null)
{
nsuri = getAttrib(o1, 'xmlns:'+litNsq);
if (nsuri != null)
break;
o1 = o1.parentNode;
}
}
if (nsuri == null)
return litNsq;
var nsq1 = oS.nsalias[nsuri];
if (nsq1 != null)
return nsq1;
litNsq = getNextNsq(oS);
oS.ns[litNsq] = nsuri;
oS.nsalias[nsuri] = litNsq;
return litNsq;
}
function parseSimpleType(oS, oschm, o, ssffx)
{
var ns = getQualifier(o.tagName);
var o1 = o.firstChild;
if (o1 == null)
return null;
var sn = getAttrib(o, "name");
if (sn == null)
return null;
sn = getBaseName(sn);
var ot = new Object();
ot.name = sn;
switch(o1.baseName)
{
case 'restriction' :
var base = getAttrib(o1, "base");
if (base == null)
{
ot.ns = "xsd";
ot.type = "string";
}
else
{
ot.type = getBaseName(base);
ot.ns = getQualifier(base);
}
oschm.sTypes[sn] = ot;
break;
case 'list' :
case 'union' :
//
// treat union/list as string
//
ot.type = "string";
ot.ns = "xsd";
oschm.sTypes[sn] = ot;
break;
default:
ot = null;
}
return ot;
}
function parseType(oS, oschm, o, ssffx)
{
if (o == null)
return null;
switch(o.baseName)
{
case "complexType" :
return parseComplexType(oS, oschm, o, ssffx);
case "simpleType" :
return parseSimpleType(oS, oschm, o, ssffx);
}
return null;
}
function parseArrayType(at, sz)
{
var asa = sz.split("[");
if (asa.length <= 1)
{
asa = sz.split(",");
for (var i = 0; i < asa.length; i++)
{
var ii = parseInt(asa[i]);
at[at.length] = isNaN(ii) ? null : ii;
}
return;
}
for (var i=0; i < asa.length; i++)
parseArrayType(at, asa[i]);
}
function parseComplexType(oS, oschm, o, ssffx)
{
var ns = getQualifier(o.tagName);
if (!o.hasChildNodes())
return null;
var ot = null;
for (var j = 0; j < o.childNodes.length; j++)
{
var o1 = o.childNodes[j];
switch(o1.baseName)
{
case 'sequence' :
case 'all' :
var ao = o1.selectNodes(ns.length ? (ns+':any') : 'any');
if (ao.length != 0)
continue;
ao = o1.selectNodes(ns.length ? (ns+':element') : 'element');
if (ao.length == 0)
continue;
if (ot == null)
ot = new Array();
for (var i = 0; i < ao.length; i++)
{
var s = getAttrib(ao[i], "name");
if (s == null)
{
var s = getAttrib(ao[i], "ref");
if (s != null)
{
oS.refs[s] = ot;
}
}
else
ot[s] = parseElem(oS, oschm, ao[i], ssffx);
}
continue;
case 'complexContent' :
var o2 = o1.firstChild;
switch(o2.baseName)
{
case 'extension' :
var base = getAttrib(o2, "base");
if (base == null)
continue;
var ab = base.split(":");
var oBase = new Object();
oBase.nsuri = ab.length > 1 ? oS.ns[ab[0]] : oschm.uri;
oBase.base = ab.length > 1 ? ab[1] : ab[0];
ot = parseComplexType(oS, oschm, o2, ssffx);
oBase.type = getAttrib(o, "name");
oBase.derivedType = ot;
oBase.fExpanded = false;
if (oBase.type != null)
oS.exts[oBase.type] = oBase;
else
oS.exts[oS.exts.length] = oBase;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -