17#include <QXmlStreamReader>
19#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
20#define QStringView QStringRef
26 if (decl.prefix() == prefix) {
27 return decl.namespaceUri();
50 for (
const auto &type : s_types) {
52 return type.metaTypeId;
56 return qMetaTypeId<KDDateTime>();
66 const QXmlStreamNamespaceDeclarations combinedNamespaceDeclarations = envNsDecls + reader.
namespaceDeclarations();
73#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
78 const auto invalidType = metaTypeId;
123 if (metaTypeId != invalidType) {
125#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
126 if (!variant.
convert(metaTypeId)) {
130 variant = std::move(copy);
145 int symbol = charRef.
indexOf(
'x');
146 int end = charRef.
indexOf(
';');
148 if (symbol == -1 || end == -1) {
152 uint val = charRef.
mid(symbol + 1, end - symbol - 1).
toInt(&ok, 16);
158 if (val != 0x9 && val != 0xa && val != 0xd && (val <= 0x20)) {
167 qint64 i = offset - 1;
171 while (i >= 0 && data.
at(i) !=
'&') {
172 if (data.
at(i) ==
'<') {
173 return dataCleanedUp;
182 dataCleanedUp = data;
183 dataCleanedUp = dataCleanedUp.
replace(originalSequence,
"?");
185 return dataCleanedUp;
206 messageAddressingProperties.readMessageAddressingProperty(value);
210 pRequestHeaders->
append(header);
221 if (pMessageNamespace) {
243 qWarning() <<
"Handling a Not well Formed Error";
245 if (!dataCleanedUp.
isEmpty()) {
246 return xmlToMessage(dataCleanedUp, pMsg, pMessageNamespace, pRequestHeaders, soapVersion);
static QStringView namespaceForPrefix(const QXmlStreamNamespaceDeclarations &decls, const QString &prefix)
static QByteArray handleNotWellFormedError(const QByteArray &data, qint64 offset)
static KDSoapValue parseElement(QXmlStreamReader &reader, const QXmlStreamNamespaceDeclarations &envNsDecls)
static int xmlTypeToMetaType(const QString &xmlType)
static bool isInvalidCharRef(const QByteArray &charRef)
static bool isWSAddressingNamespace(const QString &namespaceUri)
XmlError xmlToMessage(const QByteArray &data, KDSoapMessage *pParsedMessage, QString *pMessageNamespace, KDSoapHeaders *pRequestHeaders, KDSoap::SoapVersion soapVersion) const
@ PrematureEndOfDocumentError
void setMessageAddressingProperties(const KDSoapMessageAddressingProperties &map)
void createFaultMessage(const QString &faultCode, const QString &faultText, KDSoap::SoapVersion soapVersion)
void setFault(bool fault)
static QString soapEncoding()
static QString soapEnvelope()
static QString xmlSchemaInstance1999()
static QString xmlSchemaInstance2001()
static QString soapEnvelope200305()
static QString soapEncoding200305()
QList< KDSoapValue > & attributes()
KDSoapValueList & childValues() const
void setNamespaceUri(const QString &ns)
QString namespaceUri() const
void setType(const QString &nameSpace, const QString &type)
void setNamespaceDeclarations(const QXmlStreamNamespaceDeclarations &namespaceDeclarations)
void setValue(const QVariant &value)
void setEnvironmentNamespaceDeclarations(const QXmlStreamNamespaceDeclarations &environmentNamespaceDeclarations)
char at(int i) const const
const char * constData() const const
int indexOf(char ch, int from) const const
bool isEmpty() const const
QByteArray mid(int pos, int len) const const
QByteArray & prepend(char ch)
QByteArray & replace(int pos, int len, const char *after)
int toInt(bool *ok, int base) const const
void append(const T &value)
QString tr(const char *sourceText, const char *disambiguation, int n)
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const
QString fromLatin1(const char *str, int size)
int indexOf(QChar ch, int from, Qt::CaseSensitivity cs) const const
bool isEmpty() const const
QString left(int n) const const
QString mid(int position, int n) const const
QString number(int n, int base)
QString toString() const const
QString toString() const const
bool convert(int targetTypeId)
QXmlStreamAttributes attributes() const const
qint64 characterOffset() const const
qint64 columnNumber() const const
QXmlStreamReader::Error error() const const
QString errorString() const const
bool hasError() const const
bool isCharacters() const const
bool isEndElement() const const
bool isStartElement() const const
qint64 lineNumber() const const
QStringRef name() const const
QXmlStreamNamespaceDeclarations namespaceDeclarations() const const
QStringRef namespaceUri() const const
void raiseError(const QString &message)
QXmlStreamReader::TokenType readNext()
bool readNextStartElement()
QStringRef text() const const