KoFilter::ConversionStatus XlsxXmlCommentsReader::readInternal() { readNext(); if (!isStartDocument()) { return KoFilter::WrongFormat; } // comments readNext(); kDebug() << *this << namespaceUri(); if (!expectEl("comments")) { return KoFilter::WrongFormat; } if (!expectNS(MSOOXML::Schemas::spreadsheetml)) { return KoFilter::WrongFormat; } QXmlStreamNamespaceDeclarations namespaces(namespaceDeclarations()); for (int i = 0; i < namespaces.count(); i++) { kDebug() << "NS prefix:" << namespaces[i].prefix() << "uri:" << namespaces[i].namespaceUri(); } //! @todo find out whether the namespace returned by namespaceUri() //! is exactly the same ref as the element of namespaceDeclarations() if (!namespaces.contains(QXmlStreamNamespaceDeclaration(QString(), MSOOXML::Schemas::spreadsheetml))) { raiseError(i18n("Namespace \"%1\" not found", MSOOXML::Schemas::spreadsheetml)); return KoFilter::WrongFormat; } //! @todo expect other namespaces too... TRY_READ(comments) kDebug() << "===========finished============"; return KoFilter::OK; }
KoFilter::ConversionStatus XlsxXmlDocumentReader::readInternal() { kDebug() << "============================="; readNext(); if (!isStartDocument()) { return KoFilter::WrongFormat; } // workbook readNext(); kDebug() << *this << namespaceUri(); if (!expectEl("workbook")) { return KoFilter::WrongFormat; } if (!expectNS(MSOOXML::Schemas::spreadsheetml)) { return KoFilter::WrongFormat; } /* const QXmlStreamAttributes attrs( attributes() ); for (int i=0; i<attrs.count(); i++) { kDebug() << "1 NS prefix:" << attrs[i].name() << "uri:" << attrs[i].namespaceUri(); }*/ QXmlStreamNamespaceDeclarations namespaces(namespaceDeclarations()); for (int i = 0; i < namespaces.count(); i++) { kDebug() << "NS prefix:" << namespaces[i].prefix() << "uri:" << namespaces[i].namespaceUri(); } //! @todo find out whether the namespace returned by namespaceUri() //! is exactly the same ref as the element of namespaceDeclarations() if (!namespaces.contains(QXmlStreamNamespaceDeclaration(QString(), MSOOXML::Schemas::spreadsheetml))) { raiseError(i18n("Namespace \"%1\" not found", MSOOXML::Schemas::spreadsheetml)); return KoFilter::WrongFormat; } //! @todo expect other namespaces too... TRY_READ(workbook) //! @todo hardcoded font face list; look at fonts used by theme mainStyles->insertFontFace(KOdfFontData("Calibri")); mainStyles->insertFontFace(KOdfFontData("Arial")); mainStyles->insertFontFace(KOdfFontData("Tahoma")); kDebug() << "===========finished============"; return KoFilter::OK; }
KoFilter::ConversionStatus DocxXmlFontTableReader::read(MSOOXML::MsooXmlReaderContext* context) { m_context = dynamic_cast<DocxXmlFontTableReaderContext*>(context); kDebug() << "============================="; readNext(); if (!isStartDocument()) { return KoFilter::WrongFormat; } //w:document readNext(); kDebug() << namespaceUri(); if (!expectEl("w:fonts")) { return KoFilter::WrongFormat; } if (!expectNS(MSOOXML::Schemas::wordprocessingml)) { return KoFilter::WrongFormat; } /* const QXmlStreamAttributes attrs( attributes() ); for (int i=0; i<attrs.count(); i++) { kDebug() << "1 NS prefix:" << attrs[i].name() << "uri:" << attrs[i].namespaceUri(); }*/ QXmlStreamNamespaceDeclarations namespaces(namespaceDeclarations()); for (int i = 0; i < namespaces.count(); i++) { kDebug() << "NS prefix:" << namespaces[i].prefix() << "uri:" << namespaces[i].namespaceUri(); } //! @todo find out whether the namespace returned by namespaceUri() //! is exactly the same ref as the element of namespaceDeclarations() if (!namespaces.contains(QXmlStreamNamespaceDeclaration("w", MSOOXML::Schemas::wordprocessingml))) { raiseError(i18n("Namespace \"%1\" not found", MSOOXML::Schemas::wordprocessingml)); return KoFilter::WrongFormat; } //! @todo expect other namespaces too... TRY_READ(fonts) if (!expectElEnd("w:fonts")) { return KoFilter::WrongFormat; } kDebug() << "===========finished============"; return KoFilter::OK; }
/*! ECMA-376, 18.2.27, p. 1746. Root element. Child elements: - bookViews (Workbook Views) §18.2.1 - calcPr (Calculation Properties) §18.2.2 - customWorkbookViews (Custom Workbook Views) §18.2.4 - definedNames (Defined Names) §18.2.6 - externalReferences (External References) §18.2.9 - extLst (Future Feature Data Storage Area) §18.2.10 - fileRecoveryPr (File Recovery Properties) §18.2.11 - fileSharing (File Sharing) §18.2.12 - fileVersion (File Version) §18.2.13 - functionGroups (KCFunction Groups) §18.2.15 - oleSize (Embedded Object Size) §18.2.16 - pivotCaches (PivotCaches) §18.2.18 - [done] sheets (Sheets) §18.2.20 - smartTagPr (Smart Tag Properties) §18.2.21 - smartTagTypes (Smart Tag Types) §18.2.23 - webPublishing (Web Publishing Properties) §18.2.24 - webPublishObjects (Web Publish Objects) §18.2.26 - workbookPr (Workbook Properties) §18.2.28 - workbookProtection (Workbook Protection) §18.2.29 @todo support all child elements */ KoFilter::ConversionStatus XlsxXmlDocumentReader::read_workbook() { READ_PROLOGUE QXmlStreamNamespaceDeclarations namespaces = namespaceDeclarations(); for (int i = 0; i < namespaces.count(); i++) { kDebug() << "NS prefix:" << namespaces[i].prefix() << "uri:" << namespaces[i].namespaceUri(); } while (!atEnd()) { readNext(); kDebug() << *this; BREAK_IF_END_OF(CURRENT_EL); if (isStartElement()) { TRY_READ_IF(sheets) //! @todo add ELSE_WRONG_FORMAT } } READ_EPILOGUE }
KoFilter::ConversionStatus DocxXmlHeaderReader::read(MSOOXML::MsooXmlReaderContext* context) { m_context = static_cast<DocxXmlDocumentReaderContext*>(context); kDebug() << "============================="; readNext(); if (!isStartDocument()) { return KoFilter::WrongFormat; } readNext(); kDebug() << *this << namespaceUri(); if (!expectEl(QList<QByteArray>() << "w:hdr")) { return KoFilter::WrongFormat; } if (!expectNS(MSOOXML::Schemas::wordprocessingml)) { return KoFilter::WrongFormat; } QXmlStreamNamespaceDeclarations namespaces(namespaceDeclarations()); //! @todo find out whether the namespace returned by namespaceUri() //! is exactly the same ref as the element of namespaceDeclarations() if (!namespaces.contains(QXmlStreamNamespaceDeclaration("w", MSOOXML::Schemas::wordprocessingml))) { raiseError(i18n("Namespace \"%1\" not found", MSOOXML::Schemas::wordprocessingml)); return KoFilter::WrongFormat; } const QString qn(qualifiedName().toString()); RETURN_IF_ERROR(read_hdr()) if (!expectElEnd(qn)) { return KoFilter::WrongFormat; } kDebug() << "===========finished============"; return KoFilter::OK; }