📄 xmlimporter.cs
字号:
}
item = item.NextSibling;
offs += 4;
}
}
continue;
case ClassDescriptor.FieldType.tpArrayOfInt:
case ClassDescriptor.FieldType.tpArrayOfUInt:
if (elem == null || elem.isNullValue())
{
buf.extend(offs + 4);
Bytes.pack4(buf.arr, offs, - 1);
offs += 4;
}
else
{
XMLElement item = elem.getSibling("element");
int len = (item == null)?0:item.Counter;
buf.extend(offs + 4 + len * 4);
Bytes.pack4(buf.arr, offs, len);
offs += 4;
while (--len >= 0)
{
if (item.isIntValue())
{
Bytes.pack4(buf.arr, offs, (int) item.IntValue);
}
else if (item.isRealValue())
{
Bytes.pack4(buf.arr, offs, (int) item.RealValue);
}
else
{
throwException("Conversion for field " + fieldName + " is not possible");
}
item = item.NextSibling;
offs += 4;
}
}
continue;
case ClassDescriptor.FieldType.tpArrayOfLong:
case ClassDescriptor.FieldType.tpArrayOfULong:
if (elem == null || elem.isNullValue())
{
buf.extend(offs + 4);
Bytes.pack4(buf.arr, offs, - 1);
offs += 4;
}
else
{
XMLElement item = elem.getSibling("element");
int len = (item == null)?0:item.Counter;
buf.extend(offs + 4 + len * 8);
Bytes.pack4(buf.arr, offs, len);
offs += 4;
while (--len >= 0)
{
if (item.isIntValue())
{
Bytes.pack8(buf.arr, offs, item.IntValue);
}
else if (item.isRealValue())
{
Bytes.pack8(buf.arr, offs, (long) item.RealValue);
}
else
{
throwException("Conversion for field " + fieldName + " is not possible");
}
item = item.NextSibling;
offs += 8;
}
}
continue;
case ClassDescriptor.FieldType.tpArrayOfFloat:
if (elem == null || elem.isNullValue())
{
buf.extend(offs + 4);
Bytes.pack4(buf.arr, offs, - 1);
offs += 4;
}
else
{
XMLElement item = elem.getSibling("element");
int len = (item == null)?0:item.Counter;
buf.extend(offs + 4 + len * 4);
Bytes.pack4(buf.arr, offs, len);
offs += 4;
while (--len >= 0)
{
if (item.isIntValue())
{
Bytes.packF4(buf.arr, offs, (float)item.IntValue);
}
else if (item.isRealValue())
{
Bytes.packF4(buf.arr, offs, (float)item.RealValue);
}
else
{
throwException("Conversion for field " + fieldName + " is not possible");
}
item = item.NextSibling;
offs += 4;
}
}
continue;
case ClassDescriptor.FieldType.tpArrayOfDouble:
if (elem == null || elem.isNullValue())
{
buf.extend(offs + 4);
Bytes.pack4(buf.arr, offs, - 1);
offs += 4;
}
else
{
XMLElement item = elem.getSibling("element");
int len = (item == null)?0:item.Counter;
buf.extend(offs + 4 + len * 8);
Bytes.pack4(buf.arr, offs, len);
offs += 4;
while (--len >= 0)
{
if (item.isIntValue())
{
Bytes.packF8(buf.arr, offs, (double)item.IntValue);
}
else if (item.isRealValue())
{
Bytes.packF8(buf.arr, offs, item.RealValue);
}
else
{
throwException("Conversion for field " + fieldName + " is not possible");
}
item = item.NextSibling;
offs += 8;
}
}
continue;
case ClassDescriptor.FieldType.tpArrayOfDate:
if (elem == null || elem.isNullValue())
{
buf.extend(offs + 4);
Bytes.pack4(buf.arr, offs, - 1);
offs += 4;
}
else
{
XMLElement item = elem.getSibling("element");
int len = (item == null)?0:item.Counter;
buf.extend(offs + 4 + len * 8);
Bytes.pack4(buf.arr, offs, len);
offs += 4;
while (--len >= 0)
{
if (item.isNullValue())
{
Bytes.pack8(buf.arr, offs, - 1);
}
else if (item.isStringValue())
{
try
{
Bytes.packDate(buf.arr, offs, DateTime.Parse(item.StringValue));
}
catch (FormatException)
{
throwException("Conversion for field " + fieldName + " is not possible");
}
}
item = item.NextSibling;
offs += 8;
}
}
continue;
case ClassDescriptor.FieldType.tpArrayOfDecimal:
if (elem == null || elem.isNullValue())
{
buf.extend(offs + 4);
Bytes.pack4(buf.arr, offs, - 1);
offs += 4;
}
else
{
XMLElement item = elem.getSibling("element");
int len = (item == null)?0:item.Counter;
buf.extend(offs + 4 + len * 16);
Bytes.pack4(buf.arr, offs, len);
offs += 4;
while (--len >= 0)
{
if (item.isStringValue())
{
try
{
Bytes.packDecimal(buf.arr, offs, Decimal.Parse(item.StringValue));
}
catch (FormatException)
{
throwException("Conversion for field " + fieldName + " is not possible");
}
}
item = item.NextSibling;
offs += 16;
}
}
continue;
case ClassDescriptor.FieldType.tpArrayOfGuid:
if (elem == null || elem.isNullValue())
{
buf.extend(offs + 4);
Bytes.pack4(buf.arr, offs, - 1);
offs += 4;
}
else
{
XMLElement item = elem.getSibling("element");
int len = (item == null)?0:item.Counter;
buf.extend(offs + 4 + len * 16);
Bytes.pack4(buf.arr, offs, len);
offs += 4;
while (--len >= 0)
{
if (item.isStringValue())
{
try
{
Bytes.packGuid(buf.arr, offs, new Guid(item.StringValue));
}
catch (FormatException)
{
throwException("Conversion for field " + fieldName + " is not possible");
}
}
item = item.NextSibling;
offs += 16;
}
}
continue;
case ClassDescriptor.FieldType.tpArrayOfString:
if (elem == null || elem.isNullValue())
{
buf.extend(offs + 4);
Bytes.pack4(buf.arr, offs, - 1);
offs += 4;
}
else
{
XMLElement item = elem.getSibling("element");
int len = (item == null)?0:item.Counter;
buf.extend(offs + 4);
Bytes.pack4(buf.arr, offs, len);
offs += 4;
while (--len >= 0)
{
System.String val = null;
if (item.isIntValue())
{
val = System.Convert.ToString(item.IntValue);
}
else if (item.isRealValue())
{
val = item.RealValue.ToString();
}
else if (item.isStringValue())
{
val = item.StringValue;
}
else if (item.isNullValue())
{
val = null;
}
else
{
throwException("Conversion for field " + fieldName + " is not possible");
}
offs = buf.packString(offs, val);
item = item.NextSibling;
}
}
continue;
case ClassDescriptor.FieldType.tpArrayOfObject:
case ClassDescriptor.FieldType.tpArrayOfOid:
case ClassDescriptor.FieldType.tpLink:
if (elem == null || elem.isNullValue())
{
buf.extend(offs + 4);
Bytes.pack4(buf.arr, offs, - 1);
offs += 4;
}
else
{
XMLElement item = elem.getSibling("element");
int len = (item == null)?0:item.Counter;
buf.extend(offs + 4 + len * 4);
Bytes.pack4(buf.arr, offs, len);
offs += 4;
while (--len >= 0)
{
XMLElement href = item.getSibling("ref");
if (href == null)
{
throwException("<ref> element expected");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -