📄 msgbody.htc
字号:
objXSLTFragement = __objGlobalCommonInst.inputXML(strConstMsgXSD);
}//End of if
}
function putInUseState(sInUseState){
if(typeof(sInUseState) == "string"){
switch(sInUseState.toString().toLowerCase()){
case "free":
strInUseState = "free";
__objGlobalCommonInst.freeMsgBodyCount = __objGlobalCommonInst.freeMsgBodyCount + 1;
break;
case "busy":
strInUseState = "busy";
__objGlobalCommonInst.freeMsgBodyCount = __objGlobalCommonInst.freeMsgBodyCount - 1;
break;
default://error
window.prompt("","");
}//End of switch
}else{
window.prompt("","");
}//End if
}//End of putInUseState
function getInUseState(){
return(strInUseState);
}
function clearChildMsgBody(){//移除全部下级MsgBody节点
for(var i = 0; i < intChildMsgBodysCount; i++){// 1
arrChildMsgBodys[i].inUseState = "free"; //将要释放节点的“被用”标志置为 free
arrChildMsgBodys[i].parentMsgBody = null;
__objGlobalCommonInst.freeMsgBodyCount += 1;
}//End of for 1
intChildMsgBodysCount = 0;
for(var i = 0; i < objXMLFragement.childNodes.length; i++){// 2
if(objXMLFragement.childNodes.tagName = "MsgBody"){
objXMLFragement.removeChild(objXMLFragement.childNodes(i));
}
} //End of for 2
}//End of clear
function appendChildMsgBody(anyChildMsgBody){//插入下级MsgBody
var oChildMsg;//缓存从Common获得的MsgBody实例
var strSwap;
var intResultAddChild;
var intAddResult;
switch(typeof(anyChildMsgBody)){//判断传入参数的类型
case "string"://传入的是字符串参数,则:
return addMsgBody(anyChildMsgBody);
break;
case "object":
if(anyChildMsgBody.xml){//XML对象
strSwap = anyChildMsgBody.xml;
intAddResult = addMsgBody(strSwap);
return(intAddResult);
}else{
if(anyChildMsgBody.innerXML){//如果传入的是一个MsgBody
if(anyChildMsgBody.inUseState != "free"){
window.prompt("当前传入的MsgBody节点已经在其他地方被使用。不能被插入到当前请求序列中。下面是当前节点的代码:", anyChildMsgBody.innerXML);
return(-1);
}//End of if anyChildMsgBody.inUseState != "free"
anyChildMsgBody.inUseState = "busy"; //MsgBody的可用状态被置为:busy : 已经被占用,暂时不可用。
anyChildMsgBody.parentMsgBody = element;
arrChildMsgBodys[intChildMsgBodysCount] = anyChildMsgBody;//加入到当前复合应用的原子请求序列中
objXMLFragement.childNodes(0).insertBefore(anyChildMsgBody.XMLFragement.childNodes(0).cloneNode(true),null);
//objXMLFragement.childNodes(0).appendChild(anyChildMsgBody.XMLFragement.childNodes(0).cloneNode(true));//同步XML
intChildMsgBodysCount += 1; //孩子数目加1
}//End of if(anyChildMsgBody.innerXML)
}//End of if anyChildMsgBody.xml
break;
}//End of switch
}//End of appendChild
function addMsgBody(sMsgBody){//加入已经确认的MsgBody对象
var oChildMsg;
oChildMsg = __objGlobalCommonInst.createMsgBody();//从common获得一个新的MsgBody
oChildMsg.innerXML = sMsgBody;
if(oChildMsg.parseState=="correct"){//解析正确
oChildMsg.inUseState = "busy"; //MsgBody的可用状态被置为:busy : 已经被占用,暂时不可用。
oChildMsg.parentMsgBody = element;
arrChildMsgBodys[intChildMsgBodysCount] = oChildMsg;//加入到当前复合应用的原子请求序列中
intChildMsgBodysCount += 1; //孩子数目加1
__objGlobalCommonInst.freeMsgBodyCount = __objGlobalCommonInst.freeMsgBodyCount - 1;
objXMLFragement.childNodes(0).insertBefore(oChildMsg.XMLFragement.childNodes(0).cloneNode(true),null);//同步XML
//objXMLFragement.appendChild(oChildMsg.XMLFragement.childNodes(0));
return(0);
}else{//解析错误
window.prompt("传入的XML不符合MsgBody的XSD定义,是非法结构。\n下面的内容是当前传入的XML字符串:",strSwap);
return(-1);
}//End of If
}//End of addMsgBody
function removeChildMsgBody(anyRemoveChild){//接受两种参数:1、integer 类型的索引标识 2、object 直接引用类型
var inTarget;
var inAction;
var objSwapFragement;
switch(typeof(anyChildMsgBody)){
case "number":
if(anyRemoveChild >= 0 && anyRemoveChild < intChildMsgBodysCount){//传入的索引在合法范围内
objSwapFragement = __objGlobalCommonInst.inputXML(objXMLFragement.xml.replace(arrChildMsgBodys[anyRemoveChild].XMLFragement.xml,""));//用字符串替换,将当前MsgBody中的XML从整体XML中移除
if(objSwapFragement.childNodes.length == 1){//简单的形式检验
if(objXMLFragement.childNodes.length >= 1){
objXMLFragement.removeChildNodes(objXMLFragement.childNodes(0));//清除当前请求体内的代码
}//End of if(objXMLFragement.childNodes.length >= 1)
objXMLFragement.appendChild(objSwapFragement.childNodes(0));//重新装载XML
}else{
window.prompt("当前进行的操作非法,将使请求体MsgBody变成:",objSwapFragement.xml);
return(-1);
}//End of if
arrChildMsgBodys[anyRemoveChild].inUseState = "free"; //将要释放节点的“被用”标志置为 free
arrChildMsgBodys[anyRemoveChild].parentMsgBody = null;
for(var i = anyRemoveChild; i < intChildMsgBodysCount; i++){
//将被删除的节点后面的节点前移
arrChildMsgBodys[i] = arrChildMsgBodys[i+1];
}//End of for
intChildMsgBodysCount = intChildMsgBodysCount - 1; //孩子数目减1
arrChildMsgBodys.length = intChildMsgBodysCount;//数组长度减1
return(0);
}else{//索引值超出范围
return(-1);
}//End of if
break;
case "string":
break;
case "object":
break;
}//End of switch
}//End of function removeChild
function addParameter(strName, strValue){//装配Parameter
var objPE;
var objPE2;
if(typeof(strValue)=="object")
strValue = "";
//
objPE = objXMLFragement.selectSingleNode("/*/*/*[@Name='" + strName + "']");
var oParameterNode = objXMLFragement.childNodes(0).childNodes(0);
if(!objPE){//如果这个节点不存在
if(oParameterNode!=null && oParameterNode.tagName.toLowerCase() == "parameters"){//parameters
objPE = __objGlobalCommonInst.createElement("Parameter");
objPE.setAttribute("Name",strName);
objPE.setAttribute("Val",strValue);
objXMLFragement.childNodes(0).childNodes(0).appendChild(objPE);
}else{
objPE2 = __objGlobalCommonInst.createElement("Parameters");
objPE2 = objXMLFragement.childNodes(0).appendChild(objPE2);
objPE = __objGlobalCommonInst.createElement("Parameter");
objPE.setAttribute("Name",strName);
objPE.setAttribute("Val",strValue);
objPE2.appendChild(objPE);
}//End of if Parameters
}else{//如果已经有这个节点
objPE.setAttribute("Val",strValue);
}//End of objPE
}
function addR(anyRNodeList){//装配r元素行
var objFSwap;
var tmpLength;
var objNodeList;
var oR = objXMLFragement.selectNodes("/*/r");
var oMsgBody = objXMLFragement.childNodes(0);
for(var i=0; i < oR.length; i++){//如果有r行则删除
oR(i).parentNode.removeChild(oR(i));
}
switch(typeof(anyRNodeList)){//判断传入的参数的类型
case "string"://字符串
anyRNodeList = anyRNodeList.replace(/<\?xml[0-9a-zA-Z\s\'\"=\-.\?]{0,}>/g,"");
objFSwap = __objGlobalCommonInst.inputXML("<root>" + anyRNodeList + "</root>");
tmpLength = objFSwap.childNodes(0).childNodes.length;
for(var i = 0; i < tmpLength; i++){
objXMLFragement.childNodes(0).appendChild(objFSwap.childNodes(0).childNodes(i).cloneNode(true));
}
break;
case "object"://对象
tmpLength = anyRNodeList.childNodes.length;
for(var j=0;j<tmpLength;j++){
objXMLFragement.childNodes(0).appendChild(anyRNodeList.childNodes(j).cloneNode(true));
}
break;
}
}
//-->
</script>
</public:component>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -