QXmlSchema验证

时间:2012-05-03 11:30:25

标签: qt xsd xsd-validation

我正在尝试使用QXmlSchema提供的方法检查XML架构的有效性。 我从其他工具(例如Eclipse或xmllint)知道模式 有效,但使用以下代码的结果总是导致“模式无效”。

QFile file("/home/....xsd");
file.open(QIODevice::ReadOnly);

QXmlSchema schema;
schema.load(&file, QUrl::fromLocalFile(file.fileName()));

if ( schema.isValid() ) {
    QXmlSchemaValidator validator( schema );
    if ( validator.validate( QUrl("file:///......xml") ) ) {
        qDebug() << "instance is valid";
    } else {
        qDebug() << "instance is invalid";
    }
} else {
    qDebug() << "schema is invalid";
}

记录的错误类似于:

  

文件中的错误XSDError:///home/......xsd,第X行,第Y列:复杂类型foo的内容模型不是bar内容模型的有效扩展名。

我想知道这是否与Schema名称空间导入或其他内容有关。

编辑: 我所指的架构是this one

0 个答案:

没有答案