2010-05-26 12 views
9

C'è un modo semplice per creare almeno un file XML modello utilizzando XML Schema? Il mio interesse principale è delimitato dal C++, ma anche le discussioni su altri linguaggi di programmazione sono benvenute. Anche il modo in cui utilizzo il framework QT.Generazione di documenti XML da schemi XML in C++

+1

http://stackoverflow.com/questions/307616/xml-instance-generation-from-xml-schema-xsd –

risposta

4

Potrebbe essere necessario scrivere questo da soli. Non esiste un modo per ottenere un file XML da uno schema. Se si possono fare ipotesi specifiche per il dominio (ad esempio come popolare gli elementi di dati, quali elementi scegliere in caso di scelta, con quale frequenza inserire elementi specifici del dominio), si otterrà un documento di istanza migliore.

Se si sta lavorando con C++, notare che Xerces C++ consente di caricare uno schema e accedere al suo modello (ad esempio, accedervi correttamente, non solo caricare lo schema come documento XML). Ti suggerisco di scaricarlo e controllare lo SCMPrint Sample. Ti mostrerà come attraversare uno schema. È quindi possibile modificarlo per stampare invece un file XML di esempio.

-1

In Qt 4.5 il supporto XML è stato esteso da un'implementazione XSLT, che permette di convertire facilmente i documenti da un dialetto XML in un altro o il codice sorgente che genera da una descrizione XML

W3C XML Schema validation with Qt

Esempio:

#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

Il vostro esempio è un esempio di convalida, non una trasformazione di XML. – metdos