标签用于在qt creator 中查询相关工程
一、标签 Schema Validator 模式验证器
就是根据 已知的XML 模式,验证输入的XML 文件格式是否匹配,不匹配可以输出不匹配位置
如下,,首先定义了contact 元素 的子元素列表,,匹配文件中title 并没有定义,所以报错
// 核心代码
MessageHandler messageHandler; //自定义消息结构,用于接受验证器异常的输出
QXmlSchema schema; //源模式
schema.setMessageHandler(&messageHandler);
schema.load(schemaData);
bool errorOccurred = false;
if (!schema.isValid()) {
errorOccurred = true;
} else {
QXmlSchemaValidator validator(schema); //验证器
if (!validator.validate(instanceData))
errorOccurred = true;
}
if (errorOccurred) {
validationStatus->setText(messageHandler.statusMessage()); //输入异常
} else {
validationStatus->setText(tr("validation successful"));
}
二、标签 Recipes XML
Using Qt XML Patterns to query XML data loaded from a file
理解为 输入查询条件和输出格式,从源文件中查找匹配项并根据格式输出
QFile sourceDocument; //输入文件
sourceDocument.setFileName(":/files/cookbook.xml");
sourceDocument.open(QIODevice::ReadOnly);
QByteArray outArray; //查询输出缓存
QBuffer buffer(&outArray);
buffer.open(QIODevice::ReadWrite);
QXmlQuery query;
//绑定变量,理解为将输入文件绑定到查询字符串中的变量inputDocument
query.bindVariable("inputDocument", &sourceDocument);
query.setQuery(str);
if (!query.isValid())//执行
return;
QXmlFormatter formatter(query, &buffer); //将查询到的结果按格式输出到buffer
if (!query.evaluateTo(&formatter)) //执行
return;
三、标签 File patterns system xml
Using Qt XML Patterns for querying non-XML data that is modeled to look like XML.
也是用 QXmlQuery 去查询非XML 数据,然后输入XML 格式的数据