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文件。