public override IFeature FromXml(XmlNode node, XmlNamespaceManager mgr) { if (node != null && node.HasChildNodes) { if (node.FirstChild.Attributes.Count > 0) { Id = node.FirstChild.Attributes["gml:id"].InnerText; } } var periodicDateRangeNodes = node.FirstChild.SelectNodes("periodicDateRange", mgr); if (periodicDateRangeNodes != null && periodicDateRangeNodes.Count > 0) { var dateRanges = new List <DateRange>(); foreach (XmlNode periodicDateRangeNode in periodicDateRangeNodes) { var newDateRange = new DateRange(); newDateRange.FromXml(periodicDateRangeNode, mgr); dateRanges.Add(newDateRange); } PeriodicDateRange = dateRanges.ToArray(); } var fixedDateRangeNode = node.FirstChild.SelectSingleNode("fixedDateRange", mgr); if (fixedDateRangeNode != null && fixedDateRangeNode.HasChildNodes) { FixedDateRange = new DateRange(); FixedDateRange.FromXml(fixedDateRangeNode, mgr); } var featureNameNodes = node.FirstChild.SelectNodes("featureName", mgr); if (featureNameNodes != null && featureNameNodes.Count > 0) { var featureNames = new List <FeatureName>(); foreach (XmlNode featureNameNode in featureNameNodes) { var newFeatureName = new FeatureName(); newFeatureName.FromXml(featureNameNode, mgr); featureNames.Add(newFeatureName); } FeatureName = featureNames.ToArray(); } var sourceIndication = node.FirstChild.SelectSingleNode("sourceIndication", mgr); if (sourceIndication != null && sourceIndication.HasChildNodes) { SourceIndication = new SourceIndication(); SourceIndication.FromXml(sourceIndication, mgr); } var textContentNodes = node.FirstChild.SelectNodes("textContent", mgr); if (textContentNodes != null && textContentNodes.Count > 0) { var textContents = new List <TextContent>(); foreach (XmlNode textContentNode in textContentNodes) { if (textContentNode != null && textContentNode.HasChildNodes) { var content = new TextContent(); content.FromXml(textContentNode, mgr); textContents.Add(content); } } TextContent = textContents.ToArray(); } var callSignNode = node.FirstChild.SelectSingleNode("callSign", mgr); if (callSignNode != null && callSignNode.HasChildNodes) { CallSign = callSignNode.FirstChild.InnerText; } var categoryOfRadioStationNode = node.FirstChild.SelectSingleNode("categoryOfRadioStation", mgr); if (categoryOfRadioStationNode != null && categoryOfRadioStationNode.HasChildNodes) { CategoryOfRadioStation = categoryOfRadioStationNode.FirstChild.InnerText; } var estimatedRangeOffTransmissionNode = node.FirstChild.SelectSingleNode("estimatedRangeOffTransmission", mgr); if (estimatedRangeOffTransmissionNode != null && estimatedRangeOffTransmissionNode.HasChildNodes) { EstimatedRangeOffTransmission = estimatedRangeOffTransmissionNode.FirstChild.InnerText; } var orientationNode = node.FirstChild.SelectSingleNode("orientation", mgr); if (orientationNode != null && orientationNode.HasChildNodes) { Orientation = new Orientation(); Orientation.FromXml(orientationNode, mgr); } var radiocommunicationsNodes = node.FirstChild.SelectNodes("radiocommunications", mgr); if (radiocommunicationsNodes != null && radiocommunicationsNodes.Count > 0) { var rdoComDescriptions = new List <RadioCommunications>(); foreach (XmlNode radiocommunicationsNode in radiocommunicationsNodes) { if (radiocommunicationsNode != null && radiocommunicationsNode.HasChildNodes) { var rdoComDescription = new RadioCommunications(); rdoComDescription.FromXml(radiocommunicationsNode, mgr); rdoComDescriptions.Add(rdoComDescription); } } RadioCommunications = rdoComDescriptions.ToArray(); } var statusNode = node.FirstChild.SelectSingleNode("status", mgr); if (statusNode != null && statusNode.HasChildNodes) { Status = statusNode.FirstChild.InnerText; } var linkNodes = node.FirstChild.SelectNodes("*[boolean(@xlink:href)]", mgr); if (linkNodes != null && linkNodes.Count > 0) { var links = new List <Link>(); foreach (XmlNode linkNode in linkNodes) { var newLink = new Link(); newLink.FromXml(linkNode, mgr); links.Add(newLink); } Links = links.ToArray(); } return(this); }
/// <summary> /// /// </summary> /// <param name="node"></param> /// <param name="mgr"></param> /// <returns></returns> public override IFeature FromXml(XmlNode node, XmlNamespaceManager mgr) { if (node != null && node.HasChildNodes) { if (node.FirstChild.Attributes.Count > 0) { Id = node.FirstChild.Attributes["gml:id"].InnerText; } } var fixedDateRangeNode = node.FirstChild.SelectSingleNode("fixedDateRange", mgr); if (fixedDateRangeNode != null && fixedDateRangeNode.HasChildNodes) { FixedDateRange = new DateRange(); FixedDateRange.FromXml(fixedDateRangeNode, mgr); } var periodicDateRangeNodes = node.FirstChild.SelectNodes("periodicDateRange", mgr); if (periodicDateRangeNodes != null && periodicDateRangeNodes.Count > 0) { var dateRanges = new List <DateRange>(); foreach (XmlNode periodicDateRangeNode in periodicDateRangeNodes) { var newDateRange = new DateRange(); newDateRange.FromXml(periodicDateRangeNode, mgr); dateRanges.Add(newDateRange); } PeriodicDateRange = dateRanges.ToArray(); } var featureNameNodes = node.FirstChild.SelectNodes("featureName", mgr); if (featureNameNodes != null && featureNameNodes.Count > 0) { var featureNames = new List <FeatureName>(); foreach (XmlNode featureNameNode in featureNameNodes) { var newFeatureName = new FeatureName(); newFeatureName.FromXml(featureNameNode, mgr); featureNames.Add(newFeatureName); } FeatureName = featureNames.ToArray(); } var sourceIndicationNodes = node.FirstChild.SelectNodes("sourceIndication", mgr); if (sourceIndicationNodes != null && sourceIndicationNodes.Count > 0) { var sourceIndications = new List <SourceIndication>(); foreach (XmlNode sourceIndicationNode in sourceIndicationNodes) { if (sourceIndicationNode != null && sourceIndicationNode.HasChildNodes) { var sourceIndication = new SourceIndication(); sourceIndication.FromXml(sourceIndicationNode, mgr); sourceIndications.Add(sourceIndication); } } SourceIndication = sourceIndications.ToArray(); } var callNameNode = node.FirstChild.SelectSingleNode("callName", mgr); if (callNameNode != null && callNameNode.HasChildNodes) { CallName = callNameNode.FirstChild.InnerText; } var callSignNode = node.FirstChild.SelectSingleNode("callSign", mgr); if (callSignNode != null && callSignNode.HasChildNodes) { CallSign = callSignNode.FirstChild.InnerText; } var categoryOfCommPrefNode = node.FirstChild.SelectSingleNode("categoryOfCommPref", mgr); if (categoryOfCommPrefNode != null && categoryOfCommPrefNode.HasChildNodes) { CategoryOfCommPref = categoryOfCommPrefNode.FirstChild.InnerText; } var communicationChannelNodes = node.FirstChild.SelectNodes("communicationChannel", mgr); if (communicationChannelNodes != null && communicationChannelNodes.Count > 0) { var channels = new List <string>(); foreach (XmlNode communicationChannelNode in communicationChannelNodes) { if (communicationChannelNode != null && communicationChannelNode.HasChildNodes) { channels.Add(communicationChannelNode.FirstChild.InnerText); } } CommunicationChannel = channels.ToArray(); } var contactInstructionsNode = node.FirstChild.SelectSingleNode("contactInstructions", mgr); if (contactInstructionsNode != null && contactInstructionsNode.HasChildNodes) { ContactInstructions = contactInstructionsNode.FirstChild.InnerText; } var mmsiCodeNode = node.FirstChild.SelectSingleNode("mMSICode", mgr); if (mmsiCodeNode != null && mmsiCodeNode.HasChildNodes) { MMsiCode = mmsiCodeNode.FirstChild.InnerText; } var contactAddressNodes = node.FirstChild.SelectNodes("contactAddress", mgr); if (contactAddressNodes != null && contactAddressNodes.Count > 0) { var contactAddresses = new List <ContactAddress>(); foreach (XmlNode contactAddressNode in contactAddressNodes) { if (contactAddressNode != null && contactAddressNode.HasChildNodes) { var newContactAddress = new ContactAddress(); newContactAddress.FromXml(contactAddressNode, mgr); contactAddresses.Add(newContactAddress); } } ContactAddress = contactAddresses.ToArray(); } var informationNodes = node.FirstChild.SelectNodes("information", mgr); if (informationNodes != null && informationNodes.Count > 0) { var informations = new List <Information>(); foreach (XmlNode informationNode in informationNodes) { if (informationNode != null && informationNode.HasChildNodes) { var newInformation = new Information(); newInformation.FromXml(informationNode, mgr); informations.Add(newInformation); } } Information = informations.ToArray(); } var frequencyPairNodes = node.FirstChild.SelectNodes("frequencyPair", mgr); if (frequencyPairNodes != null && frequencyPairNodes.Count > 0) { var frequencyPairs = new List <FrequencyPair>(); foreach (XmlNode frequencyPairNode in frequencyPairNodes) { if (frequencyPairNode != null && frequencyPairNode.HasChildNodes) { var newFrequencyPair = new FrequencyPair(); newFrequencyPair.FromXml(frequencyPairNode, mgr); frequencyPairs.Add(newFrequencyPair); } } FrequencyPair = frequencyPairs.ToArray(); } var onlineResourceNodes = node.FirstChild.SelectNodes("onlineResource", mgr); if (onlineResourceNodes != null && onlineResourceNodes.Count > 0) { var onlineResources = new List <OnlineResource>(); foreach (XmlNode onlineResourceNode in onlineResourceNodes) { if (onlineResourceNode != null && onlineResourceNode.HasChildNodes) { var newOnlineResource = new OnlineResource(); newOnlineResource.FromXml(onlineResourceNode, mgr); onlineResources.Add(newOnlineResource); } } OnlineResource = onlineResources.ToArray(); } var radioCommunicationNodes = node.FirstChild.SelectNodes("radiocommunications", mgr); if (radioCommunicationNodes != null && radioCommunicationNodes.Count > 0) { var radioCommunications = new List <RadioCommunications>(); foreach (XmlNode radioCommunicationNode in radioCommunicationNodes) { if (radioCommunicationNode != null && radioCommunicationNode.HasChildNodes) { var newRadioCommunications = new RadioCommunications(); newRadioCommunications.FromXml(radioCommunicationNode, mgr); radioCommunications.Add(newRadioCommunications); } } RadioCommunications = radioCommunications.ToArray(); } var teleCommunicationNodes = node.FirstChild.SelectNodes("telecommunications", mgr); if (teleCommunicationNodes != null && teleCommunicationNodes.Count > 0) { var teleCommunications = new List <Telecommunications>(); foreach (XmlNode teleCommunicationNode in teleCommunicationNodes) { if (teleCommunicationNode != null && teleCommunicationNode.HasChildNodes) { var newTelecommunications = new Telecommunications(); newTelecommunications.FromXml(teleCommunicationNode, mgr); teleCommunications.Add(newTelecommunications); } } Telecommunications = teleCommunications.ToArray(); } var linkNodes = node.FirstChild.SelectNodes("*[boolean(@xlink:href)]", mgr); if (linkNodes != null && linkNodes.Count > 0) { var links = new List <Link>(); foreach (XmlNode linkNode in linkNodes) { var newLink = new Link(); newLink.FromXml(linkNode, mgr); links.Add(newLink); } Links = links.ToArray(); } return(this); }
/// <summary> /// /// </summary> /// <param name="node"></param> /// <param name="mgr"></param> /// <returns></returns> public override IFeature FromXml(XmlNode node, XmlNamespaceManager mgr) { if (node != null && node.HasChildNodes) { if (node.FirstChild.Attributes.Count > 0) { Id = node.FirstChild.Attributes["gml:id"].InnerText; } } var periodicDateRangeNodes = node.FirstChild.SelectNodes("periodicDateRange", mgr); if (periodicDateRangeNodes != null && periodicDateRangeNodes.Count > 0) { var dateRanges = new List <DateRange>(); foreach (XmlNode periodicDateRangeNode in periodicDateRangeNodes) { var newDateRange = new DateRange(); newDateRange.FromXml(periodicDateRangeNode, mgr); dateRanges.Add(newDateRange); } PeriodicDateRange = dateRanges.ToArray(); } var fixedDateRangeNode = node.FirstChild.SelectSingleNode("fixedDateRange", mgr); if (fixedDateRangeNode != null && fixedDateRangeNode.HasChildNodes) { FixedDateRange = new DateRange(); FixedDateRange.FromXml(fixedDateRangeNode, mgr); } var featureNameNodes = node.FirstChild.SelectNodes("featureName", mgr); if (featureNameNodes != null && featureNameNodes.Count > 0) { var featureNames = new List <FeatureName>(); foreach (XmlNode featureNameNode in featureNameNodes) { var newFeatureName = new FeatureName(); newFeatureName.FromXml(featureNameNode, mgr); featureNames.Add(newFeatureName); } FeatureName = featureNames.ToArray(); } var sourceIndication = node.FirstChild.SelectSingleNode("sourceIndication", mgr); if (sourceIndication != null && sourceIndication.HasChildNodes) { SourceIndication = new SourceIndication(); SourceIndication.FromXml(sourceIndication, mgr); } var textContentNodes = node.FirstChild.SelectNodes("textContent", mgr); if (textContentNodes != null && textContentNodes.Count > 0) { var textContents = new List <TextContent>(); foreach (XmlNode textContentNode in textContentNodes) { if (textContentNode != null && textContentNode.HasChildNodes) { var content = new TextContent(); content.FromXml(textContentNode, mgr); textContents.Add(content); } } TextContent = textContents.ToArray(); } var callSignNode = node.FirstChild.SelectSingleNode("callSign", mgr); if (callSignNode != null && callSignNode.HasChildNodes) { CallSign = callSignNode.FirstChild.InnerText; } var categoryOfBroadcastCommunicationNode = node.FirstChild.SelectSingleNode("categoryOfBroadcastCommunication", mgr); if (categoryOfBroadcastCommunicationNode != null && categoryOfBroadcastCommunicationNode.HasChildNodes) { CategoryOfBroadcastCommunication = categoryOfBroadcastCommunicationNode.FirstChild.InnerText; } var languageInformationNode = node.FirstChild.SelectSingleNode("languageInformation", mgr); if (languageInformationNode != null && languageInformationNode.HasChildNodes) { LanguageInformation = languageInformationNode.FirstChild.InnerText; } var radioCommunicationNodes = node.FirstChild.SelectNodes("radiocommunications", mgr); if (radioCommunicationNodes != null && radioCommunicationNodes.Count > 0) { var radioCommunications = new List <RadioCommunications>(); foreach (XmlNode radioCommunicationNode in radioCommunicationNodes) { if (radioCommunicationNode != null && radioCommunicationNode.HasChildNodes) { var newRadioCommunications = new RadioCommunications(); newRadioCommunications.FromXml(radioCommunicationNode, mgr); radioCommunications.Add(newRadioCommunications); } } RadioCommunications = radioCommunications.ToArray(); } var statusNode = node.FirstChild.SelectSingleNode("status", mgr); if (statusNode != null && statusNode.HasChildNodes) { Status = statusNode.FirstChild.InnerText; } var timeReferenceNode = node.FirstChild.SelectSingleNode("timeReference", mgr); if (timeReferenceNode != null && timeReferenceNode.HasChildNodes) { TimeReference = timeReferenceNode.FirstChild.InnerText; } var transmissionPowerNode = node.FirstChild.SelectSingleNode("transmissionPower", mgr); if (transmissionPowerNode != null && transmissionPowerNode.HasChildNodes) { TransmissionPower = transmissionPowerNode.FirstChild.InnerText; } var txIdentCharNode = node.FirstChild.SelectSingleNode("txIdentChar", mgr); if (txIdentCharNode != null && txIdentCharNode.HasChildNodes) { TxIdentChar = txIdentCharNode.FirstChild.InnerText; } var txTrafficListNode = node.FirstChild.SelectSingleNode("txTrafficList", mgr); if (txTrafficListNode != null && txTrafficListNode.HasChildNodes) { TxTrafficList = txTrafficListNode.FirstChild.InnerText; } var linkNodes = node.FirstChild.SelectNodes("*[boolean(@xlink:href)]", mgr); if (linkNodes != null && linkNodes.Count > 0) { var links = new List <Link>(); foreach (XmlNode linkNode in linkNodes) { var newLink = new Link(); newLink.FromXml(linkNode, mgr); links.Add(newLink); } Links = links.ToArray(); } return(this); }