0
我有两个模式,一个与所述对象的主要定义时不是一个简单的类型,而另一个具有如definiton对于不是简单类型(字符串,整数,小数例如)类型“http://schemas.domain.com:Ssn”未声明,或者使用多个模式
被称为common.xsd
当我验证类型,它增加了两种模式,但它doesn't发现在包括在类型文件。
Main.Xsd成立:
<xs:include schemaLocation="Common.xsd"/>
,这是验证函数:
XmlReaderSettings settings = new XmlReaderSettings();
FileStream fileStream = File.OpenRead(xsdFile);
XmlSchema schema = XmlSchema.Read(File.OpenRead(System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Schemas\\Main.xsd")), OnXsdSyntaxError);
XmlSchema schema2 = XmlSchema.Read(File.OpenRead(System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Schemas\\Common.xsd")), OnXsdSyntaxError);
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
//þurfum að adda common.xsd líka !
settings.Schemas.Add(schema);
settings.Schemas.Add(schema2);
settings.ValidationEventHandler += new ValidationEventHandler(OnXsdSyntaxError);
using (XmlReader validator = XmlReader.Create(xmlFile, settings))
{
while (validator.Read())
isValid = true;
}
错误是:
类型“http://schemas.domain.com: Ssn'没有被声明,或者不是一个简单的类型。
所以很明显它没有添加scheme2文件为此广告这个自定义类型没有找到定义。
我真的很感激帮助这一点,因为i'm被迫在此验证使用多个XSD文件。