Esempio n. 1
0
        public void SolveRequestMessageSerializationTest()
        {
            byte[] byteArray           = Encoding.UTF8.GetBytes("Test Byte Array");
            var    solveRequestMessage = new SolveRequestMessage("Problem Type", 122L, byteArray);

            var result = solveRequestMessage.SerializeToXml();

            Assert.IsNotNull(result);
            Assert.AreNotEqual(0, result.Length);

            var xmlValidator     = new XmlValidator();
            var xsdSchemaFile    = "SolveRequestMessage.xsd";
            var xsdSchemaPath    = Path.Combine(_xsdSchemasPath, xsdSchemaFile);
            var validationResult = xmlValidator.Validate(result, xsdSchemaPath, true);
            var errorsCount      = validationResult.Errors.Count + validationResult.Warnings.Count;

            Assert.AreEqual(0, errorsCount);

            #region ExampleResult
            //<?xml version="1.0" encoding="utf-16"?>
            //<SolveRequest xmlns="http://www.mini.pw.edu.pl/ucc/">
            //  <ProblemType>Problem Type</ProblemType>
            //  <SolvingTimeout>122</SolvingTimeout>
            //  <Data>VGVzdCBCeXRlIEFycmF5</Data>
            //</SolveRequest>
            #endregion
        }
Esempio n. 2
0
        protected override async Task <bool> ValidateCatalogStreamAsync(Stream inputStream)
        {
            var schemeStream = Resources.UpdateValidator.ToStream();
            var validator    = new XmlValidator(schemeStream);

            return(await Task.FromResult(validator.Validate(inputStream)));
        }
Esempio n. 3
0
        internal static void ShowXmlEditor(Form1 form)
        {
            CustomRichTextBox pageTextBox = ProgramUtil.GetPageTextBox(form.pagesTabControl.SelectedTabPage);

            if (String.IsNullOrEmpty(pageTextBox.Text))
            {
                ShowInfoBox(form, LanguageUtil.GetCurrentLanguageString("TextEmpty", className));
                return;
            }

            String error;

            if (!XmlValidator.Validate(form, false, ValidationType.Schema, null, out error))
            {
                ShowAlertBox(form, error);
                return;
            }

            XmlEditor fileRename = new XmlEditor {
                Owner = form
            };

            fileRename.InitializeForm();
            fileRename.Show(form);
        }
Esempio n. 4
0
        private void Validate(ArchiveXmlUnit archiveXmlUnit)
        {
            ReportFallbackOnBuiltInSchemas(archiveXmlUnit);

            string fileName = GetFileNameForReport(archiveXmlUnit);

            IEnumerable <string> validationErrorMessages;

            try
            {
                validationErrorMessages = new XmlValidator().Validate(archiveXmlUnit);
            }
            catch (Exception exception)
            {
                throw new ArkadeException(
                          string.Format(Noark5Messages.ExceptionDuringXmlValidation, fileName, exception.Message),
                          exception
                          );
            }

            foreach (string errorMessage in validationErrorMessages)
            {
                _testResults.Add(new TestResult(ResultType.Error, new Location(fileName), errorMessage));
            }
        }
Esempio n. 5
0
        public CourseValidator(List <Slide> slides)
        {
            this.slides = slides;
            string schemaPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "schema.xsd");

            xmlValidator = new XmlValidator(schemaPath);
        }
Esempio n. 6
0
        public void RegisterMessageSerializationTest()
        {
            var problemList = new List <string>()
            {
                "DVRP"
            };
            var registerMessage = new RegisterMessage(EComponentType.TaskManager, 1, problemList);

            var result = registerMessage.SerializeToXml();

            Assert.IsNotNull(result);
            Assert.AreNotEqual(0, result.Length);

            var xmlValidator     = new XmlValidator();
            var xsdSchemaFile    = "RegisterMessage.xsd";
            var xsdSchemaPath    = Path.Combine(_xsdSchemasPath, xsdSchemaFile);
            var validationResult = xmlValidator.Validate(result, xsdSchemaPath, true);
            var errorsCount      = validationResult.Errors.Count + validationResult.Warnings.Count;

            Assert.AreEqual(0, errorsCount);

            #region ExampleResult

            //<?xml version="1.0" encoding="utf-16"?>
            //<Register xmlns="http://www.mini.pw.edu.pl/ucc/">
            //  <Type>TaskManager</Type>
            //  <SolvableProblems>
            //    <ProblemName>DVRP</ProblemName>
            //  </SolvableProblems>
            //  <ParallelThreads>1</ParallelThreads>
            //</Register>

            #endregion
        }
Esempio n. 7
0
        /// <summary>
        /// Gets a list of semantic diagnostic marks for the provided script file
        /// </summary>
        /// <param name="scriptFile"></param>
        internal List <Diagnostic> GetSemanticMarkers(ScriptFile scriptFile)
        {
            List <Diagnostic> markers      = new List <Diagnostic>();
            XmlValidator      xmlValidator = new XmlValidator();

            if (xmlValidator.Validate(new Uri(scriptFile.FilePath), scriptFile.Contents) == false)
            {
                foreach (XmlError xmlError in xmlValidator.Errors)
                {
                    markers.Add(new Diagnostic()
                    {
                        Code    = xmlError.ErrorCode.ToString(),
                        Message = xmlError.Message,
                        Range   = new Range()
                        {
                            Start = new Position()
                            {
                                Character = xmlError.Column,
                                Line      = xmlError.Line
                            },
                            End = new Position()
                            {
                                Character = xmlError.Column,
                                Line      = xmlError.Line
                            }
                        },
                        Severity = DiagnosticSeverity.Error,
                        Source   = "xml"
                    });
                }
            }
            return(markers);
        }
Esempio n. 8
0
        public void should_produce_a_valid_xml()
        {
            var xmlValidator     = new XmlValidator(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SchemaSpecs.xsd"), NameSpace);
            var validationResult = xmlValidator.Validate(_result.ToString());

            validationResult.Success.ShouldBeTrue(validationResult.FullMessageLog);
        }
Esempio n. 9
0
        public void DivideProblemMessageSerializationTest()
        {
            byte[] byteArray = Encoding.UTF8.GetBytes("Test Byte Array");
            var    divideProblemMessageMessage = new DivideProblemMessage("Problem Type", 123L, byteArray, 321L);

            var result = divideProblemMessageMessage.SerializeToXml();

            Assert.IsNotNull(result);
            Assert.AreNotEqual(0, result.Length);

            var xmlValidator     = new XmlValidator();
            var xsdSchemaFile    = "DivideProblemMessage.xsd";
            var xsdSchemaPath    = Path.Combine(_xsdSchemasPath, xsdSchemaFile);
            var validationResult = xmlValidator.Validate(result, xsdSchemaPath, true);
            var errorsCount      = validationResult.Errors.Count + validationResult.Warnings.Count;

            Assert.AreEqual(0, errorsCount);

            #region ExampleResult
            //<?xml version="1.0" encoding="utf-16"?>
            //<DivideProblem xmlns="http://www.mini.pw.edu.pl/ucc/">
            //  <ProblemType>Problem Type</ProblemType>
            //  <Id>123</Id>
            //  <Data>VGVzdCBCeXRlIEFycmF5</Data>
            //  <ComputationalNodes>321</ComputationalNodes>
            //</DivideProblem>
            #endregion
        }
Esempio n. 10
0
        private void PackageSelect(object sender, TreeViewEventArgs e)
        {
            String pack = e.Node.Text;

            toolStripComboBox1.Items[0]      = pack;
            toolStripComboBox1.SelectedIndex = 0;

            String fullpath = Path.Combine(GlobalRegistry.Instance.Path, pack);
            String manifest = Path.Combine(fullpath, "package.xml");

            if (File.Exists(manifest))
            {
                XmlValidator xv      = new XmlValidator();
                Package      package = xv.ValidateObject <Package>(manifest);

                m_CancelNav = false;
                if (package != null)
                {
                    cBrowserDesc.DocumentText = package.Languages[0].Description;
                }
                else
                {
                    cBrowserDesc.DocumentText = "Unable to load package info.";
                }
            }
        }
Esempio n. 11
0
        internal static void FormatXml(Form1 form, bool validationFirst = true, bool indentation = true)
        {
            XtraTabControl    pagesTabControl = form.pagesTabControl;
            CustomRichTextBox pageTextBox     = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);

            if (validationFirst && !XmlValidator.Validate(form, ValidationType.Schema, false))
            {
                return;
            }

            int indentationNum = indentation ? 1 : 0;

            XmlDocument xd = new XmlDocument();

            xd.LoadXml(pageTextBox.Text); //xd.LoadXml(EncodeHTMLTagsForXMLValidation(pageTextBox.Text));

            StringBuilder builder = new StringBuilder();

            using (StringWriter writer = new StringWriter(builder))
            {
                using (XmlTextWriter xtw = new XmlTextWriter(writer))
                {
                    xtw.IndentChar  = '\t';
                    xtw.Indentation = indentationNum;
                    xtw.Formatting  = Formatting.Indented;

                    xd.WriteTo(xtw);
                }

                pageTextBox.SelectAll();
                pageTextBox.SelectedText = builder.ToString(); //pageTextBox.SelectedText = DecodeHTMLTagsForXMLValidation(builder.ToString());
                TextManager.RefreshUndoRedoExternal(form);
            }
        }
