private void ProcessInlineSchema() { if (!_inlineSchemaParser !.ParseReaderNode()) { // Done _inlineSchemaParser.FinishParsing(); XmlSchema?schema = _inlineSchemaParser.XmlSchema; string? inlineNS; if (schema != null && schema.ErrorCount == 0) { try { SchemaInfo inlineSchemaInfo = new SchemaInfo(); inlineSchemaInfo.SchemaType = SchemaType.XSD; inlineNS = schema.TargetNamespace == null ? string.Empty : schema.TargetNamespace; if (!SchemaInfo !.TargetNamespaces.ContainsKey(inlineNS)) { if (SchemaCollection !.Add(inlineNS, inlineSchemaInfo, schema, true) != null) { //If no errors on compile //Add to validator's SchemaInfo SchemaInfo.Add(inlineSchemaInfo, EventHandler); } } } catch (XmlSchemaException e) { SendValidationEvent(SR.Sch_CannotLoadSchema, new string[] { BaseUri !.AbsoluteUri, e.Message }, XmlSeverityType.Error);
private void LoadSchema(string uri) { if (this.schemaInfo !.TargetNamespaces.ContainsKey(uri)) { return; } if (this.XmlResolver == null) { return; } SchemaInfo?schemaInfo = null; if (SchemaCollection != null) { schemaInfo = SchemaCollection.GetSchemaInfo(uri); } if (schemaInfo != null) { if (schemaInfo.SchemaType != SchemaType.XDR) { throw new XmlException(SR.Xml_MultipleValidationTypes, string.Empty, this.PositionInfo.LineNumber, this.PositionInfo.LinePosition); } this.schemaInfo.Add(schemaInfo, EventHandler); return; } LoadSchemaFromLocation(uri); }