public XmlElementCollection ReadXmlElementArray(string fieldName)
{
bool isNil = false;
XmlElementCollection values = new XmlElementCollection();
if (BeginField(fieldName, true, out isNil))
{
PushNamespace(Namespaces.OpcUaXsd);
while (MoveToElement("XmlElement"))
{
values.Add(ReadXmlElement("XmlElement"));
}
// check the length.
if (m_context.MaxArrayLength > 0 && m_context.MaxArrayLength < values.Count)
{
throw new ServiceResultException(StatusCodes.BadEncodingLimitsExceeded);
}
PopNamespace();
EndField(fieldName);
return values;
}
if (isNil)
{
return null;
}
return values;
}