Utilizzo di C# e .net 3.5 Sto tentando di convalidare un documento xml rispetto a uno schema che include include.xmldocument e schemi nidificati
Gli schemi e ci comprende sono le seguenti
Schema1.xsd -> includere another.xsd
another.xsd -> includere base.xsd
Quando cerco di aggiungere lo Schema1. xsd per XmlDocument ottengo il seguente errore.
Il tipo 'YesNoType' non è dichiarato o non è un tipo semplice.
Credo di ottenere questo errore perché il file base.xsd non viene incluso quando carico lo schema Schema1.xsd.
Sto provando a utilizzare la classe XmlSchemaSet e sto impostando l'uri XmlResolver nella posizione degli schemi.
NOTA: tutti gli schemi vivono sotto lo stesso directory E: \ Dev \ Main \ XMLSchemas
Ecco il codice
string schemaPath = "E:\\Dev\\Main\\XmlSchemas";
XmlDocument xmlDocSchema = new XmlDocument();
XmlSchemaSet s = new XmlSchemaSet();
XmlUrlResolver resolver = new XmlUrlResolver();
Uri baseUri = new Uri(schemaPath);
resolver.ResolveUri(null, schemaPath);
s.XmlResolver = resolver;
s.Add(null, XmlReader.Create(new System.IO.StreamReader(schemaPath + "\\Schema1.xsd"), new XmlReaderSettings { ValidationType = ValidationType.Schema, XmlResolver = resolver }, new Uri(schemaPath).ToString()));
xmlDocSchema.Schemas.Add(s);
ValidationEventHandler valEventHandler = new ValidationEventHandler
(ValidateNinoDobEvent);
try
{
xmlDocSchema.LoadXml(xml);
xmlDocSchema.Validate(valEventHandler);
}
catch (XmlSchemaValidationException xmlValidationError)
{
// need to interogate the Validation Exception, for possible further
// processing.
string message = xmlValidationError.Message;
return false;
}
Qualcuno mi può punto nella giusta direzione per quanto riguarda la convalida di un XmlDocument contro un schema con include annidati.
BTW, non esiste una cosa come C# .NET –