Esempio n. 12
0
        public void WhenNoGroupsExistValidatorReturnsZero()
        {
            string       xml       = @"<root><child><grandchild>hello</grandchild></child></root>";
            XmlValidator validator = new XmlValidator(xml);

            Assert.IsTrue(validator.GroupNodes.Count == 0);
        }
Esempio n. 13
0
        public void RegisterResponseMessageSerializationTest()
        {
            var registerResponseMessage = new RegisterResponseMessage(123123123L, DateTime.Now);

            var result = registerResponseMessage.SerializeToXml();

            Assert.IsNotNull(result);
            Assert.AreNotEqual(0, result.Length);

            var xmlValidator     = new XmlValidator();
            var xsdSchemaFile    = "RegisterResponseMessage.xsd";
            var xsdSchemaPath    = Path.Combine(_xsdSchemasPath, xsdSchemaFile);
            var validationResult = xmlValidator.Validate(result, xsdSchemaPath, true);
            var errorsCount      = validationResult.Errors.Count + validationResult.Warnings.Count;

            Assert.AreEqual(0, errorsCount);

            #region ExampleResult
            //<?xml version="1.0" encoding="utf-16"?>
            //<RegisterResponse xmlns="http://www.mini.pw.edu.pl/ucc/">
            //  <Id>123123123</Id>
            //  <Timeout>2014-03-07T23:25:05.0728496+01:00</Timeout>
            //</RegisterResponse>
            #endregion
        }
        public ActionResult SaveXmlListTest(TestListRedactorView view)
        {
            if (view.Ids != null)
            {
                foreach (var id in view.Ids)
                {
                    view._XmlModel.Options.Single(x => x.Id == id).IsTrue = true;
                }
            }

            if (!XmlValidator.Validate(view._XmlModel))
            {
                ViewBag.Errors = XmlValidator.ErrorList;

                view.Question = cx.Questions.Find(view.Question.Id);

                return(PartialView("Redactor", view));
            }

            view = (TestListRedactorView)helper.SaveXmlQuestion(view);

            ViewBag.IsSaved = true;

            return(PartialView("Redactor", view));
        }
Esempio n. 15
0
        public void XmlValidatorCorrectXmlTest()
        {
            var validator        = new XmlValidator();
            var validationResult = validator.Validate(@"..\..\Task1\Content\books.xml", @"Task1\Content\BooksScheme.xsd", "http://library.by/catalog");

            Assert.IsTrue(validationResult);
        }
