MythTV master
mythxsd.h
Go to the documentation of this file.
1
3// Program Name: xsd.h
4// Created : Feb. 20, 2012
5//
6// Purpose : XSD Generation Class
7//
8// Copyright (c) 2012 David Blain <dblain@mythtv.org>
9//
10// Licensed under the GPL v2 or later, see COPYING for details
11//
13
14#ifndef MYTHXSD_H
15#define MYTHXSD_H
16
17#include <QMetaObject>
18#include <QString>
19#include <QMap>
20#include <QDomDocument>
21
24
27//
28//
29//
32
33class MythXSD : public QDomDocument
34{
35 protected:
36
37 static QString ReadPropertyMetadata ( QObject *pObject,
38 const QString& sPropName,
39 const QString& sKey );
40
41 bool RenderXSD ( const HTTPRequest2& pRequest,
42 QObject *pClass );
43
44 bool RenderArrayXSD ( const HTTPRequest2& pRequest,
45 const QString &sClassName,
46 bool bCustomType );
47
48 bool RenderMapXSD ( const HTTPRequest2& pRequest,
49 const QString &sClassName,
50 bool bCustomType );
51
52
53 QDomElement CreateSchemaRoot ();
54
55 QDomElement CreateComplexTypeNode( QMetaObject *pMetaObject );
56
57 static bool IsNillable ( const QString &sType );
58 static bool IsEnum ( const QMetaProperty &metaProperty,
59 const QString &sType );
60
61 static HTTPResponse Error(const HTTPRequest2& pRequest, const QString &msg);
62 public:
63
64 HTTPResponse GetXSD ( const HTTPRequest2& pRequest, QString sTypeName );
65 // HTTPResponse GetEnumXSD( const HTTPRequest2& pRequest, const QString& sEnumName );
66
67 static QString ConvertTypeToXSD( const QString &sType, bool bCustomType = false );
68};
69
71
72struct TypeInfo { QString sAttrName; QString sContentType; };
73
74#endif // MYTHXSD_H
static HTTPResponse Error(const HTTPRequest2 &pRequest, const QString &msg)
Definition: mythxsd.cpp:989
QDomElement CreateComplexTypeNode(QMetaObject *pMetaObject)
static QString ConvertTypeToXSD(const QString &sType, bool bCustomType=false)
Definition: mythxsd.cpp:905
HTTPResponse GetXSD(const HTTPRequest2 &pRequest, QString sTypeName)
Definition: mythxsd.cpp:214
bool RenderXSD(const HTTPRequest2 &pRequest, QObject *pClass)
Definition: mythxsd.cpp:362
QDomElement CreateSchemaRoot()
Definition: mythxsd.cpp:866
static QString ReadPropertyMetadata(QObject *pObject, const QString &sPropName, const QString &sKey)
Definition: mythxsd.cpp:964
static bool IsEnum(const QMetaProperty &metaProperty, const QString &sType)
Definition: mythxsd.cpp:578
bool RenderMapXSD(const HTTPRequest2 &pRequest, const QString &sClassName, bool bCustomType)
Definition: mythxsd.cpp:718
bool RenderArrayXSD(const HTTPRequest2 &pRequest, const QString &sClassName, bool bCustomType)
Definition: mythxsd.cpp:604
static bool IsNillable(const QString &sType)
Definition: mythxsd.cpp:884
std::shared_ptr< MythHTTPRequest > HTTPRequest2
Definition: mythhttptypes.h:39
std::shared_ptr< MythHTTPResponse > HTTPResponse
Definition: mythhttptypes.h:40
QString sAttrName
Definition: mythxsd.h:72
QString sContentType
Definition: mythxsd.h:72