while (end > start && WstxInputData.isSpaceChar(cbuf[end])) {
--end;
}
// Ok; now start points to first, end to last char (both inclusive)
ElementIdMap m = v.getIdMap();
Location loc = v.getLocation();
String idStr = null;
StringBuilder sb = null;
while (start <= end) {
// Ok, need to check char validity, and also calc hash code:
char c = cbuf[start];
if (!WstxInputData.isNameStartChar(c, mCfgNsAware, mCfgXml11)) {
return reportInvalidChar(v, c, "not valid as the first IDREFS character");
}
int hash = (int) c;
int i = start+1;
for (; i <= end; ++i) {
c = cbuf[i];
if (WstxInputData.isSpaceChar(c)) {
break;
}
if (!WstxInputData.isNameChar(c, mCfgNsAware, mCfgXml11)) {
return reportInvalidChar(v, c, "not valid as an IDREFS character");
}
hash = (hash * 31) + (int) c;
}
// Ok, got the next id ref...
ElementId id = m.addReferenced(cbuf, start, i - start, hash,
loc, v.getElemName(), mName);
// Can skip the trailing space char (if there was one)
start = i+1;