if (size > 0)
{
// for performance reasons saveNil and saveElement are not used
if (!toDOM)
{
EDataType d = (EDataType)f.getEType();
EPackage ePackage = d.getEPackage();
EFactory fac = ePackage.getEFactoryInstance();
String name = helper.getQName(f);
for (int i = 0; i < size; ++i)
{
Object value = values.get(i);
if (value == null)
{
doc.startElement(name);
doc.addAttribute(XSI_NIL, "true");
doc.endEmptyElement();
declareXSI = true;
}
else
{
String svalue = helper.convertToString(fac, d, value);
if (escape != null)
{
svalue = escape.convert(svalue);
}
doc.saveDataValueElement(name, svalue);
}
}
}
else
{
EDataType d = (EDataType)f.getEType();
EPackage ePackage = d.getEPackage();
EFactory fac = ePackage.getEFactoryInstance();
helper.populateNameInfo(nameInfo, f);
for (int i = 0; i < size; ++i)
{
Object value = values.get(i);