void KDSoapNamespacePrefixes::writeStandardNamespaces(QXmlStreamWriter& writer, KDSoapClientInterface::SoapVersion version) { if (version == KDSoapClientInterface::SOAP1_1) { writeNamespace(writer, KDSoapNamespaceManager::soapEnvelope(), QLatin1String("soap")); writeNamespace(writer, KDSoapNamespaceManager::soapEncoding(), QLatin1String("soap-enc")); } else if (version == KDSoapClientInterface::SOAP1_2) { writeNamespace(writer, KDSoapNamespaceManager::soapEnvelope200305(), QLatin1String("soap")); writeNamespace(writer, KDSoapNamespaceManager::soapEncoding200305(), QLatin1String("soap-enc")); } writeNamespace(writer, KDSoapNamespaceManager::xmlSchema2001(), QLatin1String("xsd")); writeNamespace(writer, KDSoapNamespaceManager::xmlSchemaInstance2001(), QLatin1String("xsi")); // Also insert known variants insert(KDSoapNamespaceManager::xmlSchema1999(), QString::fromLatin1("xsd")); insert(KDSoapNamespaceManager::xmlSchemaInstance1999(), QString::fromLatin1("xsi")); }
int XmlToKross::start() { inclass=0; while (!xml.atEnd()) { QXmlStreamReader::TokenType t=xml.readNext(); QString str; switch(t) { case QXmlStreamReader::Invalid: qDebug() << "invalid token!" << xml.errorString() << endl; break; case QXmlStreamReader::StartDocument: writeDocument(); break; case QXmlStreamReader::StartElement: // qDebug() << "Element " << xml.name().toString() << endl; str=xml.name().toString(); if(str=="Class") { inclass++; if(inclass==1) writeClass(xml.attributes().value(QString(), "name").toString(), QString(), QList<QStringList>()); } else if(str=="Function") { QString funcname=xml.attributes().value(QString(), "name").toString(); QString rettype=xml.attributes().value(QString(), "type_name").toString(); bool isConst=xml.attributes().value(QString(), "constant").toString()==QChar('1'); bool isVirtual=xml.attributes().value(QString(), "virtual").toString()==QChar('1'); currentMethod=method(); currentMethod.access=xml.attributes().value(QString(), "access").toString(); currentMethod.funcname=funcname; currentMethod.returnType=rettype; currentMethod.isConst=isConst; currentMethod.isVirtual=isVirtual; if(!definedClasses.isEmpty() && ( funcname==definedClasses.last() || funcname=='~'+definedClasses.last() ) ) currentMethod.access="constructor"; } else if(str=="Argument") { method::argument arg; arg.name=xml.attributes().value(QString(), "name").toString(); arg.type=xml.attributes().value(QString(), "type_name").toString(); arg.def=xml.attributes().value(QString(), "defaultvalue").toString(); QString context=xml.attributes().value(QString(), "context").toString(); if(!arg.def.isEmpty() && arg.type.startsWith(context)) arg.def.prepend(context+"::"); currentMethod.args.append(arg); } else if(str=="Namespace") { QString name=xml.attributes().value(QString(), "name").toString(); qDebug() << "entering to namespace " << name << inNamespace; if(inNamespace!=name) { if(!inNamespace.isEmpty()) inNamespace.append("::"); inNamespace.append(name); writeNamespace(name); qDebug() << "current status" << inNamespace; } } else if(str=="Variable" && inclass==1 && xml.attributes().value(QString(), "access").toString()=="public") { writeVariable(xml.attributes().value(QString(), "name").toString(), xml.attributes().value(QString(), "type_name").toString(), xml.attributes().value(QString(), "type_constant").toString()=="1"); } else if(str=="Enum") { flags.clear(); flags.append(xml.attributes().value(QString(), "name").toString()); } else if(str=="Enumerator") flags.append(xml.attributes().value(QString(), "name").toString()); break; case QXmlStreamReader::EndDocument: writeEndDocument(); break; case QXmlStreamReader::EndElement: str=xml.name().toString(); if(str=="Class") { if(inclass==1) writeEndClass(); inclass--; } else if(str=="Function" && currentMethod.access=="public" && inclass==1) writeEndFunction(currentMethod); else if(str=="Enum") writeEndEnum(flags); else if(str=="Namespace") { inNamespace.resize(inNamespace.lastIndexOf("::")); } break; default: break; } } if (xml.error()) { qDebug() << "error!" << xml.errorString(); return 2; } return 0; }
void OpenSearchWriter::write(OpenSearchEngine *engine) { writeStartDocument(); writeStartElement(QL1S("OpenSearchDescription")); writeDefaultNamespace(QL1S("http://a9.com/-/spec/opensearch/1.1/")); if (!engine->name().isEmpty()) { writeTextElement(QL1S("ShortName"), engine->name()); } if (!engine->description().isEmpty()) { writeTextElement(QL1S("Description"), engine->description()); } if (!engine->searchUrlTemplate().isEmpty()) { writeStartElement(QL1S("Url")); writeAttribute(QL1S("method"), QL1S("get")); writeAttribute(QL1S("template"), engine->searchUrlTemplate()); if (!engine->searchParameters().empty()) { writeNamespace(QL1S("http://a9.com/-/spec/opensearch/extensions/parameters/1.0/"), QL1S("p")); QList<OpenSearchEngine::Parameter>::const_iterator end = engine->searchParameters().constEnd(); QList<OpenSearchEngine::Parameter>::const_iterator i = engine->searchParameters().constBegin(); for (; i != end; ++i) { writeStartElement(QL1S("p:Parameter")); writeAttribute(QL1S("name"), i->first); writeAttribute(QL1S("value"), i->second); writeEndElement(); } } writeEndElement(); } if (!engine->suggestionsUrlTemplate().isEmpty()) { writeStartElement(QL1S("Url")); writeAttribute(QL1S("method"), QL1S("get")); writeAttribute(QL1S("type"), engine->type()); writeAttribute(QL1S("template"), engine->suggestionsUrlTemplate()); if (!engine->suggestionsParameters().empty()) { writeNamespace(QL1S("http://a9.com/-/spec/opensearch/extensions/parameters/1.0/"), QL1S("p")); QList<OpenSearchEngine::Parameter>::const_iterator end = engine->suggestionsParameters().constEnd(); QList<OpenSearchEngine::Parameter>::const_iterator i = engine->suggestionsParameters().constBegin(); for (; i != end; ++i) { writeStartElement(QL1S("p:Parameter")); writeAttribute(QL1S("name"), i->first); writeAttribute(QL1S("value"), i->second); writeEndElement(); } } writeEndElement(); } if (!engine->imageUrl().isEmpty()) writeTextElement(QL1S("Image"), engine->imageUrl()); writeEndElement(); writeEndDocument(); }