Как проверить xml-документ с помощью нескольких xml-схем - PullRequest
0 голосов
/ 28 апреля 2010

xmlns: m = "http://www.MangoDSP.com/mav/wsdl" как локальный файл:" ma.wsdl " xmlns: m0 = "http://www.MangoDSP.com/schema" как локальный файл:" MaTypes.xsd "

как я могу это проверить.

1 Ответ

1 голос
/ 28 апреля 2010

Я не делал этого некоторое время (правда, годы), и снова я отправляю сообщения со своего ноутбука Linux, поэтому, пожалуйста, прости нечеткость.

private bool isValid;
private ArrayList exceptionList;

public bool Validate()
{
    isValid = true;
    exceptionList = new ArrayList();

    XmlTextReader reader;
    XmlSchema schema;
    XmlSchemaCollection schemas = new XmlSchemaCollection();

    reader = new XmlTextReader( "schema file 1" );
    schema = XmlSchema.Read( reader, new ValidationEventHandler( ValidationError ) );
    schemas.Add( schema );

    reader = new XmlTextReader( "schema file 2" );
    schema = XmlSchema.Read( reader, new ValidationEventHandler( ValidationError ) );
    schemas.Add( schema );

    reader = new XmlTextReader( "validate this file" );

    XmlValidatingReader validatingReader;

    validatingReader = new XmlValidatingReader( reader );
    validatingReader.ValidationEventHandler += new ValidationEventHandler( ValidationError );
    validatingReader.Schemas.Add( schemas );

    isValid = true;
    exceptionList = new ArrayList();

    while ( validatingReader.Read() );

    return isValid;
}

private void ValidationError( object sender, ValidationEventArgs e )
{
    isValid = false;
    exceptionList.Add( e.Exception );
}

Вы также захотите выполнить некоторую обработку ошибок и очистку ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...