public static MSG_GET_READER_CONFIG_RESPONSE FromString(string str) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(str); XmlNode documentElement = (XmlNode)xmlDocument.DocumentElement; XmlNamespaceManager nsmgr = new XmlNamespaceManager(documentElement.OwnerDocument.NameTable); nsmgr.AddNamespace("", "http://www.llrp.org/ltk/schema/core/encoding/xml/1.0"); nsmgr.AddNamespace("llrp", "http://www.llrp.org/ltk/schema/core/encoding/xml/1.0"); MSG_GET_READER_CONFIG_RESPONSE readerConfigResponse = new MSG_GET_READER_CONFIG_RESPONSE(); try { readerConfigResponse.MSG_ID = Convert.ToUInt32(XmlUtil.GetNodeAttrValue(documentElement, "MessageID")); } catch { } try { XmlNodeList xmlNodes = XmlUtil.GetXmlNodes(documentElement, "LLRPStatus", nsmgr); if (xmlNodes != null) { if (xmlNodes.Count != 0) { readerConfigResponse.LLRPStatus = PARAM_LLRPStatus.FromXmlNode(xmlNodes[0]); } } } catch { } try { XmlNodeList xmlNodes = XmlUtil.GetXmlNodes(documentElement, "Identification", nsmgr); if (xmlNodes != null) { if (xmlNodes.Count != 0) { readerConfigResponse.Identification = PARAM_Identification.FromXmlNode(xmlNodes[0]); } } } catch { } try { XmlNodeList xmlNodes = XmlUtil.GetXmlNodes(documentElement, "AntennaProperties", nsmgr); if (xmlNodes != null) { if (xmlNodes.Count != 0) { readerConfigResponse.AntennaProperties = new PARAM_AntennaProperties[xmlNodes.Count]; for (int i = 0; i < xmlNodes.Count; ++i) { readerConfigResponse.AntennaProperties[i] = PARAM_AntennaProperties.FromXmlNode(xmlNodes[i]); } } } } catch { } try { XmlNodeList xmlNodes = XmlUtil.GetXmlNodes(documentElement, "AntennaConfiguration", nsmgr); if (xmlNodes != null) { if (xmlNodes.Count != 0) { readerConfigResponse.AntennaConfiguration = new PARAM_AntennaConfiguration[xmlNodes.Count]; for (int i = 0; i < xmlNodes.Count; ++i) { readerConfigResponse.AntennaConfiguration[i] = PARAM_AntennaConfiguration.FromXmlNode(xmlNodes[i]); } } } } catch { } try { XmlNodeList xmlNodes = XmlUtil.GetXmlNodes(documentElement, "ReaderEventNotificationSpec", nsmgr); if (xmlNodes != null) { if (xmlNodes.Count != 0) { readerConfigResponse.ReaderEventNotificationSpec = PARAM_ReaderEventNotificationSpec.FromXmlNode(xmlNodes[0]); } } } catch { } try { XmlNodeList xmlNodes = XmlUtil.GetXmlNodes(documentElement, "ROReportSpec", nsmgr); if (xmlNodes != null) { if (xmlNodes.Count != 0) { readerConfigResponse.ROReportSpec = PARAM_ROReportSpec.FromXmlNode(xmlNodes[0]); } } } catch { } try { XmlNodeList xmlNodes = XmlUtil.GetXmlNodes(documentElement, "AccessReportSpec", nsmgr); if (xmlNodes != null) { if (xmlNodes.Count != 0) { readerConfigResponse.AccessReportSpec = PARAM_AccessReportSpec.FromXmlNode(xmlNodes[0]); } } } catch { } try { XmlNodeList xmlNodes = XmlUtil.GetXmlNodes(documentElement, "LLRPConfigurationStateValue", nsmgr); if (xmlNodes != null) { if (xmlNodes.Count != 0) { readerConfigResponse.LLRPConfigurationStateValue = PARAM_LLRPConfigurationStateValue.FromXmlNode(xmlNodes[0]); } } } catch { } try { XmlNodeList xmlNodes = XmlUtil.GetXmlNodes(documentElement, "KeepaliveSpec", nsmgr); if (xmlNodes != null) { if (xmlNodes.Count != 0) { readerConfigResponse.KeepaliveSpec = PARAM_KeepaliveSpec.FromXmlNode(xmlNodes[0]); } } } catch { } try { XmlNodeList xmlNodes = XmlUtil.GetXmlNodes(documentElement, "GPIPortCurrentState", nsmgr); if (xmlNodes != null) { if (xmlNodes.Count != 0) { readerConfigResponse.GPIPortCurrentState = new PARAM_GPIPortCurrentState[xmlNodes.Count]; for (int i = 0; i < xmlNodes.Count; ++i) { readerConfigResponse.GPIPortCurrentState[i] = PARAM_GPIPortCurrentState.FromXmlNode(xmlNodes[i]); } } } } catch { } try { XmlNodeList xmlNodes = XmlUtil.GetXmlNodes(documentElement, "GPOWriteData", nsmgr); if (xmlNodes != null) { if (xmlNodes.Count != 0) { readerConfigResponse.GPOWriteData = new PARAM_GPOWriteData[xmlNodes.Count]; for (int i = 0; i < xmlNodes.Count; ++i) { readerConfigResponse.GPOWriteData[i] = PARAM_GPOWriteData.FromXmlNode(xmlNodes[i]); } } } } catch { } try { XmlNodeList xmlNodes = XmlUtil.GetXmlNodes(documentElement, "EventsAndReports", nsmgr); if (xmlNodes != null) { if (xmlNodes.Count != 0) { readerConfigResponse.EventsAndReports = PARAM_EventsAndReports.FromXmlNode(xmlNodes[0]); } } } catch { } try { ArrayList nodeCustomChildren = XmlUtil.GetXmlNodeCustomChildren(documentElement, nsmgr); if (nodeCustomChildren != null) { for (int index = 0; index < nodeCustomChildren.Count; ++index) { ICustom_Parameter customParameter = CustomParamDecodeFactory.DecodeXmlNodeToCustomParameter((XmlNode)nodeCustomChildren[index]); if (customParameter != null) { readerConfigResponse.AddCustomParameter(customParameter); } } } } catch { } return(readerConfigResponse); }