in src/framework/taespecifier.cpp [1094:1187]
void AnalysisEngineDescription::toXMLBufferNoXMLHeader(icu::UnicodeString & s) const {
size_t i;
bool isCasConsumer=false;
if ( getXmlRootTag().compare("casConsumerDescription") == 0) {
isCasConsumer=true;
}
s = "<";
s.append(getXmlRootTag());
s.append(" xmlns=\"" UIMA_XML_NAMESPACE "\">");
// framework
s.append("<frameworkImplementation>");
EnFrameworkImplName fwName = getFrameworkImplName();
switch (fwName) {
case CPLUSPLUS:
s.append("org.apache.uima.cpp");
break;
case JAVA:
s.append("org.apache.uima.java");
break;
default:
assert(false);
};
s.append("</frameworkImplementation>");
if (isCasConsumer) {
s.append("<implementationName>");
s.append(getAnnotatorImpName());
s.append("</implementationName>");
}
// primitive
else {
// primitive
s.append("<primitive>");
appendBool(isPrimitive(), s);
s.append("</primitive>");
if (isPrimitive()) {
// annotator implementation
s.append("<annotatorImplementationName>");
s.append(getAnnotatorImpName());
s.append("</annotatorImplementationName>");
} else {
// delegates
s.append("<delegateAnalysisEngineSpecifiers>");
TyMapDelegateSpecs const & delegates = getDelegates();
TyMapDelegateSpecs::const_iterator cit;
for (cit = delegates.begin(); cit != delegates.end(); ++cit) {
s.append("<delegateAnalysisEngine key=\"");
s.append( (*cit).first );
s.append("\">");
icu::UnicodeString delBuf;
(*cit).second->toXMLBufferNoXMLHeader(delBuf);
s.append(delBuf);
s.append("</delegateAnalysisEngine>");
}
s.append("</delegateAnalysisEngineSpecifiers>");
}
}
toXMLBuffer( *(getAnalysisEngineMetaData()), isCasConsumer, s);
if (!isCasConsumer) {
TyVecpSofaMappings const & sofamappingVec = getSofaMappings();
if (sofamappingVec.size() > 0) {
s.append("<sofaMappings>");
for (i=0; i<sofamappingVec.size(); ++i) {
s.append("<sofaMapping>");
s.append("<componentKey>");
s.append(sofamappingVec[i]->getComponentKey());
s.append("</componentKey>");
s.append("<componentSofaName>");
s.append(sofamappingVec[i]->getComponentSofaName());
s.append("</componentSofaName>");
s.append("<aggregateSofaName>");
s.append(sofamappingVec[i]->getAggregateSofaName());
s.append("</aggregateSofaName>");
s.append("</sofaMapping>");
}
s.append("</sofaMappings>");
}
}
s.append("</");
s.append(getXmlRootTag());
s.append(">");
}