inline XMLContentModel* ComplexTypeInfo::getContentModel(const bool checkUPA) { if (!fContentModel && fContentSpec) fContentModel = makeContentModel(checkUPA); return fContentModel; }
// --------------------------------------------------------------------------- // ComplexTypeInfo: Helper methods // --------------------------------------------------------------------------- void ComplexTypeInfo::checkUniqueParticleAttribution (SchemaGrammar* const pGrammar, GrammarResolver* const pGrammarResolver, XMLStringPool* const pStringPool, XMLValidator* const pValidator) { if (fContentSpec && !fContentModel) { fContentModel = makeContentModel(true); if (fContentModel) { fContentModel->checkUniqueParticleAttribution(pGrammar, pGrammarResolver, pStringPool, pValidator, fContentSpecOrgURI, fTypeLocalName); } } }
void ComplexTypeInfo::checkUniqueParticleAttribution (SchemaGrammar* const pGrammar, GrammarResolver* const pGrammarResolver, XMLStringPool* const pStringPool, XMLValidator* const pValidator) { if (fContentSpec) { ContentSpecNode* specNode = new (fMemoryManager) ContentSpecNode(*fContentSpec); XMLContentModel* cm = makeContentModel(true, specNode); if (cm) { cm->checkUniqueParticleAttribution(pGrammar, pGrammarResolver, pStringPool, pValidator, fContentSpecOrgURI); delete cm; } fSpecNodesToDelete->removeAllElements(); } }