代码之家  ›  专栏  ›  技术社区  ›  Jordan

根据XDocument实例自己的架构引用验证它

  •  1
  • Jordan  · 技术社区  · 14 年前

    我用的是 XDocument.Validate 扩展方法来验证我的实例。有没有办法让XML实例对自己的模式引用负责?这似乎是一件相当含蓄的事情。不幸的是,只需将实例加载到 XDocument 似乎没有隐式执行此验证。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Shcheklein    14 年前

    如果要在加载时验证,请尝试使用:

    XDocument.Load Method (XmlReader, LoadOptions)

    通过验证 XMLReader

    例如,类似这样的情况:

    XmlReader reader;
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.ValidationType = ValidationType.Schema;
    settings.ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings |
        XmlSchemaValidationFlags.ProcessSchemaLocation;
    
    ValidationEventHandler validator = delegate(object sender,
    ValidationEventArgs e)
    {
        Console.WriteLine("{0}: {1}", e.Severity, e.Message);
    };
    settings.ValidationEventHandler += validator;
    settings.CloseInput = true;
    StringReader sr = new StringReader(inputXml);
    reader = XmlReader.Create(sr, settings);