if (pController.hasSimpleContent()) {
return new SimpleContentDriverSG(pController, pSource);
} else {
ComplexContentSG ccSG = pController.getComplexContentSG();
if (ccSG.isEmpty()) {
return new EmptyElementDriverSG(pController, pSource);
} else {
GroupSG group = ccSG.getGroupSG();
if (group.isSequence()) {
return new SequenceDriverSG(pController, pSource);
} else if (group.isChoice()) {