MythTV master
xsd.h
Go to the documentation of this file.
1
2// Program Name: xsd.h
3// Created : Feb. 20, 2012
4//
5// Purpose : XSD Generation Class
6//
7// Copyright (c) 2012 David Blain <dblain@mythtv.org>
8//
9// Licensed under the GPL v2 or later, see LICENSE for details
10//
12
13#ifndef XSD_H
14#define XSD_H
15
16#include <QMetaObject>
17#include <QMetaProperty>
18#include <QString>
19#include <QDomDocument>
20
22
25//
26//
27//
30
31class Xsd : public QDomDocument
32{
33 protected:
34
35 static QString ReadPropertyMetadata ( QObject *pObject,
36 const QString& sPropName,
37 const QString& sKey );
38
39 bool RenderXSD ( HTTPRequest *pRequest,
40 QObject *pClass );
41
42 bool RenderArrayXSD ( HTTPRequest *pRequest,
43 const QString &sClassName,
44 bool bCustomType );
45
46 bool RenderMapXSD ( HTTPRequest *pRequest,
47 const QString &sClassName,
48 bool bCustomType );
49
50
51 QDomElement CreateSchemaRoot ();
52
53 QDomElement CreateComplexTypeNode( QMetaObject *pMetaObject );
54
55 static bool IsNillable ( const QString &sType );
56 static bool IsEnum ( const QMetaProperty &metaProperty,
57 const QString &sType );
58
59 public:
60
61 bool GetXSD ( HTTPRequest *pRequest, QString sTypeName );
62 bool GetEnumXSD( HTTPRequest *pRequest, const QString& sEnumName );
63
64 static QString ConvertTypeToXSD( const QString &sType, bool bCustomType = false );
65};
66
68
69struct TypeInfo { QString sAttrName; QString sContentType; };
70
71#endif // XSD_H
Definition: xsd.h:32
bool RenderArrayXSD(HTTPRequest *pRequest, const QString &sClassName, bool bCustomType)
Definition: xsd.cpp:578
QDomElement CreateComplexTypeNode(QMetaObject *pMetaObject)
bool GetEnumXSD(HTTPRequest *pRequest, const QString &sEnumName)
Definition: xsd.cpp:24
bool RenderXSD(HTTPRequest *pRequest, QObject *pClass)
Definition: xsd.cpp:341
static QString ConvertTypeToXSD(const QString &sType, bool bCustomType=false)
Definition: xsd.cpp:871
bool RenderMapXSD(HTTPRequest *pRequest, const QString &sClassName, bool bCustomType)
Definition: xsd.cpp:689
bool GetXSD(HTTPRequest *pRequest, QString sTypeName)
Definition: xsd.cpp:203
static QString ReadPropertyMetadata(QObject *pObject, const QString &sPropName, const QString &sKey)
Definition: xsd.cpp:920
static bool IsNillable(const QString &sType)
Definition: xsd.cpp:850
static bool IsEnum(const QMetaProperty &metaProperty, const QString &sType)
Definition: xsd.cpp:552
QDomElement CreateSchemaRoot()
Definition: xsd.cpp:832
QString sAttrName
Definition: mythxsd.h:72
QString sContentType
Definition: mythxsd.h:72