private void writeValues(VR vr, Object val, boolean bigEndian,
SpecificCharacterSet cs) throws SAXException {
if (vr.isStringType())
val = vr.toStrings(val, bigEndian, cs);
int vm = vr.vmOf(val);
for (int i = 0; i < vm; i++) {
String s = vr.toString(val, bigEndian, i, null);
addAttribute("number", Integer.toString(i + 1));
if (vr == VR.PN) {
PersonName pn = new PersonName(s, true);
startElement("PersonName");
writePNGroup("Alphabetic", pn, PersonName.Group.Alphabetic);
writePNGroup("Ideographic", pn, PersonName.Group.Ideographic);
writePNGroup("Phonetic", pn, PersonName.Group.Phonetic);
endElement("PersonName");
} else {
writeElement("Value", s);
}
}
}