private string FilterNormalization (string attrName, string rawValue)
{
if (DTD == null || sourceTextReader == null ||
!sourceTextReader.Normalization)
return rawValue;
DTDAttributeDefinition def =
dtd.AttListDecls [currentElement].Get (attrName);
valueBuilder.Append (rawValue);
valueBuilder.Replace ('\r', ' ');
valueBuilder.Replace ('\n', ' ');
valueBuilder.Replace ('\t', ' ');
try {
if (def == null || def.Datatype.TokenizedType == XmlTokenizedType.CDATA)
return valueBuilder.ToString ();
for (int i=0; i < valueBuilder.Length; i++) {
if (valueBuilder [i] != ' ')
continue;
while (++i < valueBuilder.Length && valueBuilder [i] == ' ')
valueBuilder.Remove (i, 1);
}
return valueBuilder.ToString ().Trim (whitespaceChars);
} finally {
valueBuilder.Length = 0;
}
}