QXmlName AnySimpleType::name(const NamePool::Ptr &np) const { return np->allocateQName(StandardNamespaces::xs, QLatin1String("anySimpleType")); }
bool AccelTreeResourceLoader::streamToReceiver(QIODevice *const dev, AccelTreeBuilder<true> *const receiver, const NamePool::Ptr &np, const ReportContext::Ptr &context, const QUrl &uri) { Q_ASSERT(dev); Q_ASSERT(receiver); Q_ASSERT(np); QXmlStreamReader reader(dev); /* Optimize: change NamePool to take QStringRef such that we don't have to call toString() below. That * will save us a gazillion of temporary QStrings. */ while(!reader.atEnd()) { reader.readNext(); switch(reader.tokenType()) { case QXmlStreamReader::StartElement: { /* Send the name. */ receiver->startElement(np->allocateQName(reader.namespaceUri().toString(), reader.name().toString(), reader.prefix().toString()), reader.lineNumber(), reader.columnNumber()); /* Send namespace declarations. */ const QXmlStreamNamespaceDeclarations &nss = reader.namespaceDeclarations(); /* The far most common case, is for it to be empty. */ if(!nss.isEmpty()) { const int len = nss.size(); for(int i = 0; i < len; ++i) { const QXmlStreamNamespaceDeclaration &ns = nss.at(i); receiver->namespaceBinding(np->allocateBinding(ns.prefix().toString(), ns.namespaceUri().toString())); } } /* Send attributes. */ const QXmlStreamAttributes &attrs = reader.attributes(); const int len = attrs.size(); for(int i = 0; i < len; ++i) { const QXmlStreamAttribute &attr = attrs.at(i); receiver->attribute(np->allocateQName(attr.namespaceUri().toString(), attr.name().toString(), attr.prefix().toString()), attr.value()); } continue; } case QXmlStreamReader::EndElement: { receiver->endElement(); continue; } case QXmlStreamReader::Characters: { if(reader.isWhitespace()) receiver->whitespaceOnly(reader.text()); else receiver->characters(reader.text()); continue; } case QXmlStreamReader::Comment: { receiver->comment(reader.text().toString()); continue; } case QXmlStreamReader::ProcessingInstruction: { receiver->processingInstruction(np->allocateQName(QString(), reader.processingInstructionTarget().toString()), reader.processingInstructionData().toString()); continue; } case QXmlStreamReader::StartDocument: { receiver->startDocument(); continue; } case QXmlStreamReader::EndDocument: { receiver->endDocument(); continue; } case QXmlStreamReader::EntityReference: /* Fallthrough. */ case QXmlStreamReader::DTD: { /* We just ignore any DTD and entity references. */ continue; } case QXmlStreamReader::Invalid: { if(context) context->error(escape(reader.errorString()), ReportContext::FODC0002, QSourceLocation(uri, reader.lineNumber(), reader.columnNumber())); return false; } case QXmlStreamReader::NoToken: { Q_ASSERT_X(false, Q_FUNC_INFO, "This token is never expected to be received."); return false; } } } return true; }
QXmlName Untyped::name(const NamePool::Ptr &np) const { return np->allocateQName(StandardNamespaces::xs, QLatin1String("untyped")); }