/// <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 featureObjectIdentifierNode = node.FirstChild.SelectSingleNode("s100:featureObjectIdentifier", mgr); if (featureObjectIdentifierNode != null && featureObjectIdentifierNode.HasChildNodes) { FeatureObjectIdentifier = new FeatureObjectIdentifier(); FeatureObjectIdentifier.FromXml(featureObjectIdentifierNode, 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 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 categoryOfFrctAndWarningAreaNode = node.FirstChild.SelectSingleNode("categoryOfFrcstAndWarningArea", mgr); if (categoryOfFrctAndWarningAreaNode != null && categoryOfFrctAndWarningAreaNode.HasChildNodes) { CategoryOfFrctAndWarningArea = categoryOfFrctAndWarningAreaNode.FirstChild.InnerText; } var nationalityNode = node.FirstChild.SelectSingleNode("nationality", mgr); if (nationalityNode != null && nationalityNode.HasChildNodes) { Nationality = nationalityNode.FirstChild.InnerText; } 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 categoryOfAuthorityNode = node.FirstChild.SelectSingleNode("categoryOfAuthority", mgr); if (categoryOfAuthorityNode != null && categoryOfAuthorityNode.HasChildNodes) { CategoryOfAuthority = categoryOfAuthorityNode.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 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 categoryOfPilotNodes = node.FirstChild.SelectNodes("categoryOfPilot", mgr); if (categoryOfPilotNodes != null && categoryOfPilotNodes.Count > 0) { var categories = new List <string>(); foreach (XmlNode categoryOfPilotNode in categoryOfPilotNodes) { var category = categoryOfPilotNode.FirstChild.InnerText; categories.Add(category); } CategoryOfPilot = categories.ToArray(); } var pilotQualificationNode = node.FirstChild.SelectSingleNode("pilotQualification", mgr); if (pilotQualificationNode != null && pilotQualificationNode.HasChildNodes) { PilotQualification = pilotQualificationNode.FirstChild.InnerText; } var pilotRequestNode = node.FirstChild.SelectSingleNode("pilotRequest", mgr); if (pilotRequestNode != null && pilotRequestNode.HasChildNodes) { PilotRequest = pilotRequestNode.FirstChild.InnerText; } var remotePilotNode = node.FirstChild.SelectSingleNode("remotePilot", mgr); if (remotePilotNode != null && remotePilotNode.HasChildNodes) { RemotePilot = remotePilotNode.FirstChild.InnerText; } var noticeTimeNode = node.FirstChild.SelectSingleNode("noticeTime", mgr); if (noticeTimeNode != null && noticeTimeNode.HasChildNodes) { NoticeTime = new NoticeTime(); NoticeTime.FromXml(noticeTimeNode, mgr); } 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 restrictionNodes = node.FirstChild.SelectNodes("restriction", mgr); if (restrictionNodes != null && restrictionNodes.Count > 0) { var restrictions = new List <string>(); foreach (XmlNode restrictionNode in restrictionNodes) { if (restrictionNode != null && restrictionNode.HasChildNodes) { restrictions.Add(restrictionNode.FirstChild.InnerText); } } Restriction = restrictions.ToArray(); } var statusNodes = node.FirstChild.SelectNodes("status", mgr); if (statusNodes != null && statusNodes.Count > 0) { var statuses = new List <string>(); foreach (XmlNode statusNode in statusNodes) { if (statusNode != null && statusNode.HasChildNodes) { statuses.Add(statusNode.FirstChild.InnerText); } } Status = statuses.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 classificationNode = node.FirstChild.SelectSingleNode("classification", mgr); if (classificationNode != null && classificationNode.HasChildNodes) { Classification = classificationNode.FirstChild.InnerText; } var copyrightNode = node.FirstChild.SelectSingleNode("copyright"); if (copyrightNode != null && copyrightNode.HasChildNodes) { Copyright = copyrightNode.FirstChild.InnerText; } var maximumDisplayScaleNode = node.FirstChild.SelectSingleNode("maximumDisplayScale", mgr); if (maximumDisplayScaleNode != null && maximumDisplayScaleNode.HasChildNodes) { MaximumDisplayScale = maximumDisplayScaleNode.FirstChild.InnerText; } var horizontalDatumReferenceNode = node.FirstChild.SelectSingleNode("horizontalDatumReference", mgr); if (horizontalDatumReferenceNode != null && horizontalDatumReferenceNode.HasChildNodes) { HorizontalDatumReference = horizontalDatumReferenceNode.FirstChild.InnerText; } var horizontalDatumValueNode = node.FirstChild.SelectSingleNode("horizontalDatumValue", mgr); if (horizontalDatumValueNode != null && horizontalDatumValueNode.HasChildNodes) { HorizontalDatumValue = horizontalDatumValueNode.FirstChild.InnerText; } var verticalDatumNode = node.FirstChild.SelectSingleNode("verticalDatum", mgr); if (verticalDatumNode != null && verticalDatumNode.HasChildNodes) { VerticalDatum = verticalDatumNode.FirstChild.InnerText; } var soundingDatumNode = node.FirstChild.SelectSingleNode("soundingDatum", mgr); if (soundingDatumNode != null && soundingDatumNode.HasChildNodes) { SoundingDatum = soundingDatumNode.FirstChild.InnerText; } var productTypeNode = node.FirstChild.SelectSingleNode("productType", mgr); if (productTypeNode != null && productTypeNode.HasChildNodes) { ProductType = productTypeNode.FirstChild.InnerText; } var minimumDisplayScaleNode = node.FirstChild.SelectSingleNode("minimumDisplayScale", mgr); if (minimumDisplayScaleNode != null && minimumDisplayScaleNode.HasChildNodes) { MinimumDisplayScale = minimumDisplayScaleNode.FirstChild.InnerText; } var issueDateNode = node.FirstChild.SelectSingleNode("issueDate", mgr); if (issueDateNode != null && issueDateNode.HasChildNodes) { IssueDate = issueDateNode.FirstChild.InnerText; } var purposeNode = node.FirstChild.SelectSingleNode("purpose", mgr); if (purposeNode != null && purposeNode.HasChildNodes) { Purpose = purposeNode.FirstChild.InnerText; } 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 priceNodes = node.FirstChild.SelectNodes("price", mgr); if (priceNodes != null && priceNodes.Count > 0) { var prices = new List <Price>(); foreach (XmlNode priceNode in priceNodes) { if (priceNode != null && priceNode.HasChildNodes) { var newPrice = new Price(); newPrice.FromXml(priceNode, mgr); prices.Add(newPrice); } } Price = prices.ToArray(); } var producingAgencyNode = node.FirstChild.SelectSingleNode("producingAgency", mgr); if (producingAgencyNode != null && producingAgencyNode.HasChildNodes) { ProducingAgency = new ProducingAgency(); ProducingAgency.FromXml(producingAgencyNode, mgr); } var chartNumberNode = node.FirstChild.SelectSingleNode("chartNumber", mgr); if (chartNumberNode != null && chartNumberNode.HasChildNodes) { ChartNumber = chartNumberNode.FirstChild.InnerText; } var distributionStatusNode = node.FirstChild.SelectSingleNode("distributionStatus", mgr); if (distributionStatusNode != null && distributionStatusNode.HasChildNodes) { DistributionStatus = distributionStatusNode.FirstChild.InnerText; } var compilationScaleNode = node.FirstChild.SelectSingleNode("compilationScale", mgr); if (compilationScaleNode != null && compilationScaleNode.HasChildNodes) { CompilationScale = compilationScaleNode.FirstChild.InnerText; } var editionNumberNode = node.FirstChild.SelectSingleNode("editionNumber", mgr); if (editionNumberNode != null && editionNumberNode.HasChildNodes) { EditionNumber = editionNumberNode.FirstChild.InnerText; } var specificUsageNode = node.FirstChild.SelectSingleNode("specificUsage", mgr); if (specificUsageNode != null && specificUsageNode.HasChildNodes) { SpecificUsage = specificUsageNode.FirstChild.InnerText; } var producerCodeNode = node.FirstChild.SelectSingleNode("producerCode", mgr); if (producerCodeNode != null && producerCodeNode.HasChildNodes) { ProducerCode = producerCodeNode.FirstChild.InnerText; } var producerNationNode = node.FirstChild.SelectSingleNode("producerNation", mgr); if (producerNationNode != null && producerNationNode.HasChildNodes) { ProducerNation = producerNationNode.FirstChild.InnerText; } var datasetNameNodes = node.FirstChild.SelectNodes("datasetName", mgr); if (datasetNameNodes != null && datasetNameNodes.Count > 0) { var datasets = new List <string>(); foreach (XmlNode datasetNameNode in datasetNameNodes) { if (datasetNameNode != null && datasetNameNode.HasChildNodes) { datasets.Add(datasetNameNode.FirstChild.InnerText); } } DatasetName = datasets.ToArray(); } var updateDateNode = node.FirstChild.SelectSingleNode("updateDate", mgr); if (updateDateNode != null && updateDateNode.HasChildNodes) { UpdateDate = updateDateNode.FirstChild.InnerText; } var updateNumberNode = node.FirstChild.SelectSingleNode("updateNumber", mgr); if (updateNumberNode != null && updateNumberNode.HasChildNodes) { UpdateNumber = updateNumberNode.FirstChild.InnerText; } var productSpecificationNode = node.FirstChild.SelectSingleNode("productSpecification", mgr); if (productSpecificationNode != null && productSpecificationNode.HasChildNodes) { ProductSpecification = new ReferenceSpecification(); ProductSpecification.FromXml(productSpecificationNode, mgr); } 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 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 newTextContent = new TextContent(); newTextContent.FromXml(textContentNode, mgr); textContents.Add(newTextContent); } } TextContent = textContents.ToArray(); } var categoryOfAuthorityNode = node.FirstChild.SelectSingleNode("categoryOfAuthority", mgr); if (categoryOfAuthorityNode != null && categoryOfAuthorityNode.HasChildNodes) { CategoryOfAuthority = categoryOfAuthorityNode.FirstChild.InnerText; } var graphicNodes = node.FirstChild.SelectNodes("graphic", mgr); if (graphicNodes != null && graphicNodes.Count > 0) { var graphics = new List <Graphic>(); foreach (XmlNode graphicNode in graphicNodes) { if (graphicNode != null && graphicNode.HasChildNodes) { var newGraphic = new Graphic(); newGraphic.FromXml(graphicNode, mgr); graphics.Add(newGraphic); } } Graphic = graphics.ToArray(); } var rxnCodeNodes = node.FirstChild.SelectNodes("rxnCode"); if (rxnCodeNodes != null && rxnCodeNodes.Count > 0) { var rxnCodes = new List <RxnCode>(); foreach (XmlNode rxnCodeNode in rxnCodeNodes) { if (rxnCodeNode != null && rxnCodeNode.HasChildNodes) { var newRxnCode = new RxnCode(); newRxnCode.FromXml(rxnCodeNode, mgr); rxnCodes.Add(newRxnCode); } } RxnCode = rxnCodes.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 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 categoryOfCargoNodes = node.FirstChild.SelectNodes("categoryOfCargo", mgr); if (categoryOfCargoNodes != null && categoryOfCargoNodes.Count > 0) { var categories = new List <string>(); foreach (XmlNode categoryOfCargoNode in categoryOfCargoNodes) { if (categoryOfCargoNode != null && categoryOfCargoNode.HasChildNodes) { categories.Add(categoryOfCargoNode.FirstChild.InnerText); } } CategoryOfCargo = categories.ToArray(); } var categoryOfVesselNode = node.FirstChild.SelectSingleNode("categoryOfVessel", mgr); if (categoryOfVesselNode != null && categoryOfVesselNode.HasChildNodes) { CategoryOfVessel = categoryOfVesselNode.FirstChild.InnerText; } var orientationNodes = node.FirstChild.SelectNodes("orientation", mgr); if (orientationNodes != null && orientationNodes.Count > 0) { var orientations = new List <Orientation>(); foreach (XmlNode orientationNode in orientationNodes) { if (orientationNode != null && orientationNode.HasChildNodes) { var newOrientation = new Orientation(); newOrientation.FromXml(orientationNode, mgr); orientations.Add(newOrientation); } } Orientation = orientations.ToArray(); } var statusNodes = node.FirstChild.SelectNodes("status", mgr); if (statusNodes != null && statusNodes.Count > 0) { var statuses = new List <string>(); foreach (XmlNode statusNode in statusNodes) { if (statusNode != null && statusNode.HasChildNodes) { statuses.Add(statusNode.FirstChild.InnerText); } } Status = statuses.ToArray(); } var trafficFlowNode = node.FirstChild.SelectSingleNode("trafficFlow", mgr); if (trafficFlowNode != null && trafficFlowNode.HasChildNodes) { TrafficFlow = trafficFlowNode.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 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 categoryOfVesselTrafficServiceNode = node.FirstChild.SelectSingleNode("categoryOfVesselTrafficService", mgr); if (categoryOfVesselTrafficServiceNode != null && categoryOfVesselTrafficServiceNode.HasChildNodes) { CategoryOfVesselTrafficService = categoryOfVesselTrafficServiceNode.FirstChild.InnerText; } var serviceAccessProcedureNode = node.FirstChild.SelectSingleNode("serviceAccessProcedure", mgr); if (serviceAccessProcedureNode != null) { ServiceAccessProcedure = serviceAccessProcedureNode.FirstChild.InnerText; } var requirementsForMaintenanceOfListeningWatchNode = node.FirstChild.SelectSingleNode("requirementsForMaintenanceOfListeningWatch", mgr); if (requirementsForMaintenanceOfListeningWatchNode != null && requirementsForMaintenanceOfListeningWatchNode.HasChildNodes) { RequirementsForMaintenanceOfListeningWatch = requirementsForMaintenanceOfListeningWatchNode.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 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 underkeelAllowanceNode = node.FirstChild.SelectSingleNode("underkeelAllowance", mgr); if (underkeelAllowanceNode != null && underkeelAllowanceNode.HasChildNodes) { UnderkeelAllowance = new UnderkeelAllowance(); UnderkeelAllowance.FromXml(underkeelAllowanceNode, mgr); } var waterLevelTrendNode = node.FirstChild.SelectSingleNode("waterLevelTrend", mgr); if (waterLevelTrendNode != null && waterLevelTrendNode.HasChildNodes) { WaterLevelTrend = waterLevelTrendNode.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 categoryOfShipReportNodes = node.FirstChild.SelectNodes("categoryOfShipReport"); if (categoryOfShipReportNodes != null && categoryOfShipReportNodes.Count > 0) { var categories = new List <string>(); foreach (XmlNode categoryOfShipReportNode in categoryOfShipReportNodes) { if (categoryOfShipReportNode != null && categoryOfShipReportNode.HasChildNodes) { categories.Add(categoryOfShipReportNode.FirstChild.InnerText); } } CategoryOfShipReport = categories.ToArray(); } var imoFormatForReportingNode = node.FirstChild.SelectSingleNode("imoFormatForReporting", mgr); if (imoFormatForReportingNode != null && imoFormatForReportingNode.HasChildNodes) { ImoFormatForReporting = imoFormatForReportingNode.FirstChild.InnerText; } var noticeTimeNodes = node.FirstChild.SelectNodes("noticeTime"); if (noticeTimeNodes != null && noticeTimeNodes.Count > 0) { var noticeTimes = new List <NoticeTime>(); foreach (XmlNode noticeTimeNode in noticeTimeNodes) { if (noticeTimeNode != null && noticeTimeNode.HasChildNodes) { var newNoticeTime = new NoticeTime(); newNoticeTime.FromXml(noticeTimeNode, mgr); noticeTimes.Add(newNoticeTime); } } NoticeTime = noticeTimes.ToArray(); } var textContentNode = node.FirstChild.SelectSingleNode("textContent", mgr); if (textContentNode != null && textContentNode.HasChildNodes) { TextContent = new TextContent(); TextContent.FromXml(textContentNode, mgr); } 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 categoryOfPilotBoardingPlaceNode = node.FirstChild.SelectSingleNode("categoryOfPilotBoardingPlace", mgr); if (categoryOfPilotBoardingPlaceNode != null && categoryOfPilotBoardingPlaceNode.HasChildNodes) { CategoryOfPilotBoardingPlace = categoryOfPilotBoardingPlaceNode.FirstChild.InnerText; } var categoryOfPreferenceNode = node.FirstChild.SelectSingleNode("categoryOfPreference", mgr); if (categoryOfPreferenceNode != null && categoryOfPreferenceNode.HasChildNodes) { CategoryOfPilotBoardingPlace = categoryOfPreferenceNode.FirstChild.InnerText; } var categoryOfVesselNode = node.FirstChild.SelectSingleNode("categoryOfVessel", mgr); if (categoryOfVesselNode != null && categoryOfVesselNode.HasChildNodes) { CategoryOfVessel = categoryOfVesselNode.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 destinationNode = node.FirstChild.SelectSingleNode("destination", mgr); if (destinationNode != null && destinationNode.HasChildNodes) { Destination = destinationNode.FirstChild.InnerText; } var pilotMovementNode = node.FirstChild.SelectSingleNode("pilotMovement", mgr); if (pilotMovementNode != null && pilotMovementNode.HasChildNodes) { PilotMovement = pilotMovementNode.FirstChild.InnerText; } var pilotVesselNode = node.FirstChild.SelectSingleNode("pilotVessel", mgr); if (pilotVesselNode != null && pilotVesselNode.HasChildNodes) { PilotVessel = pilotVesselNode.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); }
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 informationNodes = node.FirstChild.SelectNodes("information", mgr); if (informationNodes != null && informationNodes.Count > 0) { var informations = new List <Information>(); foreach (XmlNode informationNode in informationNodes) { var newInformation = new Information(); newInformation.FromXml(informationNode, mgr); informations.Add(newInformation); } Information = informations.ToArray(); } var ballastNode = node.FirstChild.SelectSingleNode("ballast", mgr); if (ballastNode != null && ballastNode.HasChildNodes) { Ballast = ballastNode.FirstChild.InnerText; } var categoryOfCargoNodes = node.FirstChild.SelectNodes("categoryOfCargo", mgr); if (categoryOfCargoNodes != null && categoryOfCargoNodes.Count > 0) { var categoriesOfCargo = new List <string>(); foreach (XmlNode categoryOfCargoNode in categoryOfCargoNodes) { if (categoryOfCargoNode != null && categoryOfCargoNode.HasChildNodes) { categoriesOfCargo.Add(categoryOfCargoNode.InnerText); } } CategoryOfCargo = categoriesOfCargo.ToArray(); } var categoryOfDangerousOrHazardousCargoNodes = node.FirstChild.SelectNodes("categoryOfDangerousOrHazardousCargo"); if (categoryOfDangerousOrHazardousCargoNodes != null && categoryOfDangerousOrHazardousCargoNodes.Count > 0) { var categoriesOfCargo = new List <string>(); foreach (XmlNode categoryOfCargoNode in categoryOfCargoNodes) { if (categoryOfCargoNode != null && categoryOfCargoNode.HasChildNodes) { categoriesOfCargo.Add(categoryOfCargoNode.InnerText); } } CategoryOfDangerousOrHazardousCargo = categoriesOfCargo.ToArray(); } var categoryOfVesselNode = node.FirstChild.SelectSingleNode("categoryOfVessel", mgr); if (categoryOfVesselNode != null && categoryOfVesselNode.HasChildNodes) { CategoryOfVessel = categoryOfVesselNode.FirstChild.InnerText; } var categoryOfVesselRegistryNode = node.FirstChild.SelectSingleNode("categoryOfVesselRegistry", mgr); if (categoryOfVesselRegistryNode != null && categoryOfVesselRegistryNode.HasChildNodes) { CategoryOfVesselRegistry = categoryOfVesselRegistryNode.FirstChild.InnerText; } var logicalConnectivesNode = node.FirstChild.SelectSingleNode("logicalConnectives", mgr); if (logicalConnectivesNode != null && logicalConnectivesNode.HasChildNodes) { LogicalConnectives = logicalConnectivesNode.FirstChild.InnerText; } var thicknessOfIceCapabilityNode = node.FirstChild.SelectSingleNode("thicknessOfIceCapability", mgr); if (thicknessOfIceCapabilityNode != null && thicknessOfIceCapabilityNode.HasChildNodes) { ThicknessOfIceCapability = thicknessOfIceCapabilityNode.FirstChild.InnerText; } var vesselsMeasurementsNodes = node.FirstChild.SelectNodes("vesselsMeasurements", mgr); if (vesselsMeasurementsNodes != null && vesselsMeasurementsNodes.Count > 0) { var measurements = new List <VesselsMeasurement>(); foreach (XmlNode vesselsMeasurementsNode in vesselsMeasurementsNodes) { if (vesselsMeasurementsNode != null && vesselsMeasurementsNode.HasChildNodes) { var newMeasurement = new VesselsMeasurement(); newMeasurement.FromXml(vesselsMeasurementsNode, mgr); measurements.Add(newMeasurement); } } VesselsMeasurements = measurements.ToArray(); } var vesselPerformanceNode = node.FirstChild.SelectSingleNode("vesselPerformance", mgr); if (vesselPerformanceNode != null && vesselPerformanceNode.HasChildNodes) { VesselPerformance = vesselPerformanceNode.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); }
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 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 graphicNodes = node.FirstChild.SelectNodes("graphic", mgr); if (graphicNodes != null && graphicNodes.Count > 0) { var graphics = new List <Graphic>(); foreach (XmlNode graphicNode in graphicNodes) { if (graphicNode != null && graphicNode.HasChildNodes) { var newGraphic = new Graphic(); newGraphic.FromXml(graphicNode, mgr); graphics.Add(newGraphic); } } Graphic = graphics.ToArray(); } var issueDateNode = node.FirstChild.SelectSingleNode("issueDate", mgr); if (issueDateNode != null && issueDateNode.HasChildNodes) { IssueDate = issueDateNode.FirstChild.InnerText; } var editionNumberNode = node.FirstChild.SelectSingleNode("editionNumber", mgr); if (editionNumberNode != null && editionNumberNode.HasChildNodes) { EditionNumber = editionNumberNode.FirstChild.InnerText; } var marineResourceNameNode = node.FirstChild.SelectSingleNode("marineResourceName", mgr); if (marineResourceNameNode != null && marineResourceNameNode.HasChildNodes) { MarineResourceName = marineResourceNameNode.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 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); }