XMLCh* ComplexTypeInfo::formatContentModel() const { XMLCh* newValue = 0; if (fContentType == SchemaElementDecl::Any) { newValue = XMLString::replicate(XMLUni::fgAnyString, fMemoryManager); } else if (fContentType == SchemaElementDecl::Empty || fContentType == SchemaElementDecl::ElementOnlyEmpty) { newValue = XMLString::replicate(XMLUni::fgEmptyString, fMemoryManager); } else { // // Use a temp XML buffer to format into. Content models could be // pretty long, but very few will be longer than one K. The buffer // will expand to handle the more pathological ones. // const ContentSpecNode* specNode = fContentSpec; if (specNode) { XMLBuffer bufFmt(1023, fMemoryManager); specNode->formatSpec(bufFmt); newValue = XMLString::replicate ( bufFmt.getRawBuffer() , fMemoryManager ); } } return newValue; }
// --------------------------------------------------------------------------- // DTDElementDecl: Private helper methods // --------------------------------------------------------------------------- XMLCh* DTDElementDecl::formatContentModel() const { XMLCh* newValue = 0; if (fModelType == Any) { newValue = XMLString::replicate(XMLUni::fgAnyString, getMemoryManager()); } else if (fModelType == Empty) { newValue = XMLString::replicate(XMLUni::fgEmptyString, getMemoryManager()); } else { // // Use a temp XML buffer to format into. Content models could be // pretty long, but very few will be longer than one K. The buffer // will expand to handle the more pathological ones. // XMLBuffer bufFmt(1023, getMemoryManager()); getContentSpec()->formatSpec(bufFmt); newValue = XMLString::replicate(bufFmt.getRawBuffer(), getMemoryManager()); } return newValue; }