Beispiel #1
0
        //internal bool XSLTTransform(string sourceXml, ref string targetXml, string xsltFileName, bool enableExtension)
        //{
        //    string xslFile = ConfigHelper.GetFullPath(Program.AppArgument.ConfigFilePath, xsltFileName);
        //    XMLTransformer it = XMLTransformer.CreateFromFileWithCache(xslFile, Program.Log, enableExtension);
        //    return it.TransformString(sourceXml, ref targetXml, enableExtension ? XSLTExtensionTypes.XmlNodeTransformer : XSLTExtensionTypes.None);
        //}

        internal bool XSLTTransform(string sourceXml, ref string targetXml, string xsltFileName, bool enableExtension)
        {
            string         xslFile = ConfigHelper.GetFullPath(_contextForTemplate2.AppArgument.ConfigFilePath, xsltFileName);
            XMLTransformer it      = XMLTransformer.CreateFromFileWithCache(xslFile, _contextForTemplate2.Log, enableExtension);

            Message sourceMsg = new Message();

            sourceMsg.Body = sourceXml;

            string targetMsgXml = null;
            string sourceMsgXml = sourceMsg.ToXMLString();
            bool   res          = it.TransformString(sourceMsgXml, ref targetMsgXml, enableExtension ? XSLTExtensionTypes.XmlNodeTransformer : XSLTExtensionTypes.None);

            if (res)
            {
                Message targetMsg = XObjectManager.CreateObject <Message>(targetMsgXml);
                if (targetMsg != null)
                {
                    targetXml = targetMsg.Body;
                }
                else
                {
                    _contextForTemplate2.Log.Write(LogType.Error, "Cannot parse xml string to message object. \r\n" + targetMsgXml);
                    res = false;
                }
            }

            return(res);
        }
Beispiel #2
0
        internal bool XSLTTransform(string sourceXml, ref string targetXml, string xsltFileName)
        {
            string         xslFile = ConfigHelper.GetFullPath(_contextForTemplate.AppArgument.ConfigFilePath, xsltFileName);
            XMLTransformer it      = XMLTransformer.CreateFromFileWithCache(xslFile, _contextForTemplate.Log);

            return(it.TransformString(sourceXml, ref targetXml, XSLTExtensionTypes.None));
        }
Beispiel #3
0
        private MSG.Message TransformToCSBDataSetSchemedXDSGWMessage(MSG.Message msg, string msgID)
        {
            if (!_entity.Context.ConfigMgr.Config.EnableXMLTransform)
            {
                return(msg);
            }

            _entity.Context.Log.Write("Begin transforming XDSGW message.");
            string         file = ConfigHelper.GetFullPath(_entity.Context.AppArgument.ConfigFilePath, _entity.Context.ConfigMgr.Config.XSLTFilePath);
            XMLTransformer t    = XMLTransformer.CreateFromFileWithCache(file, _entity.Context.Log);

            if (t == null)
            {
                return(null);
            }

            string csbMsgXml   = "";
            string otherMsgXml = msg.ToXMLString();

            if (!t.TransformString(otherMsgXml, ref csbMsgXml, XSLTExtensionTypes.None))
            {
                return(null);
            }

            MSG.Message csbMsg = XObjectManager.CreateObject <MSG.Message>(csbMsgXml);
            if (csbMsg == null)
            {
                _entity.Context.Log.Write(LogType.Error, "Cannot deserialize the transformed XML into XDSGW message.");
                string fname = string.Format("{0}_transformed", msgID);
                DumpErrorMessage(csbMsgXml, fname);
            }

            _entity.Context.Log.Write("Finish transforming XDSGW message.");
            return(csbMsg);
        }
Beispiel #4
0
        /// <summary>
        /// In order to support including multiple XSLT files in the XSLT script,
        /// we disable the external extension (e.g. calling C# code from XSLT) currently.
        /// </summary>
        /// <param name="sourceMsg"></param>
        /// <param name="targetMsg"></param>
        /// <param name="rootFolderPath"></param>
        /// <param name="log"></param>
        /// <returns></returns>
        public bool TransformMessage(Message sourceMsg, out Message targetMsg, string rootFolderPath, ILog log)
        {
            targetMsg = null;
            if (sourceMsg == null)
            {
                return(false);
            }

            string xslFilePath = XSLTFileLocation;

            if (!Path.IsPathRooted(xslFilePath))
            {
                xslFilePath = Path.Combine(rootFolderPath, xslFilePath);
            }
            XMLTransformer t = XMLTransformer.CreateFromFileWithCache(xslFilePath, log, EnableXSLTExtension);

            if (t == null)
            {
                return(false);
            }

            string targetString = null;
            string sourceString = sourceMsg.ToXMLString();

            if (!t.TransformString(sourceString, ref targetString, XSLTExtensionTypes.None) ||
                string.IsNullOrEmpty(targetString))
            {
                return(false);
            }

            targetMsg = XObjectManager.CreateObject <Message>(targetString);
            return(targetMsg != null);
        }