Esempio n. 1
0
  QDomDocument getSchemaExtension( QgsServerInterface *serverIface, const QString &version,
                                   const QgsServerRequest &request )
  {
    Q_UNUSED( version );
    Q_UNUSED( serverIface );

    QgsServerRequest::Parameters parameters = request.parameters();

    QDomDocument xsdDoc;

    QDir resourcesDir = QFileInfo( QgsApplication::serverResourcesPath() ).absoluteDir();
    QFileInfo xsdFileInfo( resourcesDir, QStringLiteral( "schemaExtension.xsd" ) );

    if ( !xsdFileInfo.exists() )
    {
      QgsMessageLog::logMessage( QStringLiteral( "Error, xsd file 'schemaExtension.xsd' does not exist" ),
                                 QStringLiteral( "Server" ), QgsMessageLog::CRITICAL );
      return xsdDoc;
    }

    QString xsdFilePath = xsdFileInfo.absoluteFilePath();
    QFile xsdFile( xsdFilePath );
    if ( !xsdFile.exists() )
    {
      QgsMessageLog::logMessage( QStringLiteral( "Error, xsd file 'schemaExtension.xsd' does not exist" ),
                                 QStringLiteral( "Server" ), QgsMessageLog::CRITICAL );
      return xsdDoc;
    }

    if ( !xsdFile.open( QIODevice::ReadOnly ) )
    {
      QgsMessageLog::logMessage( QStringLiteral( "Error, cannot open xsd file 'schemaExtension.xsd' does not exist" ),
                                 QStringLiteral( "Server" ), QgsMessageLog::CRITICAL );
      return xsdDoc;
    }

    QString errorMsg;
    int line, column;
    if ( !xsdDoc.setContent( &xsdFile, true, &errorMsg, &line, &column ) )
    {
      QgsMessageLog::logMessage( QStringLiteral( "Error parsing file 'schemaExtension.xsd" ) +
                                 QStringLiteral( "': parse error %1 at row %2, column %3" ).arg( errorMsg ).arg( line ).arg( column ),
                                 QStringLiteral( "Server" ), QgsMessageLog::CRITICAL );
    }

    return xsdDoc;
  }
Esempio n. 2
0
bool CodingWidget::loadFile(QString xmlFilename) {
    qDebug() << "CodingWidget::loadFile(QString xmlFilename)";

    QFile xmlFile(xmlFilename);
    if (!xmlFile.open(QFile::ReadOnly | QFile::Text)) {
        QMessageBox::warning(this, tr("MDI"),
                             tr("Cannot read file %1:\n%2.")
                             .arg(xmlFilename)
                             .arg(xmlFile.errorString()));
        return false;
    }
    xmlFile.setObjectName(xmlFilename);

    codingElementCount = 0;
    codingElementSize = 0;

    QApplication::setOverrideCursor(Qt::WaitCursor);

    reader = new CodingReader();
    reader->read(&xmlFile, this);
    xmlFile.reset();

    // XML
    QTextStream inXml(&xmlFile);
    setXml(inXml.readAll());

    // XSD
    QFile xsdFile(getXsdFilename());
    qDebug() << "getXsdFilename()): " << getXsdFilename();
    if (!xsdFile.open(QFile::ReadOnly | QFile::Text)) {
        QMessageBox::warning(this, tr("MDI"),
                             tr("Cannot read file %1:\n%2.")
                             .arg(getXsdFilename())
                             .arg(xsdFile.errorString()));
        return false;
    }
    QTextStream inXsd(&xsdFile);
    setXsd(inXsd.readAll());


    QApplication::restoreOverrideCursor();

    return true;
}
Esempio n. 3
0
/**
 * @brief Loads script configuration from an xml script.
 *
 * @param pXmlScriptFile: description of the xml config file to load.
 * @param config: the config loaded.
 * @return TRUE if operation succeed, FALSE otherwise.
 */
bool XmlConfigReader::loadConfig(QFile *pXmlScriptFile, ScriptConfig & config) {
#ifdef TRACE_XMLCONFIGREADER
	{
		std::stringstream log;
		log << "XmlConfigReader::loadConfig(";
		log << "xmlScriptFile: " << pXmlScriptFile->fileName().toStdString();
		log << ", config: " << &config;
		LOG_INFO(log.str());
	}
#endif

	QFile xsdFile(":/XML_CONFIG_SCHEMA");
	if(!XmlValidator::getInstance().validate(pXmlScriptFile, &xsdFile)) {
		{
			std::stringstream err;
			err << "loadConfig() failed - xml script is not valid according to xml schema!";
			LOG_ERROR(err.str());
		}
		return false;
	}
	{
		std::stringstream log;
		log << "The xml document is valid.";
		LOG_DEBUG(log.str());
	}

	QXmlInputSource source( pXmlScriptFile );

	XmlConfigHandler *pConfigHandler = new XmlConfigHandler(config);

	QXmlSimpleReader reader;
	reader.setContentHandler( pConfigHandler );
	reader.setLexicalHandler( pConfigHandler );

	return reader.parse( source );
}