Esempio n. 16
0
        public void should_be_able_to_match_the_predefined_schema()
        {
            var xmlValidator     = new XmlValidator(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SchemaSpecs.xsd"), NameSpace);
            var validationResult = xmlValidator.Validate(_xmlToDeserialize.ToString());

            validationResult.Success.ShouldBeTrue(validationResult.FullMessageLog);
        }
Esempio n. 17
0
        public void ShouldCreateErrorsIfXmlDoesNotValidateAgainstSchema()
        {
            var invalidAddml = _addml.Replace("dataset", "datasett");

            var validationErrorMessages = new XmlValidator().Validate(invalidAddml, _addmlXsd);

            validationErrorMessages[0].Should().Contain("datasett");
        }
Esempio n. 18
0
        public void ValidateProductXml()
        {
            string filePath = @"..\..\Utils\Xml\Serialization\TestData\SomeProduct.xml";
            //validate xmltest vs the schema xmltest.xsd which was created based on the xmltest.xml
            XmlValidator xmlValidate = new XmlValidator(filePath, @"..\..\Utils\Xml\Serialization\TestData\Product.xsd");

            Assert.AreEqual(xmlValidate.ValidateXmlFile(), false);
        }
Esempio n. 19
0
        /// <summary>
        /// Creates a TrueTypeFont from XML.
        /// </summary>
        /// <param name="xElement">An XElement that contains the XML representation of the TrueTypeFont.</param>
        /// <param name="system">The MiyagiSystem.</param>
        /// <returns>
        /// The newly created TrueTypeFont or null if the XML file is invalid.
        /// </returns>
        public static TrueTypeFont CreateFromXml(XElement xElement, MiyagiSystem system)
        {
            TrueTypeFont retValue;

            var xv = new XmlValidator();

            if (xv.ValidateAgainstInternalSchema(xElement, "TrueTypeFont"))
            {
                // create the TrueTypeFont using the Name attribute
                retValue = new TrueTypeFont(xElement.Attribute("Name").Value)
                {
                    FileName   = (string)xElement.Element("FileName"),
                    FontStyle  = xElement.Element("FontStyle").Value.ParseEnum <SD.FontStyle>(),
                    Resolution = (int)xElement.Element("Resolution"),
                    Size       = (int)xElement.Element("Size"),
                    TabSize    = xElement.Element("TabSize") != null ? (int)xElement.Element("TabSize") : 3,
                    Tracking   = xElement.Element("Tracking") != null ? (int)xElement.Element("Tracking") : 0,
                };

                var leading = xElement.Element("Leading");
                if (leading != null)
                {
                    retValue.Leading = (int)leading;
                }

                var spaceWidth = xElement.Element("SpaceWidth");
                if (spaceWidth != null)
                {
                    retValue.SpaceWidth = (int)spaceWidth;
                }

                // get CodePoints
                IList <Range> codePoints;
                if (xElement.Element("CodePoints") == null)
                {
                    codePoints = DefaultCodePoints;
                }
                else
                {
                    codePoints = new List <Range>(
                        from codePointNode in xElement.Descendants("CodePoint")
                        let codePoint = new Range(
                            (int)codePointNode.Element("First"),
                            (int)codePointNode.Element("Last"))
                                        select codePoint);
                }

                retValue.codePoints = codePoints;

                CreateFont(system, retValue);
            }
            else
            {
                throw new XmlException("Invalid font XElement");
            }

            return(retValue);
        }
        public void TestValidXmlPassesValidation()
        {
            var validator = new XmlValidator();
            var document  = LoadXmlDocument(@"../../Validator/XmlTestData/ValidXmlFile.xml");
            var result    = validator.ValidateXml(document);

            Assert.IsTrue(result.Item1);
            Assert.AreEqual(0, result.Item2.Count());
        }
        public void TestXDocumentWithNoDataElementIsReportedAsAfailure()
        {
            var validator = new XmlValidator();
            var document  = LoadXmlDocument(@"../../Validator/XmlTestData/NoData.xml");
            var result    = validator.ValidateXml(document);

            Assert.IsFalse(result.Item1);
            Assert.AreEqual(Resources.NoDataElementsInDocument, result.Item2.First());
        }
     static void Main(string[] args)
     {
         var validator = new XmlValidator();
         var result =
             validator.Validate(@"<?xml version=""1.0""?>
                  <Product ProductID=""1"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:noNamespaceSchemaLocation=""schema.xsd"">
                      <ProductName>Chairs</ProductName>
                  </Product>");
 }
Esempio n. 23
0
        public void BeforeEachTest()
        {
            dialogService      = new Mock <IDialogService>(MockBehavior.Strict);
            xsdSchemaValidator = new Mock <IXsdSchemaValidator>(MockBehavior.Strict);

            SetupApplicationForAddWorkbook();

            validator = new XmlValidator(dialogService.Object, xsdSchemaValidator.Object);
        }
Esempio n. 24
0
        public void ConvertXmlToRss(string xmlFile, string schemaUri, string targetNamespace, out bool isConversionSuccessful, string userErrorFile = "")
        {
            if (!XmlValidator.IsXmlValid(@"..\..\..\books.xml", @"..\..\..\books.xsd", "http://library.by/catalog", @"..\..\..\error.txt"))
            {
                isConversionSuccessful = false;
                return;
            }

            isConversionSuccessful = true;
        }
Esempio n. 25
0
        public BaseFacturae()
        {
            var _schemas = new Dictionary <string, byte[]>();

            _schemas.Add("http://www.facturae.es/Facturae/2007/v3.1/Facturae", System.Text.UTF8Encoding.UTF8.GetBytes(Properties.Resource.Facturaev3_1));
            _schemas.Add("http://www.facturae.es/Facturae/2009/v3.2/Facturae", System.Text.UTF8Encoding.UTF8.GetBytes(Properties.Resource.Facturaev3_2));
            _schemas.Add("xmldsig-core-schema.xsd", System.Text.UTF8Encoding.UTF8.GetBytes(Properties.Resource.xmldsig_core_schema));

            _schemaSet = XmlValidator.CreateXmlSchemaSet(_Namespace(), _schemas);
        }
Esempio n. 26
0
        public void Test_Validate_ValidXml_ShouldReturnTrue()
        {
            var validator = new XmlValidator();
            var success   = validator.Validate("books_valid.xml", (lineNumber, linePosition, message) =>
            {
                Console.WriteLine($"[{lineNumber}:{linePosition}] {message}");
            });

            Assert.AreEqual(true, success);
        }
Esempio n. 27
0
        public EckValidationResult Validate(ValidationRequest request)
        {
            try
            {
                try
                {
                    request.XmlDocument = UTF8Encoding.UTF8.GetString(Convert.FromBase64String(request.XmlDocument));
                }
                catch
                {
                }



                Trace.WriteLine(DateTime.Now + "-> START Generate request = " + request.Name);



                var validationResult = new EckValidationResult();
                var validator        = new XmlValidator();
                validationResult.BrokenRules = validator.ValidateXml(request.XmlDocument,
                                                                     (ValidationProfile)
                                                                     Enum.Parse(typeof(ValidationProfile), request.Name,
                                                                                true));

                if (validationResult.BrokenRules.Count > 0)
                {
                    validationResult.IsValid = false;
                    validationResult.Message = "Correct errors and then try again.";
                }
                else
                {
                    validationResult.IsValid = true;
                    validationResult.Message = "Your document is VALID!";
                }



                Trace.WriteLine(DateTime.Now + "-> RETURN validationResult = " + validationResult.IsValid);
                Trace.WriteLine(DateTime.Now + "-> END Generate");

                return(validationResult);
            }
            catch (Exception err)
            {
                Trace.WriteLine(DateTime.Now + "-> ERROR: " + err.Message);
                Trace.WriteLine(DateTime.Now + "-> END Validate");
                return(new EckValidationResult
                {
                    BrokenRules = new List <BrokenRule>(),
                    IsValid = false,
                    Message = "Server internal error!"
                });
            }
        }
Esempio n. 28
0
        public void ValidateIncorrectFile()
        {
            var testXml      = "<?xml version=\"1.0\" encoding=\"utf-8\"?><testElement xmlns=\"http://tempuri.org/XMLSchema.xsd\"><element1>element11</element1><element2>aaaa</element2></testElement>";
            var testXsd      = "<?xml version=\"1.0\" encoding=\"utf-8\"?><xs:schema targetNamespace=\"http://tempuri.org/XMLSchema.xsd\" elementFormDefault=\"qualified\" xmlns=\"http://tempuri.org/XMLSchema.xsd\" xmlns:mstns=\"http://tempuri.org/XMLSchema.xsd\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"><xs:element name=\"testElement\"><xs:complexType><xs:sequence><xs:element name=\"element1\" type=\"xs:string\"/><xs:element name=\"element2\" type=\"xs:integer\"/></xs:sequence></xs:complexType></xs:element></xs:schema>";
            var xmlValidator = new XmlValidator();

            var result      = xmlValidator.Validate(testXml, testXsd, false);
            var errorsCount = result.Errors.Count + result.Warnings.Count;

            Assert.AreNotEqual(errorsCount, 0);
        }
Esempio n. 29
0
        /// <summary>
        /// Loads a context by interpreting the specified document. The specified arguments will be properties in the context.
        /// </summary>
        /// <param name="xDocument">The document that is interpreted.</param>
        /// <param name="arguments">Initial properties.</param>
        /// <returns>The loaded context.</returns>
        public static RIContext Parse(XDocument xDocument, IDictionary <string, object> arguments = null)
        {
            var validator = new XmlValidator("context.xsd", "Runerne.Instantiation.Xml", Assembly.GetExecutingAssembly());

            validator.Validate(xDocument);

            var xRoot   = xDocument.Root;
            var context = Parse(xRoot, arguments);

            return(context);
        }
Esempio n. 30
0
        public void WhenTheValidatorIsCalledWithValidXmlTheErrorEventIsNotFired()
        {
            var customerSchema = xsdFilePaths.FirstOrDefault(w => w.ToLower().Contains("customersorders.xsd"));
            var customerXml    = xmlFilePaths.FirstOrDefault(w => w.ToLower().Contains("customersorders.xml"));

            if (customerSchema == null)
            {
                Assert.Fail("CustomersOrders.xsd File Missing");
            }

            if (customerXml == null)
            {
                Assert.Fail("CustomersOrders.xml File Missing");
            }

            xmlSchemaReader = new XmlSchemaReader(fileSystem, memoryStreamFactory);
            var schema    = xmlSchemaReader.ReadFromPath(customerSchema);
            var schemaSet = new XmlSchemaSet
            {
                XmlResolver = new XmlUrlResolver()
            };

            schemaSet.Add(schema);

            if (schema == null)
            {
                Assert.Fail("Schema could not be loaded");
            }

            var validator = new XmlValidator(memoryStreamFactory, fileSystem, null, null, null, null, null);

            var methodHasNotBeenCalled = true;
            var count = 0;

            validator.ErrorOccurred += async(s, e, c) =>
            {
                await Task.Run(() => { methodHasNotBeenCalled = false; });
            };

            var res = validator.ValidateXmlFileAgainstSchemaAsync(customerXml, schemaSet, true).Result;

            while (count < 10)
            {
                Thread.Sleep(1000);
                if (methodHasNotBeenCalled)
                {
                    break;
                }

                count++;
            }

            Assert.IsTrue(methodHasNotBeenCalled);
        }
Esempio n. 31
0
        /// <summary>
        /// Loads leagues at the beginning of the program.
        /// It sets cbLiga listbox.
        /// </summary>
        public void LoadInitialLeague()
        {
            LeagueChanged = true;

            string fileContent = null;
            // download list of leagues
            WebClient client = new WebClient();

            bool connectionEstablished = false;

            while (connectionEstablished == false)
            {
                try
                {
                    fileContent = client.DownloadString(BaseURI + LeaguesFileNameURI);
                    connectionEstablished = true;
                }
                catch (WebException e)
                {
                    MessageBox.Show("Error: " + e.Message);

                    // Form f = new ChooseConnectionView(/* formely: this  -- parameter */);

                    // f.ShowDialog() changes this.BaseURI and the connection to the server is
                    // repeated thanks to while cycle
                    //if (f.ShowDialog() == DialogResult.Cancel)
                    //{
                    //    Environment.Exit(1);
                    //}
                }
            }

            // validate the list of leagues
            XmlValidator xmlValidator = new XmlValidator(Properties.Resources.sokobanLeagues, fileContent);

            if (!xmlValidator.IsValidXml)
            {
                MessageBox.Show(xmlValidator.ValidationError);
                Environment.Exit(1);
            }

            //xmlLeagues = new XmlLeagues(fileContent);
            //cbLeague.Items.AddRange(xmlLeagues.GetLeaguesNames());
            Random rnd = new Random();

            // load random League for starters; it calls LoadLeague - it's EVENT !!!
            /*
            IsPermittedToChangeLeague = false;
            cbLeague.SelectedIndex = rnd.Next(0, xmlLeagues.Count - 1);
            IsPermittedToChangeLeague = true;
            actLeagueXml = xmlLeagues.GetLeagueXML(cbLeague.SelectedIndex + 1);
            actLeagueName = (string)cbLeague.Items[cbLeague.SelectedIndex];
             */
        }
Esempio n. 32
0
    private string RenderSpecificXML(KBUserDetailInfo currentUser, int documentId, int documentVersionId)
    {
        XmlValidator validator = new XmlValidator();
        string fileName = string.Empty;
        string uiLanguage = currentUserOutputConfig.UILanguage;
        SourceFileInfo[] sfis = documentService.GetFiles(currentUser, documentId, documentVersionId);
        if (sfis != null && sfis.Length > 0)
        {
            ArrayList xmlBuffer = new ArrayList();

            //先驗證延伸檔名
            foreach (SourceFileInfo sfi in sfis)
            {
                if (validator.ValidateExtension(sfi.DisplayName))
                {
                    xmlBuffer.Add(sfi);
                }
            }

            //通過延伸檔名考驗的再驗證內容格式
            for (int i = 0; i < xmlBuffer.Count; i++)
            {
                SourceFileInfo sfi = (SourceFileInfo)xmlBuffer[i];
                string body = validator.GetFileBody(sfi.CurrentPath);
                bool validateXML = validator.ValidateXML(body, uiLanguage);

                if (validateXML)
                {
                    string xslt = validator.DigXslt(body, uiLanguage);
                    if (!string.IsNullOrEmpty(xslt))
                    {
                        fileName = sfi.DisplayName;
                        break; //碰到第一個通過的以下的就不再驗證了
                    }
                }
            }
        }
        return fileName;
    }
Esempio n. 33
0
 /// <summary>
 /// Check if the provided XML is valid according to @xmlScheme
 /// </summary>
 /// <param name="xmlScheme"></param>
 /// <param name="xmlInstance"></param>
 /// <returns></returns>
 public static bool IsXmlValid(string xmlScheme, string xmlInstance)
 {
     XmlValidator xmlSchemaValidator = new XmlValidator();
     return xmlSchemaValidator.IsValid(null, xmlScheme, xmlInstance);
 }
Esempio n. 34
0
        private void PackageSelect(object sender, TreeViewEventArgs e)
        {
            String pack = e.Node.Text;
            toolStripComboBox1.Items[0] = pack;
            toolStripComboBox1.SelectedIndex = 0;

            String fullpath = Path.Combine(GlobalRegistry.Instance.Path, pack);
            String manifest = Path.Combine(fullpath, "package.xml");
            if (File.Exists(manifest))
            {
                XmlValidator xv = new XmlValidator();
                Package package = xv.ValidateObject<Package>(manifest);

                m_CancelNav = false;
                if (package != null)
                {
                    cBrowserDesc.DocumentText = package.Languages[0].Description;
                }
                else
                {
                    cBrowserDesc.DocumentText = "Unable to load package info.";
                }
            }
        }
        /// <summary>
        /// GetParameter() is used pretty widely.  It's a generic "GetString" style routine 
        /// which builds a string from text data as well as various instructions found in various
        /// xml files.
        /// 
        /// This routine can not be overridden, but should be expanded as necessary while 
        /// maintaining backwards compatibility to add necessary functionality.  Should a 
        /// particular tool need custom extensions, these can be added to GetCustomParameter().
        /// </summary>
        /// 
        /// <param name="ParameterName">XPath to search</param>
        /// <param name="Context">The XML to look at</param>
        /// <param name="Application">The Soap Message being processed</param>
        /// <param name="SoapNamespaceManager">The Namespace Manager for any Namespaced XPaths</param>
        /// 
        /// <returns></returns>
        /// 
        public string GetParameter(string ParameterName, XmlNode Context, XmlNode Application, XmlNamespaceManager SoapNamespaceManager)
        {
            string Result = "";
            XmlNode TargetNode = null;
            // If a parameter is passed, target that XPath search, otherwise use the current context
            if (ParameterName != "")
            {
                TargetNode = Context.SelectSingleNode(ParameterName);
            }
            else
            {
                TargetNode = Context;
            }
            // Found no data so don't bother going on
            if (TargetNode == null)
            {
                return "";
            }
            // Look at all children for data
            foreach (XmlNode ChildNode in TargetNode.ChildNodes)
            {
                try
                {
                    // If this is an element which is (or represents) plain text, just copy that text to the results
                    if ((ChildNode.NodeType == XmlNodeType.Text) || (ChildNode.NodeType == XmlNodeType.CDATA) || (ChildNode.NodeType == XmlNodeType.EntityReference))
                    {
                        Result = Result + ChildNode.InnerText;
                    }
                    else if (ChildNode.NodeType == XmlNodeType.Element)
                    {
                        // Elements all need to be processed
                        string Format = "";
                        string ChildText = "";
                        string XPath = "";
                        XmlNode XPathResultNode = null;
                        XmlNodeList TempNodeListResult = null;
                        XmlElement ChildElement = (XmlElement)ChildNode;
                        switch (ChildNode.Name)
                        {
                            #region xpath
                            // This runs an XPath against the Application and gets a single text result
                            case "xpath":
                                {
                                    XPath = GetParameter("", ChildElement, Application, SoapNamespaceManager).Trim();
                                    switch (ChildElement.GetAttribute("index").ToLower())
                                    {
                                        case "":
                                        case "first":
                                        case "1":
                                            // Optimizations for the first item
                                            XPathResultNode = Application.SelectSingleNode(XPath, SoapNamespaceManager);
                                            break;
                                        case "last":
                                            // The Last Item
                                            TempNodeListResult = Application.SelectNodes(XPath, SoapNamespaceManager);
                                            XPathResultNode = TempNodeListResult[TempNodeListResult.Count - 1];
                                            break;
                                        default:
                                            // This Nth Item
                                            TempNodeListResult = Application.SelectNodes(XPath, SoapNamespaceManager);
                                            try
                                            {
                                                int Index = int.Parse(ChildElement.GetAttribute("index"));
                                                if (Index < 0) Index = TempNodeListResult.Count + Index;
                                                XPathResultNode = TempNodeListResult[Index];
                                            }
                                            catch
                                            {
                                                XPathResultNode = null;
                                            }
                                            break;
                                    }
                                    if (XPathResultNode != null)
                                    {
                                        Result = Result + XPathResultNode.InnerText;
                                    }
                                    break;
                                }
                            #endregion
                            #region node
                            case "node":
                                XPath = GetParameter("", ChildElement, Application, SoapNamespaceManager).Trim();
                                switch (ChildElement.GetAttribute("index").ToLower())
                                {
                                    case "":
                                    case "first":
                                    case "1":
                                        XPathResultNode = Application.SelectSingleNode(XPath, SoapNamespaceManager);
                                        break;
                                    case "last":
                                        TempNodeListResult = Application.SelectNodes(XPath, SoapNamespaceManager);
                                        XPathResultNode = TempNodeListResult[TempNodeListResult.Count - 1];
                                        break;
                                    default:
                                        TempNodeListResult = Application.SelectNodes(XPath, SoapNamespaceManager);
                                        try
                                        {
                                            XPathResultNode = TempNodeListResult[int.Parse(ChildElement.GetAttribute("index"))];
                                        }
                                        catch
                                        {
                                            XPathResultNode = null;
                                        }
                                        break;
                                }

                                if (XPathResultNode != null)
                                {
                                    switch (ChildElement.GetAttribute("method").ToLower())
                                    {
                                        case "inner":
                                        case "innerxml":
                                            Result = Result + XPathResultNode.InnerXml;
                                            break;
                                        case "innertext":
                                            Result = Result + XPathResultNode.InnerText;
                                            break;
                                        case "outer":
                                        case "outerxml":
                                        default:
                                            Result = Result + XPathResultNode.OuterXml;
                                            break;
                                    }
                                }
                                break;
                            #endregion
                            #region count
                            case "count":
                                XPath = GetParameter("", ChildElement, Application, SoapNamespaceManager).Trim();
                                Result = Result + Application.SelectNodes(XPath, SoapNamespaceManager).Count;
                                break;
                            #endregion
                            #region machine
                            case "machine":
                                Result = Result + System.Net.Dns.GetHostName();
                                break;
                            #endregion
                            #region hash
                            case "hash":
                                Result = Result + System.Convert.ToBase64String(new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(GetParameter("", ChildElement, Application, SoapNamespaceManager).Trim().ToLower())));
                                break;
                            #endregion
                            #region date
                            case "date":
                                Format = ChildElement.GetAttribute("format");
                                if (Format == null || Format == "") Format = "yyyymmdd";
                                goto case "datetime";
                            #endregion
                            #region time
                            case "time":
                                Format = ChildElement.GetAttribute("format");
                                if (Format == null || Format == "") Format = "hhnnss";
                                goto case "datetime";
                            #endregion
                            #region datetime
                            case "datetime":
                                if (Format == null || Format == "") Format = ChildElement.GetAttribute("format");
                                if (Format == null || Format == "") Format = "yyyymmddhhnnss";
                                DateTime TargetDate;
                                ChildText = GetParameter("", ChildElement, Application, SoapNamespaceManager);
                                try
                                {
                                    if (ChildText.Length == 14)
                                    {
                                        TargetDate = new DateTime(
                                            int.Parse(ChildText.Substring(0, 4)),
                                            int.Parse(ChildText.Substring(4, 2)),
                                            int.Parse(ChildText.Substring(6, 2)),
                                            int.Parse(ChildText.Substring(8, 2)),
                                            int.Parse(ChildText.Substring(10, 2)),
                                            int.Parse(ChildText.Substring(12, 2)));
                                    }
                                    else
                                    {
                                        TargetDate = DateTime.Parse(ChildText);
                                    }
                                }
                                catch
                                {
                                    if ((ChildText != "") && (ChildText != null))
                                    {
                                        try
                                        {
                                            TargetDate = new DateTime(int.Parse(ChildText.Substring(0, 4)),
                                                int.Parse(ChildText.Substring(4, 2)),
                                                int.Parse(ChildText.Substring(6, 2)),
                                                int.Parse(ChildText.Substring(8, 2)),
                                                int.Parse(ChildText.Substring(10, 2)),
                                                int.Parse(ChildText.Substring(12, 2)));
                                        }
                                        catch
                                        {
                                            TargetDate = DateTime.Now;
                                        }
                                    }
                                    else
                                    {
                                        TargetDate = DateTime.Now;
                                    }
                                }
                                Format = Format.Replace("yyyy", String.Format("{0:000#}", TargetDate.Year));
                                Format = Format.Replace("yy", String.Format("{0:0#}", TargetDate.Year % 100));
                                Format = Format.Replace("mm", String.Format("{0:0#}", TargetDate.Month));
                                Format = Format.Replace("dd", String.Format("{0:0#}", TargetDate.Day));
                                Format = Format.Replace("hh", String.Format("{0:0#}", TargetDate.Hour));
                                Format = Format.Replace("nn", String.Format("{0:0#}", TargetDate.Minute));
                                Format = Format.Replace("ss", String.Format("{0:0#}", TargetDate.Second));
                                Result = Result + Format;
                                break;
                            #endregion
                            #region section
                            case "section":
                                if (CheckTests(ChildElement, Application, SoapNamespaceManager))
                                {
                                    string NewContext = GetParameter("context", ChildElement, Application, SoapNamespaceManager);
                                    if ((NewContext == "") || (Context == null))
                                    {
                                        Result = Result + GetParameter("", ChildElement, Application, SoapNamespaceManager);
                                    }
                                    else
                                    {
                                        XmlDocument TempXml = new XmlDocument();
                                        TempXml.LoadXml(NewContext);

                                        Result = Result + GetParameter("", ChildElement, TempXml, null);
                                    }
                                }
                                break;
                            #endregion
                            #region replace
                            //								This was a pretty heterosexually challenged element
                            //								It was too hard to document, so it was removed
                            //
                            //								case "replace":
                            //								{
                            //									Xml.XmlNode TempDoc = Application.CloneNode(true);
                            //									XPath = GetParameter("location", ChildElement, Application, SoapNamespaceManager);
                            //									string NewText = GetParameter("newdata", ChildElement, Application, SoapNamespaceManager);
                            //									string XMLContext = GetParameter("context", ChildElement, Application, SoapNamespaceManager);
                            //									string Method = ChildElement.GetAttribute("method");
                            //									string Index = ChildElement.GetAttribute("index");
                            //									Xml.XmlDocument NewDoc = new Xml.XmlDocument();
                            //
                            //									Xml.NameTable           ResultSoapNameTable        = new Xml.NameTable();
                            //									Xml.XmlNamespaceManager ResultSoapNamespaceManager = new Xml.XmlNamespaceManager(ResultSoapNameTable);
                            //
                            //									ResultSoapNamespaceManager.AddNamespace(String.Empty, "urn:none");
                            //									ResultSoapNamespaceManager.AddNamespace("soap",       _SoapURN);
                            //
                            //									Xml.XmlDocument ResultDoc = new Xml.XmlDocument(ResultSoapNameTable);
                            //
                            //									if (Method.ToLower() == "xml")
                            //										NewDoc.LoadXml(NewText);
                            //
                            //									if ((XMLContext == "") || (XMLContext == null))
                            //										ResultDoc.LoadXml(Application.OuterXml);
                            //									else
                            //										ResultDoc.LoadXml(XMLContext);
                            //
                            //									switch (Index.ToLower())
                            //									{
                            //										case "first":
                            //										case "1":
                            //										{
                            //											Xml.XmlNode BadNode = ResultDoc.SelectSingleNode(XPath, SoapNamespaceManager);
                            //											if (Method == "xml")
                            //												BadNode.ParentNode.ReplaceChild(BadNode.OwnerDocument.ImportNode(NewDoc.DocumentElement, true), BadNode);
                            //											else
                            //											{
                            //												switch (BadNode.NodeType)
                            //												{
                            //													case Xml.XmlNodeType.Attribute:
                            //														((Xml.XmlAttribute)BadNode).Value = NewText;
                            //														break;
                            //													default:
                            //														foreach (Xml.XmlNode BadChild in BadNode.ChildNodes)
                            //															BadNode.RemoveChild(BadChild);
                            //														BadNode.AppendChild(BadNode.OwnerDocument.CreateTextNode(NewText));
                            //														break;
                            //												}
                            //											}
                            //
                            //											break;
                            //										}
                            //										case "all":
                            //										case "*":
                            //										case "":
                            //										{
                            //											/*
                            //												if (Method == "xml")
                            //													Application.SelectSingleNode(XPath, SoapNamespaceManager).InnerXml = NewText;
                            //												else
                            //													Application.SelectSingleNode(XPath, SoapNamespaceManager).InnerText = NewText;
                            //												*/
                            //											break;
                            //										}
                            //									}
                            //
                            //									Result = Result + TempDoc.OuterXml;
                            //
                            //									break;
                            //								}
                            #endregion
                            #region text
                            case "text":
                                Result = Result + GetParameter("", ChildElement, Application, SoapNamespaceManager);
                                break;
                            #endregion
                            #region format
                            case "format":
                                Result = Result + String.Format(ChildElement.GetAttribute("spec"), GetParameter("", ChildElement, Application, SoapNamespaceManager));
                                break;
                            #endregion
                            #region literal
                            case "literal":
                                Result = Result + ChildElement.InnerXml;
                                break;
                            #endregion
                            #region encode
                            case "encode":
                                {
                                    switch (ChildElement.GetAttribute("method").ToLower())
                                    {
                                        case "":
                                        case "url":
                                            Result = Result + System.Web.HttpUtility.UrlEncode(GetParameter("", ChildElement, Application, SoapNamespaceManager));
                                            break;
                                        case "html":
                                        case "xml":
                                            Result = Result + System.Web.HttpUtility.HtmlEncode(GetParameter("", ChildElement, Application, SoapNamespaceManager));
                                            break;
                                        case "attribute":
                                        case "att":
                                            Result = Result + System.Web.HttpUtility.HtmlAttributeEncode(GetParameter("", ChildElement, Application, SoapNamespaceManager));
                                            break;
                                        case "base64":
                                            Result = Result + System.Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(GetParameter("", ChildElement, Application, SoapNamespaceManager)));
                                            break;
                                        case "qp":
                                        case "quoted-printable":
                                            Result += QuotedPrintable.Encode(GetParameter("", ChildElement, Application, SoapNamespaceManager));
                                            break;
                                        case "base32":
                                            {
                                                Result += Base32Encoder.Encode(System.Text.ASCIIEncoding.ASCII.GetBytes(GetParameter("", ChildElement, Application, SoapNamespaceManager)));
                                                break;
                                            }
                                        default:
                                            Result = Result + "Not Supported";
                                            break;
                                    }
                                    break;
                                }
                            #endregion
                            #region decode
                            case "decode":
                                {
                                    switch (ChildElement.GetAttribute("method"))
                                    {
                                        case "":
                                        case "url":
                                            Result = Result + System.Web.HttpUtility.UrlDecode(GetParameter("", ChildElement, Application, SoapNamespaceManager));
                                            break;
                                        case "html":
                                        case "xml":
                                        case "attribute":
                                        case "att":
                                            Result = Result + System.Web.HttpUtility.HtmlDecode(GetParameter("", ChildElement, Application, SoapNamespaceManager));
                                            break;
                                        case "base64":
                                            Result = Result + System.Text.Encoding.ASCII.GetString(System.Convert.FromBase64String(GetParameter("", ChildElement, Application, SoapNamespaceManager)));
                                            break;
                                        case "base32":
                                            {
                                                Result += System.Text.Encoding.ASCII.GetString(Base32Encoder.Decode(GetParameter("", ChildElement, Application, SoapNamespaceManager)));
                                                break;
                                            }
                                        default:
                                            Result = Result + "Not Supported";
                                            break;
                                    }
                                    break;
                                }
                            #endregion
                            #region regex
                            case "regex":
                                string MatchSpec = ChildElement.GetAttribute("match");
                                if (ChildElement.GetAttributeNode("replace") != null)
                                {
                                    Result = Result + Regex.Regex.Replace(GetParameter("", ChildElement, Application, SoapNamespaceManager), MatchSpec, ChildElement.GetAttribute("replace"));
                                }
                                else
                                {
                                    string sMatchData = GetParameter("", ChildElement, Application, SoapNamespaceManager);
                                    Regex.Match RegexMatches = Regex.Regex.Match(sMatchData, MatchSpec);
                                    if (RegexMatches.Success)
                                    {
                                        if (ChildElement.GetAttributeNode("capture") != null)
                                        {
                                            Result = Result + RegexMatches.Groups[ChildElement.GetAttribute("capture")];
                                        }
                                        else
                                        {
                                            Result = Result + RegexMatches.Value;
                                        }
                                    }
                                }
                                break;
                            #endregion
                            #region switch/select
                            case "switch":
                            case "select":
                                {
                                    XmlNode OldDataNode = ChildElement.SelectSingleNode("value");
                                    string OldData = GetParameter("value", ChildElement, Application, SoapNamespaceManager).ToLower();
                                    string NewResult = GetParameter("else", ChildElement, Application, SoapNamespaceManager);
                                    XmlNodeList Pairs = ChildElement.SelectNodes("case");
                                    foreach (XmlElement Pair in Pairs)
                                    {
                                        foreach (XmlElement When in Pair.SelectNodes("when"))
                                        {
                                            if (OldDataNode == null)
                                            {
                                                if (CheckTests(When, Application, SoapNamespaceManager))
                                                {
                                                    NewResult = GetParameter("then", Pair, Application, SoapNamespaceManager);
                                                    goto FoundResult;
                                                }
                                            }
                                            else
                                            {
                                                string PotentialMatch = GetParameter("", When, Application, SoapNamespaceManager).ToLower();
                                                if (PotentialMatch == OldData)
                                                {
                                                    NewResult = GetParameter("then", Pair, Application, SoapNamespaceManager);
                                                    goto FoundResult;
                                                }
                                            }
                                        }
                                    }

                                FoundResult:

                                    Result = Result + NewResult;

                                    break;
                                }
                            #endregion
                            #region registry
                            case "registry":
                                string HiveName = GetParameter("hive", ChildElement, Application, SoapNamespaceManager);
                                string Path = GetParameter("path", ChildElement, Application, SoapNamespaceManager);
                                string RegKey = GetParameter("key", ChildElement, Application, SoapNamespaceManager);

                                Microsoft.Win32.RegistryKey Hive = null;
                                switch (HiveName.ToUpper())
                                {
                                    case "HKEY_CLASSES_ROOT":
                                        Hive = Microsoft.Win32.Registry.ClassesRoot;
                                        break;
                                    case "HKEY_CURRENT_CONFIG":
                                        Hive = Microsoft.Win32.Registry.CurrentConfig;
                                        break;
                                    case "HKEY_CURRENT_USER":
                                        Hive = Microsoft.Win32.Registry.CurrentUser;
                                        break;
                                    case "HKEY_DYN_DATA":
                                        Hive = Microsoft.Win32.Registry.DynData;
                                        break;
                                    case "HKEY_LOCAL_MACHINE":
                                        Hive = Microsoft.Win32.Registry.LocalMachine;
                                        break;
                                    case "HKEY_PERFORMANCE_DATA":
                                        Hive = Microsoft.Win32.Registry.PerformanceData;
                                        break;
                                    case "HKEY_USERS":
                                        Hive = Microsoft.Win32.Registry.Users;
                                        break;
                                }

                                Microsoft.Win32.RegistryKey TargetKey = Hive.OpenSubKey(Path);

                                if (TargetKey != null)
                                {
                                    Result = Result + (string)TargetKey.GetValue(RegKey);
                                }
                                break;
                            #endregion
                            #region xsl:stylesheet
                            case "xsl:stylesheet":
                                Result = Result + GetParameter("", Transform((XmlDocument)Application, ChildElement), Application, SoapNamespaceManager);
                                break;
                            #endregion
                            #region debug
                            case "debug":
                                // Abel
                                //string NewSegment = GetParameter("", ChildElement, Application, SoapNamespaceManager);
                                //Result = Result + NewSegment;
                                //Debug(ChildElement.GetAttribute("label"), NewSegment, DebugMessageType.User, ChildElement.GetAttribute("debugqueue"));
                                //if (ChildElement.GetAttribute("label") != "")
                                //{
                                //    System.Console.Write(ChildElement.GetAttribute("label") + ": ");
                                //    System.Diagnostics.Debug.Write(ChildElement.GetAttribute("label") + ": ");
                                //}
                                //System.Console.WriteLine(NewSegment);
                                //System.Diagnostics.Debug.WriteLine(NewSegment);
                                break;
                            #endregion
                            #region encrypt
                            case "encrypt":
                                {
                                    byte[] Data = System.Text.ASCIIEncoding.ASCII.GetBytes(GetParameter("", ChildElement, Application, SoapNamespaceManager));

                                    if (Data.Length > 0)
                                    {
                                        Cryptography.SymmetricAlgorithm Provider = null;

                                        switch (ChildElement.GetAttribute("method").ToLower())
                                        {
                                            case "rc2":
                                                Provider = new Cryptography.RC2CryptoServiceProvider();
                                                break;
                                            case "rijndael":
                                                Provider = new Cryptography.RijndaelManaged();
                                                break;
                                            default:
                                            case "3des":
                                            case "tripledes":
                                                Provider = new Cryptography.TripleDESCryptoServiceProvider();
                                                break;
                                            case "des":
                                                Provider = new Cryptography.DESCryptoServiceProvider();
                                                break;
                                        }

                                        string Key = ChildElement.GetAttribute("key");
                                        string IV = ChildElement.GetAttribute("iv");

                                        if (Key == "") Key = DefaultEncryptionKey;

                                        if (ChildElement.GetAttribute("encoding").ToLower() == "base64")
                                        {
                                            Provider.Key = System.Convert.FromBase64String(Key);
                                            if (IV != "")
                                                Provider.IV = System.Convert.FromBase64String(IV);
                                        }
                                        else
                                        {
                                            Provider.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(Key);
                                            Provider.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV);
                                        }

                                        System.IO.MemoryStream DataStream = new System.IO.MemoryStream();
                                        Cryptography.CryptoStream EncryptionStream = new System.Security.Cryptography.CryptoStream(DataStream, Provider.CreateEncryptor(), Cryptography.CryptoStreamMode.Write);

                                        EncryptionStream.Write(Data, 0, Data.Length);
                                        EncryptionStream.FlushFinalBlock();

                                        DataStream.Seek(0, System.IO.SeekOrigin.Begin);

                                        byte[] DataBuffer = new byte[DataStream.Length];
                                        DataStream.Read(DataBuffer, 0, (int)DataStream.Length);

                                        Result = Result + System.Convert.ToBase64String(DataBuffer);
                                    }

                                    break;
                                }
                            #endregion
                            #region decrypt
                            case "decrypt":
                                {
                                    byte[] Data = System.Convert.FromBase64String(GetParameter("", ChildElement, Application, SoapNamespaceManager));

                                    if (Data.Length > 0)
                                    {
                                        Cryptography.SymmetricAlgorithm Provider = null;

                                        switch (ChildElement.GetAttribute("method").ToLower())
                                        {
                                            case "rc2":
                                                Provider = new Cryptography.RC2CryptoServiceProvider();
                                                break;
                                            case "rijndael":
                                                Provider = new Cryptography.RijndaelManaged();
                                                break;
                                            default:
                                            case "3des":
                                            case "tripledes":
                                                Provider = new Cryptography.TripleDESCryptoServiceProvider();
                                                break;
                                            case "des":
                                                Provider = new Cryptography.DESCryptoServiceProvider();
                                                break;
                                        }

                                        string Key = ChildElement.GetAttribute("key");
                                        string IV = ChildElement.GetAttribute("iv");

                                        if (Key == "") Key = DefaultEncryptionKey;

                                        if (ChildElement.GetAttribute("encoding").ToLower() == "base64")
                                        {
                                            Provider.Key = System.Convert.FromBase64String(Key);
                                            if (IV != "")
                                                Provider.IV = System.Convert.FromBase64String(IV);
                                        }
                                        else
                                        {
                                            Provider.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(Key);
                                            Provider.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV);
                                        }

                                        System.IO.MemoryStream DataStream = new System.IO.MemoryStream();
                                        Cryptography.CryptoStream DecryptionStream = new System.Security.Cryptography.CryptoStream(DataStream, Provider.CreateDecryptor(), Cryptography.CryptoStreamMode.Write);

                                        DecryptionStream.Write(Data, 0, Data.Length);
                                        DecryptionStream.FlushFinalBlock();

                                        DataStream.Seek(0, System.IO.SeekOrigin.Begin);

                                        byte[] DataBuffer = new byte[DataStream.Length];
                                        DataStream.Read(DataBuffer, 0, (int)DataStream.Length);

                                        Result = Result + System.Text.ASCIIEncoding.ASCII.GetString(DataBuffer);
                                    }

                                    break;
                                }
                            #endregion
                            #region code
                            case "code":
                                {
                                    Compilers.ICodeEngine Compiler = null;
                                    switch (ChildElement.GetAttribute("language").ToLower())
                                    {
                                        case "vb":
                                        case "vb.net":
                                        case "visualbasic":
                                        case "visual basic":
                                            Compiler = new Compilers.VisualBasic();
                                            break;
                                        case "":
                                        case "cs":
                                        case "c#":
                                        case "csharp":
                                        case "c-sharp":
                                            Compiler = new Compilers.CSharp();
                                            break;
                                        default:
                                            // TODO: Abel
                                            // ReportError(Application.OwnerDocument, "GetParameter() - 'code' Element", "Language '" + ChildElement.GetAttribute("language") + "' not recognized");
                                            break;
                                    }
                                    string[] Imports = new string[ChildElement.SelectNodes("assembly").Count + 1];
                                    int I = 0;
                                    foreach (XmlElement AssemblyNode in ChildElement.SelectNodes("assembly"))
                                    {
                                        Imports[I++] = GetParameter("", AssemblyNode, Application, SoapNamespaceManager);
                                    }
                                    Imports[I] = "System.Xml.dll";
                                    string Code = GetParameter("source", ChildElement, Application, SoapNamespaceManager);
                                    int CodeHash = Code.GetHashCode();
                                    System.Reflection.Assembly TempAssembly = Compiler.Compile(Code, true, Imports);
                                    string ClassName = ChildElement.GetAttribute("class");
                                    if (ChildElement.GetAttribute("class") == "")
                                    {
                                        if (TempAssembly.GetTypes().Length == 1)
                                        {
                                            ClassName = TempAssembly.GetTypes()[0].FullName;
                                        }
                                        else
                                        {
                                            // TODO: Abel
                                            // ReportError(Application.OwnerDocument, "GetParameter() - 'code' Element", "Ambiguous Which Class Should Be Used");
                                        }
                                    }
                                    System.Type TempType = TempAssembly.GetType(ClassName);
                                    System.Reflection.ConstructorInfo CI = TempType.GetConstructor(new Type[] { typeof(XmlDocument), typeof(XmlNamespaceManager) });
                                    if (CI != null)
                                    {
                                        object Temp = CI.Invoke(System.Reflection.BindingFlags.InvokeMethod, null, new object[2] { Application.OwnerDocument, SoapNamespaceManager }, null);
                                        Result += Temp.ToString();
                                    }
                                    else
                                    {
                                        CI = TempType.GetConstructor(Type.EmptyTypes);
                                        if (CI != null)
                                        {
                                            Result += CI.Invoke(System.Reflection.BindingFlags.InvokeMethod, null, null, null).ToString();
                                        }
                                        else
                                        {
                                            // TODO: Abel
                                            //ReportErrorNow((Application is XmlDocument ? (XmlDocument)Application : (Application != null ? Application.OwnerDocument : null)), "Appropriate Constructor Not Found", "No Appropriate Constructor Found in '" + ClassName + "'");
                                        }
                                    }
                                    break;
                                }
                            #endregion
                            #region guid
                            case "guid":
                                if (ChildElement.GetAttribute("type").ToLower() == "full")
                                    Result = Result + System.Guid.NewGuid().ToString();
                                else
                                    Result = Result + NewGuid;
                                break;
                            #endregion
                            #region evaluate
                            case "evaluate":
                                {
                                    XPath = GetParameter("", ChildElement, Application, SoapNamespaceManager).Trim();
                                    switch (ChildElement.GetAttribute("index").ToLower())
                                    {
                                        case "":
                                        case "first":
                                        case "1":
                                            XPathResultNode = Application.SelectSingleNode(XPath, SoapNamespaceManager);
                                            break;
                                        case "last":
                                            TempNodeListResult = Application.SelectNodes(XPath, SoapNamespaceManager);
                                            XPathResultNode = TempNodeListResult[TempNodeListResult.Count - 1];
                                            break;
                                        default:
                                            TempNodeListResult = Application.SelectNodes(XPath, SoapNamespaceManager);
                                            try
                                            {
                                                XPathResultNode = TempNodeListResult[int.Parse(ChildElement.GetAttribute("index"))];
                                            }
                                            catch
                                            {
                                                XPathResultNode = null;
                                            }
                                            break;
                                    }
                                    if (XPathResultNode != null)
                                    {
                                        Result = Result + GetParameter("", XPathResultNode, Application, SoapNamespaceManager);
                                    }
                                    break;
                                }
                            #endregion
                            #region validate
                            /*
                                     * <validate> validates its innards for well-formedness or against a DTD or schema.
                                     * if the validation passes, the evaluated insides get passed right along
                                     * if the validation fails, an exception is thrown.
                                     *	type should be "wellformed", "schema", or "dtd". defaults to "wellformed".
                                     *	href is the schema or dtd location
                                     *	for schema validation, the default namespace in the xml fragment will be the targetNamespace of the schema
                                     *	for dtd validation, the dtd declaration is prepended to the xml fragment, and the root element is the doctype identifier
                                     * example:
                                     *	<!-- dtd validation -->
                                     *		<validate type="dtd" href="c:\testes.dtd">
                                     *			<literal>
                                     *				<!-- comment to mess things up -->
                                     *				<testes name="yo">
                                     *					<subtestes>hello</subtestes>
                                     *				</testes>
                                     *			</literal>
                                     *		</validate>
                                     *	the actual xml that will be validated is:
                                     *		<!DOCTYPE testes SYSTEM 'c:\testes.dtd'>
                                     *		<testes name="yo">
                                     *			<subtestes>hello</subtestes>
                                     *		</testes>
                                     *
                                     *	<!-- schema validation -->
                                     *		<validate type="schema" href="c:\testes.xsd">
                                     *			<literal>
                                     *				<!-- comment to mess things up -->
                                     *				<testes name="yo">
                                     *					<subtestes>hello</subtestes>
                                     *				</testes>
                                     *			</literal>
                                     *		</validate>
                                     *	the actual xml that will be validated is:
                                     *		<testes name="yo" xmlns="(the targetNamespace from c:\testes.xsd)">
                                     *			<subtestes>hello</subtestes>
                                     *		</testes>
                                    */
                            case "validate":
                                {
                                    string sValidationType = ChildElement.GetAttribute("type").ToLower().Trim();
                                    if (sValidationType.Length == 0)
                                    {
                                        sValidationType = "wellformed";
                                    }
                                    string sValidationDocument = ChildElement.GetAttribute("href").Trim();
                                    string sXml = GetParameter("", ChildElement, Application, SoapNamespaceManager).Trim();
                                    XmlValidator xvValidator = new XmlValidator(sXml, sValidationType, sValidationDocument);
                                    switch (xvValidator.ValidationType)
                                    {
                                        case XmlValidator.XmlValidationType.WellFormed:
                                            {
                                                //don't need to do anything
                                                break;
                                            }
                                        case XmlValidator.XmlValidationType.Schema:
                                            {
                                                //still don't need to do anything
                                                break;
                                            }
                                        case XmlValidator.XmlValidationType.DTD:
                                            {
                                                break;
                                            }
                                    }
                                    if (xvValidator.IsValid)
                                    {
                                        Result += sXml;
                                    }
                                    else
                                    {
                                        throw new Exception("The XML fragment did not pass validation.\n" + xvValidator.ErrorMessages);
                                    }
                                    break;
                                }
                            #endregion
                            #region weekofyear
                            case "weekofyear":
                                {
                                    string sContents = GetParameter("", ChildElement, Application, SoapNamespaceManager);
                                    DateTime dtDate;
                                    try
                                    {
                                        dtDate = Convert.ToDateTime(sContents);
                                    }
                                    catch (Exception e)
                                    {
                                        //if there is a problem parsing the date, default to today
                                        System.Diagnostics.Debug.WriteLine(e.ToString());
                                        dtDate = DateTime.Today;
                                    }
                                    int iWeekOfYear = CultureInfo.CurrentCulture.DateTimeFormat.Calendar.GetWeekOfYear(dtDate, CultureInfo.CurrentCulture.DateTimeFormat.CalendarWeekRule, CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek);
                                    Result += iWeekOfYear.ToString();
                                    break;
                                }
                            #endregion
                            #region weekofmonth
                            case "weekofmonth":
                                {
                                    string sContents = GetParameter("", ChildElement, Application, SoapNamespaceManager);
                                    DateTime dtDate;
                                    try
                                    {
                                        dtDate = Convert.ToDateTime(sContents);
                                    }
                                    catch (Exception e)
                                    {
                                        //if there is a problem parsing the date, default to today
                                        System.Diagnostics.Debug.WriteLine(e.ToString());
                                        dtDate = DateTime.Today;
                                    }
                                    int iWeekOfMonth = (dtDate.Day / 7) + (dtDate.Day % 7 == 0 ? 0 : 1);
                                    Result += iWeekOfMonth.ToString();
                                    break;
                                }
                            #endregion
                            #region transform
                            case "transform":
                                {
                                    string sXslFilename = "";
                                    string sXml = "";
                                    XmlAttribute xaXslFilename = (XmlAttribute)ChildNode.SelectSingleNode("@xslfilename", SoapNamespaceManager);
                                    if (xaXslFilename != null)
                                    {
                                        sXslFilename = xaXslFilename.Value.Trim();
                                        sXml = GetParameter("", ChildNode, Application, SoapNamespaceManager);
                                    }
                                    else
                                    {
                                        sXslFilename = GetParameter("xslfilename", ChildNode, Application, SoapNamespaceManager);
                                        sXml = GetParameter("content", ChildNode, Application, SoapNamespaceManager);
                                    }
                                    //get the full path to the filename
                                    if (sXslFilename.IndexOf("://") == -1 && sXslFilename.Substring(1, 1) != ":")
                                    {
                                        RegistryKey rkConfig = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(MessageQueueSpawner._RegistryKeyConfigFilePath);
                                        if (rkConfig != null)
                                        {
                                            sXslFilename = System.IO.Path.Combine(Convert.ToString(rkConfig.GetValue("ConfigPath")), sXslFilename);
                                        }
                                    }
                                    //the XsltArgumentList is for xslt extension functions
                                    XsltArgumentList xalArguments = new XsltArgumentList();
                                    xalArguments.AddExtensionObject("http://www.1800communications.com/schemas", new XsltExtensionFunctions());
                                    XslTransform xslTransform = new XslTransform();
                                    xslTransform.Load(sXslFilename, new XmlUrlResolver());
                                    XmlDocument xdToTransform = new XmlDocument();
                                    xdToTransform.LoadXml(sXml);
                                    StringWriter swResults = new StringWriter();
                                    xslTransform.Transform(xdToTransform, xalArguments, swResults, null);
                                    Result += swResults.ToString();
                                    break;
                                }
                            #endregion
                            #region random
                            case "random":
                                {
                                    XmlElement xeChildNode = (XmlElement)ChildNode;
                                    string sMin = xeChildNode.GetAttribute("min");
                                    string sMax = xeChildNode.GetAttribute("max");
                                    int iRandom = 0;
                                    if (sMax.Length > 0)
                                    {
                                        if (sMin.Length > 0)
                                        {
                                            iRandom = randomNumberGenerator.Next(Convert.ToInt32(sMin), Convert.ToInt32(sMax));
                                        }
                                        else
                                        {
                                            iRandom = randomNumberGenerator.Next(Convert.ToInt32(sMax));
                                        }
                                    }
                                    else
                                    {
                                        iRandom = randomNumberGenerator.Next();
                                    }
                                    Result += iRandom.ToString();
                                    break;
                                }
                            #endregion
                            #region queuesize
                            case "queuesize":
                                {
                                    // Abel
                                    //string sQueuePath = GetParameter("", ChildElement, Application, SoapNamespaceManager);
                                    //sQueuePath = ResolveQueuePath(sQueuePath, ChildElement, m_sIncomingQueuePath);
                                    //long lMessageCount = 0;
                                    //try
                                    //{
                                    //    lMessageCount = QueueMonitorClient.MessageCount(sQueuePath);
                                    //}
                                    //catch (Exception e)
                                    //{
                                    //    System.Diagnostics.Debug.WriteLine(e.ToString());
                                    //}
                                    //Result += Convert.ToString(lMessageCount);
                                    break;
                                }
                            #endregion
                            #region validemail
                            case "validemail":
                                {
                                    string sEmail = GetParameter("", ChildElement, Application, SoapNamespaceManager);
                                    //get the timeout
                                    int iTimeout = 60000;
                                    if (ChildElement.HasAttribute("timeout"))
                                    {
                                        try
                                        {
                                            iTimeout = Convert.ToInt32(ChildElement.GetAttribute("timeout"));
                                        }
                                        catch (Exception e)
                                        {
                                            System.Diagnostics.Debug.WriteLine(e.ToString());
                                        }
                                    }
                                    //get the target validation level
                                    HexValidEmailLevel hvelTargetLevel = HexValidEmailLevel.hexVeLevelSmtp;
                                    if (ChildElement.HasAttribute("level"))
                                    {
                                        switch (ChildElement.GetAttribute("level"))
                                        {
                                            case "smtp":
                                                {
                                                    hvelTargetLevel = HexValidEmailLevel.hexVeLevelSmtp;
                                                    break;
                                                }
                                            case "dns":
                                                {
                                                    hvelTargetLevel = HexValidEmailLevel.hexVeLevelDns;
                                                    break;
                                                }
                                            case "syntax":
                                                {
                                                    hvelTargetLevel = HexValidEmailLevel.hexVeLevelSyntax;
                                                    break;
                                                }
                                        }
                                    }
                                    HexValidEmailLib.Connection hcConnection = new HexValidEmailLib.ConnectionClass();
                                    hcConnection.FromDomain = "1800communications.com";
                                    hcConnection.FromEmail = "*****@*****.**";
                                    hcConnection.Timeouts.Item(HexValidEmailTimeout.hexVeTimeoutSmtpTotal).Value = iTimeout;
                                    HexValidEmailLevel hvelResult = (HexValidEmailLevel)hcConnection.Validate(sEmail, hvelTargetLevel);
                                    if (hvelResult == hvelTargetLevel)
                                    {
                                        Result += "true";
                                    }
                                    else
                                    {
                                        System.Diagnostics.Debug.WriteLine(((HexValidEmailErrors)hcConnection.Error).ToString());
                                        Result += "false";
                                    }
                                    break;
                                }
                            #endregion
                            #region [Custom Parameters]
                            default:
                                Result = Result + GetCustomParameter((XmlElement)ChildNode, Application, SoapNamespaceManager);
                                break;
                            #endregion
                        }
                    }
                }
                catch (Compilers.CompilationException cexx)
                {
                    // Compilation of the Code Block Jacked Up
                    string[] Errors = new string[cexx.Errors.Count];
                    int I = 0;
                    foreach (System.CodeDom.Compiler.CompilerError Error in cexx.Errors)
                    {
                        Errors[I++] = Error.ErrorText;
                    }
                    // ReportErrorNow((Application is XmlDocument ? (XmlDocument)Application : (Application != null ? Application.OwnerDocument : null)), cexx.GetType().ToString(), "Errors During Compilation", null, Errors);
                }
                catch (Exception exx)
                {
                    //Report any other error we found and keep going
                    //Application can be an XmlDocument. if it is, it has no OwnerDocument. so check.
                    // ReportErrorNow((Application is XmlDocument ? (XmlDocument)Application : (Application != null ? Application.OwnerDocument : null)), exx);
                }
            }

            return Result;
        }