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 <QChar> // Fix Qt6 GCC SFINAE warning
17#include <QMetaObject>
18#include <QMetaProperty>
19#include <QString>
20#include <QDomDocument>
21
23
26//
27//
28//
31
32class Xsd : public QDomDocument
33{
34 protected:
35
36 static QString ReadPropertyMetadata ( QObject *pObject,
37 const QString& sPropName,
38 const QString& sKey );
39
40 bool RenderXSD ( HTTPRequest *pRequest,
41 QObject *pClass );
42
43 bool RenderArrayXSD ( HTTPRequest *pRequest,
44 const QString &sClassName,
45 bool bCustomType );
46
47 bool RenderMapXSD ( HTTPRequest *pRequest,
48 const QString &sClassName,
49 bool bCustomType );
50
51
52 QDomElement CreateSchemaRoot ();
53
54 QDomElement CreateComplexTypeNode( QMetaObject *pMetaObject );
55
56 static bool IsNillable ( const QString &sType );
57 static bool IsEnum ( const QMetaProperty &metaProperty,
58 const QString &sType );
59
60 public:
61
62 bool GetXSD ( HTTPRequest *pRequest, QString sTypeName );
63 bool GetEnumXSD( HTTPRequest *pRequest, const QString& sEnumName );
64
65 static QString ConvertTypeToXSD( const QString &sType, bool bCustomType = false );
66};
67
69
70struct TypeInfo { QString sAttrName; QString sContentType; };
71
72#endif // XSD_H
Definition: xsd.h:33
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