public void ValidateXml(XmlSchemaSet schemas, ValidationEventHandler validationEventHandler)
        {
            ThrowIfObjectDisposed();

            if (schemas == null)
            {
                throw new ArgumentNullException(nameof(schemas));
            }

            XmlReaderSettings xmlReaderSettings = new XmlReaderSettings
            {
#if FEATURE_XML_PROHIBIT_DTD
                ProhibitDtd = true,                     // set true explicitly for security fix
#else
                DtdProcessing = DtdProcessing.Prohibit, // set to prohibit explicitly for security fix
#endif
                MaxCharactersInDocument = this.MaxCharactersInPart
            };
            XmlReader xmlReader = null;

            // XML validator object

            using (Stream partStream = this.GetStream())
            {
                //xmlReaderSettings.Schemas.Add(null, schemaFile);
                xmlReaderSettings.Schemas        = schemas;
                xmlReaderSettings.ValidationType = ValidationType.Schema;
                // Add validation event handler
                if (validationEventHandler != null)
                {
                    xmlReaderSettings.ValidationEventHandler += validationEventHandler;
                }

                using (xmlReader = XmlConvertingReaderFactory.Create(partStream, xmlReaderSettings))
                {
                    // Validate XML data
                    while (xmlReader.Read())
                    {
                        ;
                    }
                }
            }
        }
示例#2
0
        public void ValidateXml(XmlSchemaSet schemas, ValidationEventHandler validationEventHandler)
        {
            ThrowIfObjectDisposed();

            if (schemas == null)
            {
                throw new ArgumentNullException(nameof(schemas));
            }

            XmlReaderSettings xmlReaderSettings = new XmlReaderSettings
            {
#if FEATURE_XML_PROHIBIT_DTD
                ProhibitDtd = true,
#else
                DtdProcessing = DtdProcessing.Prohibit,
#endif
                MaxCharactersInDocument = MaxCharactersInPart,
                Schemas        = schemas,
                ValidationType = ValidationType.Schema,
            };

            using (var partStream = GetStream())
            {
                if (validationEventHandler != null)
                {
                    xmlReaderSettings.ValidationEventHandler += validationEventHandler;
                }

                using (var xmlReader = XmlConvertingReaderFactory.Create(partStream, xmlReaderSettings))
                {
                    // Validate XML data
                    while (xmlReader.Read())
                    {
                    }
                }
            }
        }