c#と.net 3.5を使用すると、含まれているスキーマに対してxmlドキュメントを検証しようとしています。xmldocumentと入れ子になったスキーマ
スキーマと
Schema1.xsd以下の通りですが、そこに含まれては - >
another.xsdをanother.xsd含ま - >私はSCHEMA1を追加しようとすると
をbase.xsd含まれています。 xsdをXmlDocumentに渡すと、次のエラーが発生します。
タイプ 'YesNoType'は宣言されていないか、単純なタイプではありません。
Schema1.xsdスキーマを読み込むときにbase.xsdファイルが含まれていないため、このエラーが発生すると思います。
私はXmlSchemaSetクラスを使用しようとしており、XmlResolver URIをスキーマの場所に設定しています。
注:すべてのスキーマが同じディレクトリEの下で暮らす:\ Devの\メイン\ XmlSchemas
ここでは、コード
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;
}
は、誰でも反対のXmlDocument確認に関する正しい方向に私を指すことができますですネストしたインクルードのスキーマ。私は何をする必要がスキーマをマージすることであることをを考える
ところで、C#.NETのようなものはありません –