| 359 | |
| 360 | |
| 361 | void XMLStreamParser::popElement() |
| 362 | { |
| 363 | // Make sure there are no unhandled attributes left. |
| 364 | // |
| 365 | const ElementEntry& e(_elementState.back()); |
| 366 | if (e.attributesUnhandled != 0) |
| 367 | { |
| 368 | // Find the first unhandled attribute and report it. |
| 369 | // |
| 370 | for (const auto& p: e.attributeMap) |
| 371 | { |
| 372 | if (!p.second.handled) |
| 373 | throw XMLStreamParserException(*this, "unexpected attribute '" + p.first.toString() + "'"); |
| 374 | } |
| 375 | poco_assert(false); |
| 376 | } |
| 377 | |
| 378 | _elementState.pop_back(); |
| 379 | } |
| 380 | |
| 381 | |
| 382 | XMLStreamParser::EventType XMLStreamParser::nextImpl(bool peek) |