00001 // Copyright (C) 2009-2011 by Konrad Rosenbaum <konrad@silmor.de> 00002 // protected under the GNU GPL version 3 or at your option any newer. 00003 // See COPYING.GPL file that comes with this distribution. 00004 // 00005 00006 #ifndef WOC_SCHEMAOUT_H 00007 #define WOC_SCHEMAOUT_H 00008 00009 #include "processor.h" 00010 00011 #include <QDomDocument> 00012 #include <QDomElement> 00013 00015 class WocSchemaOut:public WocOutput 00016 { 00017 public: 00021 WocSchemaOut(QString dirname,QString filename="project.xsd"); 00022 00024 WocSchemaOut(const QDomElement&); 00025 00029 void addStaticSchemas(QString compound=QString(),WocProcessor::MessageEncoding encoding=WocProcessor::DefaultEncoding); 00030 protected: 00032 virtual void finalize(); 00034 virtual void newClass(const WocClass&); 00036 virtual void newTable(const WocTable&); 00038 virtual void newTransaction(const WocTransaction&); 00039 private: 00040 QString m_name,m_dir; 00041 QDomDocument m_doc; 00042 QDomElement m_root; 00043 00045 void initialize(); 00046 00048 QString schemaType(QString); 00050 QString schemaType(const WocClass&,QString); 00051 }; 00052 00053 #endif