Loading...
Searching...
No Matches
manifestxml.cpp
Go to the documentation of this file.
/*
libodsstream is a library to read and write ODS documents as streams
Copyright (C) 2013 Olivier Langella <Olivier.Langella@moulon.inra.fr>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "manifestxml.h"
#include <QXmlStreamWriter>
#include <quazipfile.h>
QString ManifestXml::_namespaceURI =
"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0";
ManifestXml::ManifestXml(QuaZip *p_quaZip) : _p_quaZip(p_quaZip)
{
QuaZipFile outFile(_p_quaZip);
QuaZipNewInfo info("META-INF/manifest.xml");
outFile.open(QIODevice::WriteOnly, info);
_p_writer = new QXmlStreamWriter(&outFile);
_p_writer->setAutoFormatting(true);
this->WriteHeader();
_p_writer->writeStartElement(_namespaceURI, "file-entry");
_p_writer->writeAttribute(_namespaceURI, "full-path", "/");
_p_writer->writeAttribute(_namespaceURI,
"media-type",
"application/vnd.oasis.opendocument.spreadsheet");
_p_writer->writeEndElement();
_p_writer->writeStartElement(_namespaceURI, "file-entry");
_p_writer->writeAttribute(_namespaceURI, "full-path", "styles.xml");
_p_writer->writeAttribute(_namespaceURI, "media-type", "text/xml");
_p_writer->writeEndElement();
_p_writer->writeStartElement(_namespaceURI, "file-entry");
_p_writer->writeAttribute(_namespaceURI, "full-path", "content.xml");
_p_writer->writeAttribute(_namespaceURI, "media-type", "text/xml");
_p_writer->writeEndElement();
_p_writer->writeStartElement(_namespaceURI, "file-entry");
_p_writer->writeAttribute(_namespaceURI, "full-path", "meta.xml");
_p_writer->writeAttribute(_namespaceURI, "media-type", "text/xml");
_p_writer->writeEndElement();
//<manifest:file-entry manifest:full-path="mimetype"
// manifest:media-type="text/plain" />
/*
_p_writer->writeStartElement(_namespaceURI, "file-entry");
_p_writer->writeAttribute(_namespaceURI, "full-path", "mimetype");
_p_writer->writeAttribute(_namespaceURI, "media-type", "text/plain");
_p_writer->writeEndElement();
*/
//<manifest:file-entry manifest:full-path="META-INF/manifest.xml"
// manifest:media-type="text/xml" />
/*
_p_writer->writeStartElement(_namespaceURI,"file-entry");
_p_writer->writeAttribute(_namespaceURI, "full-path",
"META-INF/manifest.xml"); _p_writer->writeAttribute(_namespaceURI,
"media-type", "text/xml"); _p_writer->writeEndElement();
*/
//<manifest:file-entry manifest:full-path="settings.xml"
//manifest:media-type="text/xml"/>
_p_writer->writeStartElement(_namespaceURI, "file-entry");
_p_writer->writeAttribute(_namespaceURI, "full-path", "settings.xml");
_p_writer->writeAttribute(_namespaceURI, "media-type", "text/xml");
_p_writer->writeEndElement();
_p_writer->writeEndDocument();
delete _p_writer;
outFile.close();
}
ManifestXml::~ManifestXml()
{
}
void
ManifestXml::WriteHeader()
{
_p_writer->writeStartDocument("1.0");
//<manifest:manifest
//xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"
//manifest:version="1.2" >
_p_writer->writeNamespace(_namespaceURI, "manifest");
_p_writer->writeStartElement(_namespaceURI, "manifest");
_p_writer->writeAttribute(_namespaceURI, "version", "1.2");
//_p_writer->setPrefix("manifest", namespaceURI);
//_p_writer->setDefaultNamespace(namespaceURI);
//_p_writer->writeStartElement("mzXML");
//_p_writer->writeAttribute(xmlnsxsi, "schemaLocation", xsischemaLocation);
// not compatible with MS office 2010 :
//_p_writer->writeAttribute("manifest", namespaceURI, "version", "1.2");
}
ManifestXml::WriteHeader
void WriteHeader()
Definition manifestxml.cpp:97
ManifestXml::~ManifestXml
virtual ~ManifestXml()
Definition manifestxml.cpp:92
ManifestXml::_namespaceURI
static QString _namespaceURI
Definition manifestxml.h:34
ManifestXml::_p_writer
QXmlStreamWriter * _p_writer
Definition manifestxml.h:38
ManifestXml::_p_quaZip
QuaZip * _p_quaZip
Definition manifestxml.h:37
ManifestXml::ManifestXml
ManifestXml(QuaZip *p_quaZip)
Definition manifestxml.cpp:28
manifestxml.h