用C ++中的XML模式生成XML文档

时间:2010-05-26 11:45:45

标签: c++ xml qt xsd

有没有简单的方法可以使用XML Schema创建至少一个模板XML文件?我的主要兴趣是C ++,但也欢迎讨论其他编程语言。我也使用QT框架。

3 个答案:

答案 0 :(得分:4)

您可能必须自己写这个。没有一种方法可以从Schema获取XML文件。如果您可以进行特定于域的假设(例如,如何填充数据项,选择哪些项目,选择特定于域的元素的频率),那么您将获得更好的实例文档。

如果您正在使用C ++,请注意Xerces C++允许您加载架构并访问其模型(即正确访问它,而不仅仅是将架构加载为XML文档)。我建议您下载SCMPrint Sample。它将向您展示如何遍历模式。然后,您可以修改它以打印出示例XML文件。

答案 1 :(得分:1)

检查一下...... How to generate sample XML documents from their DTD or XSD? ..它也接受了答案,并提出了许多其他建议..

答案 2 :(得分:-1)

在Qt 4.5中,XSLT实现扩展了XML支持,允许您轻松地将文档从一种XML方言转换为另一种XML方言或从XML描述生成源代码

W3C XML Schema validation with Qt

示例:

    #include <QtXmlPatterns/QXmlSchema>
    #include <QtXmlPatterns/QXmlSchemaValidator>

    QXmlSchema schema;
    schema.load( QUrl("file:///home/jordenysp/example.xsd") );

    if ( schema.isValid() ) {
        QXmlSchemaValidator validator( schema );
        if ( validator.validate( QUrl("file:///home/jordenysp/result.xml") ) ) {
            qDebug() < < "Is valid";
        } else {
            qDebug() << "Is invalid";
        }
    } else {
        qDebug() << "Is invalid";
    }