示例#1
0
        private static Tuple <bool, string> ValidateXml()
        {
            XmlInfo xmlInfo        = XmlInfo.GetInstance;
            var     schemaCompiler = new SchemaCompiler(new StreamReader(xmlInfo.GetXsdPath()));
            var     xmlString      = File.ReadAllText(xmlInfo.GetXmlPath());

            var validateXml = XmlUtilities.ValidateXmlAgainstXsd(xmlString, schemaCompiler);

            if (!validateXml.Item1)
            {
                return(new Tuple <bool, string>(false, validateXml.Item2));
            }

            return(new Tuple <bool, string>(true, string.Empty));
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        private static bool ConsoleInteractiveMode()
        {
            XmlInfo xmlInfo = XmlInfo.GetInstance;

            xmlInfo.ClearData();

            var xsdData = LoadXsdData();

            if (!xsdData.Item1)
            {
                Console.WriteLine(xsdData.Item2);
                return(false);
            }

            var xmlData = LoadXmlData();

            if (!xmlData.Item1)
            {
                Console.WriteLine(xmlData.Item2);
                return(false);
            }

            if (string.Equals(xmlInfo.GetXsdPath(), xmlInfo.GetXmlPath()))
            {
                Console.WriteLine("Error! XSD and XML path are the same");
                return(false);
            }

            var validateXml = ValidateXml();

            if (!validateXml.Item1)
            {
                Console.WriteLine("XML validation against XSD schema failed!");
                Console.WriteLine(validateXml.Item2);
                return(false);
            }

            Console.WriteLine(SaveHeaderAndBiFile().Item2);
            return(true);
        }
示例#3
0
        private static bool ConsoleArgumentsMode(string[] args, bool interactiveMode)
        {
            string xsdPath            = null;
            string xmlPath            = null;
            string xmlns              = null;
            string xmlPrefix          = null;
            string xmlMainElementName = null;
            string savePath           = null;

            for (int i = 0; i < args.Length; i++)
            {
                switch (args[i])
                {
                case xsdPath_opt:
                    xsdPath = args[i + 1];
                    continue;

                case xmlPath_opt:
                    xmlPath = args[i + 1];
                    continue;

                case xmlns_opt:
                    xmlns = args[i + 1];
                    continue;

                case xmlpx_opt:
                    xmlPrefix = args[i + 1];
                    continue;

                case xmlMainElement_opt:
                    xmlMainElementName = args[i + 1];
                    continue;

                case output_opt:
                    savePath = args[i + 1];
                    continue;

                case interactive_opt:
                    continue;
                }
            }


            if (!interactiveMode && (xsdPath == null || xmlPath == null || xmlns == null || xmlPrefix == null ||
                                     xmlMainElementName == null))
            {
                Console.WriteLine("Wrong Arguments! Application not in interactive mode. Mandatory arguments: [ -xsd | -xml | -xns | -xpx | -xen ]");
                Console.WriteLine("Help mode: XmlBinaryConverter -help");
                Console.WriteLine("Interactive mode: XmlBinaryConverter -it");
                return(false);
            }


            XmlInfo xmlInfo = XmlInfo.GetInstance;

            xmlInfo.ClearData();

            var xsdData = LoadXsdData(xsdPath);

            if (!xsdData.Item1)
            {
                Console.WriteLine(xsdData.Item2);
                return(false);
            }

            var xmlData = LoadXmlData(xmlPath, xmlns, xmlPrefix, xmlMainElementName);

            if (!xmlData.Item1)
            {
                Console.WriteLine(xmlData.Item2);
                return(false);
            }

            if (string.Equals(xmlInfo.GetXsdPath(), xmlInfo.GetXmlPath()))
            {
                Console.WriteLine("Error! XSD and XML path are the same");
                return(false);
            }

            var validateXml = ValidateXml();

            if (!validateXml.Item1)
            {
                Console.WriteLine("XML validation against XSD schema failed!");
                Console.WriteLine(validateXml.Item2);
                return(false);
            }

            Console.WriteLine(SaveHeaderAndBiFile(savePath).Item2);
            return(true);
        }