1// qxmlstream.sip generated by MetaSIP 2// 3// This file is part of the QtCore Python extension module. 4// 5// Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com> 6// 7// This file is part of PyQt5. 8// 9// This file may be used under the terms of the GNU General Public License 10// version 3.0 as published by the Free Software Foundation and appearing in 11// the file LICENSE included in the packaging of this file. Please review the 12// following information to ensure the GNU General Public License version 3.0 13// requirements will be met: http://www.gnu.org/copyleft/gpl.html. 14// 15// If you do not wish to use this file under the terms of the GPL version 3.0 16// then you may purchase a commercial license. For more information contact 17// info@riverbankcomputing.com. 18// 19// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 20// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 21 22 23class QXmlStreamAttribute 24{ 25%TypeHeaderCode 26#include <qxmlstream.h> 27%End 28 29public: 30 QXmlStreamAttribute(); 31 QXmlStreamAttribute(const QString &qualifiedName, const QString &value); 32 QXmlStreamAttribute(const QString &namespaceUri, const QString &name, const QString &value); 33 QXmlStreamAttribute(const QXmlStreamAttribute &); 34 ~QXmlStreamAttribute(); 35 QStringRef namespaceUri() const; 36 QStringRef name() const; 37 QStringRef qualifiedName() const; 38 QStringRef prefix() const; 39 QStringRef value() const; 40 bool isDefault() const; 41 bool operator==(const QXmlStreamAttribute &other) const; 42 bool operator!=(const QXmlStreamAttribute &other) const; 43}; 44 45class QXmlStreamAttributes 46{ 47%TypeHeaderCode 48#include <qxmlstream.h> 49%End 50 51public: 52 QXmlStreamAttributes(); 53 QStringRef value(const QString &namespaceUri, const QString &name) const; 54 QStringRef value(const QString &qualifiedName) const; 55 void append(const QString &namespaceUri, const QString &name, const QString &value); 56 void append(const QString &qualifiedName, const QString &value); 57 void append(const QXmlStreamAttribute &attribute); 58 bool hasAttribute(const QString &qualifiedName) const; 59 bool hasAttribute(const QString &namespaceUri, const QString &name) const; 60// Methods inherited from QVector<QXmlStreamAttribute> and Python special methods. 61// Keep in sync with QPolygon and QPolygonF. 62 63// This is picked up with "using" by QXmlStreamAttributes. 64//void append(const QXmlStreamAttribute &value); 65 66const QXmlStreamAttribute &at(int i) const; 67void clear(); 68bool contains(const QXmlStreamAttribute &value) const; 69int count(const QXmlStreamAttribute &value) const; 70int count() const /__len__/; 71void *data(); 72 73// Note the Qt return value is discarded as it would require handwritten code 74// and seems pretty useless. 75void fill(const QXmlStreamAttribute &value, int size = -1); 76 77QXmlStreamAttribute &first(); 78int indexOf(const QXmlStreamAttribute &value, int from = 0) const; 79void insert(int i, const QXmlStreamAttribute &value); 80bool isEmpty() const; 81QXmlStreamAttribute &last(); 82int lastIndexOf(const QXmlStreamAttribute &value, int from = -1) const; 83 84// Note the Qt return type is QVector<QXmlStreamAttribute>. We can't do the 85// usual trick because there is no QXmlStreamAttributes ctor that takes a 86// QVector<QXmlStreamAttribute> argument. We could use handwritten code but we 87// don't bother. 88//QXmlStreamAttributes mid(int pos, int length = -1) const; 89 90void prepend(const QXmlStreamAttribute &value); 91void remove(int i); 92void remove(int i, int count); 93void replace(int i, const QXmlStreamAttribute &value); 94int size() const; 95 96// These are hidden by other implementations in QXmlStreamAttributes. 97//QXmlStreamAttribute value(int i) const; 98//QXmlStreamAttribute value(int i, const QXmlStreamAttribute &defaultValue) const; 99 100bool operator!=(const QXmlStreamAttributes &other) const; 101 102// Note the Qt return type is QVector<QXmlStreamAttribute>. We can't do the 103// usual trick because there is no QXmlStreamAttributes ctor that takes a 104// QVector<QXmlStreamAttribute> argument. We could use handwritten code but we 105// don't bother. 106//QXmlStreamAttributes operator+(const QXmlStreamAttributes &other) const; 107 108QXmlStreamAttributes &operator+=(const QXmlStreamAttributes &other); 109QXmlStreamAttributes &operator+=(const QXmlStreamAttribute &value); 110 111bool operator==(const QXmlStreamAttributes &other) const; 112 113QXmlStreamAttribute &operator[](int i); 114%MethodCode 115Py_ssize_t idx = sipConvertFromSequenceIndex(a0, sipCpp->count()); 116 117if (idx < 0) 118 sipIsErr = 1; 119else 120 sipRes = &sipCpp->operator[]((int)idx); 121%End 122 123// Some additional Python special methods. 124 125void __setitem__(int i, const QXmlStreamAttribute &value); 126%MethodCode 127int len; 128 129len = sipCpp->count(); 130 131if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) 132 sipIsErr = 1; 133else 134 (*sipCpp)[a0] = *a1; 135%End 136 137void __setitem__(SIP_PYSLICE slice, const QXmlStreamAttributes &list); 138%MethodCode 139Py_ssize_t start, stop, step, slicelength; 140 141if (sipConvertFromSliceObject(a0, sipCpp->count(), &start, &stop, &step, &slicelength) < 0) 142{ 143 sipIsErr = 1; 144} 145else 146{ 147 int vlen = a1->count(); 148 149 if (vlen != slicelength) 150 { 151 sipBadLengthForSlice(vlen, slicelength); 152 sipIsErr = 1; 153 } 154 else 155 { 156 QVector<QXmlStreamAttribute>::const_iterator it = a1->begin(); 157 158 for (Py_ssize_t i = 0; i < slicelength; ++i) 159 { 160 (*sipCpp)[start] = *it; 161 start += step; 162 ++it; 163 } 164 } 165} 166%End 167 168void __delitem__(int i); 169%MethodCode 170if ((a0 = (int)sipConvertFromSequenceIndex(a0, sipCpp->count())) < 0) 171 sipIsErr = 1; 172else 173 sipCpp->remove(a0); 174%End 175 176void __delitem__(SIP_PYSLICE slice); 177%MethodCode 178Py_ssize_t start, stop, step, slicelength; 179 180if (sipConvertFromSliceObject(a0, sipCpp->count(), &start, &stop, &step, &slicelength) < 0) 181{ 182 sipIsErr = 1; 183} 184else 185{ 186 for (Py_ssize_t i = 0; i < slicelength; ++i) 187 { 188 sipCpp->remove(start); 189 start += step - 1; 190 } 191} 192%End 193 194QXmlStreamAttributes operator[](SIP_PYSLICE slice); 195%MethodCode 196Py_ssize_t start, stop, step, slicelength; 197 198if (sipConvertFromSliceObject(a0, sipCpp->count(), &start, &stop, &step, &slicelength) < 0) 199{ 200 sipIsErr = 1; 201} 202else 203{ 204 sipRes = new QXmlStreamAttributes(); 205 206 for (Py_ssize_t i = 0; i < slicelength; ++i) 207 { 208 (*sipRes) += (*sipCpp)[start]; 209 start += step; 210 } 211} 212%End 213 214int __contains__(const QXmlStreamAttribute &value); 215%MethodCode 216// It looks like you can't assign QBool to int. 217sipRes = bool(sipCpp->contains(*a0)); 218%End 219}; 220 221class QXmlStreamNamespaceDeclaration 222{ 223%TypeHeaderCode 224#include <qxmlstream.h> 225%End 226 227public: 228 QXmlStreamNamespaceDeclaration(); 229 QXmlStreamNamespaceDeclaration(const QXmlStreamNamespaceDeclaration &); 230 QXmlStreamNamespaceDeclaration(const QString &prefix, const QString &namespaceUri); 231 ~QXmlStreamNamespaceDeclaration(); 232 QStringRef prefix() const; 233 QStringRef namespaceUri() const; 234 bool operator==(const QXmlStreamNamespaceDeclaration &other) const; 235 bool operator!=(const QXmlStreamNamespaceDeclaration &other) const; 236}; 237 238typedef QVector<QXmlStreamNamespaceDeclaration> QXmlStreamNamespaceDeclarations; 239 240class QXmlStreamNotationDeclaration 241{ 242%TypeHeaderCode 243#include <qxmlstream.h> 244%End 245 246public: 247 QXmlStreamNotationDeclaration(); 248 QXmlStreamNotationDeclaration(const QXmlStreamNotationDeclaration &); 249 ~QXmlStreamNotationDeclaration(); 250 QStringRef name() const; 251 QStringRef systemId() const; 252 QStringRef publicId() const; 253 bool operator==(const QXmlStreamNotationDeclaration &other) const; 254 bool operator!=(const QXmlStreamNotationDeclaration &other) const; 255}; 256 257typedef QVector<QXmlStreamNotationDeclaration> QXmlStreamNotationDeclarations; 258 259class QXmlStreamEntityDeclaration 260{ 261%TypeHeaderCode 262#include <qxmlstream.h> 263%End 264 265public: 266 QXmlStreamEntityDeclaration(); 267 QXmlStreamEntityDeclaration(const QXmlStreamEntityDeclaration &); 268 ~QXmlStreamEntityDeclaration(); 269 QStringRef name() const; 270 QStringRef notationName() const; 271 QStringRef systemId() const; 272 QStringRef publicId() const; 273 QStringRef value() const; 274 bool operator==(const QXmlStreamEntityDeclaration &other) const; 275 bool operator!=(const QXmlStreamEntityDeclaration &other) const; 276}; 277 278typedef QVector<QXmlStreamEntityDeclaration> QXmlStreamEntityDeclarations; 279 280class QXmlStreamEntityResolver 281{ 282%TypeHeaderCode 283#include <qxmlstream.h> 284%End 285 286public: 287 virtual ~QXmlStreamEntityResolver(); 288 virtual QString resolveUndeclaredEntity(const QString &name); 289}; 290 291class QXmlStreamReader 292{ 293%TypeHeaderCode 294#include <qxmlstream.h> 295%End 296 297public: 298 enum TokenType 299 { 300 NoToken, 301 Invalid, 302 StartDocument, 303 EndDocument, 304 StartElement, 305 EndElement, 306 Characters, 307 Comment, 308 DTD, 309 EntityReference, 310 ProcessingInstruction, 311 }; 312 313 QXmlStreamReader(); 314 explicit QXmlStreamReader(QIODevice *device); 315 explicit QXmlStreamReader(const QByteArray &data); 316 explicit QXmlStreamReader(const QString &data); 317 ~QXmlStreamReader(); 318 void setDevice(QIODevice *device); 319 QIODevice *device() const; 320 void addData(const QByteArray &data); 321 void addData(const QString &data); 322 void clear(); 323 bool atEnd() const; 324 QXmlStreamReader::TokenType readNext(); 325 QXmlStreamReader::TokenType tokenType() const; 326 QString tokenString() const; 327 void setNamespaceProcessing(bool); 328 bool namespaceProcessing() const; 329 bool isStartDocument() const; 330 bool isEndDocument() const; 331 bool isStartElement() const; 332 bool isEndElement() const; 333 bool isCharacters() const; 334 bool isWhitespace() const; 335 bool isCDATA() const; 336 bool isComment() const; 337 bool isDTD() const; 338 bool isEntityReference() const; 339 bool isProcessingInstruction() const; 340 bool isStandaloneDocument() const; 341 QStringRef documentVersion() const; 342 QStringRef documentEncoding() const; 343 qint64 lineNumber() const; 344 qint64 columnNumber() const; 345 qint64 characterOffset() const; 346 QXmlStreamAttributes attributes() const; 347 348 enum ReadElementTextBehaviour 349 { 350 ErrorOnUnexpectedElement, 351 IncludeChildElements, 352 SkipChildElements, 353 }; 354 355 QString readElementText(QXmlStreamReader::ReadElementTextBehaviour behaviour = QXmlStreamReader::ErrorOnUnexpectedElement); 356 QStringRef name() const; 357 QStringRef namespaceUri() const; 358 QStringRef qualifiedName() const; 359 QStringRef prefix() const; 360 QStringRef processingInstructionTarget() const; 361 QStringRef processingInstructionData() const; 362 QStringRef text() const; 363 QXmlStreamNamespaceDeclarations namespaceDeclarations() const; 364 void addExtraNamespaceDeclaration(const QXmlStreamNamespaceDeclaration &extraNamespaceDeclaraction); 365 void addExtraNamespaceDeclarations(const QXmlStreamNamespaceDeclarations &extraNamespaceDeclaractions); 366 QXmlStreamNotationDeclarations notationDeclarations() const; 367 QXmlStreamEntityDeclarations entityDeclarations() const; 368 QStringRef dtdName() const; 369 QStringRef dtdPublicId() const; 370 QStringRef dtdSystemId() const; 371 372 enum Error 373 { 374 NoError, 375 UnexpectedElementError, 376 CustomError, 377 NotWellFormedError, 378 PrematureEndOfDocumentError, 379 }; 380 381 void raiseError(const QString &message = QString()); 382 QString errorString() const; 383 QXmlStreamReader::Error error() const; 384 bool hasError() const; 385 void setEntityResolver(QXmlStreamEntityResolver *resolver /KeepReference/); 386 QXmlStreamEntityResolver *entityResolver() const; 387 bool readNextStartElement(); 388 void skipCurrentElement(); 389%If (Qt_5_15_0 -) 390 int entityExpansionLimit() const; 391%End 392%If (Qt_5_15_0 -) 393 void setEntityExpansionLimit(int limit); 394%End 395 396private: 397 QXmlStreamReader(const QXmlStreamReader &); 398}; 399 400class QXmlStreamWriter 401{ 402%TypeHeaderCode 403#include <qxmlstream.h> 404%End 405 406public: 407 QXmlStreamWriter(); 408 explicit QXmlStreamWriter(QIODevice *device); 409 explicit QXmlStreamWriter(QByteArray *array); 410 ~QXmlStreamWriter(); 411 void setDevice(QIODevice *device); 412 QIODevice *device() const; 413 void setCodec(QTextCodec *codec /KeepReference/); 414 void setCodec(const char *codecName); 415 QTextCodec *codec() const; 416 void setAutoFormatting(bool); 417 bool autoFormatting() const; 418 void setAutoFormattingIndent(int spaces); 419 int autoFormattingIndent() const; 420 void writeAttribute(const QString &qualifiedName, const QString &value); 421 void writeAttribute(const QString &namespaceUri, const QString &name, const QString &value); 422 void writeAttribute(const QXmlStreamAttribute &attribute); 423 void writeAttributes(const QXmlStreamAttributes &attributes); 424 void writeCDATA(const QString &text); 425 void writeCharacters(const QString &text); 426 void writeComment(const QString &text); 427 void writeDTD(const QString &dtd); 428 void writeEmptyElement(const QString &qualifiedName); 429 void writeEmptyElement(const QString &namespaceUri, const QString &name); 430 void writeTextElement(const QString &qualifiedName, const QString &text); 431 void writeTextElement(const QString &namespaceUri, const QString &name, const QString &text); 432 void writeEndDocument(); 433 void writeEndElement(); 434 void writeEntityReference(const QString &name); 435 void writeNamespace(const QString &namespaceUri, const QString &prefix = QString()); 436 void writeDefaultNamespace(const QString &namespaceUri); 437 void writeProcessingInstruction(const QString &target, const QString &data = QString()); 438 void writeStartDocument(); 439 void writeStartDocument(const QString &version); 440 void writeStartDocument(const QString &version, bool standalone); 441 void writeStartElement(const QString &qualifiedName); 442 void writeStartElement(const QString &namespaceUri, const QString &name); 443 void writeCurrentToken(const QXmlStreamReader &reader); 444 bool hasError() const; 445 446private: 447 QXmlStreamWriter(const QXmlStreamWriter &); 448}; 449