summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-09-21 08:35:11 +0200
committerLiang Qi <liang.qi@qt.io>2016-09-21 08:35:11 +0200
commit0aaf8a5f8541960466d695729104d71c23998df9 (patch)
treed8d37fb42f923eaad78a85157d2f655e8a2c2d2e /src
parenta7c672c05a29ee6894197c77063a307ea022a97b (diff)
parent21cc71ced3565585f7a2f94875ed845355ab2064 (diff)
downloadqtxmlpatterns-0aaf8a5f8541960466d695729104d71c23998df9.tar.gz
Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: Ie4eaf067382d8ca5e139a994e045e83f3f90760c
Diffstat (limited to 'src')
-rw-r--r--src/xmlpatterns/acceltree/qacceltree.cpp6
-rw-r--r--src/xmlpatterns/expr/qexpressionfactory.cpp18
-rw-r--r--src/xmlpatterns/qtokenautomaton/qautomaton2cpp.xsl4
-rw-r--r--src/xmlpatterns/schema/qnamespacesupport.cpp5
-rw-r--r--src/xmlpatterns/schema/qxsdfacet_p.h1
-rw-r--r--src/xmlpatterns/schema/qxsdparticlechecker.cpp27
-rw-r--r--src/xmlpatterns/schema/qxsdschemachecker.cpp21
-rw-r--r--src/xmlpatterns/schema/qxsdschematoken.cpp228
-rw-r--r--src/xmlpatterns/schema/qxsdstatemachine_p.h4
-rw-r--r--src/xmlpatterns/schema/qxsdstatemachine_tpl_p.h68
-rw-r--r--src/xmlpatterns/schema/qxsdtypechecker.cpp6
-rw-r--r--src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp50
-rw-r--r--src/xmlpatterns/schema/qxsdvalidatinginstancereader_p.h1
13 files changed, 169 insertions, 270 deletions
diff --git a/src/xmlpatterns/acceltree/qacceltree.cpp b/src/xmlpatterns/acceltree/qacceltree.cpp
index c68c3a4..1892745 100644
--- a/src/xmlpatterns/acceltree/qacceltree.cpp
+++ b/src/xmlpatterns/acceltree/qacceltree.cpp
@@ -122,11 +122,7 @@ void AccelTree::printStats(const NamePool::Ptr &np) const
pDebug() << "+---------------+-------+-------+---------------+-------+--------------+";
pDebug() << "Namespaces(" << namespaces.count() << "):";
- QHashIterator<PreNumber, QVector<QXmlName> > it(namespaces);
- while(it.hasNext())
- {
- it.next();
-
+ for (auto it = namespaces.cbegin(), end = namespaces.cend(); it != end; ++it) {
pDebug() << "PreNumber: " << QString::number(it.key());
for(int i = 0; i < it.value().count(); ++i)
pDebug() << "\t\t" << np->stringForPrefix(it.value().at(i).prefix()) << " = " << np->stringForNamespace(it.value().at(i).namespaceURI());
diff --git a/src/xmlpatterns/expr/qexpressionfactory.cpp b/src/xmlpatterns/expr/qexpressionfactory.cpp
index f205def..b0e43be 100644
--- a/src/xmlpatterns/expr/qexpressionfactory.cpp
+++ b/src/xmlpatterns/expr/qexpressionfactory.cpp
@@ -279,11 +279,7 @@ Expression::Ptr ExpressionFactory::createExpression(const Tokenizer::Ptr &tokeni
{
pDebug() << "Have " << info->namedTemplates.count() << "named templates";
- QMutableHashIterator<QXmlName, Template::Ptr> it(info->namedTemplates);
-
- while(it.hasNext())
- {
- it.next();
+ for (auto it = info->namedTemplates.cbegin(), end = info->namedTemplates.cend(); it != end; ++it) {
processNamedTemplate(it.key(), it.value()->body, TemplateInitial);
it.value()->body = it.value()->body->typeCheck(context, CommonSequenceTypes::ZeroOrMoreItems);
@@ -298,7 +294,6 @@ Expression::Ptr ExpressionFactory::createExpression(const Tokenizer::Ptr &tokeni
/* Type check and compress template rules. */
{
- QHashIterator<QXmlName, TemplateMode::Ptr> it(info->templateRules);
/* Since a pattern can exist of AxisStep, its typeCheck() stage
* requires a focus. In the case that we're invoked with a name but
@@ -313,9 +308,7 @@ Expression::Ptr ExpressionFactory::createExpression(const Tokenizer::Ptr &tokeni
patternContext = StaticContext::Ptr(new StaticFocusContext(BuiltinTypes::node, context));
/* For each template pattern. */
- while(it.hasNext())
- {
- it.next();
+ for (auto it = info->templateRules.cbegin(), end = info->templateRules.cend(); it != end; ++it) {
const TemplateMode::Ptr &mode = it.value();
const int len = mode->templatePatterns.count();
TemplatePattern::ID currentTemplateID = -1;
@@ -387,12 +380,7 @@ Expression::Ptr ExpressionFactory::createExpression(const Tokenizer::Ptr &tokeni
Q_ASSERT_X(modeAll, Q_FUNC_INFO,
"We should at least have the builtin templates.");
- QHashIterator<QXmlName, TemplateMode::Ptr> it(info->templateRules);
-
- while(it.hasNext())
- {
- it.next();
-
+ for (auto it = info->templateRules.cbegin(), end = info->templateRules.cend(); it != end; ++it) {
/* Don't add mode #all to mode #all. */
if(it.key() == nameModeAll)
continue;
diff --git a/src/xmlpatterns/qtokenautomaton/qautomaton2cpp.xsl b/src/xmlpatterns/qtokenautomaton/qautomaton2cpp.xsl
index 16084a0..535dd8c 100644
--- a/src/xmlpatterns/qtokenautomaton/qautomaton2cpp.xsl
+++ b/src/xmlpatterns/qtokenautomaton/qautomaton2cpp.xsl
@@ -228,7 +228,7 @@
<xsl:if test="$remainingLength ne 0">
<xsl:choose>
<xsl:when test="$remainingLength eq 1">
- if(data[<xsl:sequence select="$depth - 1"/>] == <xsl:sequence select="$toMatch"/>)
+ if (data[<xsl:sequence select="$depth - 1"/>].unicode() == <xsl:sequence select="$toMatch"/>)
</xsl:when>
<xsl:when test="$remainingLength &gt; 1">
static const unsigned short string[] =
@@ -250,7 +250,7 @@
<xsl:text>if (data[</xsl:text>
<xsl:sequence select="string($depth - 1)"/>
- <xsl:text>] == </xsl:text>
+ <xsl:text>].unicode() == </xsl:text>
<xsl:sequence select="string-to-codepoints(.)"/>
<xsl:text>)&#xA;</xsl:text>
diff --git a/src/xmlpatterns/schema/qnamespacesupport.cpp b/src/xmlpatterns/schema/qnamespacesupport.cpp
index 758f6d5..846551b 100644
--- a/src/xmlpatterns/schema/qnamespacesupport.cpp
+++ b/src/xmlpatterns/schema/qnamespacesupport.cpp
@@ -146,11 +146,8 @@ QList<QXmlName> NamespaceSupport::namespaceBindings() const
{
QList<QXmlName> bindings;
- QHashIterator<QXmlName::PrefixCode, QXmlName::NamespaceCode> it(m_ns);
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_ns.cbegin(), end = m_ns.cend(); it != end; ++it)
bindings.append(QXmlName(it.value(), StandardLocalNames::empty, it.key()));
- }
return bindings;
}
diff --git a/src/xmlpatterns/schema/qxsdfacet_p.h b/src/xmlpatterns/schema/qxsdfacet_p.h
index 8dd7d5f..76919d1 100644
--- a/src/xmlpatterns/schema/qxsdfacet_p.h
+++ b/src/xmlpatterns/schema/qxsdfacet_p.h
@@ -112,7 +112,6 @@ namespace QPatternist
Assertion = 1 << 12, ///< Match an assertion (<a href="http://www.w3.org/TR/xmlschema-2/#rf-assertion">Assertion Definition</a>)
};
typedef QHash<XsdFacet::Type, XsdFacet::Ptr> Hash;
- typedef QHashIterator<XsdFacet::Type, XsdFacet::Ptr> HashIterator;
/**
* Creates a new facet object of type None.
diff --git a/src/xmlpatterns/schema/qxsdparticlechecker.cpp b/src/xmlpatterns/schema/qxsdparticlechecker.cpp
index 59fc111..139390d 100644
--- a/src/xmlpatterns/schema/qxsdparticlechecker.cpp
+++ b/src/xmlpatterns/schema/qxsdparticlechecker.cpp
@@ -392,25 +392,17 @@ bool XsdParticleChecker::isUPAConform(const XsdParticle::Ptr &particle, const Na
// the basic idea of that algorithm is to iterate over all states of that machine and check that no two edges
// that match on the same term leave a state, so for a given term it should always be obvious which edge to take
- QHashIterator<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateType> stateIt(states);
- while (stateIt.hasNext()) { // iterate over all states
- stateIt.next();
-
+ for (auto stateIt = states.cbegin(), end = states.cend(); stateIt != end; ++stateIt) {
// fetch all transitions the current state allows
const QHash<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > currentTransitions = transitions.value(stateIt.key());
- QHashIterator<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > transitionIt(currentTransitions);
- while (transitionIt.hasNext()) { // iterate over all transitions
- transitionIt.next();
-
+ for (auto transitionIt = currentTransitions.cbegin(), end = currentTransitions.cend(); transitionIt != end; ++transitionIt) {
if (transitionIt.value().size() > 1) {
// we have one state with two edges leaving it, that means
// the XsdTerm::Ptr exists twice, that is an error
return false;
}
- QHashIterator<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > innerTransitionIt(currentTransitions);
- while (innerTransitionIt.hasNext()) { // iterate over all transitions again, as we have to compare all transitions with all
- innerTransitionIt.next();
+ for (auto innerTransitionIt = currentTransitions.cbegin(), end = currentTransitions.cend(); innerTransitionIt != end; ++innerTransitionIt) {
if (transitionIt.key() == innerTransitionIt.key()) // do no compare with ourself
continue;
@@ -516,17 +508,13 @@ bool XsdParticleChecker::subsumes(const XsdParticle::Ptr &particle, const XsdPar
const QPair<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateId> set = workSet.takeFirst();
const QHash<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > derivedTrans = derivedTransitions.value(set.second);
- QHashIterator<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > derivedIt(derivedTrans);
const QHash<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > baseTrans = baseTransitions.value(set.first);
- while (derivedIt.hasNext()) {
- derivedIt.next();
+ for (auto derivedIt = derivedTrans.cbegin(), end = derivedTrans.cend(); derivedIt != end; ++derivedIt) {
bool found = false;
- QHashIterator<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > baseIt(baseTrans);
- while (baseIt.hasNext()) {
- baseIt.next();
+ for (auto baseIt = baseTrans.cbegin(), end = baseTrans.cend(); baseIt != end; ++baseIt) {
if (derivedTermValid(baseIt.key(), derivedIt.key(), particlesHash, context, errorMsg)) {
const QPair<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateId> endSet =
qMakePair<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateId>(baseIt.value().first(), derivedIt.value().first());
@@ -546,10 +534,7 @@ bool XsdParticleChecker::subsumes(const XsdParticle::Ptr &particle, const XsdPar
}
// 5)
- QHashIterator<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateType> it(derivedStates);
- while (it.hasNext()) {
- it.next();
-
+ for (auto it = derivedStates.cbegin(), end = derivedStates.cend(); it != end; ++it) {
if (it.value() == XsdStateMachine<XsdTerm::Ptr>::EndState || it.value() == XsdStateMachine<XsdTerm::Ptr>::StartEndState) {
for (int i = 0; i < processedSet.count(); ++i) {
if (processedSet.at(i).second == it.key() &&
diff --git a/src/xmlpatterns/schema/qxsdschemachecker.cpp b/src/xmlpatterns/schema/qxsdschemachecker.cpp
index b6e51f3..5e4302d 100644
--- a/src/xmlpatterns/schema/qxsdschemachecker.cpp
+++ b/src/xmlpatterns/schema/qxsdschemachecker.cpp
@@ -436,11 +436,9 @@ void XsdSchemaChecker::checkSimpleTypeConstraints()
// 2.2.1.2
const XsdFacet::Hash facets = simpleType->facets();
- XsdFacet::HashIterator it(facets);
bool invalidFacetFound = false;
- while (it.hasNext()) {
- it.next();
+ for (auto it = facets.cbegin(), end = facets.cend(); it != end; ++it) {
if (it.key() != XsdFacet::WhiteSpace) {
invalidFacetFound = true;
break;
@@ -476,12 +474,10 @@ void XsdSchemaChecker::checkSimpleTypeConstraints()
// 2.2.2.4
const XsdFacet::Hash facets = simpleType->facets();
- XsdFacet::HashIterator it(facets);
bool invalidFacetFound = false;
XsdFacet::Type invalidFacetType = XsdFacet::None;
- while (it.hasNext()) {
- it.next();
+ for (auto it = facets.cbegin(), end = facets.cend(); it != end; ++it) {
const XsdFacet::Type facetType = it.key();
if (facetType != XsdFacet::Length &&
facetType != XsdFacet::MinimumLength &&
@@ -573,12 +569,10 @@ void XsdSchemaChecker::checkSimpleTypeConstraints()
// 3.1.2.4
const XsdFacet::Hash facets = simpleType->facets();
- XsdFacet::HashIterator it(facets);
bool invalidFacetFound = false;
XsdFacet::Type invalidFacetType = XsdFacet::None;
- while (it.hasNext()) {
- it.next();
+ for (auto it = facets.cbegin(), end = facets.cend(); it != end; ++it) {
const XsdFacet::Type facetType = it.key();
if (facetType != XsdFacet::Pattern &&
facetType != XsdFacet::Enumeration) {
@@ -1573,9 +1567,7 @@ void XsdSchemaChecker::checkConstrainingFacets(const XsdFacet::Hash &facets, con
if (!baseType->isDefinedBySchema()) {
const XsdSchemaSourceLocationReflection reflection(sourceLocation(simpleType));
- XsdFacet::HashIterator it(facets);
- while (it.hasNext()) {
- it.next();
+ for (auto it = facets.cbegin(), end = facets.cend(); it != end; ++it) {
const XsdFacet::Ptr facet = it.value();
if (facet->type() == XsdFacet::MaximumInclusive ||
facet->type() == XsdFacet::MaximumExclusive ||
@@ -1694,9 +1686,8 @@ void XsdSchemaChecker::checkDuplicatedAttributeUses()
void XsdSchemaChecker::checkElementConstraints()
{
const QSet<XsdElement::Ptr> elements = collectAllElements(m_schema);
- QSetIterator<XsdElement::Ptr> it(elements);
- while (it.hasNext()) {
- const XsdElement::Ptr element = it.next();
+
+ for (const XsdElement::Ptr &element : elements) {
// @see http://www.w3.org/TR/xmlschema11-1/#e-props-correct
diff --git a/src/xmlpatterns/schema/qxsdschematoken.cpp b/src/xmlpatterns/schema/qxsdschematoken.cpp
index 407fb72..8d139b3 100644
--- a/src/xmlpatterns/schema/qxsdschematoken.cpp
+++ b/src/xmlpatterns/schema/qxsdschematoken.cpp
@@ -62,28 +62,28 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier3(const QChar *data)
{
- if (data[0] == 97)
+ if (data[0].unicode() == 97)
{
- if (data[1] == 108)
+ if (data[1].unicode() == 108)
{
- if(data[2] == 108)
+ if (data[2].unicode() == 108)
return All;
}
- else if (data[1] == 110)
+ else if (data[1].unicode() == 110)
{
- if(data[2] == 121)
+ if (data[2].unicode() == 121)
return Any;
@@ -93,7 +93,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 107)
+ else if (data[0].unicode() == 107)
{
@@ -109,7 +109,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 114)
+ else if (data[0].unicode() == 114)
{
@@ -125,7 +125,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 117)
+ else if (data[0].unicode() == 117)
{
@@ -148,7 +148,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier4(const QChar *data)
{
- if (data[0] == 98)
+ if (data[0].unicode() == 98)
{
@@ -164,7 +164,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 102)
+ else if (data[0].unicode() == 102)
{
@@ -180,7 +180,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 108)
+ else if (data[0].unicode() == 108)
{
@@ -196,7 +196,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 109)
+ else if (data[0].unicode() == 109)
{
@@ -212,7 +212,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 110)
+ else if (data[0].unicode() == 110)
{
@@ -228,11 +228,11 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 116)
+ else if (data[0].unicode() == 116)
{
- if (data[1] == 101)
+ if (data[1].unicode() == 101)
{
@@ -248,7 +248,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[1] == 121)
+ else if (data[1].unicode() == 121)
{
@@ -274,7 +274,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier5(const QChar *data)
{
- if (data[0] == 98)
+ if (data[0].unicode() == 98)
{
@@ -290,15 +290,15 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 102)
+ else if (data[0].unicode() == 102)
{
- if (data[1] == 105)
+ if (data[1].unicode() == 105)
{
- if (data[2] == 101)
+ if (data[2].unicode() == 101)
{
@@ -314,7 +314,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[2] == 110)
+ else if (data[2].unicode() == 110)
{
@@ -330,7 +330,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[2] == 120)
+ else if (data[2].unicode() == 120)
{
@@ -352,7 +352,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 103)
+ else if (data[0].unicode() == 103)
{
@@ -368,7 +368,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 109)
+ else if (data[0].unicode() == 109)
{
@@ -384,7 +384,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 114)
+ else if (data[0].unicode() == 114)
{
@@ -400,7 +400,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 117)
+ else if (data[0].unicode() == 117)
{
@@ -416,7 +416,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 118)
+ else if (data[0].unicode() == 118)
{
@@ -432,7 +432,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 120)
+ else if (data[0].unicode() == 120)
{
@@ -455,7 +455,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier6(const QChar *data)
{
- if (data[0] == 97)
+ if (data[0].unicode() == 97)
{
@@ -471,7 +471,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 99)
+ else if (data[0].unicode() == 99)
{
@@ -487,7 +487,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 105)
+ else if (data[0].unicode() == 105)
{
@@ -503,7 +503,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 107)
+ else if (data[0].unicode() == 107)
{
@@ -519,7 +519,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 108)
+ else if (data[0].unicode() == 108)
{
@@ -535,7 +535,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 112)
+ else if (data[0].unicode() == 112)
{
@@ -551,11 +551,11 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 115)
+ else if (data[0].unicode() == 115)
{
- if (data[1] == 99)
+ if (data[1].unicode() == 99)
{
@@ -571,7 +571,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[1] == 111)
+ else if (data[1].unicode() == 111)
{
@@ -587,7 +587,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[1] == 121)
+ else if (data[1].unicode() == 121)
{
@@ -606,7 +606,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 117)
+ else if (data[0].unicode() == 117)
{
@@ -629,7 +629,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier7(const QChar *data)
{
- if (data[0] == 97)
+ if (data[0].unicode() == 97)
{
@@ -645,7 +645,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 100)
+ else if (data[0].unicode() == 100)
{
@@ -661,7 +661,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 101)
+ else if (data[0].unicode() == 101)
{
@@ -677,7 +677,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 105)
+ else if (data[0].unicode() == 105)
{
@@ -693,7 +693,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 112)
+ else if (data[0].unicode() == 112)
{
@@ -709,7 +709,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 114)
+ else if (data[0].unicode() == 114)
{
@@ -725,7 +725,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 118)
+ else if (data[0].unicode() == 118)
{
@@ -748,7 +748,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier8(const QChar *data)
{
- if (data[0] == 97)
+ if (data[0].unicode() == 97)
{
@@ -764,7 +764,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 99)
+ else if (data[0].unicode() == 99)
{
@@ -780,7 +780,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 105)
+ else if (data[0].unicode() == 105)
{
@@ -796,11 +796,11 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 110)
+ else if (data[0].unicode() == 110)
{
- if (data[1] == 105)
+ if (data[1].unicode() == 105)
{
@@ -816,15 +816,15 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[1] == 111)
+ else if (data[1].unicode() == 111)
{
- if (data[2] == 116)
+ if (data[2].unicode() == 116)
{
- if (data[3] == 97)
+ if (data[3].unicode() == 97)
{
@@ -840,7 +840,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[3] == 81)
+ else if (data[3].unicode() == 81)
{
@@ -865,7 +865,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 111)
+ else if (data[0].unicode() == 111)
{
@@ -881,7 +881,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 112)
+ else if (data[0].unicode() == 112)
{
@@ -897,7 +897,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 114)
+ else if (data[0].unicode() == 114)
{
@@ -913,15 +913,15 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 115)
+ else if (data[0].unicode() == 115)
{
- if (data[1] == 101)
+ if (data[1].unicode() == 101)
{
- if (data[2] == 108)
+ if (data[2].unicode() == 108)
{
@@ -937,7 +937,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[2] == 113)
+ else if (data[2].unicode() == 113)
{
@@ -959,7 +959,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 120)
+ else if (data[0].unicode() == 120)
{
@@ -982,11 +982,11 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier9(const QChar *data)
{
- if (data[0] == 97)
+ if (data[0].unicode() == 97)
{
- if (data[1] == 115)
+ if (data[1].unicode() == 115)
{
@@ -1002,7 +1002,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[1] == 116)
+ else if (data[1].unicode() == 116)
{
@@ -1021,7 +1021,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 101)
+ else if (data[0].unicode() == 101)
{
@@ -1037,19 +1037,19 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 109)
+ else if (data[0].unicode() == 109)
{
- if (data[1] == 97)
+ if (data[1].unicode() == 97)
{
- if (data[2] == 120)
+ if (data[2].unicode() == 120)
{
- if (data[3] == 76)
+ if (data[3].unicode() == 76)
{
@@ -1065,7 +1065,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[3] == 79)
+ else if (data[3].unicode() == 79)
{
@@ -1087,15 +1087,15 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[1] == 105)
+ else if (data[1].unicode() == 105)
{
- if (data[2] == 110)
+ if (data[2].unicode() == 110)
{
- if (data[3] == 76)
+ if (data[3].unicode() == 76)
{
@@ -1111,7 +1111,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[3] == 79)
+ else if (data[3].unicode() == 79)
{
@@ -1136,7 +1136,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 110)
+ else if (data[0].unicode() == 110)
{
@@ -1159,7 +1159,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier10(const QChar *data)
{
- if (data[0] == 97)
+ if (data[0].unicode() == 97)
{
@@ -1175,7 +1175,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 115)
+ else if (data[0].unicode() == 115)
{
@@ -1191,7 +1191,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 119)
+ else if (data[0].unicode() == 119)
{
@@ -1214,7 +1214,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier11(const QChar *data)
{
- if (data[0] == 97)
+ if (data[0].unicode() == 97)
{
@@ -1230,7 +1230,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 99)
+ else if (data[0].unicode() == 99)
{
@@ -1246,7 +1246,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 101)
+ else if (data[0].unicode() == 101)
{
@@ -1262,7 +1262,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 109)
+ else if (data[0].unicode() == 109)
{
@@ -1278,7 +1278,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 111)
+ else if (data[0].unicode() == 111)
{
@@ -1294,7 +1294,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 114)
+ else if (data[0].unicode() == 114)
{
@@ -1310,7 +1310,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 116)
+ else if (data[0].unicode() == 116)
{
@@ -1333,7 +1333,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier12(const QChar *data)
{
- if (data[0] == 97)
+ if (data[0].unicode() == 97)
{
@@ -1349,7 +1349,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 98)
+ else if (data[0].unicode() == 98)
{
@@ -1365,7 +1365,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 102)
+ else if (data[0].unicode() == 102)
{
@@ -1381,19 +1381,19 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 109)
+ else if (data[0].unicode() == 109)
{
- if (data[1] == 97)
+ if (data[1].unicode() == 97)
{
- if (data[2] == 120)
+ if (data[2].unicode() == 120)
{
- if (data[3] == 69)
+ if (data[3].unicode() == 69)
{
@@ -1409,7 +1409,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[3] == 73)
+ else if (data[3].unicode() == 73)
{
@@ -1431,15 +1431,15 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[1] == 105)
+ else if (data[1].unicode() == 105)
{
- if (data[2] == 110)
+ if (data[2].unicode() == 110)
{
- if (data[3] == 69)
+ if (data[3].unicode() == 69)
{
@@ -1455,7 +1455,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[3] == 73)
+ else if (data[3].unicode() == 73)
{
@@ -1480,7 +1480,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 110)
+ else if (data[0].unicode() == 110)
{
@@ -1503,7 +1503,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier13(const QChar *data)
{
- if (data[0] == 100)
+ if (data[0].unicode() == 100)
{
@@ -1519,7 +1519,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 115)
+ else if (data[0].unicode() == 115)
{
@@ -1542,11 +1542,11 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier14(const QChar *data)
{
- if (data[0] == 97)
+ if (data[0].unicode() == 97)
{
- if (data[1] == 112)
+ if (data[1].unicode() == 112)
{
@@ -1562,7 +1562,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[1] == 116)
+ else if (data[1].unicode() == 116)
{
@@ -1581,7 +1581,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 99)
+ else if (data[0].unicode() == 99)
{
@@ -1597,7 +1597,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 102)
+ else if (data[0].unicode() == 102)
{
@@ -1613,7 +1613,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 115)
+ else if (data[0].unicode() == 115)
{
@@ -1636,7 +1636,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier15(const QChar *data)
{
- if (data[0] == 112)
+ if (data[0].unicode() == 112)
{
@@ -1652,7 +1652,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 116)
+ else if (data[0].unicode() == 116)
{
@@ -1675,7 +1675,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier17(const QChar *data)
{
- if (data[0] == 100)
+ if (data[0].unicode() == 100)
{
@@ -1691,7 +1691,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 115)
+ else if (data[0].unicode() == 115)
{
@@ -1714,7 +1714,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
XsdSchemaToken::NodeName XsdSchemaToken::classifier18(const QChar *data)
{
- if (data[0] == 100)
+ if (data[0].unicode() == 100)
{
@@ -1730,7 +1730,7 @@ XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
}
- else if (data[0] == 101)
+ else if (data[0].unicode() == 101)
{
diff --git a/src/xmlpatterns/schema/qxsdstatemachine_p.h b/src/xmlpatterns/schema/qxsdstatemachine_p.h
index 0ec8eb4..e535c8b 100644
--- a/src/xmlpatterns/schema/qxsdstatemachine_p.h
+++ b/src/xmlpatterns/schema/qxsdstatemachine_p.h
@@ -261,9 +261,7 @@ namespace QPatternist
{
QSet<StateId> result;
- QSetIterator<StateId> it(states);
- while (it.hasNext()) { // iterate over all given states
- const StateId state = it.next();
+ for (const StateId state : states) {
// get the transition table for the current state
const QHash<TransitionType, QVector<StateId> > transitions = m_transitions.value(state);
diff --git a/src/xmlpatterns/schema/qxsdstatemachine_tpl_p.h b/src/xmlpatterns/schema/qxsdstatemachine_tpl_p.h
index 91424a8..2583bb9 100644
--- a/src/xmlpatterns/schema/qxsdstatemachine_tpl_p.h
+++ b/src/xmlpatterns/schema/qxsdstatemachine_tpl_p.h
@@ -74,9 +74,7 @@ typename XsdStateMachine<TransitionType>::StateId XsdStateMachine<TransitionType
#ifndef QT_NO_DEBUG
// make sure we don't have two start states
if (type == StartState) {
- QHashIterator<StateId, StateType> it(m_states);
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_states.cbegin(), end = m_states.cend(); it != end; ++it) {
Q_ASSERT(it.value() != StartState && it.value() != StartEndState);
}
}
@@ -113,9 +111,7 @@ template <typename TransitionType>
void XsdStateMachine<TransitionType>::reset()
{
// reset the machine to the start state
- QHashIterator<StateId, StateType> it(m_states);
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_states.cbegin(), end = m_states.cend(); it != end; ++it) {
if (it.value() == StartState || it.value() == StartEndState) {
m_currentState = it.key();
return;
@@ -179,9 +175,7 @@ bool XsdStateMachine<TransitionType>::proceed(InputType input)
// fetch the transition entry for the current state
const QHash<TransitionType, QVector<StateId> > &entry = m_transitions[m_currentState];
- QHashIterator<TransitionType, QVector<StateId> > it(entry);
- while (it.hasNext()) {
- it.next();
+ for (auto it = entry.cbegin(), end = entry.cend(); it != end; ++it) {
if (inputEqualsTransition(input, it.key())) {
m_currentState = it.value().first();
m_lastTransition = it.key();
@@ -218,9 +212,7 @@ TransitionType XsdStateMachine<TransitionType>::lastTransition() const
template <typename TransitionType>
typename XsdStateMachine<TransitionType>::StateId XsdStateMachine<TransitionType>::startState() const
{
- QHashIterator<StateId, StateType> it(m_states);
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_states.cbegin(), end = m_states.cend(); it != end; ++it) {
if (it.value() == StartState || it.value() == StartEndState)
return it.key();
}
@@ -248,49 +240,39 @@ bool XsdStateMachine<TransitionType>::outputGraph(QIODevice *device, const QStri
QByteArray graph;
QTextStream s(&graph);
- QHashIterator<StateId, QHash<TransitionType, QVector<StateId> > > it(m_transitions);
- QHashIterator<StateId, StateType> it3(m_states);
-
s << "digraph " << graphName << " {\n";
s << " mindist = 2.0\n";
// draw edges
- while (it.hasNext()) {
- it.next();
+ for (auto it = m_transitions.cbegin(), end = m_transitions.cend(); it != end; ++it) {
- QHashIterator<TransitionType, QVector<StateId> > it2(it.value());
- while (it2.hasNext()) {
- it2.next();
+ for (auto it2 = it.value().cbegin(), end = it.value().cend(); it2 != end; ++it2) {
for (int i = 0; i < it2.value().count(); ++i)
s << " " << it.key() << " -> " << it2.value().at(i) << " [label=\"" << transitionTypeToString(it2.key()) << "\"]\n";
}
}
- QHashIterator<StateId, QVector<StateId> > it4(m_epsilonTransitions);
- while (it4.hasNext()) {
- it4.next();
-
- const QVector<StateId> states = it4.value();
+ for (auto it = m_epsilonTransitions.cbegin(), end = m_epsilonTransitions.cend(); it != end; ++it) {
+ const QVector<StateId> states = it.value();
for (int i = 0; i < states.count(); ++i)
- s << " " << it4.key() << " -> " << states.at(i) << " [label=\"&#949;\"]\n";
+ s << " " << it.key() << " -> " << states.at(i) << " [label=\"&#949;\"]\n";
}
// draw node info
- while (it3.hasNext()) {
- it3.next();
+ for (auto it = m_states.cbegin(), end = m_states.cend(); it != end; ++it) {
QString style;
- if (it3.value() == StartState) {
+ if (it.value() == StartState) {
style = QLatin1String("shape=circle, style=filled, color=blue");
- } else if (it3.value() == StartEndState) {
+ } else if (it.value() == StartEndState) {
style = QLatin1String("shape=doublecircle, style=filled, color=blue");
- } else if (it3.value() == InternalState) {
+ } else if (it.value() == InternalState) {
style = QLatin1String("shape=circle, style=filled, color=red");
- } else if (it3.value() == EndState) {
+ } else if (it.value() == EndState) {
style = QLatin1String("shape=doublecircle, style=filled, color=green");
}
- s << " " << it3.key() << " [" << style << "]\n";
+ s << " " << it.key() << " [" << style << "]\n";
}
s << "}\n";
@@ -320,11 +302,9 @@ typename XsdStateMachine<TransitionType>::StateId XsdStateMachine<TransitionType
// state, in that case our new DFA state will be a
// Start or End state as well
StateType type = InternalState;
- QSetIterator<StateId> it(nfaState);
bool hasStartState = false;
bool hasEndState = false;
- while (it.hasNext()) {
- const StateId state = it.next();
+ for (const StateId state : qAsConst(nfaState)) {
if (m_states.value(state) == EndState) {
hasEndState = true;
} else if (m_states.value(state) == StartState) {
@@ -359,11 +339,9 @@ XsdStateMachine<TransitionType> XsdStateMachine<TransitionType>::toDFA() const
// search the start state as the algorithm starts with it...
StateId startState = -1;
- QHashIterator<StateId, StateType> stateTypeIt(m_states);
- while (stateTypeIt.hasNext()) {
- stateTypeIt.next();
- if (stateTypeIt.value() == StartState) {
- startState = stateTypeIt.key();
+ for (auto it = m_states.cbegin(), end = m_states.cend(); it != end; ++it) {
+ if (it.value() == StartState) {
+ startState = it.key();
break;
}
}
@@ -390,12 +368,8 @@ XsdStateMachine<TransitionType> XsdStateMachine<TransitionType>::toDFA() const
// the 'states' set
QList<TransitionType> input;
- {
- QSetIterator<StateId> it(states);
- while (it.hasNext()) {
- input << m_transitions.value(it.next()).keys();
- }
- }
+ for (const StateId state : states)
+ input << m_transitions.value(state).keys();
// get the state in DFA that corresponds to the 'states' set in the NFA
const StateId dfaBegin = dfaStateForNfaState(states, table, dfa);
diff --git a/src/xmlpatterns/schema/qxsdtypechecker.cpp b/src/xmlpatterns/schema/qxsdtypechecker.cpp
index 7c554c5..2e4ce8e 100644
--- a/src/xmlpatterns/schema/qxsdtypechecker.cpp
+++ b/src/xmlpatterns/schema/qxsdtypechecker.cpp
@@ -206,12 +206,8 @@ XsdFacet::Hash XsdTypeChecker::mergedFacetsForType(const SchemaType::Ptr &type,
const XsdFacet::Hash facets = context->facetsForType(type);
XsdFacet::Hash result = baseFacets;
- XsdFacet::HashIterator it(facets);
- while (it.hasNext()) {
- it.next();
-
+ for (auto it = facets.cbegin(), end = facets.cend(); it != end; ++it)
result.insert(it.key(), it.value());
- }
return result;
}
diff --git a/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp b/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp
index 7cad16c..7e60667 100644
--- a/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp
+++ b/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp
@@ -167,9 +167,7 @@ bool XsdValidatingInstanceReader::read()
// check IDREF occurrences
const QStringList ids = m_model->idIdRefBindingIds();
- QSetIterator<QString> it(m_idRefs);
- while (it.hasNext()) {
- const QString id = it.next();
+ for (const QString &id : qAsConst(m_idRefs)) {
if (!ids.contains(id)) {
error(QtXmlPatterns::tr("There is one IDREF value with no corresponding ID: %1.").arg(formatKeyword(id)));
return false;
@@ -734,14 +732,11 @@ bool XsdValidatingInstanceReader::validateElementComplexType(const XsdElement::P
const QSet<QXmlName> attributes(attributeNames());
// 3
- QHashIterator<QXmlName, XsdAttributeUse::Ptr> usesIt(attributeUseHash);
- while (usesIt.hasNext()) {
- usesIt.next();
-
- if (usesIt.value()->isRequired()) {
- if (!attributes.contains(usesIt.key())) {
+ for (auto it = attributeUseHash.cbegin(), end = attributeUseHash.cend(); it != end; ++it) {
+ if (it.value()->isRequired()) {
+ if (!attributes.contains(it.key())) {
error(QtXmlPatterns::tr("Element %1 is missing required attribute %2.").arg(formatKeyword(declaration->displayName(m_namePool)))
- .arg(formatKeyword(m_namePool->displayName(usesIt.key()))));
+ .arg(formatKeyword(m_namePool->displayName(it.key()))));
return false;
}
}
@@ -750,9 +745,7 @@ bool XsdValidatingInstanceReader::validateElementComplexType(const XsdElement::P
bool hasIDAttribute = hasIDAttributeUse(complexType->attributeUses());
// 2
- QSetIterator<QXmlName> it(attributes);
- while (it.hasNext()) {
- const QXmlName attributeName = it.next();
+ for (const QXmlName &attributeName : attributes) {
// skip builtin attributes
if (attributeName == m_xsiNilName ||
@@ -973,17 +966,9 @@ bool XsdValidatingInstanceReader::validateUniqueIdentityConstraint(const XsdElem
// 4.1
const XsdSchemaSourceLocationReflection reflection(sourceLocation());
- QSetIterator<TargetNode> it(qualifiedNodeSet);
- while (it.hasNext()) {
- const TargetNode node = it.next();
- QSetIterator<TargetNode> innerIt(qualifiedNodeSet);
- while (innerIt.hasNext()) {
- const TargetNode innerNode = innerIt.next();
-
- if (node == innerNode) // do not compare with ourself
- continue;
-
- if (node.fieldsAreEqual(innerNode, m_namePool, m_context, &reflection)) {
+ for (auto it = qualifiedNodeSet.cbegin(), end = qualifiedNodeSet.cend(); it != end; ++it) {
+ for (auto jt = qualifiedNodeSet.cbegin(); jt != it; ++jt) {
+ if (it->fieldsAreEqual(*jt, m_namePool, m_context, &reflection)) {
error(QtXmlPatterns::tr("Non-unique value found for constraint %1.").arg(formatKeyword(constraint->displayName(m_namePool))));
return false;
}
@@ -1013,9 +998,7 @@ bool XsdValidatingInstanceReader::validateKeyIdentityConstraint(const XsdElement
return false;
// 4.2.3
- QSetIterator<TargetNode> it(qualifiedNodeSet);
- while (it.hasNext()) {
- const TargetNode node = it.next();
+ for (const TargetNode node : qualifiedNodeSet) {
const QVector<QXmlItem> fieldItems = node.fieldItems();
for (int i = 0; i < fieldItems.count(); ++i) {
const QXmlNodeModelIndex index = fieldItems.at(i).toNodeModelIndex();
@@ -1045,16 +1028,11 @@ bool XsdValidatingInstanceReader::validateKeyRefIdentityConstraint(const XsdElem
const TargetNode::Set keySet = m_idcKeys.value(constraint->referencedKey()->name(m_namePool));
- QSetIterator<TargetNode> it(qualifiedNodeSet);
- while (it.hasNext()) {
- const TargetNode node = it.next();
+ for (const TargetNode &node : qualifiedNodeSet) {
bool foundMatching = false;
- QSetIterator<TargetNode> keyIt(keySet);
- while (keyIt.hasNext()) {
- const TargetNode keyNode = keyIt.next();
-
+ for (const TargetNode &keyNode : keySet) {
if (node.fieldsAreEqual(keyNode, m_namePool, m_context, &reflection)) {
foundMatching = true;
break;
@@ -1187,9 +1165,7 @@ bool XsdValidatingInstanceReader::selectNodeSets(const XsdElement::Ptr&, const Q
}
// copy all items from target node set to qualified node set, that have no empty fields
- QSetIterator<TargetNode> it(targetNodeSet);
- while (it.hasNext()) {
- const TargetNode node = it.next();
+ for (const TargetNode &node : qAsConst(targetNodeSet)) {
if (node.emptyFieldsCount() == 0)
qualifiedNodeSet.insert(node);
}
diff --git a/src/xmlpatterns/schema/qxsdvalidatinginstancereader_p.h b/src/xmlpatterns/schema/qxsdvalidatinginstancereader_p.h
index 16943cb..ab0fa1e 100644
--- a/src/xmlpatterns/schema/qxsdvalidatinginstancereader_p.h
+++ b/src/xmlpatterns/schema/qxsdvalidatinginstancereader_p.h
@@ -263,7 +263,6 @@ namespace QPatternist
void createAndPushStateMachine(const XsdParticle::Ptr &particle);
typedef QHash<QUrl, QStringList> MergedSchemas;
- typedef QHashIterator<QUrl, QStringList> MergedSchemasIterator;
XsdValidatedXmlNodeModel::Ptr m_model;
MergedSchemas m_mergedSchemas;