2010-05-26 1 views
9

Есть ли простой способ создать хотя бы XML-файл шаблона с использованием XML-схемы? Мой главный интерес ограничен C++, но обсуждения других языков программирования также приветствуются. Я также использую рамки QT.Создание XML-документов из XML-схем в C++

+1

http://stackoverflow.com/questions/307616/xml-instance-generation-from-xml-schema-xsd – 2010-05-26 11:48:01

ответ

4

Вы, возможно, придется написать это самостоятельно. Нет никакого способа получить XML-файл из Схемы. Если вы можете сделать допущения для домена (например, как заполнять элементы данных, какие элементы выбрать в случае выбора, как часто вставлять элементы, относящиеся к домену), тогда вы получите лучший экземплярный документ.

Если вы работаете с C++, обратите внимание, что Xerces C++ позволяет загрузить схему и получить доступ к ее модели (то есть получить доступ к ней правильно, а не просто загружать схему в виде XML-документа). Я предлагаю вам загрузить его в SCMPrint Sample. Он покажет вам, как пройти схему. Затем вы можете изменить это, чтобы вместо этого распечатать образец XML-файла.

-1

В Qt 4.5 поддержка XML была расширена путем реализации XSLT, что позволяет легко конвертировать документы из одного 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"; 
    } 
+0

Ваш пример является примером проверки, не является преобразование XML. – metdos

Смежные вопросы