Exemple #1
0
        XsElement element;         // ... xsinfo.Element?

        #endregion

        public XmlSchemaValidatingReader(XmlReader reader,
                                         XmlReaderSettings settings)
        {
            IXmlNamespaceResolver nsResolver = reader as IXmlNamespaceResolver;

            if (nsResolver == null)
            {
                //	throw new ArgumentException ("Argument XmlReader must implement IXmlNamespaceResolver.");
                nsResolver = new XmlNamespaceManager(reader.NameTable);
            }

            XmlSchemaSet schemas = settings.Schemas;

            if (schemas == null)
            {
                schemas = new XmlSchemaSet();
            }
            options = settings.ValidationFlags;

            this.reader = reader;
            v           = new XmlSchemaValidator(
                reader.NameTable,
                schemas,
                nsResolver,
                options);

            readerLineInfo          = reader as IXmlLineInfo;
            startDepth              = reader.Depth;
            getter                  = delegate() { return(Value); };
            xsinfo                  = new XmlSchemaInfo(); // transition cache
            v.LineInfoProvider      = this;
            v.ValidationEventSender = reader;
            this.nsResolver         = nsResolver;
#if !NON_MONO
            ValidationEventHandler += delegate(object o, ValidationEventArgs e) {
                settings.OnValidationError(o, e);
            };
            if (settings != null && settings.Schemas != null)
            {
                v.XmlResolver = settings.Schemas.XmlResolver;
            }
            else
            {
                v.XmlResolver = new XmlUrlResolver();
            }
#else
            v.XmlResolver = new XmlUrlResolver();
#endif
            v.Initialize();
        }
        public XmlSchemaValidatingReader(XmlReader reader, XmlReaderSettings settings)
        {
            XmlSchemaValidatingReader <> f__this = this;
            IXmlNamespaceResolver        xmlNamespaceResolver = reader as IXmlNamespaceResolver;

            if (xmlNamespaceResolver == null)
            {
                xmlNamespaceResolver = new XmlNamespaceManager(reader.NameTable);
            }
            XmlSchemaSet xmlSchemaSet = settings.Schemas;

            if (xmlSchemaSet == null)
            {
                xmlSchemaSet = new XmlSchemaSet();
            }
            this.options = settings.ValidationFlags;
            this.reader  = reader;
            this.v       = new XmlSchemaValidator(reader.NameTable, xmlSchemaSet, xmlNamespaceResolver, this.options);
            if (reader.BaseURI != string.Empty)
            {
                this.v.SourceUri = new Uri(reader.BaseURI);
            }
            this.readerLineInfo = (reader as IXmlLineInfo);
            this.getter         = delegate()
            {
                if (< > f__this.v.CurrentAttributeType != null)
                {
                    return(< > f__this.v.CurrentAttributeType.ParseValue(< > f__this.Value, <> f__this.NameTable, <> f__this));
                }
                return(< > f__this.Value);
            };
            this.xsinfo                  = new XmlSchemaInfo();
            this.v.LineInfoProvider      = this;
            this.v.ValidationEventSender = reader;
            this.nsResolver              = xmlNamespaceResolver;
            this.ValidationEventHandler += delegate(object o, ValidationEventArgs e)
            {
                settings.OnValidationError(o, e);
            };
            if (settings != null && settings.Schemas != null)
            {
                this.v.XmlResolver = settings.Schemas.XmlResolver;
            }
            else
            {
                this.v.XmlResolver = new XmlUrlResolver();
            }
            this.v.Initialize();
        }
    XsElement element; // ... xsinfo.Element?

    #endregion

    public XmlSchemaValidatingReader (XmlReader reader,
                                      XmlReaderSettings settings)
    {
        IXmlNamespaceResolver nsResolver = reader as IXmlNamespaceResolver;
        if (nsResolver == null)
            //	throw new ArgumentException ("Argument XmlReader must implement IXmlNamespaceResolver.");
            nsResolver = new XmlNamespaceManager (reader.NameTable);

        XmlSchemaSet schemas = settings.Schemas;
        if (schemas == null)
            schemas = new XmlSchemaSet ();
        options = settings.ValidationFlags;

        this.reader = reader;
        v = new XmlSchemaValidator (
            reader.NameTable,
            schemas,
            nsResolver,
            options);
        if (reader.BaseURI != String.Empty)
            v.SourceUri = new Uri (reader.BaseURI);

        readerLineInfo = reader as IXmlLineInfo;
        getter = delegate ()
        {
            if (v.CurrentAttributeType != null)
                return v.CurrentAttributeType.ParseValue (Value, NameTable, this);
            else
                return Value;
        };
        xsinfo = new XmlSchemaInfo (); // transition cache
        v.LineInfoProvider = this;
        v.ValidationEventSender = reader;
        this.nsResolver = nsResolver;
#if !NON_MONO
        ValidationEventHandler += delegate (object o, ValidationEventArgs e)
        {
            settings.OnValidationError (o, e);
        };
        if (settings != null && settings.Schemas != null)
            v.XmlResolver = settings.Schemas.XmlResolver;
        else
            v.XmlResolver = new XmlUrlResolver ();
#else
        v.XmlResolver = new XmlUrlResolver ();
#endif
        v.Initialize ();
    }